mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-30 05:09:06 +08:00
159935 lines
3.3 MiB
159935 lines
3.3 MiB
#ifndef __VMLINUX_H__
|
|
#define __VMLINUX_H__
|
|
|
|
#ifndef BPF_NO_PRESERVE_ACCESS_INDEX
|
|
#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record)
|
|
#endif
|
|
|
|
typedef unsigned long long __u64;
|
|
|
|
typedef __u64 u64;
|
|
|
|
typedef _Bool bool;
|
|
|
|
union perf_capabilities {
|
|
struct {
|
|
u64 lbr_format: 6;
|
|
u64 pebs_trap: 1;
|
|
u64 pebs_arch_reg: 1;
|
|
u64 pebs_format: 4;
|
|
u64 smm_freeze: 1;
|
|
u64 full_width_write: 1;
|
|
u64 pebs_baseline: 1;
|
|
u64 perf_metrics: 1;
|
|
u64 pebs_output_pt_available: 1;
|
|
u64 pebs_timing_info: 1;
|
|
u64 anythread_deprecated: 1;
|
|
};
|
|
u64 capabilities;
|
|
};
|
|
|
|
typedef struct {
|
|
int counter;
|
|
} atomic_t;
|
|
|
|
struct pt_regs;
|
|
|
|
struct perf_event;
|
|
|
|
struct cpu_hw_events;
|
|
|
|
struct event_constraint;
|
|
|
|
struct x86_pmu_quirk;
|
|
|
|
typedef long long __s64;
|
|
|
|
typedef __s64 s64;
|
|
|
|
struct attribute;
|
|
|
|
typedef long __kernel_long_t;
|
|
|
|
typedef __kernel_long_t __kernel_ssize_t;
|
|
|
|
typedef __kernel_ssize_t ssize_t;
|
|
|
|
struct attribute_group;
|
|
|
|
struct perf_event_pmu_context;
|
|
|
|
struct perf_sample_data;
|
|
|
|
struct extra_reg;
|
|
|
|
struct perf_guest_switch_msr;
|
|
|
|
struct pmu;
|
|
|
|
struct x86_hybrid_pmu;
|
|
|
|
typedef unsigned char __u8;
|
|
|
|
typedef __u8 u8;
|
|
|
|
struct x86_pmu {
|
|
const char *name;
|
|
int version;
|
|
int (*handle_irq)(struct pt_regs *);
|
|
void (*disable_all)();
|
|
void (*enable_all)(int);
|
|
void (*enable)(struct perf_event *);
|
|
void (*disable)(struct perf_event *);
|
|
void (*assign)(struct perf_event *, int);
|
|
void (*add)(struct perf_event *);
|
|
void (*del)(struct perf_event *);
|
|
void (*read)(struct perf_event *);
|
|
int (*set_period)(struct perf_event *);
|
|
u64 (*update)(struct perf_event *);
|
|
int (*hw_config)(struct perf_event *);
|
|
int (*schedule_events)(struct cpu_hw_events *, int, int *);
|
|
unsigned int eventsel;
|
|
unsigned int perfctr;
|
|
int (*addr_offset)(int, bool);
|
|
int (*rdpmc_index)(int);
|
|
u64 (*event_map)(int);
|
|
int max_events;
|
|
int num_counters;
|
|
int num_counters_fixed;
|
|
int cntval_bits;
|
|
u64 cntval_mask;
|
|
union {
|
|
unsigned long events_maskl;
|
|
unsigned long events_mask[1];
|
|
};
|
|
int events_mask_len;
|
|
int apic;
|
|
u64 max_period;
|
|
struct event_constraint * (*get_event_constraints)(struct cpu_hw_events *, int, struct perf_event *);
|
|
void (*put_event_constraints)(struct cpu_hw_events *, struct perf_event *);
|
|
void (*start_scheduling)(struct cpu_hw_events *);
|
|
void (*commit_scheduling)(struct cpu_hw_events *, int, int);
|
|
void (*stop_scheduling)(struct cpu_hw_events *);
|
|
struct event_constraint *event_constraints;
|
|
struct x86_pmu_quirk *quirks;
|
|
void (*limit_period)(struct perf_event *, s64 *);
|
|
unsigned int late_ack: 1;
|
|
unsigned int mid_ack: 1;
|
|
unsigned int enabled_ack: 1;
|
|
int attr_rdpmc_broken;
|
|
int attr_rdpmc;
|
|
struct attribute **format_attrs;
|
|
ssize_t (*events_sysfs_show)(char *, u64);
|
|
const struct attribute_group **attr_update;
|
|
unsigned long attr_freeze_on_smi;
|
|
int (*cpu_prepare)(int);
|
|
void (*cpu_starting)(int);
|
|
void (*cpu_dying)(int);
|
|
void (*cpu_dead)(int);
|
|
void (*check_microcode)();
|
|
void (*sched_task)(struct perf_event_pmu_context *, bool);
|
|
u64 intel_ctrl;
|
|
union perf_capabilities intel_cap;
|
|
unsigned int bts: 1;
|
|
unsigned int bts_active: 1;
|
|
unsigned int pebs: 1;
|
|
unsigned int pebs_active: 1;
|
|
unsigned int pebs_broken: 1;
|
|
unsigned int pebs_prec_dist: 1;
|
|
unsigned int pebs_no_tlb: 1;
|
|
unsigned int pebs_no_isolation: 1;
|
|
unsigned int pebs_block: 1;
|
|
unsigned int pebs_ept: 1;
|
|
int pebs_record_size;
|
|
int pebs_buffer_size;
|
|
int max_pebs_events;
|
|
void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *);
|
|
struct event_constraint *pebs_constraints;
|
|
void (*pebs_aliases)(struct perf_event *);
|
|
u64 (*pebs_latency_data)(struct perf_event *, u64);
|
|
unsigned long large_pebs_flags;
|
|
u64 rtm_abort_event;
|
|
u64 pebs_capable;
|
|
unsigned int lbr_tos;
|
|
unsigned int lbr_from;
|
|
unsigned int lbr_to;
|
|
unsigned int lbr_info;
|
|
unsigned int lbr_nr;
|
|
union {
|
|
u64 lbr_sel_mask;
|
|
u64 lbr_ctl_mask;
|
|
};
|
|
union {
|
|
const int *lbr_sel_map;
|
|
int *lbr_ctl_map;
|
|
};
|
|
bool lbr_double_abort;
|
|
bool lbr_pt_coexist;
|
|
unsigned int lbr_has_info: 1;
|
|
unsigned int lbr_has_tsx: 1;
|
|
unsigned int lbr_from_flags: 1;
|
|
unsigned int lbr_to_cycles: 1;
|
|
unsigned int lbr_depth_mask: 8;
|
|
unsigned int lbr_deep_c_reset: 1;
|
|
unsigned int lbr_lip: 1;
|
|
unsigned int lbr_cpl: 1;
|
|
unsigned int lbr_filter: 1;
|
|
unsigned int lbr_call_stack: 1;
|
|
unsigned int lbr_mispred: 1;
|
|
unsigned int lbr_timed_lbr: 1;
|
|
unsigned int lbr_br_type: 1;
|
|
void (*lbr_reset)();
|
|
void (*lbr_read)(struct cpu_hw_events *);
|
|
void (*lbr_save)(void *);
|
|
void (*lbr_restore)(void *);
|
|
atomic_t lbr_exclusive[3];
|
|
int num_topdown_events;
|
|
void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *);
|
|
unsigned int amd_nb_constraints: 1;
|
|
u64 perf_ctr_pair_en;
|
|
struct extra_reg *extra_regs;
|
|
unsigned int flags;
|
|
struct perf_guest_switch_msr * (*guest_get_msrs)(int *, void *);
|
|
int (*check_period)(struct perf_event *, u64);
|
|
int (*aux_output_match)(struct perf_event *);
|
|
void (*filter)(struct pmu *, int, bool *);
|
|
int num_hybrid_pmus;
|
|
struct x86_hybrid_pmu *hybrid_pmu;
|
|
u8 (*get_hybrid_cpu_type)();
|
|
};
|
|
|
|
struct pt_regs {
|
|
unsigned long r15;
|
|
unsigned long r14;
|
|
unsigned long r13;
|
|
unsigned long r12;
|
|
unsigned long bp;
|
|
unsigned long bx;
|
|
unsigned long r11;
|
|
unsigned long r10;
|
|
unsigned long r9;
|
|
unsigned long r8;
|
|
unsigned long ax;
|
|
unsigned long cx;
|
|
unsigned long dx;
|
|
unsigned long si;
|
|
unsigned long di;
|
|
unsigned long orig_ax;
|
|
unsigned long ip;
|
|
unsigned long cs;
|
|
unsigned long flags;
|
|
unsigned long sp;
|
|
unsigned long ss;
|
|
};
|
|
|
|
struct list_head {
|
|
struct list_head *next;
|
|
struct list_head *prev;
|
|
};
|
|
|
|
struct rb_node {
|
|
unsigned long __rb_parent_color;
|
|
struct rb_node *rb_right;
|
|
struct rb_node *rb_left;
|
|
};
|
|
|
|
struct hlist_node {
|
|
struct hlist_node *next;
|
|
struct hlist_node **pprev;
|
|
};
|
|
|
|
enum perf_event_state {
|
|
PERF_EVENT_STATE_DEAD = -4,
|
|
PERF_EVENT_STATE_EXIT = -3,
|
|
PERF_EVENT_STATE_ERROR = -2,
|
|
PERF_EVENT_STATE_OFF = -1,
|
|
PERF_EVENT_STATE_INACTIVE = 0,
|
|
PERF_EVENT_STATE_ACTIVE = 1,
|
|
};
|
|
|
|
typedef struct {
|
|
s64 counter;
|
|
} atomic64_t;
|
|
|
|
typedef atomic64_t atomic_long_t;
|
|
|
|
typedef struct {
|
|
atomic_long_t a;
|
|
} local_t;
|
|
|
|
typedef struct {
|
|
local_t a;
|
|
} local64_t;
|
|
|
|
typedef unsigned int __u32;
|
|
|
|
typedef int __s32;
|
|
|
|
typedef unsigned short __u16;
|
|
|
|
struct perf_event_attr {
|
|
__u32 type;
|
|
__u32 size;
|
|
__u64 config;
|
|
union {
|
|
__u64 sample_period;
|
|
__u64 sample_freq;
|
|
};
|
|
__u64 sample_type;
|
|
__u64 read_format;
|
|
__u64 disabled: 1;
|
|
__u64 inherit: 1;
|
|
__u64 pinned: 1;
|
|
__u64 exclusive: 1;
|
|
__u64 exclude_user: 1;
|
|
__u64 exclude_kernel: 1;
|
|
__u64 exclude_hv: 1;
|
|
__u64 exclude_idle: 1;
|
|
__u64 mmap: 1;
|
|
__u64 comm: 1;
|
|
__u64 freq: 1;
|
|
__u64 inherit_stat: 1;
|
|
__u64 enable_on_exec: 1;
|
|
__u64 task: 1;
|
|
__u64 watermark: 1;
|
|
__u64 precise_ip: 2;
|
|
__u64 mmap_data: 1;
|
|
__u64 sample_id_all: 1;
|
|
__u64 exclude_host: 1;
|
|
__u64 exclude_guest: 1;
|
|
__u64 exclude_callchain_kernel: 1;
|
|
__u64 exclude_callchain_user: 1;
|
|
__u64 mmap2: 1;
|
|
__u64 comm_exec: 1;
|
|
__u64 use_clockid: 1;
|
|
__u64 context_switch: 1;
|
|
__u64 write_backward: 1;
|
|
__u64 namespaces: 1;
|
|
__u64 ksymbol: 1;
|
|
__u64 bpf_event: 1;
|
|
__u64 aux_output: 1;
|
|
__u64 cgroup: 1;
|
|
__u64 text_poke: 1;
|
|
__u64 build_id: 1;
|
|
__u64 inherit_thread: 1;
|
|
__u64 remove_on_exec: 1;
|
|
__u64 sigtrap: 1;
|
|
__u64 __reserved_1: 26;
|
|
union {
|
|
__u32 wakeup_events;
|
|
__u32 wakeup_watermark;
|
|
};
|
|
__u32 bp_type;
|
|
union {
|
|
__u64 bp_addr;
|
|
__u64 kprobe_func;
|
|
__u64 uprobe_path;
|
|
__u64 config1;
|
|
};
|
|
union {
|
|
__u64 bp_len;
|
|
__u64 kprobe_addr;
|
|
__u64 probe_offset;
|
|
__u64 config2;
|
|
};
|
|
__u64 branch_sample_type;
|
|
__u64 sample_regs_user;
|
|
__u32 sample_stack_user;
|
|
__s32 clockid;
|
|
__u64 sample_regs_intr;
|
|
__u32 aux_watermark;
|
|
__u16 sample_max_stack;
|
|
__u16 __reserved_2;
|
|
__u32 aux_sample_size;
|
|
__u32 __reserved_3;
|
|
__u64 sig_data;
|
|
__u64 config3;
|
|
};
|
|
|
|
typedef __u16 u16;
|
|
|
|
struct hw_perf_event_extra {
|
|
u64 config;
|
|
unsigned int reg;
|
|
int alloc;
|
|
int idx;
|
|
};
|
|
|
|
typedef s64 ktime_t;
|
|
|
|
struct timerqueue_node {
|
|
struct rb_node node;
|
|
ktime_t expires;
|
|
};
|
|
|
|
enum hrtimer_restart {
|
|
HRTIMER_NORESTART = 0,
|
|
HRTIMER_RESTART = 1,
|
|
};
|
|
|
|
struct hrtimer_clock_base;
|
|
|
|
struct hrtimer {
|
|
struct timerqueue_node node;
|
|
ktime_t _softexpires;
|
|
enum hrtimer_restart (*function)(struct hrtimer *);
|
|
struct hrtimer_clock_base *base;
|
|
u8 state;
|
|
u8 is_rel;
|
|
u8 is_soft;
|
|
u8 is_hard;
|
|
};
|
|
|
|
struct arch_hw_breakpoint {
|
|
unsigned long address;
|
|
unsigned long mask;
|
|
u8 len;
|
|
u8 type;
|
|
};
|
|
|
|
struct rhash_head {
|
|
struct rhash_head __attribute__((btf_type_tag("rcu"))) *next;
|
|
};
|
|
|
|
struct rhlist_head {
|
|
struct rhash_head rhead;
|
|
struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next;
|
|
};
|
|
|
|
struct task_struct;
|
|
|
|
struct hw_perf_event {
|
|
union {
|
|
struct {
|
|
u64 config;
|
|
u64 last_tag;
|
|
unsigned long config_base;
|
|
unsigned long event_base;
|
|
int event_base_rdpmc;
|
|
int idx;
|
|
int last_cpu;
|
|
int flags;
|
|
struct hw_perf_event_extra extra_reg;
|
|
struct hw_perf_event_extra branch_reg;
|
|
};
|
|
struct {
|
|
struct hrtimer hrtimer;
|
|
};
|
|
struct {
|
|
struct list_head tp_list;
|
|
};
|
|
struct {
|
|
u64 pwr_acc;
|
|
u64 ptsc;
|
|
};
|
|
struct {
|
|
struct arch_hw_breakpoint info;
|
|
struct rhlist_head bp_list;
|
|
};
|
|
struct {
|
|
u8 iommu_bank;
|
|
u8 iommu_cntr;
|
|
u16 padding;
|
|
u64 conf;
|
|
u64 conf1;
|
|
};
|
|
};
|
|
struct task_struct *target;
|
|
void *addr_filters;
|
|
unsigned long addr_filters_gen;
|
|
int state;
|
|
local64_t prev_count;
|
|
u64 sample_period;
|
|
union {
|
|
struct {
|
|
u64 last_period;
|
|
local64_t period_left;
|
|
};
|
|
struct {
|
|
u64 saved_metric;
|
|
u64 saved_slots;
|
|
};
|
|
};
|
|
u64 interrupts_seq;
|
|
u64 interrupts;
|
|
u64 freq_time_stamp;
|
|
u64 freq_count_stamp;
|
|
};
|
|
|
|
struct qspinlock {
|
|
union {
|
|
atomic_t val;
|
|
struct {
|
|
u8 locked;
|
|
u8 pending;
|
|
};
|
|
struct {
|
|
u16 locked_pending;
|
|
u16 tail;
|
|
};
|
|
};
|
|
};
|
|
|
|
typedef struct qspinlock arch_spinlock_t;
|
|
|
|
struct raw_spinlock {
|
|
arch_spinlock_t raw_lock;
|
|
};
|
|
|
|
typedef struct raw_spinlock raw_spinlock_t;
|
|
|
|
struct optimistic_spin_queue {
|
|
atomic_t tail;
|
|
};
|
|
|
|
struct mutex {
|
|
atomic_long_t owner;
|
|
raw_spinlock_t wait_lock;
|
|
struct optimistic_spin_queue osq;
|
|
struct list_head wait_list;
|
|
};
|
|
|
|
struct spinlock {
|
|
union {
|
|
struct raw_spinlock rlock;
|
|
};
|
|
};
|
|
|
|
typedef struct spinlock spinlock_t;
|
|
|
|
struct wait_queue_head {
|
|
spinlock_t lock;
|
|
struct list_head head;
|
|
};
|
|
|
|
typedef struct wait_queue_head wait_queue_head_t;
|
|
|
|
struct llist_node {
|
|
struct llist_node *next;
|
|
};
|
|
|
|
struct __call_single_node {
|
|
struct llist_node llist;
|
|
union {
|
|
unsigned int u_flags;
|
|
atomic_t a_flags;
|
|
};
|
|
u16 src;
|
|
u16 dst;
|
|
};
|
|
|
|
struct rcuwait {
|
|
struct task_struct __attribute__((btf_type_tag("rcu"))) *task;
|
|
};
|
|
|
|
struct irq_work {
|
|
struct __call_single_node node;
|
|
void (*func)(struct irq_work *);
|
|
struct rcuwait irqwait;
|
|
};
|
|
|
|
struct callback_head {
|
|
struct callback_head *next;
|
|
void (*func)(struct callback_head *);
|
|
};
|
|
|
|
struct perf_addr_filters_head {
|
|
struct list_head list;
|
|
raw_spinlock_t lock;
|
|
unsigned int nr_file_filters;
|
|
};
|
|
|
|
typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *);
|
|
|
|
struct ftrace_ops;
|
|
|
|
struct ftrace_regs;
|
|
|
|
typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *);
|
|
|
|
struct ftrace_hash;
|
|
|
|
struct ftrace_ops_hash {
|
|
struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *notrace_hash;
|
|
struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *filter_hash;
|
|
struct mutex regex_lock;
|
|
};
|
|
|
|
enum ftrace_ops_cmd {
|
|
FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0,
|
|
FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1,
|
|
FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2,
|
|
};
|
|
|
|
typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd);
|
|
|
|
struct ftrace_ops {
|
|
ftrace_func_t func;
|
|
struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next;
|
|
unsigned long flags;
|
|
void *private;
|
|
ftrace_func_t saved_func;
|
|
struct ftrace_ops_hash local_hash;
|
|
struct ftrace_ops_hash *func_hash;
|
|
struct ftrace_ops_hash old_hash;
|
|
unsigned long trampoline;
|
|
unsigned long trampoline_size;
|
|
struct list_head list;
|
|
ftrace_ops_func_t ops_func;
|
|
};
|
|
|
|
struct perf_event_context;
|
|
|
|
struct perf_buffer;
|
|
|
|
struct fasync_struct;
|
|
|
|
struct perf_addr_filter_range;
|
|
|
|
struct pid_namespace;
|
|
|
|
struct bpf_prog;
|
|
|
|
struct trace_event_call;
|
|
|
|
struct event_filter;
|
|
|
|
struct perf_cgroup;
|
|
|
|
struct perf_event {
|
|
struct list_head event_entry;
|
|
struct list_head sibling_list;
|
|
struct list_head active_list;
|
|
struct rb_node group_node;
|
|
u64 group_index;
|
|
struct list_head migrate_entry;
|
|
struct hlist_node hlist_entry;
|
|
struct list_head active_entry;
|
|
int nr_siblings;
|
|
int event_caps;
|
|
int group_caps;
|
|
struct perf_event *group_leader;
|
|
struct pmu *pmu;
|
|
void *pmu_private;
|
|
enum perf_event_state state;
|
|
unsigned int attach_state;
|
|
local64_t count;
|
|
atomic64_t child_count;
|
|
u64 total_time_enabled;
|
|
u64 total_time_running;
|
|
u64 tstamp;
|
|
struct perf_event_attr attr;
|
|
u16 header_size;
|
|
u16 id_header_size;
|
|
u16 read_size;
|
|
struct hw_perf_event hw;
|
|
struct perf_event_context *ctx;
|
|
struct perf_event_pmu_context *pmu_ctx;
|
|
atomic_long_t refcount;
|
|
atomic64_t child_total_time_enabled;
|
|
atomic64_t child_total_time_running;
|
|
struct mutex child_mutex;
|
|
struct list_head child_list;
|
|
struct perf_event *parent;
|
|
int oncpu;
|
|
int cpu;
|
|
struct list_head owner_entry;
|
|
struct task_struct *owner;
|
|
struct mutex mmap_mutex;
|
|
atomic_t mmap_count;
|
|
struct perf_buffer *rb;
|
|
struct list_head rb_entry;
|
|
unsigned long rcu_batches;
|
|
int rcu_pending;
|
|
wait_queue_head_t waitq;
|
|
struct fasync_struct *fasync;
|
|
unsigned int pending_wakeup;
|
|
unsigned int pending_kill;
|
|
unsigned int pending_disable;
|
|
unsigned int pending_sigtrap;
|
|
unsigned long pending_addr;
|
|
struct irq_work pending_irq;
|
|
struct callback_head pending_task;
|
|
unsigned int pending_work;
|
|
atomic_t event_limit;
|
|
struct perf_addr_filters_head addr_filters;
|
|
struct perf_addr_filter_range *addr_filter_ranges;
|
|
unsigned long addr_filters_gen;
|
|
struct perf_event *aux_event;
|
|
void (*destroy)(struct perf_event *);
|
|
struct callback_head callback_head;
|
|
struct pid_namespace *ns;
|
|
u64 id;
|
|
atomic64_t lost_samples;
|
|
u64 (*clock)();
|
|
perf_overflow_handler_t overflow_handler;
|
|
void *overflow_handler_context;
|
|
perf_overflow_handler_t orig_overflow_handler;
|
|
struct bpf_prog *prog;
|
|
u64 bpf_cookie;
|
|
struct trace_event_call *tp_event;
|
|
struct event_filter *filter;
|
|
struct ftrace_ops ftrace_ops;
|
|
struct perf_cgroup *cgrp;
|
|
void *security;
|
|
struct list_head sb_list;
|
|
};
|
|
|
|
struct module;
|
|
|
|
struct device;
|
|
|
|
struct perf_cpu_pmu_context;
|
|
|
|
struct mm_struct;
|
|
|
|
struct kmem_cache;
|
|
|
|
struct perf_output_handle;
|
|
|
|
struct pmu {
|
|
struct list_head entry;
|
|
struct module *module;
|
|
struct device *dev;
|
|
const struct attribute_group **attr_groups;
|
|
const struct attribute_group **attr_update;
|
|
const char *name;
|
|
int type;
|
|
int capabilities;
|
|
int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count;
|
|
struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context;
|
|
atomic_t exclusive_cnt;
|
|
int task_ctx_nr;
|
|
int hrtimer_interval_ms;
|
|
unsigned int nr_addr_filters;
|
|
void (*pmu_enable)(struct pmu *);
|
|
void (*pmu_disable)(struct pmu *);
|
|
int (*event_init)(struct perf_event *);
|
|
void (*event_mapped)(struct perf_event *, struct mm_struct *);
|
|
void (*event_unmapped)(struct perf_event *, struct mm_struct *);
|
|
int (*add)(struct perf_event *, int);
|
|
void (*del)(struct perf_event *, int);
|
|
void (*start)(struct perf_event *, int);
|
|
void (*stop)(struct perf_event *, int);
|
|
void (*read)(struct perf_event *);
|
|
void (*start_txn)(struct pmu *, unsigned int);
|
|
int (*commit_txn)(struct pmu *);
|
|
void (*cancel_txn)(struct pmu *);
|
|
int (*event_idx)(struct perf_event *);
|
|
void (*sched_task)(struct perf_event_pmu_context *, bool);
|
|
struct kmem_cache *task_ctx_cache;
|
|
void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *);
|
|
void * (*setup_aux)(struct perf_event *, void **, int, bool);
|
|
void (*free_aux)(void *);
|
|
long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long);
|
|
int (*addr_filters_validate)(struct list_head *);
|
|
void (*addr_filters_sync)(struct perf_event *);
|
|
int (*aux_output_match)(struct perf_event *);
|
|
bool (*filter)(struct pmu *, int);
|
|
int (*check_period)(struct perf_event *, u64);
|
|
};
|
|
|
|
enum module_state {
|
|
MODULE_STATE_LIVE = 0,
|
|
MODULE_STATE_COMING = 1,
|
|
MODULE_STATE_GOING = 2,
|
|
MODULE_STATE_UNFORMED = 3,
|
|
};
|
|
|
|
struct refcount_struct {
|
|
atomic_t refs;
|
|
};
|
|
|
|
typedef struct refcount_struct refcount_t;
|
|
|
|
struct kref {
|
|
refcount_t refcount;
|
|
};
|
|
|
|
struct kset;
|
|
|
|
struct kobj_type;
|
|
|
|
struct kernfs_node;
|
|
|
|
struct kobject {
|
|
const char *name;
|
|
struct list_head entry;
|
|
struct kobject *parent;
|
|
struct kset *kset;
|
|
const struct kobj_type *ktype;
|
|
struct kernfs_node *sd;
|
|
struct kref kref;
|
|
unsigned int state_initialized: 1;
|
|
unsigned int state_in_sysfs: 1;
|
|
unsigned int state_add_uevent_sent: 1;
|
|
unsigned int state_remove_uevent_sent: 1;
|
|
unsigned int uevent_suppress: 1;
|
|
};
|
|
|
|
struct module_param_attrs;
|
|
|
|
struct completion;
|
|
|
|
struct module_kobject {
|
|
struct kobject kobj;
|
|
struct module *mod;
|
|
struct kobject *drivers_dir;
|
|
struct module_param_attrs *mp;
|
|
struct completion *kobj_completion;
|
|
};
|
|
|
|
typedef __s32 s32;
|
|
|
|
struct latch_tree_node {
|
|
struct rb_node node[2];
|
|
};
|
|
|
|
struct mod_tree_node {
|
|
struct module *mod;
|
|
struct latch_tree_node node;
|
|
};
|
|
|
|
struct module_layout {
|
|
void *base;
|
|
unsigned int size;
|
|
unsigned int text_size;
|
|
unsigned int ro_size;
|
|
unsigned int ro_after_init_size;
|
|
struct mod_tree_node mtn;
|
|
};
|
|
|
|
struct orc_entry;
|
|
|
|
struct mod_arch_specific {
|
|
unsigned int num_orcs;
|
|
int *orc_unwind_ip;
|
|
struct orc_entry *orc_unwind;
|
|
};
|
|
|
|
struct elf64_sym;
|
|
|
|
typedef struct elf64_sym Elf64_Sym;
|
|
|
|
struct mod_kallsyms {
|
|
Elf64_Sym *symtab;
|
|
unsigned int num_symtab;
|
|
char *strtab;
|
|
char *typetab;
|
|
};
|
|
|
|
typedef const int tracepoint_ptr_t;
|
|
|
|
struct module_attribute;
|
|
|
|
struct kernel_symbol;
|
|
|
|
struct kernel_param;
|
|
|
|
struct exception_table_entry;
|
|
|
|
struct bug_entry;
|
|
|
|
struct module_sect_attrs;
|
|
|
|
struct module_notes_attrs;
|
|
|
|
struct srcu_struct;
|
|
|
|
struct bpf_raw_event_map;
|
|
|
|
struct jump_entry;
|
|
|
|
struct trace_eval_map;
|
|
|
|
struct static_call_site;
|
|
|
|
struct klp_modinfo;
|
|
|
|
struct error_injection_entry;
|
|
|
|
struct module {
|
|
enum module_state state;
|
|
struct list_head list;
|
|
char name[56];
|
|
struct module_kobject mkobj;
|
|
struct module_attribute *modinfo_attrs;
|
|
const char *version;
|
|
const char *srcversion;
|
|
struct kobject *holders_dir;
|
|
const struct kernel_symbol *syms;
|
|
const s32 *crcs;
|
|
unsigned int num_syms;
|
|
struct mutex param_lock;
|
|
struct kernel_param *kp;
|
|
unsigned int num_kp;
|
|
unsigned int num_gpl_syms;
|
|
const struct kernel_symbol *gpl_syms;
|
|
const s32 *gpl_crcs;
|
|
bool using_gplonly_symbols;
|
|
bool async_probe_requested;
|
|
unsigned int num_exentries;
|
|
struct exception_table_entry *extable;
|
|
int (*init)();
|
|
struct module_layout core_layout;
|
|
struct module_layout init_layout;
|
|
struct mod_arch_specific arch;
|
|
unsigned long taints;
|
|
unsigned int num_bugs;
|
|
struct list_head bug_list;
|
|
struct bug_entry *bug_table;
|
|
struct mod_kallsyms __attribute__((btf_type_tag("rcu"))) *kallsyms;
|
|
struct mod_kallsyms core_kallsyms;
|
|
struct module_sect_attrs *sect_attrs;
|
|
struct module_notes_attrs *notes_attrs;
|
|
char *args;
|
|
void __attribute__((btf_type_tag("percpu"))) *percpu;
|
|
unsigned int percpu_size;
|
|
void *noinstr_text_start;
|
|
unsigned int noinstr_text_size;
|
|
unsigned int num_tracepoints;
|
|
tracepoint_ptr_t *tracepoints_ptrs;
|
|
unsigned int num_srcu_structs;
|
|
struct srcu_struct **srcu_struct_ptrs;
|
|
unsigned int num_bpf_raw_events;
|
|
struct bpf_raw_event_map *bpf_raw_events;
|
|
unsigned int btf_data_size;
|
|
void *btf_data;
|
|
struct jump_entry *jump_entries;
|
|
unsigned int num_jump_entries;
|
|
unsigned int num_trace_bprintk_fmt;
|
|
const char **trace_bprintk_fmt_start;
|
|
struct trace_event_call **trace_events;
|
|
unsigned int num_trace_events;
|
|
struct trace_eval_map **trace_evals;
|
|
unsigned int num_trace_evals;
|
|
unsigned int num_ftrace_callsites;
|
|
unsigned long *ftrace_callsites;
|
|
void *kprobes_text_start;
|
|
unsigned int kprobes_text_size;
|
|
unsigned long *kprobe_blacklist;
|
|
unsigned int num_kprobe_blacklist;
|
|
int num_static_call_sites;
|
|
struct static_call_site *static_call_sites;
|
|
bool klp;
|
|
bool klp_alive;
|
|
struct klp_modinfo *klp_info;
|
|
struct list_head source_list;
|
|
struct list_head target_list;
|
|
void (*exit)();
|
|
atomic_t refcnt;
|
|
struct error_injection_entry *ei_funcs;
|
|
unsigned int num_ei_funcs;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct kset_uevent_ops;
|
|
|
|
struct kset {
|
|
struct list_head list;
|
|
spinlock_t list_lock;
|
|
struct kobject kobj;
|
|
const struct kset_uevent_ops *uevent_ops;
|
|
};
|
|
|
|
struct kobj_uevent_env;
|
|
|
|
struct kset_uevent_ops {
|
|
int (* const filter)(const struct kobject *);
|
|
const char * (* const name)(const struct kobject *);
|
|
int (* const uevent)(const struct kobject *, struct kobj_uevent_env *);
|
|
};
|
|
|
|
struct kobj_uevent_env {
|
|
char *argv[3];
|
|
char *envp[64];
|
|
int envp_idx;
|
|
char buf[2048];
|
|
int buflen;
|
|
};
|
|
|
|
typedef unsigned int __kernel_uid32_t;
|
|
|
|
typedef __kernel_uid32_t uid_t;
|
|
|
|
typedef struct {
|
|
uid_t val;
|
|
} kuid_t;
|
|
|
|
typedef unsigned int __kernel_gid32_t;
|
|
|
|
typedef __kernel_gid32_t gid_t;
|
|
|
|
typedef struct {
|
|
gid_t val;
|
|
} kgid_t;
|
|
|
|
struct sysfs_ops;
|
|
|
|
struct kobj_ns_type_operations;
|
|
|
|
struct kobj_type {
|
|
void (*release)(struct kobject *);
|
|
const struct sysfs_ops *sysfs_ops;
|
|
const struct attribute_group **default_groups;
|
|
const struct kobj_ns_type_operations * (*child_ns_type)(const struct kobject *);
|
|
const void * (*namespace)(const struct kobject *);
|
|
void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *);
|
|
};
|
|
|
|
typedef unsigned long __kernel_ulong_t;
|
|
|
|
typedef __kernel_ulong_t __kernel_size_t;
|
|
|
|
typedef __kernel_size_t size_t;
|
|
|
|
struct sysfs_ops {
|
|
ssize_t (*show)(struct kobject *, struct attribute *, char *);
|
|
ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t);
|
|
};
|
|
|
|
typedef unsigned short umode_t;
|
|
|
|
struct attribute {
|
|
const char *name;
|
|
umode_t mode;
|
|
};
|
|
|
|
struct bin_attribute;
|
|
|
|
struct attribute_group {
|
|
const char *name;
|
|
umode_t (*is_visible)(struct kobject *, struct attribute *, int);
|
|
umode_t (*is_bin_visible)(struct kobject *, struct bin_attribute *, int);
|
|
struct attribute **attrs;
|
|
struct bin_attribute **bin_attrs;
|
|
};
|
|
|
|
typedef long long __kernel_loff_t;
|
|
|
|
typedef __kernel_loff_t loff_t;
|
|
|
|
struct address_space;
|
|
|
|
struct file;
|
|
|
|
struct vm_area_struct;
|
|
|
|
struct bin_attribute {
|
|
struct attribute attr;
|
|
size_t size;
|
|
void *private;
|
|
struct address_space * (*f_mapping)();
|
|
ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
|
|
ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
|
|
int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *);
|
|
};
|
|
|
|
typedef unsigned int gfp_t;
|
|
|
|
struct xarray {
|
|
spinlock_t xa_lock;
|
|
gfp_t xa_flags;
|
|
void __attribute__((btf_type_tag("rcu"))) *xa_head;
|
|
};
|
|
|
|
struct rw_semaphore {
|
|
atomic_long_t count;
|
|
atomic_long_t owner;
|
|
struct optimistic_spin_queue osq;
|
|
raw_spinlock_t wait_lock;
|
|
struct list_head wait_list;
|
|
};
|
|
|
|
struct rb_root {
|
|
struct rb_node *rb_node;
|
|
};
|
|
|
|
struct rb_root_cached {
|
|
struct rb_root rb_root;
|
|
struct rb_node *rb_leftmost;
|
|
};
|
|
|
|
typedef __u32 u32;
|
|
|
|
typedef u32 errseq_t;
|
|
|
|
struct inode;
|
|
|
|
struct address_space_operations;
|
|
|
|
struct address_space {
|
|
struct inode *host;
|
|
struct xarray i_pages;
|
|
struct rw_semaphore invalidate_lock;
|
|
gfp_t gfp_mask;
|
|
atomic_t i_mmap_writable;
|
|
struct rb_root_cached i_mmap;
|
|
struct rw_semaphore i_mmap_rwsem;
|
|
unsigned long nrpages;
|
|
unsigned long writeback_index;
|
|
const struct address_space_operations *a_ops;
|
|
unsigned long flags;
|
|
errseq_t wb_err;
|
|
spinlock_t private_lock;
|
|
struct list_head private_list;
|
|
void *private_data;
|
|
};
|
|
|
|
struct hlist_head {
|
|
struct hlist_node *first;
|
|
};
|
|
|
|
typedef u32 __kernel_dev_t;
|
|
|
|
typedef __kernel_dev_t dev_t;
|
|
|
|
typedef __s64 time64_t;
|
|
|
|
struct timespec64 {
|
|
time64_t tv_sec;
|
|
long tv_nsec;
|
|
};
|
|
|
|
typedef u64 blkcnt_t;
|
|
|
|
struct posix_acl;
|
|
|
|
struct inode_operations;
|
|
|
|
struct super_block;
|
|
|
|
struct file_operations;
|
|
|
|
struct file_lock_context;
|
|
|
|
struct pipe_inode_info;
|
|
|
|
struct cdev;
|
|
|
|
struct fsnotify_mark_connector;
|
|
|
|
struct inode {
|
|
umode_t i_mode;
|
|
unsigned short i_opflags;
|
|
kuid_t i_uid;
|
|
kgid_t i_gid;
|
|
unsigned int i_flags;
|
|
struct posix_acl *i_acl;
|
|
struct posix_acl *i_default_acl;
|
|
const struct inode_operations *i_op;
|
|
struct super_block *i_sb;
|
|
struct address_space *i_mapping;
|
|
void *i_security;
|
|
unsigned long i_ino;
|
|
union {
|
|
const unsigned int i_nlink;
|
|
unsigned int __i_nlink;
|
|
};
|
|
dev_t i_rdev;
|
|
loff_t i_size;
|
|
struct timespec64 i_atime;
|
|
struct timespec64 i_mtime;
|
|
struct timespec64 i_ctime;
|
|
spinlock_t i_lock;
|
|
unsigned short i_bytes;
|
|
u8 i_blkbits;
|
|
u8 i_write_hint;
|
|
blkcnt_t i_blocks;
|
|
unsigned long i_state;
|
|
struct rw_semaphore i_rwsem;
|
|
unsigned long dirtied_when;
|
|
unsigned long dirtied_time_when;
|
|
struct hlist_node i_hash;
|
|
struct list_head i_io_list;
|
|
struct list_head i_lru;
|
|
struct list_head i_sb_list;
|
|
struct list_head i_wb_list;
|
|
union {
|
|
struct hlist_head i_dentry;
|
|
struct callback_head i_rcu;
|
|
};
|
|
atomic64_t i_version;
|
|
atomic64_t i_sequence;
|
|
atomic_t i_count;
|
|
atomic_t i_dio_count;
|
|
atomic_t i_writecount;
|
|
atomic_t i_readcount;
|
|
union {
|
|
const struct file_operations *i_fop;
|
|
void (*free_inode)(struct inode *);
|
|
};
|
|
struct file_lock_context *i_flctx;
|
|
struct address_space i_data;
|
|
struct list_head i_devices;
|
|
union {
|
|
struct pipe_inode_info *i_pipe;
|
|
struct cdev *i_cdev;
|
|
char *i_link;
|
|
unsigned int i_dir_seq;
|
|
};
|
|
__u32 i_generation;
|
|
__u32 i_fsnotify_mask;
|
|
struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *i_fsnotify_marks;
|
|
void *i_private;
|
|
};
|
|
|
|
struct dentry;
|
|
|
|
struct delayed_call;
|
|
|
|
struct mnt_idmap;
|
|
|
|
struct iattr;
|
|
|
|
struct path;
|
|
|
|
struct kstat;
|
|
|
|
struct fiemap_extent_info;
|
|
|
|
struct fileattr;
|
|
|
|
struct inode_operations {
|
|
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
|
|
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
|
|
int (*permission)(struct mnt_idmap *, struct inode *, int);
|
|
struct posix_acl * (*get_inode_acl)(struct inode *, int, bool);
|
|
int (*readlink)(struct dentry *, char __attribute__((btf_type_tag("user"))) *, int);
|
|
int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool);
|
|
int (*link)(struct dentry *, struct inode *, struct dentry *);
|
|
int (*unlink)(struct inode *, struct dentry *);
|
|
int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *);
|
|
int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t);
|
|
int (*rmdir)(struct inode *, struct dentry *);
|
|
int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t);
|
|
int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
|
|
int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *);
|
|
int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int);
|
|
ssize_t (*listxattr)(struct dentry *, char *, size_t);
|
|
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
|
|
int (*update_time)(struct inode *, struct timespec64 *, int);
|
|
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
|
|
int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t);
|
|
struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int);
|
|
int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int);
|
|
int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *);
|
|
int (*fileattr_get)(struct dentry *, struct fileattr *);
|
|
};
|
|
|
|
struct hlist_bl_node {
|
|
struct hlist_bl_node *next;
|
|
struct hlist_bl_node **pprev;
|
|
};
|
|
|
|
struct seqcount {
|
|
unsigned int sequence;
|
|
};
|
|
|
|
typedef struct seqcount seqcount_t;
|
|
|
|
struct seqcount_spinlock {
|
|
seqcount_t seqcount;
|
|
};
|
|
|
|
typedef struct seqcount_spinlock seqcount_spinlock_t;
|
|
|
|
struct qstr {
|
|
union {
|
|
struct {
|
|
u32 hash;
|
|
u32 len;
|
|
};
|
|
u64 hash_len;
|
|
};
|
|
const unsigned char *name;
|
|
};
|
|
|
|
struct lockref {
|
|
union {
|
|
__u64 lock_count;
|
|
struct {
|
|
spinlock_t lock;
|
|
int count;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct dentry_operations;
|
|
|
|
struct dentry {
|
|
unsigned int d_flags;
|
|
seqcount_spinlock_t d_seq;
|
|
struct hlist_bl_node d_hash;
|
|
struct dentry *d_parent;
|
|
struct qstr d_name;
|
|
struct inode *d_inode;
|
|
unsigned char d_iname[32];
|
|
struct lockref d_lockref;
|
|
const struct dentry_operations *d_op;
|
|
struct super_block *d_sb;
|
|
unsigned long d_time;
|
|
void *d_fsdata;
|
|
union {
|
|
struct list_head d_lru;
|
|
wait_queue_head_t *d_wait;
|
|
};
|
|
struct list_head d_child;
|
|
struct list_head d_subdirs;
|
|
union {
|
|
struct hlist_node d_alias;
|
|
struct hlist_bl_node d_in_lookup_hash;
|
|
struct callback_head d_rcu;
|
|
} d_u;
|
|
};
|
|
|
|
struct vfsmount;
|
|
|
|
struct dentry_operations {
|
|
int (*d_revalidate)(struct dentry *, unsigned int);
|
|
int (*d_weak_revalidate)(struct dentry *, unsigned int);
|
|
int (*d_hash)(const struct dentry *, struct qstr *);
|
|
int (*d_compare)(const struct dentry *, unsigned int, const char *, const struct qstr *);
|
|
int (*d_delete)(const struct dentry *);
|
|
int (*d_init)(struct dentry *);
|
|
void (*d_release)(struct dentry *);
|
|
void (*d_prune)(struct dentry *);
|
|
void (*d_iput)(struct dentry *, struct inode *);
|
|
char * (*d_dname)(struct dentry *, char *, int);
|
|
struct vfsmount * (*d_automount)(struct path *);
|
|
int (*d_manage)(const struct path *, bool);
|
|
struct dentry * (*d_real)(struct dentry *, const struct inode *);
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct vfsmount {
|
|
struct dentry *mnt_root;
|
|
struct super_block *mnt_sb;
|
|
int mnt_flags;
|
|
struct mnt_idmap *mnt_idmap;
|
|
};
|
|
|
|
struct hlist_bl_head {
|
|
struct hlist_bl_node *first;
|
|
};
|
|
|
|
struct mtd_info;
|
|
|
|
typedef long long qsize_t;
|
|
|
|
struct quota_format_type;
|
|
|
|
struct mem_dqinfo {
|
|
struct quota_format_type *dqi_format;
|
|
int dqi_fmt_id;
|
|
struct list_head dqi_dirty_list;
|
|
unsigned long dqi_flags;
|
|
unsigned int dqi_bgrace;
|
|
unsigned int dqi_igrace;
|
|
qsize_t dqi_max_spc_limit;
|
|
qsize_t dqi_max_ino_limit;
|
|
void *dqi_priv;
|
|
};
|
|
|
|
struct quota_format_ops;
|
|
|
|
struct quota_info {
|
|
unsigned int flags;
|
|
struct rw_semaphore dqio_sem;
|
|
struct inode *files[3];
|
|
struct mem_dqinfo info[3];
|
|
const struct quota_format_ops *ops[3];
|
|
};
|
|
|
|
struct rcu_sync {
|
|
int gp_state;
|
|
int gp_count;
|
|
wait_queue_head_t gp_wait;
|
|
struct callback_head cb_head;
|
|
};
|
|
|
|
struct percpu_rw_semaphore {
|
|
struct rcu_sync rss;
|
|
unsigned int __attribute__((btf_type_tag("percpu"))) *read_count;
|
|
struct rcuwait writer;
|
|
wait_queue_head_t waiters;
|
|
atomic_t block;
|
|
};
|
|
|
|
struct sb_writers {
|
|
int frozen;
|
|
wait_queue_head_t wait_unfrozen;
|
|
struct percpu_rw_semaphore rw_sem[3];
|
|
};
|
|
|
|
typedef struct {
|
|
__u8 b[16];
|
|
} uuid_t;
|
|
|
|
typedef unsigned int fmode_t;
|
|
|
|
struct shrink_control;
|
|
|
|
struct shrinker {
|
|
unsigned long (*count_objects)(struct shrinker *, struct shrink_control *);
|
|
unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *);
|
|
long batch;
|
|
int seeks;
|
|
unsigned int flags;
|
|
struct list_head list;
|
|
atomic_long_t *nr_deferred;
|
|
};
|
|
|
|
struct list_lru_node;
|
|
|
|
struct list_lru {
|
|
struct list_lru_node *node;
|
|
};
|
|
|
|
struct work_struct;
|
|
|
|
typedef void (*work_func_t)(struct work_struct *);
|
|
|
|
struct work_struct {
|
|
atomic_long_t data;
|
|
struct list_head entry;
|
|
work_func_t func;
|
|
};
|
|
|
|
struct file_system_type;
|
|
|
|
struct super_operations;
|
|
|
|
struct dquot_operations;
|
|
|
|
struct quotactl_ops;
|
|
|
|
struct export_operations;
|
|
|
|
struct xattr_handler;
|
|
|
|
struct block_device;
|
|
|
|
struct backing_dev_info;
|
|
|
|
struct workqueue_struct;
|
|
|
|
struct user_namespace;
|
|
|
|
struct super_block {
|
|
struct list_head s_list;
|
|
dev_t s_dev;
|
|
unsigned char s_blocksize_bits;
|
|
unsigned long s_blocksize;
|
|
loff_t s_maxbytes;
|
|
struct file_system_type *s_type;
|
|
const struct super_operations *s_op;
|
|
const struct dquot_operations *dq_op;
|
|
const struct quotactl_ops *s_qcop;
|
|
const struct export_operations *s_export_op;
|
|
unsigned long s_flags;
|
|
unsigned long s_iflags;
|
|
unsigned long s_magic;
|
|
struct dentry *s_root;
|
|
struct rw_semaphore s_umount;
|
|
int s_count;
|
|
atomic_t s_active;
|
|
void *s_security;
|
|
const struct xattr_handler **s_xattr;
|
|
struct hlist_bl_head s_roots;
|
|
struct list_head s_mounts;
|
|
struct block_device *s_bdev;
|
|
struct backing_dev_info *s_bdi;
|
|
struct mtd_info *s_mtd;
|
|
struct hlist_node s_instances;
|
|
unsigned int s_quota_types;
|
|
struct quota_info s_dquot;
|
|
struct sb_writers s_writers;
|
|
void *s_fs_info;
|
|
u32 s_time_gran;
|
|
time64_t s_time_min;
|
|
time64_t s_time_max;
|
|
__u32 s_fsnotify_mask;
|
|
struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *s_fsnotify_marks;
|
|
char s_id[32];
|
|
uuid_t s_uuid;
|
|
unsigned int s_max_links;
|
|
fmode_t s_mode;
|
|
struct mutex s_vfs_rename_mutex;
|
|
const char *s_subtype;
|
|
const struct dentry_operations *s_d_op;
|
|
struct shrinker s_shrink;
|
|
atomic_long_t s_remove_count;
|
|
atomic_long_t s_fsnotify_connectors;
|
|
int s_readonly_remount;
|
|
errseq_t s_wb_err;
|
|
struct workqueue_struct *s_dio_done_wq;
|
|
struct hlist_head s_pins;
|
|
struct user_namespace *s_user_ns;
|
|
struct list_lru s_dentry_lru;
|
|
struct list_lru s_inode_lru;
|
|
struct callback_head rcu;
|
|
struct work_struct destroy_work;
|
|
struct mutex s_sync_lock;
|
|
int s_stack_depth;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t s_inode_list_lock;
|
|
struct list_head s_inodes;
|
|
spinlock_t s_inode_wblist_lock;
|
|
struct list_head s_inodes_wb;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct lock_class_key {};
|
|
|
|
struct fs_context;
|
|
|
|
struct fs_parameter_spec;
|
|
|
|
struct file_system_type {
|
|
const char *name;
|
|
int fs_flags;
|
|
int (*init_fs_context)(struct fs_context *);
|
|
const struct fs_parameter_spec *parameters;
|
|
struct dentry * (*mount)(struct file_system_type *, int, const char *, void *);
|
|
void (*kill_sb)(struct super_block *);
|
|
struct module *owner;
|
|
struct file_system_type *next;
|
|
struct hlist_head fs_supers;
|
|
struct lock_class_key s_lock_key;
|
|
struct lock_class_key s_umount_key;
|
|
struct lock_class_key s_vfs_rename_key;
|
|
struct lock_class_key s_writers_key[3];
|
|
struct lock_class_key i_lock_key;
|
|
struct lock_class_key i_mutex_key;
|
|
struct lock_class_key invalidate_lock_key;
|
|
struct lock_class_key i_mutex_dir_key;
|
|
};
|
|
|
|
struct p_log;
|
|
|
|
struct fs_parameter;
|
|
|
|
struct fs_parse_result;
|
|
|
|
typedef int fs_param_type(struct p_log *, const struct fs_parameter_spec *, struct fs_parameter *, struct fs_parse_result *);
|
|
|
|
struct fs_parameter_spec {
|
|
const char *name;
|
|
fs_param_type *type;
|
|
u8 opt;
|
|
unsigned short flags;
|
|
const void *data;
|
|
};
|
|
|
|
struct writeback_control;
|
|
|
|
struct kstatfs;
|
|
|
|
struct seq_file;
|
|
|
|
struct dquot;
|
|
|
|
struct super_operations {
|
|
struct inode * (*alloc_inode)(struct super_block *);
|
|
void (*destroy_inode)(struct inode *);
|
|
void (*free_inode)(struct inode *);
|
|
void (*dirty_inode)(struct inode *, int);
|
|
int (*write_inode)(struct inode *, struct writeback_control *);
|
|
int (*drop_inode)(struct inode *);
|
|
void (*evict_inode)(struct inode *);
|
|
void (*put_super)(struct super_block *);
|
|
int (*sync_fs)(struct super_block *, int);
|
|
int (*freeze_super)(struct super_block *);
|
|
int (*freeze_fs)(struct super_block *);
|
|
int (*thaw_super)(struct super_block *);
|
|
int (*unfreeze_fs)(struct super_block *);
|
|
int (*statfs)(struct dentry *, struct kstatfs *);
|
|
int (*remount_fs)(struct super_block *, int *, char *);
|
|
void (*umount_begin)(struct super_block *);
|
|
int (*show_options)(struct seq_file *, struct dentry *);
|
|
int (*show_devname)(struct seq_file *, struct dentry *);
|
|
int (*show_path)(struct seq_file *, struct dentry *);
|
|
int (*show_stats)(struct seq_file *, struct dentry *);
|
|
ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
|
|
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
|
struct dquot ** (*get_dquots)(struct inode *);
|
|
long (*nr_cached_objects)(struct super_block *, struct shrink_control *);
|
|
long (*free_cached_objects)(struct super_block *, struct shrink_control *);
|
|
};
|
|
|
|
struct seq_operations;
|
|
|
|
struct seq_file {
|
|
char *buf;
|
|
size_t size;
|
|
size_t from;
|
|
size_t count;
|
|
size_t pad_until;
|
|
loff_t index;
|
|
loff_t read_pos;
|
|
struct mutex lock;
|
|
const struct seq_operations *op;
|
|
int poll_event;
|
|
const struct file *file;
|
|
void *private;
|
|
};
|
|
|
|
struct seq_operations {
|
|
void * (*start)(struct seq_file *, loff_t *);
|
|
void (*stop)(struct seq_file *, void *);
|
|
void * (*next)(struct seq_file *, void *, loff_t *);
|
|
int (*show)(struct seq_file *, void *);
|
|
};
|
|
|
|
struct path {
|
|
struct vfsmount *mnt;
|
|
struct dentry *dentry;
|
|
};
|
|
|
|
struct qrwlock {
|
|
union {
|
|
atomic_t cnts;
|
|
struct {
|
|
u8 wlocked;
|
|
u8 __lstate[3];
|
|
};
|
|
};
|
|
arch_spinlock_t wait_lock;
|
|
};
|
|
|
|
typedef struct qrwlock arch_rwlock_t;
|
|
|
|
typedef struct {
|
|
arch_rwlock_t raw_lock;
|
|
} rwlock_t;
|
|
|
|
enum pid_type {
|
|
PIDTYPE_PID = 0,
|
|
PIDTYPE_TGID = 1,
|
|
PIDTYPE_PGID = 2,
|
|
PIDTYPE_SID = 3,
|
|
PIDTYPE_MAX = 4,
|
|
};
|
|
|
|
struct pid;
|
|
|
|
struct fown_struct {
|
|
rwlock_t lock;
|
|
struct pid *pid;
|
|
enum pid_type pid_type;
|
|
kuid_t uid;
|
|
kuid_t euid;
|
|
int signum;
|
|
};
|
|
|
|
struct file_ra_state {
|
|
unsigned long start;
|
|
unsigned int size;
|
|
unsigned int async_size;
|
|
unsigned int ra_pages;
|
|
unsigned int mmap_miss;
|
|
loff_t prev_pos;
|
|
};
|
|
|
|
struct cred;
|
|
|
|
struct file {
|
|
union {
|
|
struct llist_node f_llist;
|
|
struct callback_head f_rcuhead;
|
|
unsigned int f_iocb_flags;
|
|
};
|
|
struct path f_path;
|
|
struct inode *f_inode;
|
|
const struct file_operations *f_op;
|
|
spinlock_t f_lock;
|
|
atomic_long_t f_count;
|
|
unsigned int f_flags;
|
|
fmode_t f_mode;
|
|
struct mutex f_pos_lock;
|
|
loff_t f_pos;
|
|
struct fown_struct f_owner;
|
|
const struct cred *f_cred;
|
|
struct file_ra_state f_ra;
|
|
u64 f_version;
|
|
void *f_security;
|
|
void *private_data;
|
|
struct hlist_head *f_ep;
|
|
struct address_space *f_mapping;
|
|
errseq_t f_wb_err;
|
|
errseq_t f_sb_err;
|
|
};
|
|
|
|
typedef unsigned int __poll_t;
|
|
|
|
typedef void *fl_owner_t;
|
|
|
|
struct kiocb;
|
|
|
|
struct iov_iter;
|
|
|
|
struct io_comp_batch;
|
|
|
|
struct dir_context;
|
|
|
|
struct poll_table_struct;
|
|
|
|
struct file_lock;
|
|
|
|
struct page;
|
|
|
|
struct io_uring_cmd;
|
|
|
|
struct file_operations {
|
|
struct module *owner;
|
|
loff_t (*llseek)(struct file *, loff_t, int);
|
|
ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
ssize_t (*read_iter)(struct kiocb *, struct iov_iter *);
|
|
ssize_t (*write_iter)(struct kiocb *, struct iov_iter *);
|
|
int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int);
|
|
int (*iterate)(struct file *, struct dir_context *);
|
|
int (*iterate_shared)(struct file *, struct dir_context *);
|
|
__poll_t (*poll)(struct file *, struct poll_table_struct *);
|
|
long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long);
|
|
long (*compat_ioctl)(struct file *, unsigned int, unsigned long);
|
|
int (*mmap)(struct file *, struct vm_area_struct *);
|
|
unsigned long mmap_supported_flags;
|
|
int (*open)(struct inode *, struct file *);
|
|
int (*flush)(struct file *, fl_owner_t);
|
|
int (*release)(struct inode *, struct file *);
|
|
int (*fsync)(struct file *, loff_t, loff_t, int);
|
|
int (*fasync)(int, struct file *, int);
|
|
int (*lock)(struct file *, int, struct file_lock *);
|
|
ssize_t (*sendpage)(struct file *, struct page *, int, size_t, loff_t *, int);
|
|
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
int (*check_flags)(int);
|
|
int (*flock)(struct file *, int, struct file_lock *);
|
|
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
|
|
ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
|
|
int (*setlease)(struct file *, long, struct file_lock **, void **);
|
|
long (*fallocate)(struct file *, int, loff_t, loff_t);
|
|
void (*show_fdinfo)(struct seq_file *, struct file *);
|
|
ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int);
|
|
loff_t (*remap_file_range)(struct file *, loff_t, struct file *, loff_t, loff_t, unsigned int);
|
|
int (*fadvise)(struct file *, loff_t, loff_t, int);
|
|
int (*uring_cmd)(struct io_uring_cmd *, unsigned int);
|
|
int (*uring_cmd_iopoll)(struct io_uring_cmd *, struct io_comp_batch *, unsigned int);
|
|
};
|
|
|
|
struct wait_page_queue;
|
|
|
|
struct kiocb {
|
|
struct file *ki_filp;
|
|
loff_t ki_pos;
|
|
void (*ki_complete)(struct kiocb *, long);
|
|
void *private;
|
|
int ki_flags;
|
|
u16 ki_ioprio;
|
|
struct wait_page_queue *ki_waitq;
|
|
};
|
|
|
|
struct iovec;
|
|
|
|
struct kvec;
|
|
|
|
struct bio_vec;
|
|
|
|
struct iov_iter {
|
|
u8 iter_type;
|
|
bool nofault;
|
|
bool data_source;
|
|
bool user_backed;
|
|
union {
|
|
size_t iov_offset;
|
|
int last_offset;
|
|
};
|
|
size_t count;
|
|
union {
|
|
const struct iovec *iov;
|
|
const struct kvec *kvec;
|
|
const struct bio_vec *bvec;
|
|
struct xarray *xarray;
|
|
struct pipe_inode_info *pipe;
|
|
void __attribute__((btf_type_tag("user"))) *ubuf;
|
|
};
|
|
union {
|
|
unsigned long nr_segs;
|
|
struct {
|
|
unsigned int head;
|
|
unsigned int start_head;
|
|
};
|
|
loff_t xarray_start;
|
|
};
|
|
};
|
|
|
|
struct iovec {
|
|
void __attribute__((btf_type_tag("user"))) *iov_base;
|
|
__kernel_size_t iov_len;
|
|
};
|
|
|
|
struct kvec {
|
|
void *iov_base;
|
|
size_t iov_len;
|
|
};
|
|
|
|
struct bio_vec {
|
|
struct page *bv_page;
|
|
unsigned int bv_len;
|
|
unsigned int bv_offset;
|
|
};
|
|
|
|
typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int);
|
|
|
|
struct dir_context {
|
|
filldir_t actor;
|
|
loff_t pos;
|
|
};
|
|
|
|
typedef unsigned long vm_flags_t;
|
|
|
|
typedef unsigned long pgprotval_t;
|
|
|
|
struct pgprot {
|
|
pgprotval_t pgprot;
|
|
};
|
|
|
|
typedef struct pgprot pgprot_t;
|
|
|
|
struct userfaultfd_ctx;
|
|
|
|
struct vm_userfaultfd_ctx {
|
|
struct userfaultfd_ctx *ctx;
|
|
};
|
|
|
|
struct anon_vma;
|
|
|
|
struct vm_operations_struct;
|
|
|
|
struct vm_area_struct {
|
|
unsigned long vm_start;
|
|
unsigned long vm_end;
|
|
struct mm_struct *vm_mm;
|
|
pgprot_t vm_page_prot;
|
|
union {
|
|
const vm_flags_t vm_flags;
|
|
vm_flags_t __vm_flags;
|
|
};
|
|
struct {
|
|
struct rb_node rb;
|
|
unsigned long rb_subtree_last;
|
|
} shared;
|
|
struct list_head anon_vma_chain;
|
|
struct anon_vma *anon_vma;
|
|
const struct vm_operations_struct *vm_ops;
|
|
unsigned long vm_pgoff;
|
|
struct file *vm_file;
|
|
void *vm_private_data;
|
|
atomic_long_t swap_readahead_info;
|
|
struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
|
|
};
|
|
|
|
typedef struct {} lockdep_map_p;
|
|
|
|
struct maple_tree {
|
|
union {
|
|
spinlock_t ma_lock;
|
|
lockdep_map_p ma_external_lock;
|
|
};
|
|
void __attribute__((btf_type_tag("rcu"))) *ma_root;
|
|
unsigned int ma_flags;
|
|
};
|
|
|
|
typedef unsigned long pgdval_t;
|
|
|
|
typedef struct {
|
|
pgdval_t pgd;
|
|
} pgd_t;
|
|
|
|
struct percpu_counter {
|
|
raw_spinlock_t lock;
|
|
s64 count;
|
|
struct list_head list;
|
|
s32 __attribute__((btf_type_tag("percpu"))) *counters;
|
|
};
|
|
|
|
typedef short __s16;
|
|
|
|
typedef __s16 s16;
|
|
|
|
struct ldt_struct;
|
|
|
|
struct vdso_image;
|
|
|
|
typedef struct {
|
|
u64 ctx_id;
|
|
atomic64_t tlb_gen;
|
|
struct rw_semaphore ldt_usr_sem;
|
|
struct ldt_struct *ldt;
|
|
unsigned short flags;
|
|
struct mutex lock;
|
|
void __attribute__((btf_type_tag("user"))) *vdso;
|
|
const struct vdso_image *vdso_image;
|
|
atomic_t perf_rdpmc_allowed;
|
|
u16 pkey_allocation_map;
|
|
s16 execute_only_pkey;
|
|
} mm_context_t;
|
|
|
|
struct xol_area;
|
|
|
|
struct uprobes_state {
|
|
struct xol_area *xol_area;
|
|
};
|
|
|
|
struct linux_binfmt;
|
|
|
|
struct kioctx_table;
|
|
|
|
struct mmu_notifier_subscriptions;
|
|
|
|
struct mm_struct {
|
|
struct {
|
|
struct maple_tree mm_mt;
|
|
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
unsigned long mmap_base;
|
|
unsigned long mmap_legacy_base;
|
|
unsigned long mmap_compat_base;
|
|
unsigned long mmap_compat_legacy_base;
|
|
unsigned long task_size;
|
|
pgd_t *pgd;
|
|
atomic_t membarrier_state;
|
|
atomic_t mm_users;
|
|
atomic_t mm_count;
|
|
raw_spinlock_t cid_lock;
|
|
atomic_long_t pgtables_bytes;
|
|
int map_count;
|
|
spinlock_t page_table_lock;
|
|
struct rw_semaphore mmap_lock;
|
|
struct list_head mmlist;
|
|
unsigned long hiwater_rss;
|
|
unsigned long hiwater_vm;
|
|
unsigned long total_vm;
|
|
unsigned long locked_vm;
|
|
atomic64_t pinned_vm;
|
|
unsigned long data_vm;
|
|
unsigned long exec_vm;
|
|
unsigned long stack_vm;
|
|
unsigned long def_flags;
|
|
seqcount_t write_protect_seq;
|
|
spinlock_t arg_lock;
|
|
unsigned long start_code;
|
|
unsigned long end_code;
|
|
unsigned long start_data;
|
|
unsigned long end_data;
|
|
unsigned long start_brk;
|
|
unsigned long brk;
|
|
unsigned long start_stack;
|
|
unsigned long arg_start;
|
|
unsigned long arg_end;
|
|
unsigned long env_start;
|
|
unsigned long env_end;
|
|
unsigned long saved_auxv[52];
|
|
struct percpu_counter rss_stat[4];
|
|
struct linux_binfmt *binfmt;
|
|
mm_context_t context;
|
|
unsigned long flags;
|
|
spinlock_t ioctx_lock;
|
|
struct kioctx_table __attribute__((btf_type_tag("rcu"))) *ioctx_table;
|
|
struct user_namespace *user_ns;
|
|
struct file __attribute__((btf_type_tag("rcu"))) *exe_file;
|
|
struct mmu_notifier_subscriptions *notifier_subscriptions;
|
|
atomic_t tlb_flush_pending;
|
|
atomic_t tlb_flush_batched;
|
|
struct uprobes_state uprobes_state;
|
|
atomic_long_t hugetlb_usage;
|
|
struct work_struct async_put_work;
|
|
};
|
|
unsigned long cpu_bitmap[0];
|
|
};
|
|
|
|
struct vdso_image {
|
|
void *data;
|
|
unsigned long size;
|
|
unsigned long alt;
|
|
unsigned long alt_len;
|
|
unsigned long extable_base;
|
|
unsigned long extable_len;
|
|
const void *extable;
|
|
long sym_vvar_start;
|
|
long sym_vvar_page;
|
|
long sym_pvclock_page;
|
|
long sym_hvclock_page;
|
|
long sym_timens_page;
|
|
long sym_VDSO32_NOTE_MASK;
|
|
long sym___kernel_sigreturn;
|
|
long sym___kernel_rt_sigreturn;
|
|
long sym___kernel_vsyscall;
|
|
long sym_int80_landing_pad;
|
|
long sym_vdso32_sigreturn_landing_pad;
|
|
long sym_vdso32_rt_sigreturn_landing_pad;
|
|
};
|
|
|
|
struct kioctx;
|
|
|
|
struct kioctx_table {
|
|
struct callback_head rcu;
|
|
unsigned int nr;
|
|
struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0];
|
|
};
|
|
|
|
struct uid_gid_extent {
|
|
u32 first;
|
|
u32 lower_first;
|
|
u32 count;
|
|
};
|
|
|
|
struct uid_gid_map {
|
|
u32 nr_extents;
|
|
union {
|
|
struct uid_gid_extent extent[5];
|
|
struct {
|
|
struct uid_gid_extent *forward;
|
|
struct uid_gid_extent *reverse;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct proc_ns_operations;
|
|
|
|
struct ns_common {
|
|
atomic_long_t stashed;
|
|
const struct proc_ns_operations *ops;
|
|
unsigned int inum;
|
|
refcount_t count;
|
|
};
|
|
|
|
struct ctl_table;
|
|
|
|
struct ctl_table_root;
|
|
|
|
struct ctl_table_set;
|
|
|
|
struct ctl_dir;
|
|
|
|
struct ctl_node;
|
|
|
|
struct ctl_table_header {
|
|
union {
|
|
struct {
|
|
struct ctl_table *ctl_table;
|
|
int used;
|
|
int count;
|
|
int nreg;
|
|
};
|
|
struct callback_head rcu;
|
|
};
|
|
struct completion *unregistering;
|
|
struct ctl_table *ctl_table_arg;
|
|
struct ctl_table_root *root;
|
|
struct ctl_table_set *set;
|
|
struct ctl_dir *parent;
|
|
struct ctl_node *node;
|
|
struct hlist_head inodes;
|
|
};
|
|
|
|
struct ctl_dir {
|
|
struct ctl_table_header header;
|
|
struct rb_root root;
|
|
};
|
|
|
|
struct ctl_table_set {
|
|
int (*is_seen)(struct ctl_table_set *);
|
|
struct ctl_dir dir;
|
|
};
|
|
|
|
struct key;
|
|
|
|
struct ucounts;
|
|
|
|
struct user_namespace {
|
|
struct uid_gid_map uid_map;
|
|
struct uid_gid_map gid_map;
|
|
struct uid_gid_map projid_map;
|
|
struct user_namespace *parent;
|
|
int level;
|
|
kuid_t owner;
|
|
kgid_t group;
|
|
struct ns_common ns;
|
|
unsigned long flags;
|
|
bool parent_could_setfcap;
|
|
struct list_head keyring_name_list;
|
|
struct key *user_keyring_register;
|
|
struct rw_semaphore keyring_sem;
|
|
struct work_struct work;
|
|
struct ctl_table_set set;
|
|
struct ctl_table_header *sysctls;
|
|
struct ucounts *ucounts;
|
|
long ucount_max[10];
|
|
long rlimit_max[4];
|
|
};
|
|
|
|
struct nsset;
|
|
|
|
struct proc_ns_operations {
|
|
const char *name;
|
|
const char *real_ns_name;
|
|
int type;
|
|
struct ns_common * (*get)(struct task_struct *);
|
|
void (*put)(struct ns_common *);
|
|
int (*install)(struct nsset *, struct ns_common *);
|
|
struct user_namespace * (*owner)(struct ns_common *);
|
|
struct ns_common * (*get_parent)(struct ns_common *);
|
|
};
|
|
|
|
struct key_type;
|
|
|
|
struct key_tag;
|
|
|
|
struct keyring_index_key {
|
|
unsigned long hash;
|
|
union {
|
|
struct {
|
|
u16 desc_len;
|
|
char desc[6];
|
|
};
|
|
unsigned long x;
|
|
};
|
|
struct key_type *type;
|
|
struct key_tag *domain_tag;
|
|
const char *description;
|
|
};
|
|
|
|
struct assoc_array_ptr;
|
|
|
|
struct assoc_array {
|
|
struct assoc_array_ptr *root;
|
|
unsigned long nr_leaves_on_tree;
|
|
};
|
|
|
|
union key_payload {
|
|
void __attribute__((btf_type_tag("rcu"))) *rcu_data0;
|
|
void *data[4];
|
|
};
|
|
|
|
typedef s32 int32_t;
|
|
|
|
typedef int32_t key_serial_t;
|
|
|
|
typedef u32 uint32_t;
|
|
|
|
typedef uint32_t key_perm_t;
|
|
|
|
struct key_user;
|
|
|
|
struct key_restriction;
|
|
|
|
struct key {
|
|
refcount_t usage;
|
|
key_serial_t serial;
|
|
union {
|
|
struct list_head graveyard_link;
|
|
struct rb_node serial_node;
|
|
};
|
|
struct rw_semaphore sem;
|
|
struct key_user *user;
|
|
void *security;
|
|
union {
|
|
time64_t expiry;
|
|
time64_t revoked_at;
|
|
};
|
|
time64_t last_used_at;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
key_perm_t perm;
|
|
unsigned short quotalen;
|
|
unsigned short datalen;
|
|
short state;
|
|
unsigned long flags;
|
|
union {
|
|
struct keyring_index_key index_key;
|
|
struct {
|
|
unsigned long hash;
|
|
unsigned long len_desc;
|
|
struct key_type *type;
|
|
struct key_tag *domain_tag;
|
|
char *description;
|
|
};
|
|
};
|
|
union {
|
|
union key_payload payload;
|
|
struct {
|
|
struct list_head name_link;
|
|
struct assoc_array keys;
|
|
};
|
|
};
|
|
struct key_restriction *restrict_link;
|
|
};
|
|
|
|
struct key_tag {
|
|
struct callback_head rcu;
|
|
refcount_t usage;
|
|
bool removed;
|
|
};
|
|
|
|
typedef int (*key_restrict_link_func_t)(struct key *, const struct key_type *, const union key_payload *, struct key *);
|
|
|
|
struct key_restriction {
|
|
key_restrict_link_func_t check;
|
|
struct key *key;
|
|
struct key_type *keytype;
|
|
};
|
|
|
|
typedef int (*request_key_actor_t)(struct key *, void *);
|
|
|
|
struct key_preparsed_payload;
|
|
|
|
struct key_match_data;
|
|
|
|
struct kernel_pkey_params;
|
|
|
|
struct kernel_pkey_query;
|
|
|
|
struct key_type {
|
|
const char *name;
|
|
size_t def_datalen;
|
|
unsigned int flags;
|
|
int (*vet_description)(const char *);
|
|
int (*preparse)(struct key_preparsed_payload *);
|
|
void (*free_preparse)(struct key_preparsed_payload *);
|
|
int (*instantiate)(struct key *, struct key_preparsed_payload *);
|
|
int (*update)(struct key *, struct key_preparsed_payload *);
|
|
int (*match_preparse)(struct key_match_data *);
|
|
void (*match_free)(struct key_match_data *);
|
|
void (*revoke)(struct key *);
|
|
void (*destroy)(struct key *);
|
|
void (*describe)(const struct key *, struct seq_file *);
|
|
long (*read)(const struct key *, char *, size_t);
|
|
request_key_actor_t request_key;
|
|
struct key_restriction * (*lookup_restriction)(const char *);
|
|
int (*asym_query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
|
|
int (*asym_eds_op)(struct kernel_pkey_params *, const void *, void *);
|
|
int (*asym_verify_signature)(struct kernel_pkey_params *, const void *, const void *);
|
|
struct list_head link;
|
|
struct lock_class_key lock_class;
|
|
};
|
|
|
|
typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *);
|
|
|
|
struct ctl_table_poll;
|
|
|
|
struct ctl_table {
|
|
const char *procname;
|
|
void *data;
|
|
int maxlen;
|
|
umode_t mode;
|
|
struct ctl_table *child;
|
|
proc_handler *proc_handler;
|
|
struct ctl_table_poll *poll;
|
|
void *extra1;
|
|
void *extra2;
|
|
};
|
|
|
|
struct ctl_table_poll {
|
|
atomic_t event;
|
|
wait_queue_head_t wait;
|
|
};
|
|
|
|
struct swait_queue_head {
|
|
raw_spinlock_t lock;
|
|
struct list_head task_list;
|
|
};
|
|
|
|
struct completion {
|
|
unsigned int done;
|
|
struct swait_queue_head wait;
|
|
};
|
|
|
|
struct ctl_table_root {
|
|
struct ctl_table_set default_set;
|
|
struct ctl_table_set * (*lookup)(struct ctl_table_root *);
|
|
void (*set_ownership)(struct ctl_table_header *, struct ctl_table *, kuid_t *, kgid_t *);
|
|
int (*permissions)(struct ctl_table_header *, struct ctl_table *);
|
|
};
|
|
|
|
struct ctl_node {
|
|
struct rb_node node;
|
|
struct ctl_table_header *header;
|
|
};
|
|
|
|
struct ucounts {
|
|
struct hlist_node node;
|
|
struct user_namespace *ns;
|
|
kuid_t uid;
|
|
atomic_t count;
|
|
atomic_long_t ucount[10];
|
|
atomic_long_t rlimit[4];
|
|
};
|
|
|
|
typedef unsigned int vm_fault_t;
|
|
|
|
enum page_entry_size {
|
|
PE_SIZE_PTE = 0,
|
|
PE_SIZE_PMD = 1,
|
|
PE_SIZE_PUD = 2,
|
|
};
|
|
|
|
struct vm_fault;
|
|
|
|
struct vm_operations_struct {
|
|
void (*open)(struct vm_area_struct *);
|
|
void (*close)(struct vm_area_struct *);
|
|
int (*may_split)(struct vm_area_struct *, unsigned long);
|
|
int (*mremap)(struct vm_area_struct *);
|
|
int (*mprotect)(struct vm_area_struct *, unsigned long, unsigned long, unsigned long);
|
|
vm_fault_t (*fault)(struct vm_fault *);
|
|
vm_fault_t (*huge_fault)(struct vm_fault *, enum page_entry_size);
|
|
vm_fault_t (*map_pages)(struct vm_fault *, unsigned long, unsigned long);
|
|
unsigned long (*pagesize)(struct vm_area_struct *);
|
|
vm_fault_t (*page_mkwrite)(struct vm_fault *);
|
|
vm_fault_t (*pfn_mkwrite)(struct vm_fault *);
|
|
int (*access)(struct vm_area_struct *, unsigned long, void *, int, int);
|
|
const char * (*name)(struct vm_area_struct *);
|
|
struct page * (*find_special_page)(struct vm_area_struct *, unsigned long);
|
|
};
|
|
|
|
typedef unsigned long pteval_t;
|
|
|
|
typedef struct {
|
|
pteval_t pte;
|
|
} pte_t;
|
|
|
|
typedef unsigned long pmdval_t;
|
|
|
|
typedef struct {
|
|
pmdval_t pmd;
|
|
} pmd_t;
|
|
|
|
enum fault_flag {
|
|
FAULT_FLAG_WRITE = 1,
|
|
FAULT_FLAG_MKWRITE = 2,
|
|
FAULT_FLAG_ALLOW_RETRY = 4,
|
|
FAULT_FLAG_RETRY_NOWAIT = 8,
|
|
FAULT_FLAG_KILLABLE = 16,
|
|
FAULT_FLAG_TRIED = 32,
|
|
FAULT_FLAG_USER = 64,
|
|
FAULT_FLAG_REMOTE = 128,
|
|
FAULT_FLAG_INSTRUCTION = 256,
|
|
FAULT_FLAG_INTERRUPTIBLE = 512,
|
|
FAULT_FLAG_UNSHARE = 1024,
|
|
FAULT_FLAG_ORIG_PTE_VALID = 2048,
|
|
};
|
|
|
|
typedef unsigned long pudval_t;
|
|
|
|
typedef struct {
|
|
pudval_t pud;
|
|
} pud_t;
|
|
|
|
typedef struct page *pgtable_t;
|
|
|
|
struct vm_fault {
|
|
struct {
|
|
struct vm_area_struct *vma;
|
|
gfp_t gfp_mask;
|
|
unsigned long pgoff;
|
|
unsigned long address;
|
|
unsigned long real_address;
|
|
};
|
|
enum fault_flag flags;
|
|
pmd_t *pmd;
|
|
pud_t *pud;
|
|
union {
|
|
pte_t orig_pte;
|
|
pmd_t orig_pmd;
|
|
};
|
|
struct page *cow_page;
|
|
struct page *page;
|
|
pte_t *pte;
|
|
spinlock_t *ptl;
|
|
pgtable_t prealloc_pte;
|
|
};
|
|
|
|
struct page_pool;
|
|
|
|
struct dev_pagemap;
|
|
|
|
struct page {
|
|
unsigned long flags;
|
|
union {
|
|
struct {
|
|
union {
|
|
struct list_head lru;
|
|
struct {
|
|
void *__filler;
|
|
unsigned int mlock_count;
|
|
};
|
|
struct list_head buddy_list;
|
|
struct list_head pcp_list;
|
|
};
|
|
struct address_space *mapping;
|
|
union {
|
|
unsigned long index;
|
|
unsigned long share;
|
|
};
|
|
unsigned long private;
|
|
};
|
|
struct {
|
|
unsigned long pp_magic;
|
|
struct page_pool *pp;
|
|
unsigned long _pp_mapping_pad;
|
|
unsigned long dma_addr;
|
|
union {
|
|
unsigned long dma_addr_upper;
|
|
atomic_long_t pp_frag_count;
|
|
};
|
|
};
|
|
struct {
|
|
unsigned long compound_head;
|
|
};
|
|
struct {
|
|
unsigned long _pt_pad_1;
|
|
pgtable_t pmd_huge_pte;
|
|
unsigned long _pt_pad_2;
|
|
union {
|
|
struct mm_struct *pt_mm;
|
|
atomic_t pt_frag_refcount;
|
|
};
|
|
spinlock_t ptl;
|
|
};
|
|
struct {
|
|
struct dev_pagemap *pgmap;
|
|
void *zone_device_data;
|
|
};
|
|
struct callback_head callback_head;
|
|
};
|
|
union {
|
|
atomic_t _mapcount;
|
|
unsigned int page_type;
|
|
};
|
|
atomic_t _refcount;
|
|
long: 64;
|
|
};
|
|
|
|
struct range {
|
|
u64 start;
|
|
u64 end;
|
|
};
|
|
|
|
struct vmem_altmap {
|
|
unsigned long base_pfn;
|
|
const unsigned long end_pfn;
|
|
const unsigned long reserve;
|
|
unsigned long free;
|
|
unsigned long align;
|
|
unsigned long alloc;
|
|
};
|
|
|
|
struct percpu_ref_data;
|
|
|
|
struct percpu_ref {
|
|
unsigned long percpu_count_ptr;
|
|
struct percpu_ref_data *data;
|
|
};
|
|
|
|
enum memory_type {
|
|
MEMORY_DEVICE_PRIVATE = 1,
|
|
MEMORY_DEVICE_COHERENT = 2,
|
|
MEMORY_DEVICE_FS_DAX = 3,
|
|
MEMORY_DEVICE_GENERIC = 4,
|
|
MEMORY_DEVICE_PCI_P2PDMA = 5,
|
|
};
|
|
|
|
struct dev_pagemap_ops;
|
|
|
|
struct dev_pagemap {
|
|
struct vmem_altmap altmap;
|
|
struct percpu_ref ref;
|
|
struct completion done;
|
|
enum memory_type type;
|
|
unsigned int flags;
|
|
unsigned long vmemmap_shift;
|
|
const struct dev_pagemap_ops *ops;
|
|
void *owner;
|
|
int nr_range;
|
|
union {
|
|
struct range range;
|
|
struct {
|
|
struct { } __empty_ranges;
|
|
struct range ranges[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
typedef void percpu_ref_func_t(struct percpu_ref *);
|
|
|
|
struct percpu_ref_data {
|
|
atomic_long_t count;
|
|
percpu_ref_func_t *release;
|
|
percpu_ref_func_t *confirm_switch;
|
|
bool force_atomic: 1;
|
|
bool allow_reinit: 1;
|
|
struct callback_head rcu;
|
|
struct percpu_ref *ref;
|
|
};
|
|
|
|
struct dev_pagemap_ops {
|
|
void (*page_free)(struct page *);
|
|
vm_fault_t (*migrate_to_ram)(struct vm_fault *);
|
|
int (*memory_failure)(struct dev_pagemap *, unsigned long, unsigned long, int);
|
|
};
|
|
|
|
struct upid {
|
|
int nr;
|
|
struct pid_namespace *ns;
|
|
};
|
|
|
|
struct pid {
|
|
refcount_t count;
|
|
unsigned int level;
|
|
spinlock_t lock;
|
|
struct hlist_head tasks[4];
|
|
struct hlist_head inodes;
|
|
wait_queue_head_t wait_pidfd;
|
|
struct callback_head rcu;
|
|
struct upid numbers[1];
|
|
};
|
|
|
|
struct idr {
|
|
struct xarray idr_rt;
|
|
unsigned int idr_base;
|
|
unsigned int idr_next;
|
|
};
|
|
|
|
struct fs_pin;
|
|
|
|
struct pid_namespace {
|
|
struct idr idr;
|
|
struct callback_head rcu;
|
|
unsigned int pid_allocated;
|
|
struct task_struct *child_reaper;
|
|
struct kmem_cache *pid_cachep;
|
|
unsigned int level;
|
|
struct pid_namespace *parent;
|
|
struct fs_pin *bacct;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
int reboot;
|
|
struct ns_common ns;
|
|
int memfd_noexec_scope;
|
|
};
|
|
|
|
struct thread_info {
|
|
unsigned long flags;
|
|
unsigned long syscall_work;
|
|
u32 status;
|
|
u32 cpu;
|
|
};
|
|
|
|
struct load_weight {
|
|
unsigned long weight;
|
|
u32 inv_weight;
|
|
};
|
|
|
|
struct util_est {
|
|
unsigned int enqueued;
|
|
unsigned int ewma;
|
|
};
|
|
|
|
struct sched_avg {
|
|
u64 last_update_time;
|
|
u64 load_sum;
|
|
u64 runnable_sum;
|
|
u32 util_sum;
|
|
u32 period_contrib;
|
|
unsigned long load_avg;
|
|
unsigned long runnable_avg;
|
|
unsigned long util_avg;
|
|
struct util_est util_est;
|
|
};
|
|
|
|
struct cfs_rq;
|
|
|
|
struct sched_entity {
|
|
struct load_weight load;
|
|
struct rb_node run_node;
|
|
struct list_head group_node;
|
|
unsigned int on_rq;
|
|
u64 exec_start;
|
|
u64 sum_exec_runtime;
|
|
u64 vruntime;
|
|
u64 prev_sum_exec_runtime;
|
|
u64 nr_migrations;
|
|
int depth;
|
|
struct sched_entity *parent;
|
|
struct cfs_rq *cfs_rq;
|
|
struct cfs_rq *my_q;
|
|
unsigned long runnable_weight;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct sched_avg avg;
|
|
};
|
|
|
|
struct sched_rt_entity {
|
|
struct list_head run_list;
|
|
unsigned long timeout;
|
|
unsigned long watchdog_stamp;
|
|
unsigned int time_slice;
|
|
unsigned short on_rq;
|
|
unsigned short on_list;
|
|
struct sched_rt_entity *back;
|
|
};
|
|
|
|
struct sched_dl_entity {
|
|
struct rb_node rb_node;
|
|
u64 dl_runtime;
|
|
u64 dl_deadline;
|
|
u64 dl_period;
|
|
u64 dl_bw;
|
|
u64 dl_density;
|
|
s64 runtime;
|
|
u64 deadline;
|
|
unsigned int flags;
|
|
unsigned int dl_throttled: 1;
|
|
unsigned int dl_yielded: 1;
|
|
unsigned int dl_non_contending: 1;
|
|
unsigned int dl_overrun: 1;
|
|
struct hrtimer dl_timer;
|
|
struct hrtimer inactive_timer;
|
|
struct sched_dl_entity *pi_se;
|
|
};
|
|
|
|
struct sched_statistics {
|
|
u64 wait_start;
|
|
u64 wait_max;
|
|
u64 wait_count;
|
|
u64 wait_sum;
|
|
u64 iowait_count;
|
|
u64 iowait_sum;
|
|
u64 sleep_start;
|
|
u64 sleep_max;
|
|
s64 sum_sleep_runtime;
|
|
u64 block_start;
|
|
u64 block_max;
|
|
s64 sum_block_runtime;
|
|
u64 exec_max;
|
|
u64 slice_max;
|
|
u64 nr_migrations_cold;
|
|
u64 nr_failed_migrations_affine;
|
|
u64 nr_failed_migrations_running;
|
|
u64 nr_failed_migrations_hot;
|
|
u64 nr_forced_migrations;
|
|
u64 nr_wakeups;
|
|
u64 nr_wakeups_sync;
|
|
u64 nr_wakeups_migrate;
|
|
u64 nr_wakeups_local;
|
|
u64 nr_wakeups_remote;
|
|
u64 nr_wakeups_affine;
|
|
u64 nr_wakeups_affine_attempts;
|
|
u64 nr_wakeups_passive;
|
|
u64 nr_wakeups_idle;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct cpumask {
|
|
unsigned long bits[1];
|
|
};
|
|
|
|
typedef struct cpumask cpumask_t;
|
|
|
|
union rcu_special {
|
|
struct {
|
|
u8 blocked;
|
|
u8 need_qs;
|
|
u8 exp_hint;
|
|
u8 need_mb;
|
|
} b;
|
|
u32 s;
|
|
};
|
|
|
|
struct sched_info {
|
|
unsigned long pcount;
|
|
unsigned long long run_delay;
|
|
unsigned long long last_arrival;
|
|
unsigned long long last_queued;
|
|
};
|
|
|
|
struct plist_node {
|
|
int prio;
|
|
struct list_head prio_list;
|
|
struct list_head node_list;
|
|
};
|
|
|
|
typedef int __kernel_clockid_t;
|
|
|
|
typedef __kernel_clockid_t clockid_t;
|
|
|
|
enum timespec_type {
|
|
TT_NONE = 0,
|
|
TT_NATIVE = 1,
|
|
TT_COMPAT = 2,
|
|
};
|
|
|
|
struct __kernel_timespec;
|
|
|
|
struct old_timespec32;
|
|
|
|
struct pollfd;
|
|
|
|
struct restart_block {
|
|
unsigned long arch_data;
|
|
long (*fn)(struct restart_block *);
|
|
union {
|
|
struct {
|
|
u32 __attribute__((btf_type_tag("user"))) *uaddr;
|
|
u32 val;
|
|
u32 flags;
|
|
u32 bitset;
|
|
u64 time;
|
|
u32 __attribute__((btf_type_tag("user"))) *uaddr2;
|
|
} futex;
|
|
struct {
|
|
clockid_t clockid;
|
|
enum timespec_type type;
|
|
union {
|
|
struct __kernel_timespec __attribute__((btf_type_tag("user"))) *rmtp;
|
|
struct old_timespec32 __attribute__((btf_type_tag("user"))) *compat_rmtp;
|
|
};
|
|
u64 expires;
|
|
} nanosleep;
|
|
struct {
|
|
struct pollfd __attribute__((btf_type_tag("user"))) *ufds;
|
|
int nfds;
|
|
int has_timeout;
|
|
unsigned long tv_sec;
|
|
unsigned long tv_nsec;
|
|
} poll;
|
|
};
|
|
};
|
|
|
|
typedef int __kernel_pid_t;
|
|
|
|
typedef __kernel_pid_t pid_t;
|
|
|
|
struct prev_cputime {
|
|
u64 utime;
|
|
u64 stime;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
struct timerqueue_head {
|
|
struct rb_root_cached rb_root;
|
|
};
|
|
|
|
struct posix_cputimer_base {
|
|
u64 nextevt;
|
|
struct timerqueue_head tqhead;
|
|
};
|
|
|
|
struct posix_cputimers {
|
|
struct posix_cputimer_base bases[3];
|
|
unsigned int timers_active;
|
|
unsigned int expiry_active;
|
|
};
|
|
|
|
struct posix_cputimers_work {
|
|
struct callback_head work;
|
|
unsigned int scheduled;
|
|
};
|
|
|
|
struct sem_undo_list;
|
|
|
|
struct sysv_sem {
|
|
struct sem_undo_list *undo_list;
|
|
};
|
|
|
|
struct sysv_shm {
|
|
struct list_head shm_clist;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long sig[1];
|
|
} sigset_t;
|
|
|
|
struct sigpending {
|
|
struct list_head list;
|
|
sigset_t signal;
|
|
};
|
|
|
|
struct seccomp_filter;
|
|
|
|
struct seccomp {
|
|
int mode;
|
|
atomic_t filter_count;
|
|
struct seccomp_filter *filter;
|
|
};
|
|
|
|
struct syscall_user_dispatch {
|
|
char __attribute__((btf_type_tag("user"))) *selector;
|
|
unsigned long offset;
|
|
unsigned long len;
|
|
bool on_dispatch;
|
|
};
|
|
|
|
struct wake_q_node {
|
|
struct wake_q_node *next;
|
|
};
|
|
|
|
struct task_io_accounting {
|
|
u64 rchar;
|
|
u64 wchar;
|
|
u64 syscr;
|
|
u64 syscw;
|
|
u64 read_bytes;
|
|
u64 write_bytes;
|
|
u64 cancelled_write_bytes;
|
|
};
|
|
|
|
struct arch_tlbflush_unmap_batch {
|
|
struct cpumask cpumask;
|
|
};
|
|
|
|
struct tlbflush_unmap_batch {
|
|
struct arch_tlbflush_unmap_batch arch;
|
|
bool flush_required;
|
|
bool writable;
|
|
};
|
|
|
|
struct page_frag {
|
|
struct page *page;
|
|
__u32 offset;
|
|
__u32 size;
|
|
};
|
|
|
|
struct kmap_ctrl {};
|
|
|
|
struct timer_list {
|
|
struct hlist_node entry;
|
|
unsigned long expires;
|
|
void (*function)(struct timer_list *);
|
|
u32 flags;
|
|
};
|
|
|
|
struct llist_head {
|
|
struct llist_node *first;
|
|
};
|
|
|
|
struct desc_struct {
|
|
u16 limit0;
|
|
u16 base0;
|
|
u16 base1: 8;
|
|
u16 type: 4;
|
|
u16 s: 1;
|
|
u16 dpl: 2;
|
|
u16 p: 1;
|
|
u16 limit1: 4;
|
|
u16 avl: 1;
|
|
u16 l: 1;
|
|
u16 d: 1;
|
|
u16 g: 1;
|
|
u16 base2: 8;
|
|
};
|
|
|
|
struct fpu_state_perm {
|
|
u64 __state_perm;
|
|
unsigned int __state_size;
|
|
unsigned int __user_state_size;
|
|
};
|
|
|
|
struct fregs_state {
|
|
u32 cwd;
|
|
u32 swd;
|
|
u32 twd;
|
|
u32 fip;
|
|
u32 fcs;
|
|
u32 foo;
|
|
u32 fos;
|
|
u32 st_space[20];
|
|
u32 status;
|
|
};
|
|
|
|
struct fxregs_state {
|
|
u16 cwd;
|
|
u16 swd;
|
|
u16 twd;
|
|
u16 fop;
|
|
union {
|
|
struct {
|
|
u64 rip;
|
|
u64 rdp;
|
|
};
|
|
struct {
|
|
u32 fip;
|
|
u32 fcs;
|
|
u32 foo;
|
|
u32 fos;
|
|
};
|
|
};
|
|
u32 mxcsr;
|
|
u32 mxcsr_mask;
|
|
u32 st_space[32];
|
|
u32 xmm_space[64];
|
|
u32 padding[12];
|
|
union {
|
|
u32 padding1[12];
|
|
u32 sw_reserved[12];
|
|
};
|
|
};
|
|
|
|
struct math_emu_info;
|
|
|
|
struct swregs_state {
|
|
u32 cwd;
|
|
u32 swd;
|
|
u32 twd;
|
|
u32 fip;
|
|
u32 fcs;
|
|
u32 foo;
|
|
u32 fos;
|
|
u32 st_space[20];
|
|
u8 ftop;
|
|
u8 changed;
|
|
u8 lookahead;
|
|
u8 no_update;
|
|
u8 rm;
|
|
u8 alimit;
|
|
struct math_emu_info *info;
|
|
u32 entry_eip;
|
|
};
|
|
|
|
struct xstate_header {
|
|
u64 xfeatures;
|
|
u64 xcomp_bv;
|
|
u64 reserved[6];
|
|
};
|
|
|
|
struct xregs_state {
|
|
struct fxregs_state i387;
|
|
struct xstate_header header;
|
|
u8 extended_state_area[0];
|
|
};
|
|
|
|
union fpregs_state {
|
|
struct fregs_state fsave;
|
|
struct fxregs_state fxsave;
|
|
struct swregs_state soft;
|
|
struct xregs_state xsave;
|
|
u8 __padding[4096];
|
|
};
|
|
|
|
struct fpstate {
|
|
unsigned int size;
|
|
unsigned int user_size;
|
|
u64 xfeatures;
|
|
u64 user_xfeatures;
|
|
u64 xfd;
|
|
unsigned int is_valloc: 1;
|
|
unsigned int is_guest: 1;
|
|
unsigned int is_confidential: 1;
|
|
unsigned int in_use: 1;
|
|
long: 60;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
union fpregs_state regs;
|
|
};
|
|
|
|
struct fpu {
|
|
unsigned int last_cpu;
|
|
unsigned long avx512_timestamp;
|
|
struct fpstate *fpstate;
|
|
struct fpstate *__task_fpstate;
|
|
struct fpu_state_perm perm;
|
|
struct fpu_state_perm guest_perm;
|
|
struct fpstate __fpstate;
|
|
};
|
|
|
|
struct io_bitmap;
|
|
|
|
struct thread_struct {
|
|
struct desc_struct tls_array[3];
|
|
unsigned long sp;
|
|
unsigned short es;
|
|
unsigned short ds;
|
|
unsigned short fsindex;
|
|
unsigned short gsindex;
|
|
unsigned long fsbase;
|
|
unsigned long gsbase;
|
|
struct perf_event *ptrace_bps[4];
|
|
unsigned long virtual_dr6;
|
|
unsigned long ptrace_dr7;
|
|
unsigned long cr2;
|
|
unsigned long trap_nr;
|
|
unsigned long error_code;
|
|
struct io_bitmap *io_bitmap;
|
|
unsigned long iopl_emul;
|
|
unsigned int iopl_warn: 1;
|
|
unsigned int sig_on_uaccess_err: 1;
|
|
u32 pkru;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct fpu fpu;
|
|
};
|
|
|
|
struct sched_class;
|
|
|
|
struct task_group;
|
|
|
|
struct rcu_node;
|
|
|
|
struct nameidata;
|
|
|
|
struct fs_struct;
|
|
|
|
struct files_struct;
|
|
|
|
struct io_uring_task;
|
|
|
|
struct nsproxy;
|
|
|
|
struct signal_struct;
|
|
|
|
struct sighand_struct;
|
|
|
|
struct audit_context;
|
|
|
|
struct rt_mutex_waiter;
|
|
|
|
struct bio_list;
|
|
|
|
struct blk_plug;
|
|
|
|
struct reclaim_state;
|
|
|
|
struct io_context;
|
|
|
|
struct capture_control;
|
|
|
|
struct kernel_siginfo;
|
|
|
|
typedef struct kernel_siginfo kernel_siginfo_t;
|
|
|
|
struct css_set;
|
|
|
|
struct robust_list_head;
|
|
|
|
struct compat_robust_list_head;
|
|
|
|
struct futex_pi_state;
|
|
|
|
struct rseq;
|
|
|
|
struct task_delay_info;
|
|
|
|
struct ftrace_ret_stack;
|
|
|
|
struct gendisk;
|
|
|
|
struct uprobe_task;
|
|
|
|
struct vm_struct;
|
|
|
|
struct bpf_local_storage;
|
|
|
|
struct bpf_run_ctx;
|
|
|
|
struct task_struct {
|
|
struct thread_info thread_info;
|
|
unsigned int __state;
|
|
void *stack;
|
|
refcount_t usage;
|
|
unsigned int flags;
|
|
unsigned int ptrace;
|
|
int on_cpu;
|
|
struct __call_single_node wake_entry;
|
|
unsigned int wakee_flips;
|
|
unsigned long wakee_flip_decay_ts;
|
|
struct task_struct *last_wakee;
|
|
int recent_used_cpu;
|
|
int wake_cpu;
|
|
int on_rq;
|
|
int prio;
|
|
int static_prio;
|
|
int normal_prio;
|
|
unsigned int rt_priority;
|
|
struct sched_entity se;
|
|
struct sched_rt_entity rt;
|
|
struct sched_dl_entity dl;
|
|
const struct sched_class *sched_class;
|
|
struct task_group *sched_task_group;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct sched_statistics stats;
|
|
unsigned int btrace_seq;
|
|
unsigned int policy;
|
|
int nr_cpus_allowed;
|
|
const cpumask_t *cpus_ptr;
|
|
cpumask_t *user_cpus_ptr;
|
|
cpumask_t cpus_mask;
|
|
void *migration_pending;
|
|
unsigned short migration_disabled;
|
|
unsigned short migration_flags;
|
|
int rcu_read_lock_nesting;
|
|
union rcu_special rcu_read_unlock_special;
|
|
struct list_head rcu_node_entry;
|
|
struct rcu_node *rcu_blocked_node;
|
|
unsigned long rcu_tasks_nvcsw;
|
|
u8 rcu_tasks_holdout;
|
|
u8 rcu_tasks_idx;
|
|
int rcu_tasks_idle_cpu;
|
|
struct list_head rcu_tasks_holdout_list;
|
|
int trc_reader_nesting;
|
|
int trc_ipi_to_cpu;
|
|
union rcu_special trc_reader_special;
|
|
struct list_head trc_holdout_list;
|
|
struct list_head trc_blkd_node;
|
|
int trc_blkd_cpu;
|
|
struct sched_info sched_info;
|
|
struct list_head tasks;
|
|
struct plist_node pushable_tasks;
|
|
struct rb_node pushable_dl_tasks;
|
|
struct mm_struct *mm;
|
|
struct mm_struct *active_mm;
|
|
int exit_state;
|
|
int exit_code;
|
|
int exit_signal;
|
|
int pdeath_signal;
|
|
unsigned long jobctl;
|
|
unsigned int personality;
|
|
unsigned int sched_reset_on_fork: 1;
|
|
unsigned int sched_contributes_to_load: 1;
|
|
unsigned int sched_migrated: 1;
|
|
int: 29;
|
|
unsigned int sched_remote_wakeup: 1;
|
|
unsigned int in_execve: 1;
|
|
unsigned int in_iowait: 1;
|
|
unsigned int restore_sigmask: 1;
|
|
unsigned int no_cgroup_migration: 1;
|
|
unsigned int frozen: 1;
|
|
unsigned int use_memdelay: 1;
|
|
unsigned int in_eventfd: 1;
|
|
unsigned int reported_split_lock: 1;
|
|
unsigned int in_thrashing: 1;
|
|
unsigned long atomic_flags;
|
|
struct restart_block restart_block;
|
|
pid_t pid;
|
|
pid_t tgid;
|
|
unsigned long stack_canary;
|
|
struct task_struct __attribute__((btf_type_tag("rcu"))) *real_parent;
|
|
struct task_struct __attribute__((btf_type_tag("rcu"))) *parent;
|
|
struct list_head children;
|
|
struct list_head sibling;
|
|
struct task_struct *group_leader;
|
|
struct list_head ptraced;
|
|
struct list_head ptrace_entry;
|
|
struct pid *thread_pid;
|
|
struct hlist_node pid_links[4];
|
|
struct list_head thread_group;
|
|
struct list_head thread_node;
|
|
struct completion *vfork_done;
|
|
int __attribute__((btf_type_tag("user"))) *set_child_tid;
|
|
int __attribute__((btf_type_tag("user"))) *clear_child_tid;
|
|
void *worker_private;
|
|
u64 utime;
|
|
u64 stime;
|
|
u64 gtime;
|
|
struct prev_cputime prev_cputime;
|
|
unsigned long nvcsw;
|
|
unsigned long nivcsw;
|
|
u64 start_time;
|
|
u64 start_boottime;
|
|
unsigned long min_flt;
|
|
unsigned long maj_flt;
|
|
struct posix_cputimers posix_cputimers;
|
|
struct posix_cputimers_work posix_cputimers_work;
|
|
const struct cred __attribute__((btf_type_tag("rcu"))) *ptracer_cred;
|
|
const struct cred __attribute__((btf_type_tag("rcu"))) *real_cred;
|
|
const struct cred __attribute__((btf_type_tag("rcu"))) *cred;
|
|
struct key *cached_requested_key;
|
|
char comm[16];
|
|
struct nameidata *nameidata;
|
|
struct sysv_sem sysvsem;
|
|
struct sysv_shm sysvshm;
|
|
struct fs_struct *fs;
|
|
struct files_struct *files;
|
|
struct io_uring_task *io_uring;
|
|
struct nsproxy *nsproxy;
|
|
struct signal_struct *signal;
|
|
struct sighand_struct __attribute__((btf_type_tag("rcu"))) *sighand;
|
|
sigset_t blocked;
|
|
sigset_t real_blocked;
|
|
sigset_t saved_sigmask;
|
|
struct sigpending pending;
|
|
unsigned long sas_ss_sp;
|
|
size_t sas_ss_size;
|
|
unsigned int sas_ss_flags;
|
|
struct callback_head *task_works;
|
|
struct audit_context *audit_context;
|
|
kuid_t loginuid;
|
|
unsigned int sessionid;
|
|
struct seccomp seccomp;
|
|
struct syscall_user_dispatch syscall_dispatch;
|
|
u64 parent_exec_id;
|
|
u64 self_exec_id;
|
|
spinlock_t alloc_lock;
|
|
raw_spinlock_t pi_lock;
|
|
struct wake_q_node wake_q;
|
|
struct rb_root_cached pi_waiters;
|
|
struct task_struct *pi_top_task;
|
|
struct rt_mutex_waiter *pi_blocked_on;
|
|
void *journal_info;
|
|
struct bio_list *bio_list;
|
|
struct blk_plug *plug;
|
|
struct reclaim_state *reclaim_state;
|
|
struct backing_dev_info *backing_dev_info;
|
|
struct io_context *io_context;
|
|
struct capture_control *capture_control;
|
|
unsigned long ptrace_message;
|
|
kernel_siginfo_t *last_siginfo;
|
|
struct task_io_accounting ioac;
|
|
u64 acct_rss_mem1;
|
|
u64 acct_vm_mem1;
|
|
u64 acct_timexpd;
|
|
struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups;
|
|
struct list_head cg_list;
|
|
struct robust_list_head __attribute__((btf_type_tag("user"))) *robust_list;
|
|
struct compat_robust_list_head __attribute__((btf_type_tag("user"))) *compat_robust_list;
|
|
struct list_head pi_state_list;
|
|
struct futex_pi_state *pi_state_cache;
|
|
struct mutex futex_exit_mutex;
|
|
unsigned int futex_state;
|
|
struct perf_event_context *perf_event_ctxp;
|
|
struct mutex perf_event_mutex;
|
|
struct list_head perf_event_list;
|
|
unsigned long preempt_disable_ip;
|
|
struct rseq __attribute__((btf_type_tag("user"))) *rseq;
|
|
u32 rseq_len;
|
|
u32 rseq_sig;
|
|
unsigned long rseq_event_mask;
|
|
int mm_cid;
|
|
int mm_cid_active;
|
|
struct tlbflush_unmap_batch tlb_ubc;
|
|
struct pipe_inode_info *splice_pipe;
|
|
struct page_frag task_frag;
|
|
struct task_delay_info *delays;
|
|
int nr_dirtied;
|
|
int nr_dirtied_pause;
|
|
unsigned long dirty_paused_when;
|
|
u64 timer_slack_ns;
|
|
u64 default_timer_slack_ns;
|
|
int curr_ret_stack;
|
|
int curr_ret_depth;
|
|
struct ftrace_ret_stack *ret_stack;
|
|
unsigned long long ftrace_timestamp;
|
|
atomic_t trace_overrun;
|
|
atomic_t tracing_graph_pause;
|
|
unsigned long trace_recursion;
|
|
struct gendisk *throttle_disk;
|
|
struct uprobe_task *utask;
|
|
struct kmap_ctrl kmap_ctrl;
|
|
struct callback_head rcu;
|
|
refcount_t rcu_users;
|
|
int pagefault_disabled;
|
|
struct task_struct *oom_reaper_list;
|
|
struct timer_list oom_reaper_timer;
|
|
struct vm_struct *stack_vm_area;
|
|
refcount_t stack_refcount;
|
|
int patch_state;
|
|
void *security;
|
|
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *bpf_storage;
|
|
struct bpf_run_ctx *bpf_ctx;
|
|
void __attribute__((btf_type_tag("user"))) *mce_vaddr;
|
|
__u64 mce_kflags;
|
|
u64 mce_addr;
|
|
__u64 mce_ripv: 1;
|
|
__u64 mce_whole_page: 1;
|
|
__u64 __mce_reserved: 62;
|
|
struct callback_head mce_kill_me;
|
|
int mce_count;
|
|
struct llist_head kretprobe_instances;
|
|
struct llist_head rethooks;
|
|
struct callback_head l1d_flush_kill;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct thread_struct thread;
|
|
};
|
|
|
|
struct seqcount_raw_spinlock {
|
|
seqcount_t seqcount;
|
|
};
|
|
|
|
typedef struct seqcount_raw_spinlock seqcount_raw_spinlock_t;
|
|
|
|
struct hrtimer_cpu_base;
|
|
|
|
struct hrtimer_clock_base {
|
|
struct hrtimer_cpu_base *cpu_base;
|
|
unsigned int index;
|
|
clockid_t clockid;
|
|
seqcount_raw_spinlock_t seq;
|
|
struct hrtimer *running;
|
|
struct timerqueue_head active;
|
|
ktime_t (*get_time)();
|
|
ktime_t offset;
|
|
};
|
|
|
|
struct hrtimer_cpu_base {
|
|
raw_spinlock_t lock;
|
|
unsigned int cpu;
|
|
unsigned int active_bases;
|
|
unsigned int clock_was_set_seq;
|
|
unsigned int hres_active: 1;
|
|
unsigned int in_hrtirq: 1;
|
|
unsigned int hang_detected: 1;
|
|
unsigned int softirq_activated: 1;
|
|
unsigned int nr_events;
|
|
unsigned short nr_retries;
|
|
unsigned short nr_hangs;
|
|
unsigned int max_hang_time;
|
|
ktime_t expires_next;
|
|
struct hrtimer *next_timer;
|
|
ktime_t softirq_expires_next;
|
|
struct hrtimer *softirq_next_timer;
|
|
struct hrtimer_clock_base clock_base[8];
|
|
};
|
|
|
|
struct rq;
|
|
|
|
struct rq_flags;
|
|
|
|
struct affinity_context;
|
|
|
|
struct sched_class {
|
|
void (*enqueue_task)(struct rq *, struct task_struct *, int);
|
|
void (*dequeue_task)(struct rq *, struct task_struct *, int);
|
|
void (*yield_task)(struct rq *);
|
|
bool (*yield_to_task)(struct rq *, struct task_struct *);
|
|
void (*check_preempt_curr)(struct rq *, struct task_struct *, int);
|
|
struct task_struct * (*pick_next_task)(struct rq *);
|
|
void (*put_prev_task)(struct rq *, struct task_struct *);
|
|
void (*set_next_task)(struct rq *, struct task_struct *, bool);
|
|
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
|
|
int (*select_task_rq)(struct task_struct *, int, int);
|
|
struct task_struct * (*pick_task)(struct rq *);
|
|
void (*migrate_task_rq)(struct task_struct *, int);
|
|
void (*task_woken)(struct rq *, struct task_struct *);
|
|
void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *);
|
|
void (*rq_online)(struct rq *);
|
|
void (*rq_offline)(struct rq *);
|
|
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
|
|
void (*task_tick)(struct rq *, struct task_struct *, int);
|
|
void (*task_fork)(struct task_struct *);
|
|
void (*task_dead)(struct task_struct *);
|
|
void (*switched_from)(struct rq *, struct task_struct *);
|
|
void (*switched_to)(struct rq *, struct task_struct *);
|
|
void (*prio_changed)(struct rq *, struct task_struct *, int);
|
|
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
|
|
void (*update_curr)(struct rq *);
|
|
void (*task_change_group)(struct task_struct *);
|
|
};
|
|
|
|
typedef long long __kernel_time64_t;
|
|
|
|
struct __kernel_timespec {
|
|
__kernel_time64_t tv_sec;
|
|
long long tv_nsec;
|
|
};
|
|
|
|
typedef s32 old_time32_t;
|
|
|
|
struct old_timespec32 {
|
|
old_time32_t tv_sec;
|
|
s32 tv_nsec;
|
|
};
|
|
|
|
struct pollfd {
|
|
int fd;
|
|
short events;
|
|
short revents;
|
|
};
|
|
|
|
struct kernel_cap_struct {
|
|
__u32 cap[2];
|
|
};
|
|
|
|
typedef struct kernel_cap_struct kernel_cap_t;
|
|
|
|
struct user_struct;
|
|
|
|
struct group_info;
|
|
|
|
struct cred {
|
|
atomic_t usage;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
kuid_t suid;
|
|
kgid_t sgid;
|
|
kuid_t euid;
|
|
kgid_t egid;
|
|
kuid_t fsuid;
|
|
kgid_t fsgid;
|
|
unsigned int securebits;
|
|
kernel_cap_t cap_inheritable;
|
|
kernel_cap_t cap_permitted;
|
|
kernel_cap_t cap_effective;
|
|
kernel_cap_t cap_bset;
|
|
kernel_cap_t cap_ambient;
|
|
unsigned char jit_keyring;
|
|
struct key *session_keyring;
|
|
struct key *process_keyring;
|
|
struct key *thread_keyring;
|
|
struct key *request_key_auth;
|
|
void *security;
|
|
struct user_struct *user;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
struct group_info *group_info;
|
|
union {
|
|
int non_rcu;
|
|
struct callback_head rcu;
|
|
};
|
|
};
|
|
|
|
struct ratelimit_state {
|
|
raw_spinlock_t lock;
|
|
int interval;
|
|
int burst;
|
|
int printed;
|
|
int missed;
|
|
unsigned long begin;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct user_struct {
|
|
refcount_t __count;
|
|
struct percpu_counter epoll_watches;
|
|
unsigned long unix_inflight;
|
|
atomic_long_t pipe_bufs;
|
|
struct hlist_node uidhash_node;
|
|
kuid_t uid;
|
|
atomic_long_t locked_vm;
|
|
struct ratelimit_state ratelimit;
|
|
};
|
|
|
|
struct group_info {
|
|
atomic_t usage;
|
|
int ngroups;
|
|
kgid_t gid[0];
|
|
};
|
|
|
|
struct uts_namespace;
|
|
|
|
struct ipc_namespace;
|
|
|
|
struct mnt_namespace;
|
|
|
|
struct net;
|
|
|
|
struct time_namespace;
|
|
|
|
struct cgroup_namespace;
|
|
|
|
struct nsproxy {
|
|
atomic_t count;
|
|
struct uts_namespace *uts_ns;
|
|
struct ipc_namespace *ipc_ns;
|
|
struct mnt_namespace *mnt_ns;
|
|
struct pid_namespace *pid_ns_for_children;
|
|
struct net *net_ns;
|
|
struct time_namespace *time_ns;
|
|
struct time_namespace *time_ns_for_children;
|
|
struct cgroup_namespace *cgroup_ns;
|
|
};
|
|
|
|
struct cgroup_namespace {
|
|
struct ns_common ns;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
struct css_set *root_cset;
|
|
};
|
|
|
|
struct cgroup_subsys_state;
|
|
|
|
struct cgroup;
|
|
|
|
struct css_set {
|
|
struct cgroup_subsys_state *subsys[13];
|
|
refcount_t refcount;
|
|
struct css_set *dom_cset;
|
|
struct cgroup *dfl_cgrp;
|
|
int nr_tasks;
|
|
struct list_head tasks;
|
|
struct list_head mg_tasks;
|
|
struct list_head dying_tasks;
|
|
struct list_head task_iters;
|
|
struct list_head e_cset_node[13];
|
|
struct list_head threaded_csets;
|
|
struct list_head threaded_csets_node;
|
|
struct hlist_node hlist;
|
|
struct list_head cgrp_links;
|
|
struct list_head mg_src_preload_node;
|
|
struct list_head mg_dst_preload_node;
|
|
struct list_head mg_node;
|
|
struct cgroup *mg_src_cgrp;
|
|
struct cgroup *mg_dst_cgrp;
|
|
struct css_set *mg_dst_cset;
|
|
bool dead;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct rcu_work {
|
|
struct work_struct work;
|
|
struct callback_head rcu;
|
|
struct workqueue_struct *wq;
|
|
};
|
|
|
|
struct cgroup_subsys;
|
|
|
|
struct cgroup_subsys_state {
|
|
struct cgroup *cgroup;
|
|
struct cgroup_subsys *ss;
|
|
struct percpu_ref refcnt;
|
|
struct list_head sibling;
|
|
struct list_head children;
|
|
struct list_head rstat_css_node;
|
|
int id;
|
|
unsigned int flags;
|
|
u64 serial_nr;
|
|
atomic_t online_cnt;
|
|
struct work_struct destroy_work;
|
|
struct rcu_work destroy_rwork;
|
|
struct cgroup_subsys_state *parent;
|
|
};
|
|
|
|
struct cgroup_file {
|
|
struct kernfs_node *kn;
|
|
unsigned long notified_at;
|
|
struct timer_list notify_timer;
|
|
};
|
|
|
|
struct task_cputime {
|
|
u64 stime;
|
|
u64 utime;
|
|
unsigned long long sum_exec_runtime;
|
|
};
|
|
|
|
struct cgroup_base_stat {
|
|
struct task_cputime cputime;
|
|
};
|
|
|
|
struct bpf_prog_array;
|
|
|
|
struct cgroup_bpf {
|
|
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[33];
|
|
struct hlist_head progs[33];
|
|
u8 flags[33];
|
|
struct list_head storages;
|
|
struct bpf_prog_array *inactive;
|
|
struct percpu_ref refcnt;
|
|
struct work_struct release_work;
|
|
};
|
|
|
|
struct cgroup_freezer_state {
|
|
bool freeze;
|
|
int e_freeze;
|
|
int nr_frozen_descendants;
|
|
int nr_frozen_tasks;
|
|
};
|
|
|
|
struct cgroup_root;
|
|
|
|
struct cgroup_rstat_cpu;
|
|
|
|
struct psi_group;
|
|
|
|
struct cgroup {
|
|
struct cgroup_subsys_state self;
|
|
unsigned long flags;
|
|
int level;
|
|
int max_depth;
|
|
int nr_descendants;
|
|
int nr_dying_descendants;
|
|
int max_descendants;
|
|
int nr_populated_csets;
|
|
int nr_populated_domain_children;
|
|
int nr_populated_threaded_children;
|
|
int nr_threaded_children;
|
|
struct kernfs_node *kn;
|
|
struct cgroup_file procs_file;
|
|
struct cgroup_file events_file;
|
|
struct cgroup_file psi_files[0];
|
|
u16 subtree_control;
|
|
u16 subtree_ss_mask;
|
|
u16 old_subtree_control;
|
|
u16 old_subtree_ss_mask;
|
|
struct cgroup_subsys_state __attribute__((btf_type_tag("rcu"))) *subsys[13];
|
|
struct cgroup_root *root;
|
|
struct list_head cset_links;
|
|
struct list_head e_csets[13];
|
|
struct cgroup *dom_cgrp;
|
|
struct cgroup *old_dom_cgrp;
|
|
struct cgroup_rstat_cpu __attribute__((btf_type_tag("percpu"))) *rstat_cpu;
|
|
struct list_head rstat_css_list;
|
|
struct cgroup_base_stat last_bstat;
|
|
struct cgroup_base_stat bstat;
|
|
struct prev_cputime prev_cputime;
|
|
struct list_head pidlists;
|
|
struct mutex pidlist_mutex;
|
|
wait_queue_head_t offline_waitq;
|
|
struct work_struct release_agent_work;
|
|
struct psi_group *psi;
|
|
struct cgroup_bpf bpf;
|
|
atomic_t congestion_count;
|
|
struct cgroup_freezer_state freezer;
|
|
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *bpf_cgrp_storage;
|
|
struct cgroup *ancestors[0];
|
|
};
|
|
|
|
struct kernfs_root;
|
|
|
|
struct kernfs_elem_dir {
|
|
unsigned long subdirs;
|
|
struct rb_root children;
|
|
struct kernfs_root *root;
|
|
unsigned long rev;
|
|
};
|
|
|
|
struct kernfs_elem_symlink {
|
|
struct kernfs_node *target_kn;
|
|
};
|
|
|
|
struct kernfs_ops;
|
|
|
|
struct kernfs_open_node;
|
|
|
|
struct kernfs_elem_attr {
|
|
const struct kernfs_ops *ops;
|
|
struct kernfs_open_node __attribute__((btf_type_tag("rcu"))) *open;
|
|
loff_t size;
|
|
struct kernfs_node *notify_next;
|
|
};
|
|
|
|
struct kernfs_iattrs;
|
|
|
|
struct kernfs_node {
|
|
atomic_t count;
|
|
atomic_t active;
|
|
struct kernfs_node *parent;
|
|
const char *name;
|
|
struct rb_node rb;
|
|
const void *ns;
|
|
unsigned int hash;
|
|
union {
|
|
struct kernfs_elem_dir dir;
|
|
struct kernfs_elem_symlink symlink;
|
|
struct kernfs_elem_attr attr;
|
|
};
|
|
void *priv;
|
|
u64 id;
|
|
unsigned short flags;
|
|
umode_t mode;
|
|
struct kernfs_iattrs *iattr;
|
|
};
|
|
|
|
struct kernfs_open_file;
|
|
|
|
struct kernfs_ops {
|
|
int (*open)(struct kernfs_open_file *);
|
|
void (*release)(struct kernfs_open_file *);
|
|
int (*seq_show)(struct seq_file *, void *);
|
|
void * (*seq_start)(struct seq_file *, loff_t *);
|
|
void * (*seq_next)(struct seq_file *, void *, loff_t *);
|
|
void (*seq_stop)(struct seq_file *, void *);
|
|
ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t);
|
|
size_t atomic_write_len;
|
|
bool prealloc;
|
|
ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
|
|
__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
|
|
int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *);
|
|
};
|
|
|
|
struct kernfs_open_file {
|
|
struct kernfs_node *kn;
|
|
struct file *file;
|
|
struct seq_file *seq_file;
|
|
void *priv;
|
|
struct mutex mutex;
|
|
struct mutex prealloc_mutex;
|
|
int event;
|
|
struct list_head list;
|
|
char *prealloc_buf;
|
|
size_t atomic_write_len;
|
|
bool mmapped: 1;
|
|
bool released: 1;
|
|
const struct vm_operations_struct *vm_ops;
|
|
};
|
|
|
|
struct kernfs_open_node {
|
|
struct callback_head callback_head;
|
|
atomic_t event;
|
|
wait_queue_head_t poll;
|
|
struct list_head files;
|
|
unsigned int nr_mmapped;
|
|
unsigned int nr_to_release;
|
|
};
|
|
|
|
struct cgroup_root {
|
|
struct kernfs_root *kf_root;
|
|
unsigned int subsys_mask;
|
|
int hierarchy_id;
|
|
struct cgroup cgrp;
|
|
struct cgroup *cgrp_ancestor_storage;
|
|
atomic_t nr_cgrps;
|
|
struct list_head root_list;
|
|
unsigned int flags;
|
|
char release_agent_path[4096];
|
|
char name[64];
|
|
};
|
|
|
|
struct u64_stats_sync {};
|
|
|
|
struct cgroup_rstat_cpu {
|
|
struct u64_stats_sync bsync;
|
|
struct cgroup_base_stat bstat;
|
|
struct cgroup_base_stat last_bstat;
|
|
struct cgroup *updated_children;
|
|
struct cgroup *updated_next;
|
|
};
|
|
|
|
struct psi_group {};
|
|
|
|
struct bpf_cgroup_storage;
|
|
|
|
struct bpf_prog_array_item {
|
|
struct bpf_prog *prog;
|
|
union {
|
|
struct bpf_cgroup_storage *cgroup_storage[2];
|
|
u64 bpf_cookie;
|
|
};
|
|
};
|
|
|
|
struct bpf_prog_array {
|
|
struct callback_head rcu;
|
|
struct bpf_prog_array_item items[0];
|
|
};
|
|
|
|
struct bpf_local_storage_data;
|
|
|
|
struct bpf_local_storage_map;
|
|
|
|
struct bpf_local_storage {
|
|
struct bpf_local_storage_data __attribute__((btf_type_tag("rcu"))) *cache[16];
|
|
struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap;
|
|
struct hlist_head list;
|
|
void *owner;
|
|
struct callback_head rcu;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
struct cgroup_taskset;
|
|
|
|
struct cftype;
|
|
|
|
struct cgroup_subsys {
|
|
struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *);
|
|
int (*css_online)(struct cgroup_subsys_state *);
|
|
void (*css_offline)(struct cgroup_subsys_state *);
|
|
void (*css_released)(struct cgroup_subsys_state *);
|
|
void (*css_free)(struct cgroup_subsys_state *);
|
|
void (*css_reset)(struct cgroup_subsys_state *);
|
|
void (*css_rstat_flush)(struct cgroup_subsys_state *, int);
|
|
int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *);
|
|
int (*can_attach)(struct cgroup_taskset *);
|
|
void (*cancel_attach)(struct cgroup_taskset *);
|
|
void (*attach)(struct cgroup_taskset *);
|
|
void (*post_attach)();
|
|
int (*can_fork)(struct task_struct *, struct css_set *);
|
|
void (*cancel_fork)(struct task_struct *, struct css_set *);
|
|
void (*fork)(struct task_struct *);
|
|
void (*exit)(struct task_struct *);
|
|
void (*release)(struct task_struct *);
|
|
void (*bind)(struct cgroup_subsys_state *);
|
|
bool early_init: 1;
|
|
bool implicit_on_dfl: 1;
|
|
bool threaded: 1;
|
|
int id;
|
|
const char *name;
|
|
const char *legacy_name;
|
|
struct cgroup_root *root;
|
|
struct idr css_idr;
|
|
struct list_head cfts;
|
|
struct cftype *dfl_cftypes;
|
|
struct cftype *legacy_cftypes;
|
|
unsigned int depends_on;
|
|
};
|
|
|
|
struct cftype {
|
|
char name[64];
|
|
unsigned long private;
|
|
size_t max_write_len;
|
|
unsigned int flags;
|
|
unsigned int file_offset;
|
|
struct cgroup_subsys *ss;
|
|
struct list_head node;
|
|
struct kernfs_ops *kf_ops;
|
|
int (*open)(struct kernfs_open_file *);
|
|
void (*release)(struct kernfs_open_file *);
|
|
u64 (*read_u64)(struct cgroup_subsys_state *, struct cftype *);
|
|
s64 (*read_s64)(struct cgroup_subsys_state *, struct cftype *);
|
|
int (*seq_show)(struct seq_file *, void *);
|
|
void * (*seq_start)(struct seq_file *, loff_t *);
|
|
void * (*seq_next)(struct seq_file *, void *, loff_t *);
|
|
void (*seq_stop)(struct seq_file *, void *);
|
|
int (*write_u64)(struct cgroup_subsys_state *, struct cftype *, u64);
|
|
int (*write_s64)(struct cgroup_subsys_state *, struct cftype *, s64);
|
|
ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
|
|
__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
|
|
};
|
|
|
|
struct cpu_itimer {
|
|
u64 expires;
|
|
u64 incr;
|
|
};
|
|
|
|
struct task_cputime_atomic {
|
|
atomic64_t utime;
|
|
atomic64_t stime;
|
|
atomic64_t sum_exec_runtime;
|
|
};
|
|
|
|
struct thread_group_cputimer {
|
|
struct task_cputime_atomic cputime_atomic;
|
|
};
|
|
|
|
typedef struct {
|
|
seqcount_spinlock_t seqcount;
|
|
spinlock_t lock;
|
|
} seqlock_t;
|
|
|
|
struct rlimit {
|
|
__kernel_ulong_t rlim_cur;
|
|
__kernel_ulong_t rlim_max;
|
|
};
|
|
|
|
struct pacct_struct {
|
|
int ac_flag;
|
|
long ac_exitcode;
|
|
unsigned long ac_mem;
|
|
u64 ac_utime;
|
|
u64 ac_stime;
|
|
unsigned long ac_minflt;
|
|
unsigned long ac_majflt;
|
|
};
|
|
|
|
struct core_state;
|
|
|
|
struct tty_struct;
|
|
|
|
struct taskstats;
|
|
|
|
struct tty_audit_buf;
|
|
|
|
struct signal_struct {
|
|
refcount_t sigcnt;
|
|
atomic_t live;
|
|
int nr_threads;
|
|
int quick_threads;
|
|
struct list_head thread_head;
|
|
wait_queue_head_t wait_chldexit;
|
|
struct task_struct *curr_target;
|
|
struct sigpending shared_pending;
|
|
struct hlist_head multiprocess;
|
|
int group_exit_code;
|
|
int notify_count;
|
|
struct task_struct *group_exec_task;
|
|
int group_stop_count;
|
|
unsigned int flags;
|
|
struct core_state *core_state;
|
|
unsigned int is_child_subreaper: 1;
|
|
unsigned int has_child_subreaper: 1;
|
|
int posix_timer_id;
|
|
struct list_head posix_timers;
|
|
struct hrtimer real_timer;
|
|
ktime_t it_real_incr;
|
|
struct cpu_itimer it[2];
|
|
struct thread_group_cputimer cputimer;
|
|
struct posix_cputimers posix_cputimers;
|
|
struct pid *pids[4];
|
|
struct pid *tty_old_pgrp;
|
|
int leader;
|
|
struct tty_struct *tty;
|
|
seqlock_t stats_lock;
|
|
u64 utime;
|
|
u64 stime;
|
|
u64 cutime;
|
|
u64 cstime;
|
|
u64 gtime;
|
|
u64 cgtime;
|
|
struct prev_cputime prev_cputime;
|
|
unsigned long nvcsw;
|
|
unsigned long nivcsw;
|
|
unsigned long cnvcsw;
|
|
unsigned long cnivcsw;
|
|
unsigned long min_flt;
|
|
unsigned long maj_flt;
|
|
unsigned long cmin_flt;
|
|
unsigned long cmaj_flt;
|
|
unsigned long inblock;
|
|
unsigned long oublock;
|
|
unsigned long cinblock;
|
|
unsigned long coublock;
|
|
unsigned long maxrss;
|
|
unsigned long cmaxrss;
|
|
struct task_io_accounting ioac;
|
|
unsigned long long sum_sched_runtime;
|
|
struct rlimit rlim[16];
|
|
struct pacct_struct pacct;
|
|
struct taskstats *stats;
|
|
unsigned int audit_tty;
|
|
struct tty_audit_buf *tty_audit_buf;
|
|
bool oom_flag_origin;
|
|
short oom_score_adj;
|
|
short oom_score_adj_min;
|
|
struct mm_struct *oom_mm;
|
|
struct mutex cred_guard_mutex;
|
|
struct rw_semaphore exec_update_lock;
|
|
};
|
|
|
|
struct core_thread {
|
|
struct task_struct *task;
|
|
struct core_thread *next;
|
|
};
|
|
|
|
struct core_state {
|
|
atomic_t nr_threads;
|
|
struct core_thread dumper;
|
|
struct completion startup;
|
|
};
|
|
|
|
struct taskstats {
|
|
__u16 version;
|
|
__u32 ac_exitcode;
|
|
__u8 ac_flag;
|
|
__u8 ac_nice;
|
|
__u64 cpu_count;
|
|
__u64 cpu_delay_total;
|
|
__u64 blkio_count;
|
|
__u64 blkio_delay_total;
|
|
__u64 swapin_count;
|
|
__u64 swapin_delay_total;
|
|
__u64 cpu_run_real_total;
|
|
__u64 cpu_run_virtual_total;
|
|
char ac_comm[32];
|
|
__u8 ac_sched;
|
|
__u8 ac_pad[3];
|
|
int: 32;
|
|
__u32 ac_uid;
|
|
__u32 ac_gid;
|
|
__u32 ac_pid;
|
|
__u32 ac_ppid;
|
|
__u32 ac_btime;
|
|
__u64 ac_etime;
|
|
__u64 ac_utime;
|
|
__u64 ac_stime;
|
|
__u64 ac_minflt;
|
|
__u64 ac_majflt;
|
|
__u64 coremem;
|
|
__u64 virtmem;
|
|
__u64 hiwater_rss;
|
|
__u64 hiwater_vm;
|
|
__u64 read_char;
|
|
__u64 write_char;
|
|
__u64 read_syscalls;
|
|
__u64 write_syscalls;
|
|
__u64 read_bytes;
|
|
__u64 write_bytes;
|
|
__u64 cancelled_write_bytes;
|
|
__u64 nvcsw;
|
|
__u64 nivcsw;
|
|
__u64 ac_utimescaled;
|
|
__u64 ac_stimescaled;
|
|
__u64 cpu_scaled_run_real_total;
|
|
__u64 freepages_count;
|
|
__u64 freepages_delay_total;
|
|
__u64 thrashing_count;
|
|
__u64 thrashing_delay_total;
|
|
__u64 ac_btime64;
|
|
__u64 compact_count;
|
|
__u64 compact_delay_total;
|
|
__u32 ac_tgid;
|
|
__u64 ac_tgetime;
|
|
__u64 ac_exe_dev;
|
|
__u64 ac_exe_inode;
|
|
__u64 wpcopy_count;
|
|
__u64 wpcopy_delay_total;
|
|
};
|
|
|
|
typedef void __signalfn_t(int);
|
|
|
|
typedef __signalfn_t __attribute__((btf_type_tag("user"))) *__sighandler_t;
|
|
|
|
typedef void __restorefn_t();
|
|
|
|
typedef __restorefn_t __attribute__((btf_type_tag("user"))) *__sigrestore_t;
|
|
|
|
struct sigaction {
|
|
__sighandler_t sa_handler;
|
|
unsigned long sa_flags;
|
|
__sigrestore_t sa_restorer;
|
|
sigset_t sa_mask;
|
|
};
|
|
|
|
struct k_sigaction {
|
|
struct sigaction sa;
|
|
};
|
|
|
|
struct sighand_struct {
|
|
spinlock_t siglock;
|
|
refcount_t count;
|
|
wait_queue_head_t signalfd_wqh;
|
|
struct k_sigaction action[64];
|
|
};
|
|
|
|
struct io_context {
|
|
atomic_long_t refcount;
|
|
atomic_t active_ref;
|
|
unsigned short ioprio;
|
|
};
|
|
|
|
typedef int __kernel_timer_t;
|
|
|
|
union sigval {
|
|
int sival_int;
|
|
void __attribute__((btf_type_tag("user"))) *sival_ptr;
|
|
};
|
|
|
|
typedef union sigval sigval_t;
|
|
|
|
typedef __kernel_long_t __kernel_clock_t;
|
|
|
|
union __sifields {
|
|
struct {
|
|
__kernel_pid_t _pid;
|
|
__kernel_uid32_t _uid;
|
|
} _kill;
|
|
struct {
|
|
__kernel_timer_t _tid;
|
|
int _overrun;
|
|
sigval_t _sigval;
|
|
int _sys_private;
|
|
} _timer;
|
|
struct {
|
|
__kernel_pid_t _pid;
|
|
__kernel_uid32_t _uid;
|
|
sigval_t _sigval;
|
|
} _rt;
|
|
struct {
|
|
__kernel_pid_t _pid;
|
|
__kernel_uid32_t _uid;
|
|
int _status;
|
|
__kernel_clock_t _utime;
|
|
__kernel_clock_t _stime;
|
|
} _sigchld;
|
|
struct {
|
|
void __attribute__((btf_type_tag("user"))) *_addr;
|
|
union {
|
|
int _trapno;
|
|
short _addr_lsb;
|
|
struct {
|
|
char _dummy_bnd[8];
|
|
void __attribute__((btf_type_tag("user"))) *_lower;
|
|
void __attribute__((btf_type_tag("user"))) *_upper;
|
|
} _addr_bnd;
|
|
struct {
|
|
char _dummy_pkey[8];
|
|
__u32 _pkey;
|
|
} _addr_pkey;
|
|
struct {
|
|
unsigned long _data;
|
|
__u32 _type;
|
|
__u32 _flags;
|
|
} _perf;
|
|
};
|
|
} _sigfault;
|
|
struct {
|
|
long _band;
|
|
int _fd;
|
|
} _sigpoll;
|
|
struct {
|
|
void __attribute__((btf_type_tag("user"))) *_call_addr;
|
|
int _syscall;
|
|
unsigned int _arch;
|
|
} _sigsys;
|
|
};
|
|
|
|
struct kernel_siginfo {
|
|
struct {
|
|
int si_signo;
|
|
int si_errno;
|
|
int si_code;
|
|
union __sifields _sifields;
|
|
};
|
|
};
|
|
|
|
struct robust_list {
|
|
struct robust_list __attribute__((btf_type_tag("user"))) *next;
|
|
};
|
|
|
|
struct robust_list_head {
|
|
struct robust_list list;
|
|
long futex_offset;
|
|
struct robust_list __attribute__((btf_type_tag("user"))) *list_op_pending;
|
|
};
|
|
|
|
typedef u32 compat_uptr_t;
|
|
|
|
struct compat_robust_list {
|
|
compat_uptr_t next;
|
|
};
|
|
|
|
typedef s32 compat_long_t;
|
|
|
|
struct compat_robust_list_head {
|
|
struct compat_robust_list list;
|
|
compat_long_t futex_offset;
|
|
compat_uptr_t list_op_pending;
|
|
};
|
|
|
|
struct perf_event_groups {
|
|
struct rb_root tree;
|
|
u64 index;
|
|
};
|
|
|
|
struct perf_event_context {
|
|
raw_spinlock_t lock;
|
|
struct mutex mutex;
|
|
struct list_head pmu_ctx_list;
|
|
struct perf_event_groups pinned_groups;
|
|
struct perf_event_groups flexible_groups;
|
|
struct list_head event_list;
|
|
int nr_events;
|
|
int nr_user;
|
|
int is_active;
|
|
int nr_task_data;
|
|
int nr_stat;
|
|
int nr_freq;
|
|
int rotate_disable;
|
|
refcount_t refcount;
|
|
struct task_struct *task;
|
|
u64 time;
|
|
u64 timestamp;
|
|
u64 timeoffset;
|
|
struct perf_event_context *parent_ctx;
|
|
u64 parent_gen;
|
|
u64 generation;
|
|
int pin_count;
|
|
int nr_cgroups;
|
|
struct callback_head callback_head;
|
|
local_t nr_pending;
|
|
};
|
|
|
|
struct rseq {
|
|
__u32 cpu_id_start;
|
|
__u32 cpu_id;
|
|
__u64 rseq_cs;
|
|
__u32 flags;
|
|
__u32 node_id;
|
|
__u32 mm_cid;
|
|
char end[0];
|
|
};
|
|
|
|
struct ftrace_ret_stack {
|
|
unsigned long ret;
|
|
unsigned long func;
|
|
unsigned long long calltime;
|
|
unsigned long *retp;
|
|
};
|
|
|
|
struct arch_uprobe_task {
|
|
unsigned long saved_scratch_register;
|
|
unsigned int saved_trap_nr;
|
|
unsigned int saved_tf;
|
|
};
|
|
|
|
enum uprobe_task_state {
|
|
UTASK_RUNNING = 0,
|
|
UTASK_SSTEP = 1,
|
|
UTASK_SSTEP_ACK = 2,
|
|
UTASK_SSTEP_TRAPPED = 3,
|
|
};
|
|
|
|
struct uprobe;
|
|
|
|
struct return_instance;
|
|
|
|
struct uprobe_task {
|
|
enum uprobe_task_state state;
|
|
union {
|
|
struct {
|
|
struct arch_uprobe_task autask;
|
|
unsigned long vaddr;
|
|
};
|
|
struct {
|
|
struct callback_head dup_xol_work;
|
|
unsigned long dup_xol_addr;
|
|
};
|
|
};
|
|
struct uprobe *active_uprobe;
|
|
unsigned long xol_vaddr;
|
|
struct return_instance *return_instances;
|
|
unsigned int depth;
|
|
};
|
|
|
|
struct return_instance {
|
|
struct uprobe *uprobe;
|
|
unsigned long func;
|
|
unsigned long stack;
|
|
unsigned long orig_ret_vaddr;
|
|
bool chained;
|
|
struct return_instance *next;
|
|
};
|
|
|
|
struct math_emu_info {
|
|
long ___orig_eip;
|
|
struct pt_regs *regs;
|
|
};
|
|
|
|
typedef __kernel_uid32_t projid_t;
|
|
|
|
typedef struct {
|
|
projid_t val;
|
|
} kprojid_t;
|
|
|
|
enum quota_type {
|
|
USRQUOTA = 0,
|
|
GRPQUOTA = 1,
|
|
PRJQUOTA = 2,
|
|
};
|
|
|
|
struct kqid {
|
|
union {
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
kprojid_t projid;
|
|
};
|
|
enum quota_type type;
|
|
};
|
|
|
|
struct mem_dqblk {
|
|
qsize_t dqb_bhardlimit;
|
|
qsize_t dqb_bsoftlimit;
|
|
qsize_t dqb_curspace;
|
|
qsize_t dqb_rsvspace;
|
|
qsize_t dqb_ihardlimit;
|
|
qsize_t dqb_isoftlimit;
|
|
qsize_t dqb_curinodes;
|
|
time64_t dqb_btime;
|
|
time64_t dqb_itime;
|
|
};
|
|
|
|
struct dquot {
|
|
struct hlist_node dq_hash;
|
|
struct list_head dq_inuse;
|
|
struct list_head dq_free;
|
|
struct list_head dq_dirty;
|
|
struct mutex dq_lock;
|
|
spinlock_t dq_dqb_lock;
|
|
atomic_t dq_count;
|
|
struct super_block *dq_sb;
|
|
struct kqid dq_id;
|
|
loff_t dq_off;
|
|
unsigned long dq_flags;
|
|
struct mem_dqblk dq_dqb;
|
|
};
|
|
|
|
struct mem_cgroup;
|
|
|
|
struct shrink_control {
|
|
gfp_t gfp_mask;
|
|
int nid;
|
|
unsigned long nr_to_scan;
|
|
unsigned long nr_scanned;
|
|
struct mem_cgroup *memcg;
|
|
};
|
|
|
|
struct dquot_operations {
|
|
int (*write_dquot)(struct dquot *);
|
|
struct dquot * (*alloc_dquot)(struct super_block *, int);
|
|
void (*destroy_dquot)(struct dquot *);
|
|
int (*acquire_dquot)(struct dquot *);
|
|
int (*release_dquot)(struct dquot *);
|
|
int (*mark_dirty)(struct dquot *);
|
|
int (*write_info)(struct super_block *, int);
|
|
qsize_t * (*get_reserved_space)(struct inode *);
|
|
int (*get_projid)(struct inode *, kprojid_t *);
|
|
int (*get_inode_usage)(struct inode *, qsize_t *);
|
|
int (*get_next_id)(struct super_block *, struct kqid *);
|
|
};
|
|
|
|
struct qc_info;
|
|
|
|
struct qc_dqblk;
|
|
|
|
struct qc_state;
|
|
|
|
struct quotactl_ops {
|
|
int (*quota_on)(struct super_block *, int, int, const struct path *);
|
|
int (*quota_off)(struct super_block *, int);
|
|
int (*quota_enable)(struct super_block *, unsigned int);
|
|
int (*quota_disable)(struct super_block *, unsigned int);
|
|
int (*quota_sync)(struct super_block *, int);
|
|
int (*set_info)(struct super_block *, int, struct qc_info *);
|
|
int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
|
|
int (*get_nextdqblk)(struct super_block *, struct kqid *, struct qc_dqblk *);
|
|
int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
|
|
int (*get_state)(struct super_block *, struct qc_state *);
|
|
int (*rm_xquota)(struct super_block *, unsigned int);
|
|
};
|
|
|
|
struct qc_info {
|
|
int i_fieldmask;
|
|
unsigned int i_flags;
|
|
unsigned int i_spc_timelimit;
|
|
unsigned int i_ino_timelimit;
|
|
unsigned int i_rt_spc_timelimit;
|
|
unsigned int i_spc_warnlimit;
|
|
unsigned int i_ino_warnlimit;
|
|
unsigned int i_rt_spc_warnlimit;
|
|
};
|
|
|
|
struct qc_dqblk {
|
|
int d_fieldmask;
|
|
u64 d_spc_hardlimit;
|
|
u64 d_spc_softlimit;
|
|
u64 d_ino_hardlimit;
|
|
u64 d_ino_softlimit;
|
|
u64 d_space;
|
|
u64 d_ino_count;
|
|
s64 d_ino_timer;
|
|
s64 d_spc_timer;
|
|
int d_ino_warns;
|
|
int d_spc_warns;
|
|
u64 d_rt_spc_hardlimit;
|
|
u64 d_rt_spc_softlimit;
|
|
u64 d_rt_space;
|
|
s64 d_rt_spc_timer;
|
|
int d_rt_spc_warns;
|
|
};
|
|
|
|
struct qc_type_state {
|
|
unsigned int flags;
|
|
unsigned int spc_timelimit;
|
|
unsigned int ino_timelimit;
|
|
unsigned int rt_spc_timelimit;
|
|
unsigned int spc_warnlimit;
|
|
unsigned int ino_warnlimit;
|
|
unsigned int rt_spc_warnlimit;
|
|
unsigned long long ino;
|
|
blkcnt_t blocks;
|
|
blkcnt_t nextents;
|
|
};
|
|
|
|
struct qc_state {
|
|
unsigned int s_incoredqs;
|
|
struct qc_type_state s_state[3];
|
|
};
|
|
|
|
struct iomap;
|
|
|
|
struct fid;
|
|
|
|
struct export_operations {
|
|
int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *);
|
|
struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int);
|
|
struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int);
|
|
int (*get_name)(struct dentry *, char *, struct dentry *);
|
|
struct dentry * (*get_parent)(struct dentry *);
|
|
int (*commit_metadata)(struct inode *);
|
|
int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *);
|
|
int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *);
|
|
int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *);
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct xattr_handler {
|
|
const char *name;
|
|
const char *prefix;
|
|
int flags;
|
|
bool (*list)(struct dentry *);
|
|
int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t);
|
|
int (*set)(const struct xattr_handler *, struct mnt_idmap *, struct dentry *, struct inode *, const char *, const void *, size_t, int);
|
|
};
|
|
|
|
struct quota_format_type {
|
|
int qf_fmt_id;
|
|
const struct quota_format_ops *qf_ops;
|
|
struct module *qf_owner;
|
|
struct quota_format_type *qf_next;
|
|
};
|
|
|
|
struct quota_format_ops {
|
|
int (*check_quota_file)(struct super_block *, int);
|
|
int (*read_file_info)(struct super_block *, int);
|
|
int (*write_file_info)(struct super_block *, int);
|
|
int (*free_file_info)(struct super_block *, int);
|
|
int (*read_dqblk)(struct dquot *);
|
|
int (*commit_dqblk)(struct dquot *);
|
|
int (*release_dqblk)(struct dquot *);
|
|
int (*get_next_id)(struct super_block *, struct kqid *);
|
|
};
|
|
|
|
typedef struct {
|
|
int val[2];
|
|
} __kernel_fsid_t;
|
|
|
|
typedef struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *fsnotify_connp_t;
|
|
|
|
struct fsnotify_mark_connector {
|
|
spinlock_t lock;
|
|
unsigned short type;
|
|
unsigned short flags;
|
|
__kernel_fsid_t fsid;
|
|
union {
|
|
fsnotify_connp_t *obj;
|
|
struct fsnotify_mark_connector *destroy_next;
|
|
};
|
|
struct hlist_head list;
|
|
};
|
|
|
|
struct list_lru_one {
|
|
struct list_head list;
|
|
long nr_items;
|
|
};
|
|
|
|
struct list_lru_node {
|
|
spinlock_t lock;
|
|
struct list_lru_one lru;
|
|
long nr_items;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct delayed_call {
|
|
void (*fn)(void *);
|
|
void *arg;
|
|
};
|
|
|
|
typedef struct {
|
|
uid_t val;
|
|
} vfsuid_t;
|
|
|
|
typedef struct {
|
|
gid_t val;
|
|
} vfsgid_t;
|
|
|
|
struct iattr {
|
|
unsigned int ia_valid;
|
|
umode_t ia_mode;
|
|
union {
|
|
kuid_t ia_uid;
|
|
vfsuid_t ia_vfsuid;
|
|
};
|
|
union {
|
|
kgid_t ia_gid;
|
|
vfsgid_t ia_vfsgid;
|
|
};
|
|
loff_t ia_size;
|
|
struct timespec64 ia_atime;
|
|
struct timespec64 ia_mtime;
|
|
struct timespec64 ia_ctime;
|
|
struct file *ia_file;
|
|
};
|
|
|
|
struct kstat {
|
|
u32 result_mask;
|
|
umode_t mode;
|
|
unsigned int nlink;
|
|
uint32_t blksize;
|
|
u64 attributes;
|
|
u64 attributes_mask;
|
|
u64 ino;
|
|
dev_t dev;
|
|
dev_t rdev;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
loff_t size;
|
|
struct timespec64 atime;
|
|
struct timespec64 mtime;
|
|
struct timespec64 ctime;
|
|
struct timespec64 btime;
|
|
u64 blocks;
|
|
u64 mnt_id;
|
|
u32 dio_mem_align;
|
|
u32 dio_offset_align;
|
|
u64 change_cookie;
|
|
};
|
|
|
|
typedef u64 sector_t;
|
|
|
|
enum migrate_mode {
|
|
MIGRATE_ASYNC = 0,
|
|
MIGRATE_SYNC_LIGHT = 1,
|
|
MIGRATE_SYNC = 2,
|
|
MIGRATE_SYNC_NO_COPY = 3,
|
|
};
|
|
|
|
struct folio;
|
|
|
|
struct readahead_control;
|
|
|
|
struct swap_info_struct;
|
|
|
|
struct address_space_operations {
|
|
int (*writepage)(struct page *, struct writeback_control *);
|
|
int (*read_folio)(struct file *, struct folio *);
|
|
int (*writepages)(struct address_space *, struct writeback_control *);
|
|
bool (*dirty_folio)(struct address_space *, struct folio *);
|
|
void (*readahead)(struct readahead_control *);
|
|
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
|
|
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
|
|
sector_t (*bmap)(struct address_space *, sector_t);
|
|
void (*invalidate_folio)(struct folio *, size_t, size_t);
|
|
bool (*release_folio)(struct folio *, gfp_t);
|
|
void (*free_folio)(struct folio *);
|
|
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
|
|
int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode);
|
|
int (*launder_folio)(struct folio *);
|
|
bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
|
|
void (*is_dirty_writeback)(struct folio *, bool *, bool *);
|
|
int (*error_remove_page)(struct address_space *, struct page *);
|
|
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
|
|
void (*swap_deactivate)(struct file *);
|
|
int (*swap_rw)(struct kiocb *, struct iov_iter *);
|
|
};
|
|
|
|
struct folio {
|
|
union {
|
|
struct {
|
|
unsigned long flags;
|
|
union {
|
|
struct list_head lru;
|
|
struct {
|
|
void *__filler;
|
|
unsigned int mlock_count;
|
|
};
|
|
};
|
|
struct address_space *mapping;
|
|
unsigned long index;
|
|
void *private;
|
|
atomic_t _mapcount;
|
|
atomic_t _refcount;
|
|
};
|
|
struct page page;
|
|
};
|
|
union {
|
|
struct {
|
|
unsigned long _flags_1;
|
|
unsigned long _head_1;
|
|
unsigned char _folio_dtor;
|
|
unsigned char _folio_order;
|
|
atomic_t _entire_mapcount;
|
|
atomic_t _nr_pages_mapped;
|
|
atomic_t _pincount;
|
|
unsigned int _folio_nr_pages;
|
|
};
|
|
struct page __page_1;
|
|
};
|
|
union {
|
|
struct {
|
|
unsigned long _flags_2;
|
|
unsigned long _head_2;
|
|
void *_hugetlb_subpool;
|
|
void *_hugetlb_cgroup;
|
|
void *_hugetlb_cgroup_rsvd;
|
|
void *_hugetlb_hwpoison;
|
|
};
|
|
struct {
|
|
unsigned long _flags_2a;
|
|
unsigned long _head_2a;
|
|
struct list_head _deferred_list;
|
|
};
|
|
struct page __page_2;
|
|
};
|
|
};
|
|
|
|
enum kobj_ns_type {
|
|
KOBJ_NS_TYPE_NONE = 0,
|
|
KOBJ_NS_TYPE_NET = 1,
|
|
KOBJ_NS_TYPES = 2,
|
|
};
|
|
|
|
struct sock;
|
|
|
|
struct kobj_ns_type_operations {
|
|
enum kobj_ns_type type;
|
|
bool (*current_may_mount)();
|
|
void * (*grab_current_ns)();
|
|
const void * (*netlink_ns)(struct sock *);
|
|
const void * (*initial_ns)();
|
|
void (*drop_ns)(void *);
|
|
};
|
|
|
|
struct module_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *);
|
|
ssize_t (*store)(struct module_attribute *, struct module_kobject *, const char *, size_t);
|
|
void (*setup)(struct module *, const char *);
|
|
int (*test)(struct module *);
|
|
void (*free)(struct module *);
|
|
};
|
|
|
|
struct kernel_symbol {
|
|
int value_offset;
|
|
int name_offset;
|
|
int namespace_offset;
|
|
};
|
|
|
|
typedef signed char __s8;
|
|
|
|
typedef __s8 s8;
|
|
|
|
struct kernel_param_ops;
|
|
|
|
struct kparam_string;
|
|
|
|
struct kparam_array;
|
|
|
|
struct kernel_param {
|
|
const char *name;
|
|
struct module *mod;
|
|
const struct kernel_param_ops *ops;
|
|
const u16 perm;
|
|
s8 level;
|
|
u8 flags;
|
|
union {
|
|
void *arg;
|
|
const struct kparam_string *str;
|
|
const struct kparam_array *arr;
|
|
};
|
|
};
|
|
|
|
struct kernel_param_ops {
|
|
unsigned int flags;
|
|
int (*set)(const char *, const struct kernel_param *);
|
|
int (*get)(char *, const struct kernel_param *);
|
|
void (*free)(void *);
|
|
};
|
|
|
|
struct kparam_string {
|
|
unsigned int maxlen;
|
|
char *string;
|
|
};
|
|
|
|
struct kparam_array {
|
|
unsigned int max;
|
|
unsigned int elemsize;
|
|
unsigned int *num;
|
|
const struct kernel_param_ops *ops;
|
|
void *elem;
|
|
};
|
|
|
|
struct exception_table_entry {
|
|
int insn;
|
|
int fixup;
|
|
int data;
|
|
};
|
|
|
|
struct orc_entry {
|
|
s16 sp_offset;
|
|
s16 bp_offset;
|
|
unsigned int sp_reg: 4;
|
|
unsigned int bp_reg: 4;
|
|
unsigned int type: 2;
|
|
unsigned int end: 1;
|
|
} __attribute__((packed));
|
|
|
|
struct bug_entry {
|
|
int bug_addr_disp;
|
|
int file_disp;
|
|
unsigned short line;
|
|
unsigned short flags;
|
|
};
|
|
|
|
typedef __u32 Elf64_Word;
|
|
|
|
typedef __u16 Elf64_Half;
|
|
|
|
typedef __u64 Elf64_Addr;
|
|
|
|
typedef __u64 Elf64_Xword;
|
|
|
|
struct elf64_sym {
|
|
Elf64_Word st_name;
|
|
unsigned char st_info;
|
|
unsigned char st_other;
|
|
Elf64_Half st_shndx;
|
|
Elf64_Addr st_value;
|
|
Elf64_Xword st_size;
|
|
};
|
|
|
|
struct delayed_work {
|
|
struct work_struct work;
|
|
struct timer_list timer;
|
|
struct workqueue_struct *wq;
|
|
int cpu;
|
|
};
|
|
|
|
struct lockdep_map {};
|
|
|
|
struct srcu_node;
|
|
|
|
struct srcu_data;
|
|
|
|
struct srcu_struct {
|
|
struct srcu_node *node;
|
|
struct srcu_node *level[3];
|
|
int srcu_size_state;
|
|
struct mutex srcu_cb_mutex;
|
|
spinlock_t lock;
|
|
struct mutex srcu_gp_mutex;
|
|
unsigned int srcu_idx;
|
|
unsigned long srcu_gp_seq;
|
|
unsigned long srcu_gp_seq_needed;
|
|
unsigned long srcu_gp_seq_needed_exp;
|
|
unsigned long srcu_gp_start;
|
|
unsigned long srcu_last_gp_end;
|
|
unsigned long srcu_size_jiffies;
|
|
unsigned long srcu_n_lock_retries;
|
|
unsigned long srcu_n_exp_nodelay;
|
|
struct srcu_data __attribute__((btf_type_tag("percpu"))) *sda;
|
|
bool sda_is_static;
|
|
unsigned long srcu_barrier_seq;
|
|
struct mutex srcu_barrier_mutex;
|
|
struct completion srcu_barrier_completion;
|
|
atomic_t srcu_barrier_cpu_cnt;
|
|
unsigned long reschedule_jiffies;
|
|
unsigned long reschedule_count;
|
|
struct delayed_work work;
|
|
struct lockdep_map dep_map;
|
|
};
|
|
|
|
struct srcu_node {
|
|
spinlock_t lock;
|
|
unsigned long srcu_have_cbs[4];
|
|
unsigned long srcu_data_have_cbs[4];
|
|
unsigned long srcu_gp_seq_needed_exp;
|
|
struct srcu_node *srcu_parent;
|
|
int grplo;
|
|
int grphi;
|
|
};
|
|
|
|
struct rcu_segcblist {
|
|
struct callback_head *head;
|
|
struct callback_head **tails[4];
|
|
unsigned long gp_seq[4];
|
|
long len;
|
|
long seglen[4];
|
|
u8 flags;
|
|
};
|
|
|
|
struct srcu_data {
|
|
atomic_long_t srcu_lock_count[2];
|
|
atomic_long_t srcu_unlock_count[2];
|
|
int srcu_nmi_safety;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t lock;
|
|
struct rcu_segcblist srcu_cblist;
|
|
unsigned long srcu_gp_seq_needed;
|
|
unsigned long srcu_gp_seq_needed_exp;
|
|
bool srcu_cblist_invoking;
|
|
struct timer_list delay_work;
|
|
struct work_struct work;
|
|
struct callback_head srcu_barrier_head;
|
|
struct srcu_node *mynode;
|
|
unsigned long grpmask;
|
|
int cpu;
|
|
struct srcu_struct *ssp;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct tracepoint;
|
|
|
|
struct bpf_raw_event_map {
|
|
struct tracepoint *tp;
|
|
void *bpf_func;
|
|
u32 num_args;
|
|
u32 writable_size;
|
|
long: 64;
|
|
};
|
|
|
|
struct static_key_mod;
|
|
|
|
struct static_key {
|
|
atomic_t enabled;
|
|
union {
|
|
unsigned long type;
|
|
struct jump_entry *entries;
|
|
struct static_key_mod *next;
|
|
};
|
|
};
|
|
|
|
struct static_call_key;
|
|
|
|
struct tracepoint_func;
|
|
|
|
struct tracepoint {
|
|
const char *name;
|
|
struct static_key key;
|
|
struct static_call_key *static_call_key;
|
|
void *static_call_tramp;
|
|
void *iterator;
|
|
int (*regfunc)();
|
|
void (*unregfunc)();
|
|
struct tracepoint_func __attribute__((btf_type_tag("rcu"))) *funcs;
|
|
};
|
|
|
|
struct jump_entry {
|
|
s32 code;
|
|
s32 target;
|
|
long key;
|
|
};
|
|
|
|
struct static_call_mod;
|
|
|
|
struct static_call_key {
|
|
void *func;
|
|
union {
|
|
unsigned long type;
|
|
struct static_call_mod *mods;
|
|
struct static_call_site *sites;
|
|
};
|
|
};
|
|
|
|
struct static_call_mod {
|
|
struct static_call_mod *next;
|
|
struct module *mod;
|
|
struct static_call_site *sites;
|
|
};
|
|
|
|
struct static_call_site {
|
|
s32 addr;
|
|
s32 key;
|
|
};
|
|
|
|
struct tracepoint_func {
|
|
void *func;
|
|
void *data;
|
|
int prio;
|
|
};
|
|
|
|
typedef __u64 Elf64_Off;
|
|
|
|
struct elf64_hdr {
|
|
unsigned char e_ident[16];
|
|
Elf64_Half e_type;
|
|
Elf64_Half e_machine;
|
|
Elf64_Word e_version;
|
|
Elf64_Addr e_entry;
|
|
Elf64_Off e_phoff;
|
|
Elf64_Off e_shoff;
|
|
Elf64_Word e_flags;
|
|
Elf64_Half e_ehsize;
|
|
Elf64_Half e_phentsize;
|
|
Elf64_Half e_phnum;
|
|
Elf64_Half e_shentsize;
|
|
Elf64_Half e_shnum;
|
|
Elf64_Half e_shstrndx;
|
|
};
|
|
|
|
typedef struct elf64_hdr Elf64_Ehdr;
|
|
|
|
struct elf64_shdr;
|
|
|
|
typedef struct elf64_shdr Elf64_Shdr;
|
|
|
|
struct klp_modinfo {
|
|
Elf64_Ehdr hdr;
|
|
Elf64_Shdr *sechdrs;
|
|
char *secstrings;
|
|
unsigned int symndx;
|
|
};
|
|
|
|
struct elf64_shdr {
|
|
Elf64_Word sh_name;
|
|
Elf64_Word sh_type;
|
|
Elf64_Xword sh_flags;
|
|
Elf64_Addr sh_addr;
|
|
Elf64_Off sh_offset;
|
|
Elf64_Xword sh_size;
|
|
Elf64_Word sh_link;
|
|
Elf64_Word sh_info;
|
|
Elf64_Xword sh_addralign;
|
|
Elf64_Xword sh_entsize;
|
|
};
|
|
|
|
struct error_injection_entry {
|
|
unsigned long addr;
|
|
int etype;
|
|
};
|
|
|
|
enum dl_dev_state {
|
|
DL_DEV_NO_DRIVER = 0,
|
|
DL_DEV_PROBING = 1,
|
|
DL_DEV_DRIVER_BOUND = 2,
|
|
DL_DEV_UNBINDING = 3,
|
|
};
|
|
|
|
struct dev_links_info {
|
|
struct list_head suppliers;
|
|
struct list_head consumers;
|
|
struct list_head defer_sync;
|
|
enum dl_dev_state status;
|
|
};
|
|
|
|
struct pm_message {
|
|
int event;
|
|
};
|
|
|
|
typedef struct pm_message pm_message_t;
|
|
|
|
enum rpm_request {
|
|
RPM_REQ_NONE = 0,
|
|
RPM_REQ_IDLE = 1,
|
|
RPM_REQ_SUSPEND = 2,
|
|
RPM_REQ_AUTOSUSPEND = 3,
|
|
RPM_REQ_RESUME = 4,
|
|
};
|
|
|
|
enum rpm_status {
|
|
RPM_INVALID = -1,
|
|
RPM_ACTIVE = 0,
|
|
RPM_RESUMING = 1,
|
|
RPM_SUSPENDED = 2,
|
|
RPM_SUSPENDING = 3,
|
|
};
|
|
|
|
struct wakeup_source;
|
|
|
|
struct wake_irq;
|
|
|
|
struct pm_subsys_data;
|
|
|
|
struct dev_pm_qos;
|
|
|
|
struct dev_pm_info {
|
|
pm_message_t power_state;
|
|
unsigned int can_wakeup: 1;
|
|
unsigned int async_suspend: 1;
|
|
bool in_dpm_list: 1;
|
|
bool is_prepared: 1;
|
|
bool is_suspended: 1;
|
|
bool is_noirq_suspended: 1;
|
|
bool is_late_suspended: 1;
|
|
bool no_pm: 1;
|
|
bool early_init: 1;
|
|
bool direct_complete: 1;
|
|
u32 driver_flags;
|
|
spinlock_t lock;
|
|
struct list_head entry;
|
|
struct completion completion;
|
|
struct wakeup_source *wakeup;
|
|
bool wakeup_path: 1;
|
|
bool syscore: 1;
|
|
bool no_pm_callbacks: 1;
|
|
unsigned int must_resume: 1;
|
|
unsigned int may_skip_resume: 1;
|
|
struct hrtimer suspend_timer;
|
|
u64 timer_expires;
|
|
struct work_struct work;
|
|
wait_queue_head_t wait_queue;
|
|
struct wake_irq *wakeirq;
|
|
atomic_t usage_count;
|
|
atomic_t child_count;
|
|
unsigned int disable_depth: 3;
|
|
unsigned int idle_notification: 1;
|
|
unsigned int request_pending: 1;
|
|
unsigned int deferred_resume: 1;
|
|
unsigned int needs_force_resume: 1;
|
|
unsigned int runtime_auto: 1;
|
|
bool ignore_children: 1;
|
|
unsigned int no_callbacks: 1;
|
|
unsigned int irq_safe: 1;
|
|
unsigned int use_autosuspend: 1;
|
|
unsigned int timer_autosuspends: 1;
|
|
unsigned int memalloc_noio: 1;
|
|
unsigned int links_count;
|
|
enum rpm_request request;
|
|
enum rpm_status runtime_status;
|
|
enum rpm_status last_status;
|
|
int runtime_error;
|
|
int autosuspend_delay;
|
|
u64 last_busy;
|
|
u64 active_time;
|
|
u64 suspended_time;
|
|
u64 accounting_timestamp;
|
|
struct pm_subsys_data *subsys_data;
|
|
void (*set_latency_tolerance)(struct device *, s32);
|
|
struct dev_pm_qos *qos;
|
|
};
|
|
|
|
struct irq_domain;
|
|
|
|
struct msi_device_data;
|
|
|
|
struct dev_msi_info {
|
|
struct irq_domain *domain;
|
|
struct msi_device_data *data;
|
|
};
|
|
|
|
struct dev_archdata {};
|
|
|
|
enum device_removable {
|
|
DEVICE_REMOVABLE_NOT_SUPPORTED = 0,
|
|
DEVICE_REMOVABLE_UNKNOWN = 1,
|
|
DEVICE_FIXED = 2,
|
|
DEVICE_REMOVABLE = 3,
|
|
};
|
|
|
|
struct device_private;
|
|
|
|
struct device_type;
|
|
|
|
struct bus_type;
|
|
|
|
struct device_driver;
|
|
|
|
struct dev_pm_domain;
|
|
|
|
struct dma_map_ops;
|
|
|
|
struct bus_dma_region;
|
|
|
|
struct device_dma_parameters;
|
|
|
|
struct io_tlb_mem;
|
|
|
|
struct device_node;
|
|
|
|
struct fwnode_handle;
|
|
|
|
struct class;
|
|
|
|
struct iommu_group;
|
|
|
|
struct dev_iommu;
|
|
|
|
struct device_physical_location;
|
|
|
|
struct device {
|
|
struct kobject kobj;
|
|
struct device *parent;
|
|
struct device_private *p;
|
|
const char *init_name;
|
|
const struct device_type *type;
|
|
struct bus_type *bus;
|
|
struct device_driver *driver;
|
|
void *platform_data;
|
|
void *driver_data;
|
|
struct mutex mutex;
|
|
struct dev_links_info links;
|
|
struct dev_pm_info power;
|
|
struct dev_pm_domain *pm_domain;
|
|
struct dev_msi_info msi;
|
|
const struct dma_map_ops *dma_ops;
|
|
u64 *dma_mask;
|
|
u64 coherent_dma_mask;
|
|
u64 bus_dma_limit;
|
|
const struct bus_dma_region *dma_range_map;
|
|
struct device_dma_parameters *dma_parms;
|
|
struct list_head dma_pools;
|
|
struct io_tlb_mem *dma_io_tlb_mem;
|
|
struct dev_archdata archdata;
|
|
struct device_node *of_node;
|
|
struct fwnode_handle *fwnode;
|
|
dev_t devt;
|
|
u32 id;
|
|
spinlock_t devres_lock;
|
|
struct list_head devres_head;
|
|
struct class *class;
|
|
const struct attribute_group **groups;
|
|
void (*release)(struct device *);
|
|
struct iommu_group *iommu_group;
|
|
struct dev_iommu *iommu;
|
|
struct device_physical_location *physical_location;
|
|
enum device_removable removable;
|
|
bool offline_disabled: 1;
|
|
bool offline: 1;
|
|
bool of_node_reused: 1;
|
|
bool state_synced: 1;
|
|
bool can_match: 1;
|
|
};
|
|
|
|
struct dev_pm_ops;
|
|
|
|
struct device_type {
|
|
const char *name;
|
|
const struct attribute_group **groups;
|
|
int (*uevent)(const struct device *, struct kobj_uevent_env *);
|
|
char * (*devnode)(const struct device *, umode_t *, kuid_t *, kgid_t *);
|
|
void (*release)(struct device *);
|
|
const struct dev_pm_ops *pm;
|
|
};
|
|
|
|
struct dev_pm_ops {
|
|
int (*prepare)(struct device *);
|
|
void (*complete)(struct device *);
|
|
int (*suspend)(struct device *);
|
|
int (*resume)(struct device *);
|
|
int (*freeze)(struct device *);
|
|
int (*thaw)(struct device *);
|
|
int (*poweroff)(struct device *);
|
|
int (*restore)(struct device *);
|
|
int (*suspend_late)(struct device *);
|
|
int (*resume_early)(struct device *);
|
|
int (*freeze_late)(struct device *);
|
|
int (*thaw_early)(struct device *);
|
|
int (*poweroff_late)(struct device *);
|
|
int (*restore_early)(struct device *);
|
|
int (*suspend_noirq)(struct device *);
|
|
int (*resume_noirq)(struct device *);
|
|
int (*freeze_noirq)(struct device *);
|
|
int (*thaw_noirq)(struct device *);
|
|
int (*poweroff_noirq)(struct device *);
|
|
int (*restore_noirq)(struct device *);
|
|
int (*runtime_suspend)(struct device *);
|
|
int (*runtime_resume)(struct device *);
|
|
int (*runtime_idle)(struct device *);
|
|
};
|
|
|
|
struct iommu_ops;
|
|
|
|
struct bus_type {
|
|
const char *name;
|
|
const char *dev_name;
|
|
struct device *dev_root;
|
|
const struct attribute_group **bus_groups;
|
|
const struct attribute_group **dev_groups;
|
|
const struct attribute_group **drv_groups;
|
|
int (*match)(struct device *, struct device_driver *);
|
|
int (*uevent)(const struct device *, struct kobj_uevent_env *);
|
|
int (*probe)(struct device *);
|
|
void (*sync_state)(struct device *);
|
|
void (*remove)(struct device *);
|
|
void (*shutdown)(struct device *);
|
|
int (*online)(struct device *);
|
|
int (*offline)(struct device *);
|
|
int (*suspend)(struct device *, pm_message_t);
|
|
int (*resume)(struct device *);
|
|
int (*num_vf)(struct device *);
|
|
int (*dma_configure)(struct device *);
|
|
void (*dma_cleanup)(struct device *);
|
|
const struct dev_pm_ops *pm;
|
|
const struct iommu_ops *iommu_ops;
|
|
bool need_parent_lock;
|
|
};
|
|
|
|
enum probe_type {
|
|
PROBE_DEFAULT_STRATEGY = 0,
|
|
PROBE_PREFER_ASYNCHRONOUS = 1,
|
|
PROBE_FORCE_SYNCHRONOUS = 2,
|
|
};
|
|
|
|
struct of_device_id;
|
|
|
|
struct acpi_device_id;
|
|
|
|
struct driver_private;
|
|
|
|
struct device_driver {
|
|
const char *name;
|
|
struct bus_type *bus;
|
|
struct module *owner;
|
|
const char *mod_name;
|
|
bool suppress_bind_attrs;
|
|
enum probe_type probe_type;
|
|
const struct of_device_id *of_match_table;
|
|
const struct acpi_device_id *acpi_match_table;
|
|
int (*probe)(struct device *);
|
|
void (*sync_state)(struct device *);
|
|
int (*remove)(struct device *);
|
|
void (*shutdown)(struct device *);
|
|
int (*suspend)(struct device *, pm_message_t);
|
|
int (*resume)(struct device *);
|
|
const struct attribute_group **groups;
|
|
const struct attribute_group **dev_groups;
|
|
const struct dev_pm_ops *pm;
|
|
void (*coredump)(struct device *);
|
|
struct driver_private *p;
|
|
};
|
|
|
|
struct of_device_id {
|
|
char name[32];
|
|
char type[32];
|
|
char compatible[128];
|
|
const void *data;
|
|
};
|
|
|
|
typedef unsigned long kernel_ulong_t;
|
|
|
|
struct acpi_device_id {
|
|
__u8 id[16];
|
|
kernel_ulong_t driver_data;
|
|
__u32 cls;
|
|
__u32 cls_msk;
|
|
};
|
|
|
|
enum iommu_cap {
|
|
IOMMU_CAP_CACHE_COHERENCY = 0,
|
|
IOMMU_CAP_NOEXEC = 1,
|
|
IOMMU_CAP_PRE_BOOT_PROTECTION = 2,
|
|
IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3,
|
|
};
|
|
|
|
enum iommu_dev_features {
|
|
IOMMU_DEV_FEAT_SVA = 0,
|
|
IOMMU_DEV_FEAT_IOPF = 1,
|
|
};
|
|
|
|
typedef unsigned int ioasid_t;
|
|
|
|
struct iommu_domain;
|
|
|
|
struct iommu_device;
|
|
|
|
struct of_phandle_args;
|
|
|
|
struct iommu_fault_event;
|
|
|
|
struct iommu_page_response;
|
|
|
|
struct iommu_domain_ops;
|
|
|
|
struct iommu_ops {
|
|
bool (*capable)(struct device *, enum iommu_cap);
|
|
struct iommu_domain * (*domain_alloc)(unsigned int);
|
|
struct iommu_device * (*probe_device)(struct device *);
|
|
void (*release_device)(struct device *);
|
|
void (*probe_finalize)(struct device *);
|
|
void (*set_platform_dma_ops)(struct device *);
|
|
struct iommu_group * (*device_group)(struct device *);
|
|
void (*get_resv_regions)(struct device *, struct list_head *);
|
|
int (*of_xlate)(struct device *, struct of_phandle_args *);
|
|
bool (*is_attach_deferred)(struct device *);
|
|
int (*dev_enable_feat)(struct device *, enum iommu_dev_features);
|
|
int (*dev_disable_feat)(struct device *, enum iommu_dev_features);
|
|
int (*page_response)(struct device *, struct iommu_fault_event *, struct iommu_page_response *);
|
|
int (*def_domain_type)(struct device *);
|
|
void (*remove_dev_pasid)(struct device *, ioasid_t);
|
|
const struct iommu_domain_ops *default_domain_ops;
|
|
unsigned long pgsize_bitmap;
|
|
struct module *owner;
|
|
};
|
|
|
|
struct wakeup_source {
|
|
const char *name;
|
|
int id;
|
|
struct list_head entry;
|
|
spinlock_t lock;
|
|
struct wake_irq *wakeirq;
|
|
struct timer_list timer;
|
|
unsigned long timer_expires;
|
|
ktime_t total_time;
|
|
ktime_t max_time;
|
|
ktime_t last_time;
|
|
ktime_t start_prevent_time;
|
|
ktime_t prevent_sleep_time;
|
|
unsigned long event_count;
|
|
unsigned long active_count;
|
|
unsigned long relax_count;
|
|
unsigned long expire_count;
|
|
unsigned long wakeup_count;
|
|
struct device *dev;
|
|
bool active: 1;
|
|
bool autosleep_enabled: 1;
|
|
};
|
|
|
|
struct pm_subsys_data {
|
|
spinlock_t lock;
|
|
unsigned int refcount;
|
|
};
|
|
|
|
struct dev_pm_domain {
|
|
struct dev_pm_ops ops;
|
|
int (*start)(struct device *);
|
|
void (*detach)(struct device *, bool);
|
|
int (*activate)(struct device *);
|
|
void (*sync)(struct device *);
|
|
void (*dismiss)(struct device *);
|
|
};
|
|
|
|
typedef u64 dma_addr_t;
|
|
|
|
enum dma_data_direction {
|
|
DMA_BIDIRECTIONAL = 0,
|
|
DMA_TO_DEVICE = 1,
|
|
DMA_FROM_DEVICE = 2,
|
|
DMA_NONE = 3,
|
|
};
|
|
|
|
typedef u64 phys_addr_t;
|
|
|
|
struct sg_table;
|
|
|
|
struct scatterlist;
|
|
|
|
struct dma_map_ops {
|
|
unsigned int flags;
|
|
void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, unsigned long);
|
|
void (*free)(struct device *, size_t, void *, dma_addr_t, unsigned long);
|
|
struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t);
|
|
void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction);
|
|
struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, unsigned long);
|
|
void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction);
|
|
int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, unsigned long);
|
|
int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, unsigned long);
|
|
dma_addr_t (*map_page)(struct device *, struct page *, unsigned long, size_t, enum dma_data_direction, unsigned long);
|
|
void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long);
|
|
int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long);
|
|
void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long);
|
|
dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, unsigned long);
|
|
void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long);
|
|
void (*sync_single_for_cpu)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
|
|
void (*sync_single_for_device)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
|
|
void (*sync_sg_for_cpu)(struct device *, struct scatterlist *, int, enum dma_data_direction);
|
|
void (*sync_sg_for_device)(struct device *, struct scatterlist *, int, enum dma_data_direction);
|
|
void (*cache_sync)(struct device *, void *, size_t, enum dma_data_direction);
|
|
int (*dma_supported)(struct device *, u64);
|
|
u64 (*get_required_mask)(struct device *);
|
|
size_t (*max_mapping_size)(struct device *);
|
|
size_t (*opt_mapping_size)();
|
|
unsigned long (*get_merge_boundary)(struct device *);
|
|
};
|
|
|
|
struct bus_dma_region {
|
|
phys_addr_t cpu_start;
|
|
dma_addr_t dma_start;
|
|
u64 size;
|
|
u64 offset;
|
|
};
|
|
|
|
struct device_dma_parameters {
|
|
unsigned int max_segment_size;
|
|
unsigned int min_align_mask;
|
|
unsigned long segment_boundary_mask;
|
|
};
|
|
|
|
struct subsys_private;
|
|
|
|
struct class {
|
|
const char *name;
|
|
struct module *owner;
|
|
const struct attribute_group **class_groups;
|
|
const struct attribute_group **dev_groups;
|
|
struct kobject *dev_kobj;
|
|
int (*dev_uevent)(const struct device *, struct kobj_uevent_env *);
|
|
char * (*devnode)(const struct device *, umode_t *);
|
|
void (*class_release)(struct class *);
|
|
void (*dev_release)(struct device *);
|
|
int (*shutdown_pre)(struct device *);
|
|
const struct kobj_ns_type_operations *ns_type;
|
|
const void * (*namespace)(const struct device *);
|
|
void (*get_ownership)(const struct device *, kuid_t *, kgid_t *);
|
|
const struct dev_pm_ops *pm;
|
|
struct subsys_private *p;
|
|
};
|
|
|
|
enum device_physical_location_panel {
|
|
DEVICE_PANEL_TOP = 0,
|
|
DEVICE_PANEL_BOTTOM = 1,
|
|
DEVICE_PANEL_LEFT = 2,
|
|
DEVICE_PANEL_RIGHT = 3,
|
|
DEVICE_PANEL_FRONT = 4,
|
|
DEVICE_PANEL_BACK = 5,
|
|
DEVICE_PANEL_UNKNOWN = 6,
|
|
};
|
|
|
|
enum device_physical_location_vertical_position {
|
|
DEVICE_VERT_POS_UPPER = 0,
|
|
DEVICE_VERT_POS_CENTER = 1,
|
|
DEVICE_VERT_POS_LOWER = 2,
|
|
};
|
|
|
|
enum device_physical_location_horizontal_position {
|
|
DEVICE_HORI_POS_LEFT = 0,
|
|
DEVICE_HORI_POS_CENTER = 1,
|
|
DEVICE_HORI_POS_RIGHT = 2,
|
|
};
|
|
|
|
struct device_physical_location {
|
|
enum device_physical_location_panel panel;
|
|
enum device_physical_location_vertical_position vertical_position;
|
|
enum device_physical_location_horizontal_position horizontal_position;
|
|
bool dock;
|
|
bool lid;
|
|
};
|
|
|
|
struct perf_event_pmu_context {
|
|
struct pmu *pmu;
|
|
struct perf_event_context *ctx;
|
|
struct list_head pmu_ctx_entry;
|
|
struct list_head pinned_active;
|
|
struct list_head flexible_active;
|
|
unsigned int embedded: 1;
|
|
unsigned int nr_events;
|
|
atomic_t refcount;
|
|
struct callback_head callback_head;
|
|
void *task_ctx_data;
|
|
int rotate_necessary;
|
|
};
|
|
|
|
struct perf_cpu_pmu_context {
|
|
struct perf_event_pmu_context epc;
|
|
struct perf_event_pmu_context *task_epc;
|
|
struct list_head sched_cb_entry;
|
|
int sched_cb_usage;
|
|
int active_oncpu;
|
|
int exclusive;
|
|
raw_spinlock_t hrtimer_lock;
|
|
struct hrtimer hrtimer;
|
|
ktime_t hrtimer_interval;
|
|
unsigned int hrtimer_active;
|
|
};
|
|
|
|
struct perf_output_handle {
|
|
struct perf_event *event;
|
|
struct perf_buffer *rb;
|
|
unsigned long wakeup;
|
|
unsigned long size;
|
|
u64 aux_flags;
|
|
union {
|
|
void *addr;
|
|
unsigned long head;
|
|
};
|
|
int page;
|
|
};
|
|
|
|
struct fasync_struct {
|
|
rwlock_t fa_lock;
|
|
int magic;
|
|
int fa_fd;
|
|
struct fasync_struct *fa_next;
|
|
struct file *fa_file;
|
|
struct callback_head fa_rcu;
|
|
};
|
|
|
|
struct perf_addr_filter_range {
|
|
unsigned long start;
|
|
unsigned long size;
|
|
};
|
|
|
|
union perf_sample_weight {
|
|
__u64 full;
|
|
struct {
|
|
__u32 var1_dw;
|
|
__u16 var2_w;
|
|
__u16 var3_w;
|
|
};
|
|
};
|
|
|
|
union perf_mem_data_src {
|
|
__u64 val;
|
|
struct {
|
|
__u64 mem_op: 5;
|
|
__u64 mem_lvl: 14;
|
|
__u64 mem_snoop: 5;
|
|
__u64 mem_lock: 2;
|
|
__u64 mem_dtlb: 7;
|
|
__u64 mem_lvl_num: 4;
|
|
__u64 mem_remote: 1;
|
|
__u64 mem_snoopx: 2;
|
|
__u64 mem_blk: 3;
|
|
__u64 mem_hops: 3;
|
|
__u64 mem_rsvd: 18;
|
|
};
|
|
};
|
|
|
|
struct perf_regs {
|
|
__u64 abi;
|
|
struct pt_regs *regs;
|
|
};
|
|
|
|
struct perf_callchain_entry;
|
|
|
|
struct perf_raw_record;
|
|
|
|
struct perf_branch_stack;
|
|
|
|
struct perf_sample_data {
|
|
u64 sample_flags;
|
|
u64 period;
|
|
u64 dyn_size;
|
|
u64 type;
|
|
struct {
|
|
u32 pid;
|
|
u32 tid;
|
|
} tid_entry;
|
|
u64 time;
|
|
u64 id;
|
|
struct {
|
|
u32 cpu;
|
|
u32 reserved;
|
|
} cpu_entry;
|
|
u64 ip;
|
|
struct perf_callchain_entry *callchain;
|
|
struct perf_raw_record *raw;
|
|
struct perf_branch_stack *br_stack;
|
|
union perf_sample_weight weight;
|
|
union perf_mem_data_src data_src;
|
|
u64 txn;
|
|
struct perf_regs regs_user;
|
|
struct perf_regs regs_intr;
|
|
u64 stack_user_size;
|
|
u64 stream_id;
|
|
u64 cgroup;
|
|
u64 addr;
|
|
u64 phys_addr;
|
|
u64 data_page_size;
|
|
u64 code_page_size;
|
|
u64 aux_size;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct perf_callchain_entry {
|
|
__u64 nr;
|
|
__u64 ip[0];
|
|
};
|
|
|
|
typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long);
|
|
|
|
struct perf_raw_frag {
|
|
union {
|
|
struct perf_raw_frag *next;
|
|
unsigned long pad;
|
|
};
|
|
perf_copy_f copy;
|
|
void *data;
|
|
u32 size;
|
|
} __attribute__((packed));
|
|
|
|
struct perf_raw_record {
|
|
struct perf_raw_frag frag;
|
|
u32 size;
|
|
};
|
|
|
|
struct perf_branch_entry {
|
|
__u64 from;
|
|
__u64 to;
|
|
__u64 mispred: 1;
|
|
__u64 predicted: 1;
|
|
__u64 in_tx: 1;
|
|
__u64 abort: 1;
|
|
__u64 cycles: 16;
|
|
__u64 type: 4;
|
|
__u64 spec: 2;
|
|
__u64 new_type: 4;
|
|
__u64 priv: 3;
|
|
__u64 reserved: 31;
|
|
};
|
|
|
|
struct perf_branch_stack {
|
|
__u64 nr;
|
|
__u64 hw_idx;
|
|
struct perf_branch_entry entries[0];
|
|
};
|
|
|
|
struct ftrace_regs {
|
|
struct pt_regs regs;
|
|
};
|
|
|
|
struct ftrace_hash {
|
|
unsigned long size_bits;
|
|
struct hlist_head *buckets;
|
|
unsigned long count;
|
|
unsigned long flags;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct perf_cgroup_info;
|
|
|
|
struct perf_cgroup {
|
|
struct cgroup_subsys_state css;
|
|
struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info;
|
|
};
|
|
|
|
struct perf_cgroup_info {
|
|
u64 time;
|
|
u64 timestamp;
|
|
u64 timeoffset;
|
|
int active;
|
|
};
|
|
|
|
struct perf_guest_switch_msr {
|
|
unsigned int msr;
|
|
u64 host;
|
|
u64 guest;
|
|
};
|
|
|
|
struct debug_store;
|
|
|
|
struct er_account;
|
|
|
|
struct intel_shared_regs;
|
|
|
|
struct intel_excl_cntrs;
|
|
|
|
struct amd_nb;
|
|
|
|
struct cpu_hw_events {
|
|
struct perf_event *events[64];
|
|
unsigned long active_mask[1];
|
|
unsigned long dirty[1];
|
|
int enabled;
|
|
int n_events;
|
|
int n_added;
|
|
int n_txn;
|
|
int n_txn_pair;
|
|
int n_txn_metric;
|
|
int assign[64];
|
|
u64 tags[64];
|
|
struct perf_event *event_list[64];
|
|
struct event_constraint *event_constraint[64];
|
|
int n_excl;
|
|
unsigned int txn_flags;
|
|
int is_fake;
|
|
struct debug_store *ds;
|
|
void *ds_pebs_vaddr;
|
|
void *ds_bts_vaddr;
|
|
u64 pebs_enabled;
|
|
int n_pebs;
|
|
int n_large_pebs;
|
|
int n_pebs_via_pt;
|
|
int pebs_output;
|
|
u64 pebs_data_cfg;
|
|
u64 active_pebs_data_cfg;
|
|
int pebs_record_size;
|
|
u64 fixed_ctrl_val;
|
|
u64 active_fixed_ctrl_val;
|
|
int lbr_users;
|
|
int lbr_pebs_users;
|
|
struct perf_branch_stack lbr_stack;
|
|
struct perf_branch_entry lbr_entries[32];
|
|
union {
|
|
struct er_account *lbr_sel;
|
|
struct er_account *lbr_ctl;
|
|
};
|
|
u64 br_sel;
|
|
void *last_task_ctx;
|
|
int last_log_id;
|
|
int lbr_select;
|
|
void *lbr_xsave;
|
|
u64 intel_ctrl_guest_mask;
|
|
u64 intel_ctrl_host_mask;
|
|
struct perf_guest_switch_msr guest_switch_msrs[64];
|
|
u64 intel_cp_status;
|
|
struct intel_shared_regs *shared_regs;
|
|
struct event_constraint *constraint_list;
|
|
struct intel_excl_cntrs *excl_cntrs;
|
|
int excl_thread_id;
|
|
u64 tfa_shadow;
|
|
int n_metric;
|
|
struct amd_nb *amd_nb;
|
|
int brs_active;
|
|
u64 perf_ctr_virt_mask;
|
|
int n_pair;
|
|
void *kfree_on_online[2];
|
|
struct pmu *pmu;
|
|
};
|
|
|
|
struct event_constraint {
|
|
union {
|
|
unsigned long idxmsk[1];
|
|
u64 idxmsk64;
|
|
};
|
|
u64 code;
|
|
u64 cmask;
|
|
int weight;
|
|
int overlap;
|
|
int flags;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct debug_store {
|
|
u64 bts_buffer_base;
|
|
u64 bts_index;
|
|
u64 bts_absolute_maximum;
|
|
u64 bts_interrupt_threshold;
|
|
u64 pebs_buffer_base;
|
|
u64 pebs_index;
|
|
u64 pebs_absolute_maximum;
|
|
u64 pebs_interrupt_threshold;
|
|
u64 pebs_event_reset[48];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct er_account {
|
|
raw_spinlock_t lock;
|
|
u64 config;
|
|
u64 reg;
|
|
atomic_t ref;
|
|
};
|
|
|
|
struct intel_shared_regs {
|
|
struct er_account regs[7];
|
|
int refcnt;
|
|
unsigned int core_id;
|
|
};
|
|
|
|
enum intel_excl_state_type {
|
|
INTEL_EXCL_UNUSED = 0,
|
|
INTEL_EXCL_SHARED = 1,
|
|
INTEL_EXCL_EXCLUSIVE = 2,
|
|
};
|
|
|
|
struct intel_excl_states {
|
|
enum intel_excl_state_type state[64];
|
|
bool sched_started;
|
|
};
|
|
|
|
struct intel_excl_cntrs {
|
|
raw_spinlock_t lock;
|
|
struct intel_excl_states states[2];
|
|
union {
|
|
u16 has_exclusive[2];
|
|
u32 exclusive_present;
|
|
};
|
|
int refcnt;
|
|
unsigned int core_id;
|
|
};
|
|
|
|
struct amd_nb {
|
|
int nb_id;
|
|
int refcnt;
|
|
struct perf_event *owners[64];
|
|
struct event_constraint event_constraints[64];
|
|
};
|
|
|
|
struct x86_pmu_quirk {
|
|
struct x86_pmu_quirk *next;
|
|
void (*func)();
|
|
};
|
|
|
|
struct extra_reg {
|
|
unsigned int event;
|
|
unsigned int msr;
|
|
u64 config_mask;
|
|
u64 valid_mask;
|
|
int idx;
|
|
bool extra_msr_access;
|
|
};
|
|
|
|
struct x86_hybrid_pmu {
|
|
struct pmu pmu;
|
|
const char *name;
|
|
u8 cpu_type;
|
|
cpumask_t supported_cpus;
|
|
union perf_capabilities intel_cap;
|
|
u64 intel_ctrl;
|
|
int max_pebs_events;
|
|
int num_counters;
|
|
int num_counters_fixed;
|
|
struct event_constraint unconstrained;
|
|
u64 hw_cache_event_ids[42];
|
|
u64 hw_cache_extra_regs[42];
|
|
struct event_constraint *event_constraints;
|
|
struct event_constraint *pebs_constraints;
|
|
struct extra_reg *extra_regs;
|
|
unsigned int late_ack: 1;
|
|
unsigned int mid_ack: 1;
|
|
unsigned int enabled_ack: 1;
|
|
u64 pebs_data_source[16];
|
|
};
|
|
|
|
struct p4_event_bind {
|
|
unsigned int opcode;
|
|
unsigned int escr_msr[2];
|
|
unsigned int escr_emask;
|
|
unsigned int shared;
|
|
signed char cntr[6];
|
|
};
|
|
|
|
struct p4_pebs_bind {
|
|
unsigned int metric_pebs;
|
|
unsigned int metric_vert;
|
|
};
|
|
|
|
struct p4_event_alias {
|
|
u64 original;
|
|
u64 alternative;
|
|
};
|
|
|
|
struct device_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct device *, struct device_attribute *, char *);
|
|
ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t);
|
|
};
|
|
|
|
enum {
|
|
false = 0,
|
|
true = 1,
|
|
};
|
|
|
|
enum perf_event_sample_format {
|
|
PERF_SAMPLE_IP = 1,
|
|
PERF_SAMPLE_TID = 2,
|
|
PERF_SAMPLE_TIME = 4,
|
|
PERF_SAMPLE_ADDR = 8,
|
|
PERF_SAMPLE_READ = 16,
|
|
PERF_SAMPLE_CALLCHAIN = 32,
|
|
PERF_SAMPLE_ID = 64,
|
|
PERF_SAMPLE_CPU = 128,
|
|
PERF_SAMPLE_PERIOD = 256,
|
|
PERF_SAMPLE_STREAM_ID = 512,
|
|
PERF_SAMPLE_RAW = 1024,
|
|
PERF_SAMPLE_BRANCH_STACK = 2048,
|
|
PERF_SAMPLE_REGS_USER = 4096,
|
|
PERF_SAMPLE_STACK_USER = 8192,
|
|
PERF_SAMPLE_WEIGHT = 16384,
|
|
PERF_SAMPLE_DATA_SRC = 32768,
|
|
PERF_SAMPLE_IDENTIFIER = 65536,
|
|
PERF_SAMPLE_TRANSACTION = 131072,
|
|
PERF_SAMPLE_REGS_INTR = 262144,
|
|
PERF_SAMPLE_PHYS_ADDR = 524288,
|
|
PERF_SAMPLE_AUX = 1048576,
|
|
PERF_SAMPLE_CGROUP = 2097152,
|
|
PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
|
|
PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
|
|
PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
|
|
PERF_SAMPLE_MAX = 33554432,
|
|
};
|
|
|
|
enum P4_PEBS_METRIC {
|
|
P4_PEBS_METRIC__none = 0,
|
|
P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1,
|
|
P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2,
|
|
P4_PEBS_METRIC__dtlb_load_miss_retired = 3,
|
|
P4_PEBS_METRIC__dtlb_store_miss_retired = 4,
|
|
P4_PEBS_METRIC__dtlb_all_miss_retired = 5,
|
|
P4_PEBS_METRIC__tagged_mispred_branch = 6,
|
|
P4_PEBS_METRIC__mob_load_replay_retired = 7,
|
|
P4_PEBS_METRIC__split_load_retired = 8,
|
|
P4_PEBS_METRIC__split_store_retired = 9,
|
|
P4_PEBS_METRIC__max = 10,
|
|
};
|
|
|
|
enum perf_type_id {
|
|
PERF_TYPE_HARDWARE = 0,
|
|
PERF_TYPE_SOFTWARE = 1,
|
|
PERF_TYPE_TRACEPOINT = 2,
|
|
PERF_TYPE_HW_CACHE = 3,
|
|
PERF_TYPE_RAW = 4,
|
|
PERF_TYPE_BREAKPOINT = 5,
|
|
PERF_TYPE_MAX = 6,
|
|
};
|
|
|
|
enum P4_EVENTS {
|
|
P4_EVENT_TC_DELIVER_MODE = 0,
|
|
P4_EVENT_BPU_FETCH_REQUEST = 1,
|
|
P4_EVENT_ITLB_REFERENCE = 2,
|
|
P4_EVENT_MEMORY_CANCEL = 3,
|
|
P4_EVENT_MEMORY_COMPLETE = 4,
|
|
P4_EVENT_LOAD_PORT_REPLAY = 5,
|
|
P4_EVENT_STORE_PORT_REPLAY = 6,
|
|
P4_EVENT_MOB_LOAD_REPLAY = 7,
|
|
P4_EVENT_PAGE_WALK_TYPE = 8,
|
|
P4_EVENT_BSQ_CACHE_REFERENCE = 9,
|
|
P4_EVENT_IOQ_ALLOCATION = 10,
|
|
P4_EVENT_IOQ_ACTIVE_ENTRIES = 11,
|
|
P4_EVENT_FSB_DATA_ACTIVITY = 12,
|
|
P4_EVENT_BSQ_ALLOCATION = 13,
|
|
P4_EVENT_BSQ_ACTIVE_ENTRIES = 14,
|
|
P4_EVENT_SSE_INPUT_ASSIST = 15,
|
|
P4_EVENT_PACKED_SP_UOP = 16,
|
|
P4_EVENT_PACKED_DP_UOP = 17,
|
|
P4_EVENT_SCALAR_SP_UOP = 18,
|
|
P4_EVENT_SCALAR_DP_UOP = 19,
|
|
P4_EVENT_64BIT_MMX_UOP = 20,
|
|
P4_EVENT_128BIT_MMX_UOP = 21,
|
|
P4_EVENT_X87_FP_UOP = 22,
|
|
P4_EVENT_TC_MISC = 23,
|
|
P4_EVENT_GLOBAL_POWER_EVENTS = 24,
|
|
P4_EVENT_TC_MS_XFER = 25,
|
|
P4_EVENT_UOP_QUEUE_WRITES = 26,
|
|
P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27,
|
|
P4_EVENT_RETIRED_BRANCH_TYPE = 28,
|
|
P4_EVENT_RESOURCE_STALL = 29,
|
|
P4_EVENT_WC_BUFFER = 30,
|
|
P4_EVENT_B2B_CYCLES = 31,
|
|
P4_EVENT_BNR = 32,
|
|
P4_EVENT_SNOOP = 33,
|
|
P4_EVENT_RESPONSE = 34,
|
|
P4_EVENT_FRONT_END_EVENT = 35,
|
|
P4_EVENT_EXECUTION_EVENT = 36,
|
|
P4_EVENT_REPLAY_EVENT = 37,
|
|
P4_EVENT_INSTR_RETIRED = 38,
|
|
P4_EVENT_UOPS_RETIRED = 39,
|
|
P4_EVENT_UOP_TYPE = 40,
|
|
P4_EVENT_BRANCH_RETIRED = 41,
|
|
P4_EVENT_MISPRED_BRANCH_RETIRED = 42,
|
|
P4_EVENT_X87_ASSIST = 43,
|
|
P4_EVENT_MACHINE_CLEAR = 44,
|
|
P4_EVENT_INSTR_COMPLETED = 45,
|
|
};
|
|
|
|
typedef unsigned long uintptr_t;
|
|
|
|
struct obs_kernel_param {
|
|
const char *str;
|
|
int (*setup_func)(char *);
|
|
int early;
|
|
};
|
|
|
|
enum node_states {
|
|
N_POSSIBLE = 0,
|
|
N_ONLINE = 1,
|
|
N_NORMAL_MEMORY = 2,
|
|
N_HIGH_MEMORY = 2,
|
|
N_MEMORY = 3,
|
|
N_CPU = 4,
|
|
N_GENERIC_INITIATOR = 5,
|
|
NR_NODE_STATES = 6,
|
|
};
|
|
|
|
enum migratetype {
|
|
MIGRATE_UNMOVABLE = 0,
|
|
MIGRATE_MOVABLE = 1,
|
|
MIGRATE_RECLAIMABLE = 2,
|
|
MIGRATE_PCPTYPES = 3,
|
|
MIGRATE_HIGHATOMIC = 3,
|
|
MIGRATE_TYPES = 4,
|
|
};
|
|
|
|
enum zone_stat_item {
|
|
NR_FREE_PAGES = 0,
|
|
NR_ZONE_LRU_BASE = 1,
|
|
NR_ZONE_INACTIVE_ANON = 1,
|
|
NR_ZONE_ACTIVE_ANON = 2,
|
|
NR_ZONE_INACTIVE_FILE = 3,
|
|
NR_ZONE_ACTIVE_FILE = 4,
|
|
NR_ZONE_UNEVICTABLE = 5,
|
|
NR_ZONE_WRITE_PENDING = 6,
|
|
NR_MLOCK = 7,
|
|
NR_BOUNCE = 8,
|
|
NR_FREE_CMA_PAGES = 9,
|
|
NR_VM_ZONE_STAT_ITEMS = 10,
|
|
};
|
|
|
|
enum pageflags {
|
|
PG_locked = 0,
|
|
PG_referenced = 1,
|
|
PG_uptodate = 2,
|
|
PG_dirty = 3,
|
|
PG_lru = 4,
|
|
PG_active = 5,
|
|
PG_workingset = 6,
|
|
PG_waiters = 7,
|
|
PG_error = 8,
|
|
PG_slab = 9,
|
|
PG_owner_priv_1 = 10,
|
|
PG_arch_1 = 11,
|
|
PG_reserved = 12,
|
|
PG_private = 13,
|
|
PG_private_2 = 14,
|
|
PG_writeback = 15,
|
|
PG_head = 16,
|
|
PG_mappedtodisk = 17,
|
|
PG_reclaim = 18,
|
|
PG_swapbacked = 19,
|
|
PG_unevictable = 20,
|
|
PG_mlocked = 21,
|
|
PG_uncached = 22,
|
|
__NR_PAGEFLAGS = 23,
|
|
PG_readahead = 18,
|
|
PG_anon_exclusive = 17,
|
|
PG_checked = 10,
|
|
PG_swapcache = 10,
|
|
PG_fscache = 14,
|
|
PG_pinned = 10,
|
|
PG_savepinned = 3,
|
|
PG_foreign = 10,
|
|
PG_xen_remapped = 10,
|
|
PG_slob_free = 13,
|
|
PG_isolated = 18,
|
|
PG_reported = 2,
|
|
};
|
|
|
|
enum compound_dtor_id {
|
|
NULL_COMPOUND_DTOR = 0,
|
|
COMPOUND_PAGE_DTOR = 1,
|
|
HUGETLB_PAGE_DTOR = 2,
|
|
NR_COMPOUND_DTORS = 3,
|
|
};
|
|
|
|
struct elf64_note {
|
|
Elf64_Word n_namesz;
|
|
Elf64_Word n_descsz;
|
|
Elf64_Word n_type;
|
|
};
|
|
|
|
struct __va_list_tag {
|
|
unsigned int gp_offset;
|
|
unsigned int fp_offset;
|
|
void *overflow_arg_area;
|
|
void *reg_save_area;
|
|
};
|
|
|
|
typedef __builtin_va_list va_list;
|
|
|
|
struct btf_id_set8;
|
|
|
|
struct btf_kfunc_id_set {
|
|
struct module *owner;
|
|
struct btf_id_set8 *set;
|
|
};
|
|
|
|
struct fc_log;
|
|
|
|
struct p_log {
|
|
const char *prefix;
|
|
struct fc_log *log;
|
|
};
|
|
|
|
enum fs_context_purpose {
|
|
FS_CONTEXT_FOR_MOUNT = 0,
|
|
FS_CONTEXT_FOR_SUBMOUNT = 1,
|
|
FS_CONTEXT_FOR_RECONFIGURE = 2,
|
|
};
|
|
|
|
enum fs_context_phase {
|
|
FS_CONTEXT_CREATE_PARAMS = 0,
|
|
FS_CONTEXT_CREATING = 1,
|
|
FS_CONTEXT_AWAITING_MOUNT = 2,
|
|
FS_CONTEXT_AWAITING_RECONF = 3,
|
|
FS_CONTEXT_RECONF_PARAMS = 4,
|
|
FS_CONTEXT_RECONFIGURING = 5,
|
|
FS_CONTEXT_FAILED = 6,
|
|
};
|
|
|
|
struct fs_context_operations;
|
|
|
|
struct fs_context {
|
|
const struct fs_context_operations *ops;
|
|
struct mutex uapi_mutex;
|
|
struct file_system_type *fs_type;
|
|
void *fs_private;
|
|
void *sget_key;
|
|
struct dentry *root;
|
|
struct user_namespace *user_ns;
|
|
struct net *net_ns;
|
|
const struct cred *cred;
|
|
struct p_log log;
|
|
const char *source;
|
|
void *security;
|
|
void *s_fs_info;
|
|
unsigned int sb_flags;
|
|
unsigned int sb_flags_mask;
|
|
unsigned int s_iflags;
|
|
unsigned int lsm_flags;
|
|
enum fs_context_purpose purpose: 8;
|
|
enum fs_context_phase phase: 8;
|
|
bool need_free: 1;
|
|
bool global: 1;
|
|
bool oldapi: 1;
|
|
};
|
|
|
|
struct fs_context_operations {
|
|
void (*free)(struct fs_context *);
|
|
int (*dup)(struct fs_context *, struct fs_context *);
|
|
int (*parse_param)(struct fs_context *, struct fs_parameter *);
|
|
int (*parse_monolithic)(struct fs_context *, void *);
|
|
int (*get_tree)(struct fs_context *);
|
|
int (*reconfigure)(struct fs_context *);
|
|
};
|
|
|
|
enum fs_value_type {
|
|
fs_value_is_undefined = 0,
|
|
fs_value_is_flag = 1,
|
|
fs_value_is_string = 2,
|
|
fs_value_is_blob = 3,
|
|
fs_value_is_filename = 4,
|
|
fs_value_is_file = 5,
|
|
};
|
|
|
|
struct filename;
|
|
|
|
struct fs_parameter {
|
|
const char *key;
|
|
enum fs_value_type type: 8;
|
|
union {
|
|
char *string;
|
|
void *blob;
|
|
struct filename *name;
|
|
struct file *file;
|
|
};
|
|
size_t size;
|
|
int dirfd;
|
|
};
|
|
|
|
struct audit_names;
|
|
|
|
struct filename {
|
|
const char *name;
|
|
const char __attribute__((btf_type_tag("user"))) *uptr;
|
|
int refcnt;
|
|
struct audit_names *aname;
|
|
const char iname[0];
|
|
};
|
|
|
|
struct fc_log {
|
|
refcount_t usage;
|
|
u8 head;
|
|
u8 tail;
|
|
u8 need_free;
|
|
struct module *owner;
|
|
char *buffer[8];
|
|
};
|
|
|
|
struct fs_parse_result {
|
|
bool negated;
|
|
union {
|
|
bool boolean;
|
|
int int_32;
|
|
unsigned int uint_32;
|
|
u64 uint_64;
|
|
};
|
|
};
|
|
|
|
enum writeback_sync_modes {
|
|
WB_SYNC_NONE = 0,
|
|
WB_SYNC_ALL = 1,
|
|
};
|
|
|
|
struct swap_iocb;
|
|
|
|
struct writeback_control {
|
|
long nr_to_write;
|
|
long pages_skipped;
|
|
loff_t range_start;
|
|
loff_t range_end;
|
|
enum writeback_sync_modes sync_mode;
|
|
unsigned int for_kupdate: 1;
|
|
unsigned int for_background: 1;
|
|
unsigned int tagged_writepages: 1;
|
|
unsigned int for_reclaim: 1;
|
|
unsigned int range_cyclic: 1;
|
|
unsigned int for_sync: 1;
|
|
unsigned int unpinned_fscache_wb: 1;
|
|
unsigned int no_cgroup_owner: 1;
|
|
unsigned int punt_to_cgroup: 1;
|
|
struct swap_iocb **swap_plug;
|
|
};
|
|
|
|
struct disk_stats;
|
|
|
|
struct request_queue;
|
|
|
|
struct partition_meta_info;
|
|
|
|
struct block_device {
|
|
sector_t bd_start_sect;
|
|
sector_t bd_nr_sectors;
|
|
struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats;
|
|
unsigned long bd_stamp;
|
|
bool bd_read_only;
|
|
dev_t bd_dev;
|
|
atomic_t bd_openers;
|
|
struct inode *bd_inode;
|
|
struct super_block *bd_super;
|
|
void *bd_claiming;
|
|
struct device bd_device;
|
|
void *bd_holder;
|
|
int bd_holders;
|
|
bool bd_write_holder;
|
|
struct kobject *bd_holder_dir;
|
|
u8 bd_partno;
|
|
spinlock_t bd_size_lock;
|
|
struct gendisk *bd_disk;
|
|
struct request_queue *bd_queue;
|
|
int bd_fsfreeze_count;
|
|
struct mutex bd_fsfreeze_mutex;
|
|
struct super_block *bd_fsfreeze_sb;
|
|
struct partition_meta_info *bd_meta_info;
|
|
};
|
|
|
|
struct disk_stats {
|
|
u64 nsecs[4];
|
|
unsigned long sectors[4];
|
|
unsigned long ios[4];
|
|
unsigned long merges[4];
|
|
unsigned long io_ticks;
|
|
local_t in_flight[2];
|
|
};
|
|
|
|
struct fprop_local_percpu {
|
|
struct percpu_counter events;
|
|
unsigned int period;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
enum wb_reason {
|
|
WB_REASON_BACKGROUND = 0,
|
|
WB_REASON_VMSCAN = 1,
|
|
WB_REASON_SYNC = 2,
|
|
WB_REASON_PERIODIC = 3,
|
|
WB_REASON_LAPTOP_TIMER = 4,
|
|
WB_REASON_FS_FREE_SPACE = 5,
|
|
WB_REASON_FORKER_THREAD = 6,
|
|
WB_REASON_FOREIGN_FLUSH = 7,
|
|
WB_REASON_MAX = 8,
|
|
};
|
|
|
|
struct bdi_writeback {
|
|
struct backing_dev_info *bdi;
|
|
unsigned long state;
|
|
unsigned long last_old_flush;
|
|
struct list_head b_dirty;
|
|
struct list_head b_io;
|
|
struct list_head b_more_io;
|
|
struct list_head b_dirty_time;
|
|
spinlock_t list_lock;
|
|
atomic_t writeback_inodes;
|
|
struct percpu_counter stat[4];
|
|
unsigned long bw_time_stamp;
|
|
unsigned long dirtied_stamp;
|
|
unsigned long written_stamp;
|
|
unsigned long write_bandwidth;
|
|
unsigned long avg_write_bandwidth;
|
|
unsigned long dirty_ratelimit;
|
|
unsigned long balanced_dirty_ratelimit;
|
|
struct fprop_local_percpu completions;
|
|
int dirty_exceeded;
|
|
enum wb_reason start_all_reason;
|
|
spinlock_t work_lock;
|
|
struct list_head work_list;
|
|
struct delayed_work dwork;
|
|
struct delayed_work bw_dwork;
|
|
unsigned long dirty_sleep;
|
|
struct list_head bdi_node;
|
|
};
|
|
|
|
struct backing_dev_info {
|
|
u64 id;
|
|
struct rb_node rb_node;
|
|
struct list_head bdi_list;
|
|
unsigned long ra_pages;
|
|
unsigned long io_pages;
|
|
struct kref refcnt;
|
|
unsigned int capabilities;
|
|
unsigned int min_ratio;
|
|
unsigned int max_ratio;
|
|
unsigned int max_prop_frac;
|
|
atomic_long_t tot_write_bandwidth;
|
|
struct bdi_writeback wb;
|
|
struct list_head wb_list;
|
|
wait_queue_head_t wb_waitq;
|
|
struct device *dev;
|
|
char dev_name[64];
|
|
struct device *owner;
|
|
struct timer_list laptop_mode_wb_timer;
|
|
struct dentry *debug_dir;
|
|
};
|
|
|
|
struct sock_filter {
|
|
__u16 code;
|
|
__u8 jt;
|
|
__u8 jf;
|
|
__u32 k;
|
|
};
|
|
|
|
struct bpf_insn {
|
|
__u8 code;
|
|
__u8 dst_reg: 4;
|
|
__u8 src_reg: 4;
|
|
__s16 off;
|
|
__s32 imm;
|
|
};
|
|
|
|
enum bpf_prog_type {
|
|
BPF_PROG_TYPE_UNSPEC = 0,
|
|
BPF_PROG_TYPE_SOCKET_FILTER = 1,
|
|
BPF_PROG_TYPE_KPROBE = 2,
|
|
BPF_PROG_TYPE_SCHED_CLS = 3,
|
|
BPF_PROG_TYPE_SCHED_ACT = 4,
|
|
BPF_PROG_TYPE_TRACEPOINT = 5,
|
|
BPF_PROG_TYPE_XDP = 6,
|
|
BPF_PROG_TYPE_PERF_EVENT = 7,
|
|
BPF_PROG_TYPE_CGROUP_SKB = 8,
|
|
BPF_PROG_TYPE_CGROUP_SOCK = 9,
|
|
BPF_PROG_TYPE_LWT_IN = 10,
|
|
BPF_PROG_TYPE_LWT_OUT = 11,
|
|
BPF_PROG_TYPE_LWT_XMIT = 12,
|
|
BPF_PROG_TYPE_SOCK_OPS = 13,
|
|
BPF_PROG_TYPE_SK_SKB = 14,
|
|
BPF_PROG_TYPE_CGROUP_DEVICE = 15,
|
|
BPF_PROG_TYPE_SK_MSG = 16,
|
|
BPF_PROG_TYPE_RAW_TRACEPOINT = 17,
|
|
BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18,
|
|
BPF_PROG_TYPE_LWT_SEG6LOCAL = 19,
|
|
BPF_PROG_TYPE_LIRC_MODE2 = 20,
|
|
BPF_PROG_TYPE_SK_REUSEPORT = 21,
|
|
BPF_PROG_TYPE_FLOW_DISSECTOR = 22,
|
|
BPF_PROG_TYPE_CGROUP_SYSCTL = 23,
|
|
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24,
|
|
BPF_PROG_TYPE_CGROUP_SOCKOPT = 25,
|
|
BPF_PROG_TYPE_TRACING = 26,
|
|
BPF_PROG_TYPE_STRUCT_OPS = 27,
|
|
BPF_PROG_TYPE_EXT = 28,
|
|
BPF_PROG_TYPE_LSM = 29,
|
|
BPF_PROG_TYPE_SK_LOOKUP = 30,
|
|
BPF_PROG_TYPE_SYSCALL = 31,
|
|
};
|
|
|
|
enum bpf_attach_type {
|
|
BPF_CGROUP_INET_INGRESS = 0,
|
|
BPF_CGROUP_INET_EGRESS = 1,
|
|
BPF_CGROUP_INET_SOCK_CREATE = 2,
|
|
BPF_CGROUP_SOCK_OPS = 3,
|
|
BPF_SK_SKB_STREAM_PARSER = 4,
|
|
BPF_SK_SKB_STREAM_VERDICT = 5,
|
|
BPF_CGROUP_DEVICE = 6,
|
|
BPF_SK_MSG_VERDICT = 7,
|
|
BPF_CGROUP_INET4_BIND = 8,
|
|
BPF_CGROUP_INET6_BIND = 9,
|
|
BPF_CGROUP_INET4_CONNECT = 10,
|
|
BPF_CGROUP_INET6_CONNECT = 11,
|
|
BPF_CGROUP_INET4_POST_BIND = 12,
|
|
BPF_CGROUP_INET6_POST_BIND = 13,
|
|
BPF_CGROUP_UDP4_SENDMSG = 14,
|
|
BPF_CGROUP_UDP6_SENDMSG = 15,
|
|
BPF_LIRC_MODE2 = 16,
|
|
BPF_FLOW_DISSECTOR = 17,
|
|
BPF_CGROUP_SYSCTL = 18,
|
|
BPF_CGROUP_UDP4_RECVMSG = 19,
|
|
BPF_CGROUP_UDP6_RECVMSG = 20,
|
|
BPF_CGROUP_GETSOCKOPT = 21,
|
|
BPF_CGROUP_SETSOCKOPT = 22,
|
|
BPF_TRACE_RAW_TP = 23,
|
|
BPF_TRACE_FENTRY = 24,
|
|
BPF_TRACE_FEXIT = 25,
|
|
BPF_MODIFY_RETURN = 26,
|
|
BPF_LSM_MAC = 27,
|
|
BPF_TRACE_ITER = 28,
|
|
BPF_CGROUP_INET4_GETPEERNAME = 29,
|
|
BPF_CGROUP_INET6_GETPEERNAME = 30,
|
|
BPF_CGROUP_INET4_GETSOCKNAME = 31,
|
|
BPF_CGROUP_INET6_GETSOCKNAME = 32,
|
|
BPF_XDP_DEVMAP = 33,
|
|
BPF_CGROUP_INET_SOCK_RELEASE = 34,
|
|
BPF_XDP_CPUMAP = 35,
|
|
BPF_SK_LOOKUP = 36,
|
|
BPF_XDP = 37,
|
|
BPF_SK_SKB_VERDICT = 38,
|
|
BPF_SK_REUSEPORT_SELECT = 39,
|
|
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
|
|
BPF_PERF_EVENT = 41,
|
|
BPF_TRACE_KPROBE_MULTI = 42,
|
|
BPF_LSM_CGROUP = 43,
|
|
__MAX_BPF_ATTACH_TYPE = 44,
|
|
};
|
|
|
|
struct bpf_prog_stats;
|
|
|
|
struct bpf_prog_aux;
|
|
|
|
struct sock_fprog_kern;
|
|
|
|
struct bpf_prog {
|
|
u16 pages;
|
|
u16 jited: 1;
|
|
u16 jit_requested: 1;
|
|
u16 gpl_compatible: 1;
|
|
u16 cb_access: 1;
|
|
u16 dst_needed: 1;
|
|
u16 blinding_requested: 1;
|
|
u16 blinded: 1;
|
|
u16 is_func: 1;
|
|
u16 kprobe_override: 1;
|
|
u16 has_callchain_buf: 1;
|
|
u16 enforce_expected_attach_type: 1;
|
|
u16 call_get_stack: 1;
|
|
u16 call_get_func_ip: 1;
|
|
u16 tstamp_type_access: 1;
|
|
enum bpf_prog_type type;
|
|
enum bpf_attach_type expected_attach_type;
|
|
u32 len;
|
|
u32 jited_len;
|
|
u8 tag[8];
|
|
struct bpf_prog_stats __attribute__((btf_type_tag("percpu"))) *stats;
|
|
int __attribute__((btf_type_tag("percpu"))) *active;
|
|
unsigned int (*bpf_func)(const void *, const struct bpf_insn *);
|
|
struct bpf_prog_aux *aux;
|
|
struct sock_fprog_kern *orig_prog;
|
|
union {
|
|
struct {
|
|
struct { } __empty_insns;
|
|
struct sock_filter insns[0];
|
|
};
|
|
struct {
|
|
struct { } __empty_insnsi;
|
|
struct bpf_insn insnsi[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
typedef struct {
|
|
local64_t v;
|
|
} u64_stats_t;
|
|
|
|
struct bpf_prog_stats {
|
|
u64_stats_t cnt;
|
|
u64_stats_t nsecs;
|
|
u64_stats_t misses;
|
|
struct u64_stats_sync syncp;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_ksym {
|
|
unsigned long start;
|
|
unsigned long end;
|
|
char name[512];
|
|
struct list_head lnode;
|
|
struct latch_tree_node tnode;
|
|
bool prog;
|
|
};
|
|
|
|
struct btf;
|
|
|
|
struct bpf_ctx_arg_aux;
|
|
|
|
struct bpf_trampoline;
|
|
|
|
struct btf_type;
|
|
|
|
struct bpf_jit_poke_descriptor;
|
|
|
|
struct bpf_kfunc_desc_tab;
|
|
|
|
struct bpf_kfunc_btf_tab;
|
|
|
|
struct bpf_prog_ops;
|
|
|
|
struct bpf_map;
|
|
|
|
struct btf_mod_pair;
|
|
|
|
struct bpf_prog_offload;
|
|
|
|
struct bpf_func_info;
|
|
|
|
struct bpf_func_info_aux;
|
|
|
|
struct bpf_line_info;
|
|
|
|
struct bpf_prog_aux {
|
|
atomic64_t refcnt;
|
|
u32 used_map_cnt;
|
|
u32 used_btf_cnt;
|
|
u32 max_ctx_offset;
|
|
u32 max_pkt_offset;
|
|
u32 max_tp_access;
|
|
u32 stack_depth;
|
|
u32 id;
|
|
u32 func_cnt;
|
|
u32 func_idx;
|
|
u32 attach_btf_id;
|
|
u32 ctx_arg_info_size;
|
|
u32 max_rdonly_access;
|
|
u32 max_rdwr_access;
|
|
struct btf *attach_btf;
|
|
const struct bpf_ctx_arg_aux *ctx_arg_info;
|
|
struct mutex dst_mutex;
|
|
struct bpf_prog *dst_prog;
|
|
struct bpf_trampoline *dst_trampoline;
|
|
enum bpf_prog_type saved_dst_prog_type;
|
|
enum bpf_attach_type saved_dst_attach_type;
|
|
bool verifier_zext;
|
|
bool dev_bound;
|
|
bool offload_requested;
|
|
bool attach_btf_trace;
|
|
bool func_proto_unreliable;
|
|
bool sleepable;
|
|
bool tail_call_reachable;
|
|
bool xdp_has_frags;
|
|
const struct btf_type *attach_func_proto;
|
|
const char *attach_func_name;
|
|
struct bpf_prog **func;
|
|
void *jit_data;
|
|
struct bpf_jit_poke_descriptor *poke_tab;
|
|
struct bpf_kfunc_desc_tab *kfunc_tab;
|
|
struct bpf_kfunc_btf_tab *kfunc_btf_tab;
|
|
u32 size_poke_tab;
|
|
struct bpf_ksym ksym;
|
|
const struct bpf_prog_ops *ops;
|
|
struct bpf_map **used_maps;
|
|
struct mutex used_maps_mutex;
|
|
struct btf_mod_pair *used_btfs;
|
|
struct bpf_prog *prog;
|
|
struct user_struct *user;
|
|
u64 load_time;
|
|
u32 verified_insns;
|
|
int cgroup_atype;
|
|
struct bpf_map *cgroup_storage[2];
|
|
char name[16];
|
|
void *security;
|
|
struct bpf_prog_offload *offload;
|
|
struct btf *btf;
|
|
struct bpf_func_info *func_info;
|
|
struct bpf_func_info_aux *func_info_aux;
|
|
struct bpf_line_info *linfo;
|
|
void **jited_linfo;
|
|
u32 func_info_cnt;
|
|
u32 nr_linfo;
|
|
u32 linfo_idx;
|
|
u32 num_exentries;
|
|
struct exception_table_entry *extable;
|
|
union {
|
|
struct work_struct work;
|
|
struct callback_head rcu;
|
|
};
|
|
};
|
|
|
|
enum bpf_reg_type {
|
|
NOT_INIT = 0,
|
|
SCALAR_VALUE = 1,
|
|
PTR_TO_CTX = 2,
|
|
CONST_PTR_TO_MAP = 3,
|
|
PTR_TO_MAP_VALUE = 4,
|
|
PTR_TO_MAP_KEY = 5,
|
|
PTR_TO_STACK = 6,
|
|
PTR_TO_PACKET_META = 7,
|
|
PTR_TO_PACKET = 8,
|
|
PTR_TO_PACKET_END = 9,
|
|
PTR_TO_FLOW_KEYS = 10,
|
|
PTR_TO_SOCKET = 11,
|
|
PTR_TO_SOCK_COMMON = 12,
|
|
PTR_TO_TCP_SOCK = 13,
|
|
PTR_TO_TP_BUFFER = 14,
|
|
PTR_TO_XDP_SOCK = 15,
|
|
PTR_TO_BTF_ID = 16,
|
|
PTR_TO_MEM = 17,
|
|
PTR_TO_BUF = 18,
|
|
PTR_TO_FUNC = 19,
|
|
CONST_PTR_TO_DYNPTR = 20,
|
|
__BPF_REG_TYPE_MAX = 21,
|
|
PTR_TO_MAP_VALUE_OR_NULL = 260,
|
|
PTR_TO_SOCKET_OR_NULL = 267,
|
|
PTR_TO_SOCK_COMMON_OR_NULL = 268,
|
|
PTR_TO_TCP_SOCK_OR_NULL = 269,
|
|
PTR_TO_BTF_ID_OR_NULL = 272,
|
|
__BPF_REG_TYPE_LIMIT = 33554431,
|
|
};
|
|
|
|
struct bpf_ctx_arg_aux {
|
|
u32 offset;
|
|
enum bpf_reg_type reg_type;
|
|
u32 btf_id;
|
|
};
|
|
|
|
struct btf_func_model {
|
|
u8 ret_size;
|
|
u8 ret_flags;
|
|
u8 nr_args;
|
|
u8 arg_size[12];
|
|
u8 arg_flags[12];
|
|
};
|
|
|
|
struct bpf_tramp_image;
|
|
|
|
struct bpf_trampoline {
|
|
struct hlist_node hlist;
|
|
struct ftrace_ops *fops;
|
|
struct mutex mutex;
|
|
refcount_t refcnt;
|
|
u32 flags;
|
|
u64 key;
|
|
struct {
|
|
struct btf_func_model model;
|
|
void *addr;
|
|
bool ftrace_managed;
|
|
} func;
|
|
struct bpf_prog *extension_prog;
|
|
struct hlist_head progs_hlist[3];
|
|
int progs_cnt[3];
|
|
struct bpf_tramp_image *cur_image;
|
|
u64 selector;
|
|
struct module *mod;
|
|
};
|
|
|
|
struct bpf_tramp_image {
|
|
void *image;
|
|
struct bpf_ksym ksym;
|
|
struct percpu_ref pcref;
|
|
void *ip_after_call;
|
|
void *ip_epilogue;
|
|
union {
|
|
struct callback_head rcu;
|
|
struct work_struct work;
|
|
};
|
|
};
|
|
|
|
struct btf_type {
|
|
__u32 name_off;
|
|
__u32 info;
|
|
union {
|
|
__u32 size;
|
|
__u32 type;
|
|
};
|
|
};
|
|
|
|
struct bpf_jit_poke_descriptor {
|
|
void *tailcall_target;
|
|
void *tailcall_bypass;
|
|
void *bypass_addr;
|
|
void *aux;
|
|
union {
|
|
struct {
|
|
struct bpf_map *map;
|
|
u32 key;
|
|
} tail_call;
|
|
};
|
|
bool tailcall_target_stable;
|
|
u8 adj_off;
|
|
u16 reason;
|
|
u32 insn_idx;
|
|
};
|
|
|
|
enum bpf_map_type {
|
|
BPF_MAP_TYPE_UNSPEC = 0,
|
|
BPF_MAP_TYPE_HASH = 1,
|
|
BPF_MAP_TYPE_ARRAY = 2,
|
|
BPF_MAP_TYPE_PROG_ARRAY = 3,
|
|
BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4,
|
|
BPF_MAP_TYPE_PERCPU_HASH = 5,
|
|
BPF_MAP_TYPE_PERCPU_ARRAY = 6,
|
|
BPF_MAP_TYPE_STACK_TRACE = 7,
|
|
BPF_MAP_TYPE_CGROUP_ARRAY = 8,
|
|
BPF_MAP_TYPE_LRU_HASH = 9,
|
|
BPF_MAP_TYPE_LRU_PERCPU_HASH = 10,
|
|
BPF_MAP_TYPE_LPM_TRIE = 11,
|
|
BPF_MAP_TYPE_ARRAY_OF_MAPS = 12,
|
|
BPF_MAP_TYPE_HASH_OF_MAPS = 13,
|
|
BPF_MAP_TYPE_DEVMAP = 14,
|
|
BPF_MAP_TYPE_SOCKMAP = 15,
|
|
BPF_MAP_TYPE_CPUMAP = 16,
|
|
BPF_MAP_TYPE_XSKMAP = 17,
|
|
BPF_MAP_TYPE_SOCKHASH = 18,
|
|
BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
|
|
BPF_MAP_TYPE_CGROUP_STORAGE = 19,
|
|
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
|
|
BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
|
|
BPF_MAP_TYPE_QUEUE = 22,
|
|
BPF_MAP_TYPE_STACK = 23,
|
|
BPF_MAP_TYPE_SK_STORAGE = 24,
|
|
BPF_MAP_TYPE_DEVMAP_HASH = 25,
|
|
BPF_MAP_TYPE_STRUCT_OPS = 26,
|
|
BPF_MAP_TYPE_RINGBUF = 27,
|
|
BPF_MAP_TYPE_INODE_STORAGE = 28,
|
|
BPF_MAP_TYPE_TASK_STORAGE = 29,
|
|
BPF_MAP_TYPE_BLOOM_FILTER = 30,
|
|
BPF_MAP_TYPE_USER_RINGBUF = 31,
|
|
BPF_MAP_TYPE_CGRP_STORAGE = 32,
|
|
};
|
|
|
|
struct bpf_map_ops;
|
|
|
|
struct btf_record;
|
|
|
|
struct btf_field_offs;
|
|
|
|
struct bpf_map {
|
|
const struct bpf_map_ops *ops;
|
|
struct bpf_map *inner_map_meta;
|
|
void *security;
|
|
enum bpf_map_type map_type;
|
|
u32 key_size;
|
|
u32 value_size;
|
|
u32 max_entries;
|
|
u64 map_extra;
|
|
u32 map_flags;
|
|
u32 id;
|
|
struct btf_record *record;
|
|
int numa_node;
|
|
u32 btf_key_type_id;
|
|
u32 btf_value_type_id;
|
|
u32 btf_vmlinux_value_type_id;
|
|
struct btf *btf;
|
|
char name[16];
|
|
struct btf_field_offs *field_offs;
|
|
long: 64;
|
|
long: 64;
|
|
atomic64_t refcnt;
|
|
atomic64_t usercnt;
|
|
struct work_struct work;
|
|
struct mutex freeze_mutex;
|
|
atomic64_t writecnt;
|
|
struct {
|
|
spinlock_t lock;
|
|
enum bpf_prog_type type;
|
|
bool jited;
|
|
bool xdp_has_frags;
|
|
} owner;
|
|
bool bypass_spec_v1;
|
|
bool frozen;
|
|
long: 16;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64);
|
|
|
|
union bpf_attr;
|
|
|
|
struct bpf_verifier_env;
|
|
|
|
struct bpf_func_state;
|
|
|
|
struct bpf_iter_seq_info;
|
|
|
|
struct bpf_map_ops {
|
|
int (*map_alloc_check)(union bpf_attr *);
|
|
struct bpf_map * (*map_alloc)(union bpf_attr *);
|
|
void (*map_release)(struct bpf_map *, struct file *);
|
|
void (*map_free)(struct bpf_map *);
|
|
int (*map_get_next_key)(struct bpf_map *, void *, void *);
|
|
void (*map_release_uref)(struct bpf_map *);
|
|
void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *);
|
|
int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
|
|
int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64);
|
|
int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
|
|
int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
|
|
int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
|
|
void * (*map_lookup_elem)(struct bpf_map *, void *);
|
|
int (*map_update_elem)(struct bpf_map *, void *, void *, u64);
|
|
int (*map_delete_elem)(struct bpf_map *, void *);
|
|
int (*map_push_elem)(struct bpf_map *, void *, u64);
|
|
int (*map_pop_elem)(struct bpf_map *, void *);
|
|
int (*map_peek_elem)(struct bpf_map *, void *);
|
|
void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32);
|
|
void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int);
|
|
void (*map_fd_put_ptr)(void *);
|
|
int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *);
|
|
u32 (*map_fd_sys_lookup_elem)(void *);
|
|
void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *);
|
|
int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *);
|
|
int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *);
|
|
void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *);
|
|
void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *);
|
|
int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32);
|
|
int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *);
|
|
int (*map_mmap)(struct bpf_map *, struct vm_area_struct *);
|
|
__poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *);
|
|
int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32);
|
|
void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32);
|
|
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) ** (*map_owner_storage_ptr)(void *);
|
|
int (*map_redirect)(struct bpf_map *, u64, u64);
|
|
bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *);
|
|
int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *);
|
|
int (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64);
|
|
u64 (*map_mem_usage)(const struct bpf_map *);
|
|
int *map_btf_id;
|
|
const struct bpf_iter_seq_info *iter_seq_info;
|
|
};
|
|
|
|
union bpf_attr {
|
|
struct {
|
|
__u32 map_type;
|
|
__u32 key_size;
|
|
__u32 value_size;
|
|
__u32 max_entries;
|
|
__u32 map_flags;
|
|
__u32 inner_map_fd;
|
|
__u32 numa_node;
|
|
char map_name[16];
|
|
__u32 map_ifindex;
|
|
__u32 btf_fd;
|
|
__u32 btf_key_type_id;
|
|
__u32 btf_value_type_id;
|
|
__u32 btf_vmlinux_value_type_id;
|
|
__u64 map_extra;
|
|
};
|
|
struct {
|
|
__u32 map_fd;
|
|
__u64 key;
|
|
union {
|
|
__u64 value;
|
|
__u64 next_key;
|
|
};
|
|
__u64 flags;
|
|
};
|
|
struct {
|
|
__u64 in_batch;
|
|
__u64 out_batch;
|
|
__u64 keys;
|
|
__u64 values;
|
|
__u32 count;
|
|
__u32 map_fd;
|
|
__u64 elem_flags;
|
|
__u64 flags;
|
|
} batch;
|
|
struct {
|
|
__u32 prog_type;
|
|
__u32 insn_cnt;
|
|
__u64 insns;
|
|
__u64 license;
|
|
__u32 log_level;
|
|
__u32 log_size;
|
|
__u64 log_buf;
|
|
__u32 kern_version;
|
|
__u32 prog_flags;
|
|
char prog_name[16];
|
|
__u32 prog_ifindex;
|
|
__u32 expected_attach_type;
|
|
__u32 prog_btf_fd;
|
|
__u32 func_info_rec_size;
|
|
__u64 func_info;
|
|
__u32 func_info_cnt;
|
|
__u32 line_info_rec_size;
|
|
__u64 line_info;
|
|
__u32 line_info_cnt;
|
|
__u32 attach_btf_id;
|
|
union {
|
|
__u32 attach_prog_fd;
|
|
__u32 attach_btf_obj_fd;
|
|
};
|
|
__u32 core_relo_cnt;
|
|
__u64 fd_array;
|
|
__u64 core_relos;
|
|
__u32 core_relo_rec_size;
|
|
};
|
|
struct {
|
|
__u64 pathname;
|
|
__u32 bpf_fd;
|
|
__u32 file_flags;
|
|
};
|
|
struct {
|
|
__u32 target_fd;
|
|
__u32 attach_bpf_fd;
|
|
__u32 attach_type;
|
|
__u32 attach_flags;
|
|
__u32 replace_bpf_fd;
|
|
};
|
|
struct {
|
|
__u32 prog_fd;
|
|
__u32 retval;
|
|
__u32 data_size_in;
|
|
__u32 data_size_out;
|
|
__u64 data_in;
|
|
__u64 data_out;
|
|
__u32 repeat;
|
|
__u32 duration;
|
|
__u32 ctx_size_in;
|
|
__u32 ctx_size_out;
|
|
__u64 ctx_in;
|
|
__u64 ctx_out;
|
|
__u32 flags;
|
|
__u32 cpu;
|
|
__u32 batch_size;
|
|
} test;
|
|
struct {
|
|
union {
|
|
__u32 start_id;
|
|
__u32 prog_id;
|
|
__u32 map_id;
|
|
__u32 btf_id;
|
|
__u32 link_id;
|
|
};
|
|
__u32 next_id;
|
|
__u32 open_flags;
|
|
};
|
|
struct {
|
|
__u32 bpf_fd;
|
|
__u32 info_len;
|
|
__u64 info;
|
|
} info;
|
|
struct {
|
|
__u32 target_fd;
|
|
__u32 attach_type;
|
|
__u32 query_flags;
|
|
__u32 attach_flags;
|
|
__u64 prog_ids;
|
|
__u32 prog_cnt;
|
|
__u64 prog_attach_flags;
|
|
} query;
|
|
struct {
|
|
__u64 name;
|
|
__u32 prog_fd;
|
|
} raw_tracepoint;
|
|
struct {
|
|
__u64 btf;
|
|
__u64 btf_log_buf;
|
|
__u32 btf_size;
|
|
__u32 btf_log_size;
|
|
__u32 btf_log_level;
|
|
};
|
|
struct {
|
|
__u32 pid;
|
|
__u32 fd;
|
|
__u32 flags;
|
|
__u32 buf_len;
|
|
__u64 buf;
|
|
__u32 prog_id;
|
|
__u32 fd_type;
|
|
__u64 probe_offset;
|
|
__u64 probe_addr;
|
|
} task_fd_query;
|
|
struct {
|
|
__u32 prog_fd;
|
|
union {
|
|
__u32 target_fd;
|
|
__u32 target_ifindex;
|
|
};
|
|
__u32 attach_type;
|
|
__u32 flags;
|
|
union {
|
|
__u32 target_btf_id;
|
|
struct {
|
|
__u64 iter_info;
|
|
__u32 iter_info_len;
|
|
};
|
|
struct {
|
|
__u64 bpf_cookie;
|
|
} perf_event;
|
|
struct {
|
|
__u32 flags;
|
|
__u32 cnt;
|
|
__u64 syms;
|
|
__u64 addrs;
|
|
__u64 cookies;
|
|
} kprobe_multi;
|
|
struct {
|
|
__u32 target_btf_id;
|
|
__u64 cookie;
|
|
} tracing;
|
|
};
|
|
} link_create;
|
|
struct {
|
|
__u32 link_fd;
|
|
__u32 new_prog_fd;
|
|
__u32 flags;
|
|
__u32 old_prog_fd;
|
|
} link_update;
|
|
struct {
|
|
__u32 link_fd;
|
|
} link_detach;
|
|
struct {
|
|
__u32 type;
|
|
} enable_stats;
|
|
struct {
|
|
__u32 link_fd;
|
|
__u32 flags;
|
|
} iter_create;
|
|
struct {
|
|
__u32 prog_fd;
|
|
__u32 map_fd;
|
|
__u32 flags;
|
|
} prog_bind_map;
|
|
};
|
|
|
|
struct btf_header {
|
|
__u16 magic;
|
|
__u8 version;
|
|
__u8 flags;
|
|
__u32 hdr_len;
|
|
__u32 type_off;
|
|
__u32 type_len;
|
|
__u32 str_off;
|
|
__u32 str_len;
|
|
};
|
|
|
|
struct btf_kfunc_set_tab;
|
|
|
|
struct btf_id_dtor_kfunc_tab;
|
|
|
|
struct btf_struct_metas;
|
|
|
|
struct btf {
|
|
void *data;
|
|
struct btf_type **types;
|
|
u32 *resolved_ids;
|
|
u32 *resolved_sizes;
|
|
const char *strings;
|
|
void *nohdr_data;
|
|
struct btf_header hdr;
|
|
u32 nr_types;
|
|
u32 types_size;
|
|
u32 data_size;
|
|
refcount_t refcnt;
|
|
u32 id;
|
|
struct callback_head rcu;
|
|
struct btf_kfunc_set_tab *kfunc_set_tab;
|
|
struct btf_id_dtor_kfunc_tab *dtor_kfunc_tab;
|
|
struct btf_struct_metas *struct_meta_tab;
|
|
struct btf *base_btf;
|
|
u32 start_id;
|
|
u32 start_str_off;
|
|
char name[56];
|
|
bool kernel_btf;
|
|
};
|
|
|
|
struct bpf_iter_aux_info;
|
|
|
|
typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *);
|
|
|
|
typedef void (*bpf_iter_fini_seq_priv_t)(void *);
|
|
|
|
struct bpf_iter_seq_info {
|
|
const struct seq_operations *seq_ops;
|
|
bpf_iter_init_seq_priv_t init_seq_private;
|
|
bpf_iter_fini_seq_priv_t fini_seq_private;
|
|
u32 seq_priv_size;
|
|
};
|
|
|
|
enum bpf_cgroup_iter_order {
|
|
BPF_CGROUP_ITER_ORDER_UNSPEC = 0,
|
|
BPF_CGROUP_ITER_SELF_ONLY = 1,
|
|
BPF_CGROUP_ITER_DESCENDANTS_PRE = 2,
|
|
BPF_CGROUP_ITER_DESCENDANTS_POST = 3,
|
|
BPF_CGROUP_ITER_ANCESTORS_UP = 4,
|
|
};
|
|
|
|
enum bpf_iter_task_type {
|
|
BPF_TASK_ITER_ALL = 0,
|
|
BPF_TASK_ITER_TID = 1,
|
|
BPF_TASK_ITER_TGID = 2,
|
|
};
|
|
|
|
struct bpf_iter_aux_info {
|
|
struct bpf_map *map;
|
|
struct {
|
|
struct cgroup *start;
|
|
enum bpf_cgroup_iter_order order;
|
|
} cgroup;
|
|
struct {
|
|
enum bpf_iter_task_type type;
|
|
u32 pid;
|
|
} task;
|
|
};
|
|
|
|
enum btf_field_type {
|
|
BPF_SPIN_LOCK = 1,
|
|
BPF_TIMER = 2,
|
|
BPF_KPTR_UNREF = 4,
|
|
BPF_KPTR_REF = 8,
|
|
BPF_KPTR = 12,
|
|
BPF_LIST_HEAD = 16,
|
|
BPF_LIST_NODE = 32,
|
|
BPF_RB_ROOT = 64,
|
|
BPF_RB_NODE = 128,
|
|
BPF_GRAPH_NODE_OR_ROOT = 240,
|
|
};
|
|
|
|
typedef void (*btf_dtor_kfunc_t)(void *);
|
|
|
|
struct btf_field_kptr {
|
|
struct btf *btf;
|
|
struct module *module;
|
|
btf_dtor_kfunc_t dtor;
|
|
u32 btf_id;
|
|
};
|
|
|
|
struct btf_field_graph_root {
|
|
struct btf *btf;
|
|
u32 value_btf_id;
|
|
u32 node_offset;
|
|
struct btf_record *value_rec;
|
|
};
|
|
|
|
struct btf_field {
|
|
u32 offset;
|
|
enum btf_field_type type;
|
|
union {
|
|
struct btf_field_kptr kptr;
|
|
struct btf_field_graph_root graph_root;
|
|
};
|
|
};
|
|
|
|
struct btf_record {
|
|
u32 cnt;
|
|
u32 field_mask;
|
|
int spin_lock_off;
|
|
int timer_off;
|
|
struct btf_field fields[0];
|
|
};
|
|
|
|
struct btf_field_offs {
|
|
u32 cnt;
|
|
u32 field_off[10];
|
|
u8 field_sz[10];
|
|
};
|
|
|
|
struct bpf_prog_ops {
|
|
int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
|
|
};
|
|
|
|
struct btf_mod_pair {
|
|
struct btf *btf;
|
|
struct module *module;
|
|
};
|
|
|
|
struct net_device;
|
|
|
|
struct bpf_offload_dev;
|
|
|
|
struct bpf_prog_offload {
|
|
struct bpf_prog *prog;
|
|
struct net_device *netdev;
|
|
struct bpf_offload_dev *offdev;
|
|
void *dev_priv;
|
|
struct list_head offloads;
|
|
bool dev_state;
|
|
bool opt_failed;
|
|
void *jited_image;
|
|
u32 jited_len;
|
|
};
|
|
|
|
struct bpf_func_info {
|
|
__u32 insn_off;
|
|
__u32 type_id;
|
|
};
|
|
|
|
struct bpf_func_info_aux {
|
|
u16 linkage;
|
|
bool unreliable;
|
|
};
|
|
|
|
struct bpf_line_info {
|
|
__u32 insn_off;
|
|
__u32 file_name_off;
|
|
__u32 line_off;
|
|
__u32 line_col;
|
|
};
|
|
|
|
struct cgroup_taskset {
|
|
struct list_head src_csets;
|
|
struct list_head dst_csets;
|
|
int nr_tasks;
|
|
int ssid;
|
|
struct list_head *csets;
|
|
struct css_set *cur_cset;
|
|
struct task_struct *cur_task;
|
|
};
|
|
|
|
struct bpf_run_ctx {};
|
|
|
|
struct btf_id_set8 {
|
|
u32 cnt;
|
|
u32 flags;
|
|
struct {
|
|
u32 id;
|
|
u32 flags;
|
|
} pairs[0];
|
|
};
|
|
|
|
enum cpu_usage_stat {
|
|
CPUTIME_USER = 0,
|
|
CPUTIME_NICE = 1,
|
|
CPUTIME_SYSTEM = 2,
|
|
CPUTIME_SOFTIRQ = 3,
|
|
CPUTIME_IRQ = 4,
|
|
CPUTIME_IDLE = 5,
|
|
CPUTIME_IOWAIT = 6,
|
|
CPUTIME_STEAL = 7,
|
|
CPUTIME_GUEST = 8,
|
|
CPUTIME_GUEST_NICE = 9,
|
|
NR_STATS = 10,
|
|
};
|
|
|
|
typedef u64 uint64_t;
|
|
|
|
struct kernel_cpustat {
|
|
u64 cpustat[10];
|
|
};
|
|
|
|
enum print_line_t {
|
|
TRACE_TYPE_PARTIAL_LINE = 0,
|
|
TRACE_TYPE_HANDLED = 1,
|
|
TRACE_TYPE_UNHANDLED = 2,
|
|
TRACE_TYPE_NO_CONSUME = 3,
|
|
};
|
|
|
|
struct trace_array;
|
|
|
|
struct trace_iterator;
|
|
|
|
struct tracer_flags;
|
|
|
|
struct tracer {
|
|
const char *name;
|
|
int (*init)(struct trace_array *);
|
|
void (*reset)(struct trace_array *);
|
|
void (*start)(struct trace_array *);
|
|
void (*stop)(struct trace_array *);
|
|
int (*update_thresh)(struct trace_array *);
|
|
void (*open)(struct trace_iterator *);
|
|
void (*pipe_open)(struct trace_iterator *);
|
|
void (*close)(struct trace_iterator *);
|
|
void (*pipe_close)(struct trace_iterator *);
|
|
ssize_t (*read)(struct trace_iterator *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
|
|
void (*print_header)(struct seq_file *);
|
|
enum print_line_t (*print_line)(struct trace_iterator *);
|
|
int (*set_flag)(struct trace_array *, u32, u32, int);
|
|
int (*flag_changed)(struct trace_array *, u32, int);
|
|
struct tracer *next;
|
|
struct tracer_flags *flags;
|
|
int enabled;
|
|
bool print_max;
|
|
bool allow_instances;
|
|
bool noboot;
|
|
};
|
|
|
|
struct trace_buffer;
|
|
|
|
struct trace_array_cpu;
|
|
|
|
struct array_buffer {
|
|
struct trace_array *tr;
|
|
struct trace_buffer *buffer;
|
|
struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data;
|
|
u64 time_start;
|
|
int cpu;
|
|
};
|
|
|
|
typedef struct cpumask cpumask_var_t[1];
|
|
|
|
struct trace_pid_list;
|
|
|
|
struct trace_event_file;
|
|
|
|
struct trace_options;
|
|
|
|
struct trace_func_repeats;
|
|
|
|
struct trace_array {
|
|
struct list_head list;
|
|
char *name;
|
|
struct array_buffer array_buffer;
|
|
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_pids;
|
|
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_no_pids;
|
|
arch_spinlock_t max_lock;
|
|
int buffer_disabled;
|
|
int sys_refcount_enter;
|
|
int sys_refcount_exit;
|
|
struct trace_event_file __attribute__((btf_type_tag("rcu"))) *enter_syscall_files[451];
|
|
struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[451];
|
|
int stop_count;
|
|
int clock_id;
|
|
int nr_topts;
|
|
bool clear_trace;
|
|
int buffer_percent;
|
|
unsigned int n_err_log_entries;
|
|
struct tracer *current_trace;
|
|
unsigned int trace_flags;
|
|
unsigned char trace_flags_index[32];
|
|
unsigned int flags;
|
|
raw_spinlock_t start_lock;
|
|
struct list_head err_log;
|
|
struct dentry *dir;
|
|
struct dentry *options;
|
|
struct dentry *percpu_dir;
|
|
struct dentry *event_dir;
|
|
struct trace_options *topts;
|
|
struct list_head systems;
|
|
struct list_head events;
|
|
struct trace_event_file *trace_marker_file;
|
|
cpumask_var_t tracing_cpumask;
|
|
int ref;
|
|
int trace_ref;
|
|
struct ftrace_ops *ops;
|
|
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids;
|
|
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids;
|
|
struct list_head func_probes;
|
|
struct list_head mod_trace;
|
|
struct list_head mod_notrace;
|
|
int function_enabled;
|
|
int no_filter_buffering_ref;
|
|
struct list_head hist_vars;
|
|
struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats;
|
|
};
|
|
|
|
struct trace_array_cpu {
|
|
atomic_t disabled;
|
|
void *buffer_page;
|
|
unsigned long entries;
|
|
unsigned long saved_latency;
|
|
unsigned long critical_start;
|
|
unsigned long critical_end;
|
|
unsigned long critical_sequence;
|
|
unsigned long nice;
|
|
unsigned long policy;
|
|
unsigned long rt_priority;
|
|
unsigned long skipped_entries;
|
|
u64 preempt_timestamp;
|
|
pid_t pid;
|
|
kuid_t uid;
|
|
char comm[16];
|
|
int ftrace_ignore_pid;
|
|
bool ignore_pid;
|
|
};
|
|
|
|
union upper_chunk;
|
|
|
|
union lower_chunk;
|
|
|
|
struct trace_pid_list {
|
|
raw_spinlock_t lock;
|
|
struct irq_work refill_irqwork;
|
|
union upper_chunk *upper[256];
|
|
union upper_chunk *upper_list;
|
|
union lower_chunk *lower_list;
|
|
int free_upper_chunks;
|
|
int free_lower_chunks;
|
|
};
|
|
|
|
typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *);
|
|
|
|
struct poll_table_struct {
|
|
poll_queue_proc _qproc;
|
|
__poll_t _key;
|
|
};
|
|
|
|
struct trace_event_functions;
|
|
|
|
struct trace_event {
|
|
struct hlist_node node;
|
|
int type;
|
|
struct trace_event_functions *funcs;
|
|
};
|
|
|
|
struct trace_event_class;
|
|
|
|
struct trace_event_call {
|
|
struct list_head list;
|
|
struct trace_event_class *class;
|
|
union {
|
|
char *name;
|
|
struct tracepoint *tp;
|
|
};
|
|
struct trace_event event;
|
|
char *print_fmt;
|
|
struct event_filter *filter;
|
|
union {
|
|
void *module;
|
|
atomic_t refcnt;
|
|
};
|
|
void *data;
|
|
int flags;
|
|
int perf_refcount;
|
|
struct hlist_head __attribute__((btf_type_tag("percpu"))) *perf_events;
|
|
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *prog_array;
|
|
int (*perf_perm)(struct trace_event_call *, struct perf_event *);
|
|
};
|
|
|
|
enum trace_reg {
|
|
TRACE_REG_REGISTER = 0,
|
|
TRACE_REG_UNREGISTER = 1,
|
|
TRACE_REG_PERF_REGISTER = 2,
|
|
TRACE_REG_PERF_UNREGISTER = 3,
|
|
TRACE_REG_PERF_OPEN = 4,
|
|
TRACE_REG_PERF_CLOSE = 5,
|
|
TRACE_REG_PERF_ADD = 6,
|
|
TRACE_REG_PERF_DEL = 7,
|
|
};
|
|
|
|
struct trace_event_fields;
|
|
|
|
struct trace_event_class {
|
|
const char *system;
|
|
void *probe;
|
|
void *perf_probe;
|
|
int (*reg)(struct trace_event_call *, enum trace_reg, void *);
|
|
struct trace_event_fields *fields_array;
|
|
struct list_head * (*get_fields)(struct trace_event_call *);
|
|
struct list_head fields;
|
|
int (*raw_init)(struct trace_event_call *);
|
|
};
|
|
|
|
struct trace_event_fields {
|
|
const char *type;
|
|
union {
|
|
struct {
|
|
const char *name;
|
|
const int size;
|
|
const int align;
|
|
const int is_signed;
|
|
const int filter_type;
|
|
const int len;
|
|
};
|
|
int (*define_fields)(struct trace_event_call *);
|
|
};
|
|
};
|
|
|
|
typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *);
|
|
|
|
struct trace_event_functions {
|
|
trace_print_func trace;
|
|
trace_print_func raw;
|
|
trace_print_func hex;
|
|
trace_print_func binary;
|
|
};
|
|
|
|
struct seq_buf {
|
|
char *buffer;
|
|
size_t size;
|
|
size_t len;
|
|
loff_t readpos;
|
|
};
|
|
|
|
struct trace_seq {
|
|
char buffer[4096];
|
|
struct seq_buf seq;
|
|
int full;
|
|
};
|
|
|
|
struct ring_buffer_iter;
|
|
|
|
struct trace_entry;
|
|
|
|
struct trace_iterator {
|
|
struct trace_array *tr;
|
|
struct tracer *trace;
|
|
struct array_buffer *array_buffer;
|
|
void *private;
|
|
int cpu_file;
|
|
struct mutex mutex;
|
|
struct ring_buffer_iter **buffer_iter;
|
|
unsigned long iter_flags;
|
|
void *temp;
|
|
unsigned int temp_size;
|
|
char *fmt;
|
|
unsigned int fmt_size;
|
|
long wait_index;
|
|
struct trace_seq tmp_seq;
|
|
cpumask_var_t started;
|
|
bool snapshot;
|
|
struct trace_seq seq;
|
|
struct trace_entry *ent;
|
|
unsigned long lost_events;
|
|
int leftover;
|
|
int ent_size;
|
|
int cpu;
|
|
u64 ts;
|
|
loff_t pos;
|
|
long idx;
|
|
};
|
|
|
|
struct trace_entry {
|
|
unsigned short type;
|
|
unsigned char flags;
|
|
unsigned char preempt_count;
|
|
int pid;
|
|
};
|
|
|
|
struct prog_entry;
|
|
|
|
struct event_filter {
|
|
struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog;
|
|
char *filter_string;
|
|
};
|
|
|
|
struct filter_pred;
|
|
|
|
struct prog_entry {
|
|
int target;
|
|
int when_to_branch;
|
|
struct filter_pred *pred;
|
|
};
|
|
|
|
typedef u32 phandle;
|
|
|
|
struct fwnode_operations;
|
|
|
|
struct fwnode_handle {
|
|
struct fwnode_handle *secondary;
|
|
const struct fwnode_operations *ops;
|
|
struct device *dev;
|
|
struct list_head suppliers;
|
|
struct list_head consumers;
|
|
u8 flags;
|
|
};
|
|
|
|
struct property;
|
|
|
|
struct device_node {
|
|
const char *name;
|
|
phandle phandle;
|
|
const char *full_name;
|
|
struct fwnode_handle fwnode;
|
|
struct property *properties;
|
|
struct property *deadprops;
|
|
struct device_node *parent;
|
|
struct device_node *child;
|
|
struct device_node *sibling;
|
|
unsigned long _flags;
|
|
void *data;
|
|
};
|
|
|
|
enum dev_dma_attr {
|
|
DEV_DMA_NOT_SUPPORTED = 0,
|
|
DEV_DMA_NON_COHERENT = 1,
|
|
DEV_DMA_COHERENT = 2,
|
|
};
|
|
|
|
struct fwnode_reference_args;
|
|
|
|
struct fwnode_endpoint;
|
|
|
|
struct fwnode_operations {
|
|
struct fwnode_handle * (*get)(struct fwnode_handle *);
|
|
void (*put)(struct fwnode_handle *);
|
|
bool (*device_is_available)(const struct fwnode_handle *);
|
|
const void * (*device_get_match_data)(const struct fwnode_handle *, const struct device *);
|
|
bool (*device_dma_supported)(const struct fwnode_handle *);
|
|
enum dev_dma_attr (*device_get_dma_attr)(const struct fwnode_handle *);
|
|
bool (*property_present)(const struct fwnode_handle *, const char *);
|
|
int (*property_read_int_array)(const struct fwnode_handle *, const char *, unsigned int, void *, size_t);
|
|
int (*property_read_string_array)(const struct fwnode_handle *, const char *, const char **, size_t);
|
|
const char * (*get_name)(const struct fwnode_handle *);
|
|
const char * (*get_name_prefix)(const struct fwnode_handle *);
|
|
struct fwnode_handle * (*get_parent)(const struct fwnode_handle *);
|
|
struct fwnode_handle * (*get_next_child_node)(const struct fwnode_handle *, struct fwnode_handle *);
|
|
struct fwnode_handle * (*get_named_child_node)(const struct fwnode_handle *, const char *);
|
|
int (*get_reference_args)(const struct fwnode_handle *, const char *, const char *, unsigned int, unsigned int, struct fwnode_reference_args *);
|
|
struct fwnode_handle * (*graph_get_next_endpoint)(const struct fwnode_handle *, struct fwnode_handle *);
|
|
struct fwnode_handle * (*graph_get_remote_endpoint)(const struct fwnode_handle *);
|
|
struct fwnode_handle * (*graph_get_port_parent)(struct fwnode_handle *);
|
|
int (*graph_parse_endpoint)(const struct fwnode_handle *, struct fwnode_endpoint *);
|
|
void * (*iomap)(struct fwnode_handle *, int);
|
|
int (*irq_get)(const struct fwnode_handle *, unsigned int);
|
|
int (*add_links)(struct fwnode_handle *);
|
|
};
|
|
|
|
struct fwnode_reference_args {
|
|
struct fwnode_handle *fwnode;
|
|
unsigned int nargs;
|
|
u64 args[8];
|
|
};
|
|
|
|
struct fwnode_endpoint {
|
|
unsigned int port;
|
|
unsigned int id;
|
|
const struct fwnode_handle *local_fwnode;
|
|
};
|
|
|
|
struct property {
|
|
char *name;
|
|
int length;
|
|
void *value;
|
|
struct property *next;
|
|
};
|
|
|
|
struct trace_eval_map {
|
|
const char *system;
|
|
const char *eval_string;
|
|
unsigned long eval_value;
|
|
};
|
|
|
|
struct vm_struct {
|
|
struct vm_struct *next;
|
|
void *addr;
|
|
unsigned long size;
|
|
unsigned long flags;
|
|
struct page **pages;
|
|
unsigned int page_order;
|
|
unsigned int nr_pages;
|
|
phys_addr_t phys_addr;
|
|
const void *caller;
|
|
};
|
|
|
|
union upper_chunk {
|
|
union upper_chunk *next;
|
|
union lower_chunk *data[256];
|
|
};
|
|
|
|
union lower_chunk {
|
|
union lower_chunk *next;
|
|
unsigned long data[256];
|
|
};
|
|
|
|
struct trace_subsystem_dir;
|
|
|
|
struct trace_event_file {
|
|
struct list_head list;
|
|
struct trace_event_call *event_call;
|
|
struct event_filter __attribute__((btf_type_tag("rcu"))) *filter;
|
|
struct dentry *dir;
|
|
struct trace_array *tr;
|
|
struct trace_subsystem_dir *system;
|
|
struct list_head triggers;
|
|
unsigned long flags;
|
|
atomic_t sm_ref;
|
|
atomic_t tm_ref;
|
|
};
|
|
|
|
struct event_subsystem;
|
|
|
|
struct trace_subsystem_dir {
|
|
struct list_head list;
|
|
struct event_subsystem *subsystem;
|
|
struct trace_array *tr;
|
|
struct dentry *entry;
|
|
int ref_count;
|
|
int nr_events;
|
|
};
|
|
|
|
struct event_subsystem {
|
|
struct list_head list;
|
|
const char *name;
|
|
struct event_filter *filter;
|
|
int ref_count;
|
|
};
|
|
|
|
struct trace_option_dentry;
|
|
|
|
struct trace_options {
|
|
struct tracer *tracer;
|
|
struct trace_option_dentry *topts;
|
|
};
|
|
|
|
struct tracer_opt;
|
|
|
|
struct trace_option_dentry {
|
|
struct tracer_opt *opt;
|
|
struct tracer_flags *flags;
|
|
struct trace_array *tr;
|
|
struct dentry *entry;
|
|
};
|
|
|
|
struct tracer_opt {
|
|
const char *name;
|
|
u32 bit;
|
|
};
|
|
|
|
struct tracer_flags {
|
|
u32 val;
|
|
struct tracer_opt *opts;
|
|
struct tracer *trace;
|
|
};
|
|
|
|
struct trace_func_repeats {
|
|
unsigned long ip;
|
|
unsigned long parent_ip;
|
|
unsigned long count;
|
|
u64 ts_last_call;
|
|
};
|
|
|
|
enum {
|
|
TRACE_NOP_OPT_ACCEPT = 1,
|
|
TRACE_NOP_OPT_REFUSE = 2,
|
|
};
|
|
|
|
enum refcount_saturation_type {
|
|
REFCOUNT_ADD_NOT_ZERO_OVF = 0,
|
|
REFCOUNT_ADD_OVF = 1,
|
|
REFCOUNT_ADD_UAF = 2,
|
|
REFCOUNT_SUB_UAF = 3,
|
|
REFCOUNT_DEC_LEAK = 4,
|
|
};
|
|
|
|
enum kmalloc_cache_type {
|
|
KMALLOC_NORMAL = 0,
|
|
KMALLOC_CGROUP = 0,
|
|
KMALLOC_RECLAIM = 1,
|
|
KMALLOC_DMA = 2,
|
|
NR_KMALLOC_TYPES = 3,
|
|
};
|
|
|
|
struct freelist_node {
|
|
atomic_t refs;
|
|
struct freelist_node *next;
|
|
};
|
|
|
|
struct rethook;
|
|
|
|
struct rethook_node {
|
|
union {
|
|
struct freelist_node freelist;
|
|
struct callback_head rcu;
|
|
};
|
|
struct llist_node llist;
|
|
struct rethook *rethook;
|
|
unsigned long ret_addr;
|
|
unsigned long frame;
|
|
};
|
|
|
|
typedef void (*rethook_handler_t)(struct rethook_node *, void *, struct pt_regs *);
|
|
|
|
struct freelist_head {
|
|
struct freelist_node *head;
|
|
};
|
|
|
|
struct rethook {
|
|
void *data;
|
|
rethook_handler_t handler;
|
|
struct freelist_head pool;
|
|
refcount_t ref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef void (*rcu_callback_t)(struct callback_head *);
|
|
|
|
struct bpf_array_aux;
|
|
|
|
struct bpf_array {
|
|
struct bpf_map map;
|
|
u32 elem_size;
|
|
u32 index_mask;
|
|
struct bpf_array_aux *aux;
|
|
union {
|
|
struct {
|
|
struct { } __empty_value;
|
|
char value[0];
|
|
};
|
|
struct {
|
|
struct { } __empty_ptrs;
|
|
void *ptrs[0];
|
|
};
|
|
struct {
|
|
struct { } __empty_pptrs;
|
|
void __attribute__((btf_type_tag("percpu"))) *pptrs[0];
|
|
};
|
|
};
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_array_aux {
|
|
struct list_head poke_progs;
|
|
struct bpf_map *map;
|
|
struct mutex poke_mutex;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct fd {
|
|
struct file *file;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct bpf_link;
|
|
|
|
struct bpf_link_info;
|
|
|
|
struct bpf_link_ops {
|
|
void (*release)(struct bpf_link *);
|
|
void (*dealloc)(struct bpf_link *);
|
|
int (*detach)(struct bpf_link *);
|
|
int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *);
|
|
void (*show_fdinfo)(const struct bpf_link *, struct seq_file *);
|
|
int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *);
|
|
};
|
|
|
|
enum bpf_link_type {
|
|
BPF_LINK_TYPE_UNSPEC = 0,
|
|
BPF_LINK_TYPE_RAW_TRACEPOINT = 1,
|
|
BPF_LINK_TYPE_TRACING = 2,
|
|
BPF_LINK_TYPE_CGROUP = 3,
|
|
BPF_LINK_TYPE_ITER = 4,
|
|
BPF_LINK_TYPE_NETNS = 5,
|
|
BPF_LINK_TYPE_XDP = 6,
|
|
BPF_LINK_TYPE_PERF_EVENT = 7,
|
|
BPF_LINK_TYPE_KPROBE_MULTI = 8,
|
|
BPF_LINK_TYPE_STRUCT_OPS = 9,
|
|
MAX_BPF_LINK_TYPE = 10,
|
|
};
|
|
|
|
struct bpf_link {
|
|
atomic64_t refcnt;
|
|
u32 id;
|
|
enum bpf_link_type type;
|
|
const struct bpf_link_ops *ops;
|
|
struct bpf_prog *prog;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct page_pool_params {
|
|
unsigned int flags;
|
|
unsigned int order;
|
|
unsigned int pool_size;
|
|
int nid;
|
|
struct device *dev;
|
|
enum dma_data_direction dma_dir;
|
|
unsigned int max_len;
|
|
unsigned int offset;
|
|
void (*init_callback)(struct page *, void *);
|
|
void *init_arg;
|
|
};
|
|
|
|
struct page_pool_alloc_stats {
|
|
u64 fast;
|
|
u64 slow;
|
|
u64 slow_high_order;
|
|
u64 empty;
|
|
u64 refill;
|
|
u64 waive;
|
|
};
|
|
|
|
struct pp_alloc_cache {
|
|
u32 count;
|
|
struct page *cache[128];
|
|
};
|
|
|
|
struct ptr_ring {
|
|
int producer;
|
|
spinlock_t producer_lock;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
int consumer_head;
|
|
int consumer_tail;
|
|
spinlock_t consumer_lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
int size;
|
|
int batch;
|
|
void **queue;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct page_pool_recycle_stats;
|
|
|
|
struct page_pool {
|
|
struct page_pool_params p;
|
|
struct delayed_work release_dw;
|
|
void (*disconnect)(void *);
|
|
unsigned long defer_start;
|
|
unsigned long defer_warn;
|
|
u32 pages_state_hold_cnt;
|
|
unsigned int frag_offset;
|
|
struct page *frag_page;
|
|
long frag_users;
|
|
struct page_pool_alloc_stats alloc_stats;
|
|
u32 xdp_mem_id;
|
|
long: 32;
|
|
long: 64;
|
|
struct pp_alloc_cache alloc;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct ptr_ring ring;
|
|
struct page_pool_recycle_stats __attribute__((btf_type_tag("percpu"))) *recycle_stats;
|
|
atomic_t pages_state_release_cnt;
|
|
refcount_t user_cnt;
|
|
u64 destroy_cnt;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct page_pool_recycle_stats {
|
|
u64 cached;
|
|
u64 cache_full;
|
|
u64 ring;
|
|
u64 ring_full;
|
|
u64 released_refcnt;
|
|
};
|
|
|
|
struct ref_tracker_dir {};
|
|
|
|
struct notifier_block;
|
|
|
|
struct raw_notifier_head {
|
|
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
|
|
};
|
|
|
|
struct prot_inuse;
|
|
|
|
struct netns_core {
|
|
struct ctl_table_header *sysctl_hdr;
|
|
int sysctl_somaxconn;
|
|
u8 sysctl_txrehash;
|
|
struct prot_inuse __attribute__((btf_type_tag("percpu"))) *prot_inuse;
|
|
struct cpumask *rps_default_mask;
|
|
};
|
|
|
|
struct ipstats_mib;
|
|
|
|
struct tcp_mib;
|
|
|
|
struct linux_mib;
|
|
|
|
struct udp_mib;
|
|
|
|
struct mptcp_mib;
|
|
|
|
struct icmp_mib;
|
|
|
|
struct icmpmsg_mib;
|
|
|
|
struct icmpv6_mib;
|
|
|
|
struct icmpv6msg_mib;
|
|
|
|
struct proc_dir_entry;
|
|
|
|
struct netns_mib {
|
|
struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics;
|
|
struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics;
|
|
struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics;
|
|
struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics;
|
|
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics;
|
|
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6;
|
|
struct mptcp_mib __attribute__((btf_type_tag("percpu"))) *mptcp_statistics;
|
|
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics;
|
|
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6;
|
|
struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics;
|
|
struct icmpmsg_mib *icmpmsg_statistics;
|
|
struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics;
|
|
struct icmpv6msg_mib *icmpv6msg_statistics;
|
|
struct proc_dir_entry *proc_net_devsnmp6;
|
|
};
|
|
|
|
struct netns_packet {
|
|
struct mutex sklist_lock;
|
|
struct hlist_head sklist;
|
|
};
|
|
|
|
struct unix_table {
|
|
spinlock_t *locks;
|
|
struct hlist_head *buckets;
|
|
};
|
|
|
|
struct netns_unix {
|
|
struct unix_table table;
|
|
int sysctl_max_dgram_qlen;
|
|
struct ctl_table_header *ctl;
|
|
};
|
|
|
|
struct blocking_notifier_head {
|
|
struct rw_semaphore rwsem;
|
|
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
|
|
};
|
|
|
|
struct netns_nexthop {
|
|
struct rb_root rb_root;
|
|
struct hlist_head *devhash;
|
|
unsigned int seq;
|
|
u32 last_id_allocated;
|
|
struct blocking_notifier_head notifier_chain;
|
|
};
|
|
|
|
struct inet_hashinfo;
|
|
|
|
struct inet_timewait_death_row {
|
|
refcount_t tw_refcount;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct inet_hashinfo *hashinfo;
|
|
int sysctl_max_tw_buckets;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct local_ports {
|
|
seqlock_t lock;
|
|
int range[2];
|
|
bool warned;
|
|
};
|
|
|
|
struct ping_group_range {
|
|
seqlock_t lock;
|
|
kgid_t range[2];
|
|
};
|
|
|
|
typedef struct {
|
|
u64 key[2];
|
|
} siphash_key_t;
|
|
|
|
struct udp_table;
|
|
|
|
struct ipv4_devconf;
|
|
|
|
struct ip_ra_chain;
|
|
|
|
struct fib_rules_ops;
|
|
|
|
struct fib_table;
|
|
|
|
struct inet_peer_base;
|
|
|
|
struct fqdir;
|
|
|
|
struct tcp_congestion_ops;
|
|
|
|
struct tcp_fastopen_context;
|
|
|
|
struct mr_table;
|
|
|
|
struct fib_notifier_ops;
|
|
|
|
struct netns_ipv4 {
|
|
struct inet_timewait_death_row tcp_death_row;
|
|
struct udp_table *udp_table;
|
|
struct ctl_table_header *forw_hdr;
|
|
struct ctl_table_header *frags_hdr;
|
|
struct ctl_table_header *ipv4_hdr;
|
|
struct ctl_table_header *route_hdr;
|
|
struct ctl_table_header *xfrm4_hdr;
|
|
struct ipv4_devconf *devconf_all;
|
|
struct ipv4_devconf *devconf_dflt;
|
|
struct ip_ra_chain __attribute__((btf_type_tag("rcu"))) *ra_chain;
|
|
struct mutex ra_mutex;
|
|
struct fib_rules_ops *rules_ops;
|
|
struct fib_table __attribute__((btf_type_tag("rcu"))) *fib_main;
|
|
struct fib_table __attribute__((btf_type_tag("rcu"))) *fib_default;
|
|
unsigned int fib_rules_require_fldissect;
|
|
bool fib_has_custom_rules;
|
|
bool fib_has_custom_local_routes;
|
|
bool fib_offload_disabled;
|
|
struct hlist_head *fib_table_hash;
|
|
struct sock *fibnl;
|
|
struct sock *mc_autojoin_sk;
|
|
struct inet_peer_base *peers;
|
|
struct fqdir *fqdir;
|
|
u8 sysctl_icmp_echo_ignore_all;
|
|
u8 sysctl_icmp_echo_enable_probe;
|
|
u8 sysctl_icmp_echo_ignore_broadcasts;
|
|
u8 sysctl_icmp_ignore_bogus_error_responses;
|
|
u8 sysctl_icmp_errors_use_inbound_ifaddr;
|
|
int sysctl_icmp_ratelimit;
|
|
int sysctl_icmp_ratemask;
|
|
u32 ip_rt_min_pmtu;
|
|
int ip_rt_mtu_expires;
|
|
int ip_rt_min_advmss;
|
|
struct local_ports ip_local_ports;
|
|
u8 sysctl_tcp_ecn;
|
|
u8 sysctl_tcp_ecn_fallback;
|
|
u8 sysctl_ip_default_ttl;
|
|
u8 sysctl_ip_no_pmtu_disc;
|
|
u8 sysctl_ip_fwd_use_pmtu;
|
|
u8 sysctl_ip_fwd_update_priority;
|
|
u8 sysctl_ip_nonlocal_bind;
|
|
u8 sysctl_ip_autobind_reuse;
|
|
u8 sysctl_ip_dynaddr;
|
|
u8 sysctl_ip_early_demux;
|
|
u8 sysctl_tcp_early_demux;
|
|
u8 sysctl_udp_early_demux;
|
|
u8 sysctl_nexthop_compat_mode;
|
|
u8 sysctl_fwmark_reflect;
|
|
u8 sysctl_tcp_fwmark_accept;
|
|
u8 sysctl_tcp_mtu_probing;
|
|
int sysctl_tcp_mtu_probe_floor;
|
|
int sysctl_tcp_base_mss;
|
|
int sysctl_tcp_min_snd_mss;
|
|
int sysctl_tcp_probe_threshold;
|
|
u32 sysctl_tcp_probe_interval;
|
|
int sysctl_tcp_keepalive_time;
|
|
int sysctl_tcp_keepalive_intvl;
|
|
u8 sysctl_tcp_keepalive_probes;
|
|
u8 sysctl_tcp_syn_retries;
|
|
u8 sysctl_tcp_synack_retries;
|
|
u8 sysctl_tcp_syncookies;
|
|
u8 sysctl_tcp_migrate_req;
|
|
u8 sysctl_tcp_comp_sack_nr;
|
|
int sysctl_tcp_reordering;
|
|
u8 sysctl_tcp_retries1;
|
|
u8 sysctl_tcp_retries2;
|
|
u8 sysctl_tcp_orphan_retries;
|
|
u8 sysctl_tcp_tw_reuse;
|
|
int sysctl_tcp_fin_timeout;
|
|
unsigned int sysctl_tcp_notsent_lowat;
|
|
u8 sysctl_tcp_sack;
|
|
u8 sysctl_tcp_window_scaling;
|
|
u8 sysctl_tcp_timestamps;
|
|
u8 sysctl_tcp_early_retrans;
|
|
u8 sysctl_tcp_recovery;
|
|
u8 sysctl_tcp_thin_linear_timeouts;
|
|
u8 sysctl_tcp_slow_start_after_idle;
|
|
u8 sysctl_tcp_retrans_collapse;
|
|
u8 sysctl_tcp_stdurg;
|
|
u8 sysctl_tcp_rfc1337;
|
|
u8 sysctl_tcp_abort_on_overflow;
|
|
u8 sysctl_tcp_fack;
|
|
int sysctl_tcp_max_reordering;
|
|
int sysctl_tcp_adv_win_scale;
|
|
u8 sysctl_tcp_dsack;
|
|
u8 sysctl_tcp_app_win;
|
|
u8 sysctl_tcp_frto;
|
|
u8 sysctl_tcp_nometrics_save;
|
|
u8 sysctl_tcp_no_ssthresh_metrics_save;
|
|
u8 sysctl_tcp_moderate_rcvbuf;
|
|
u8 sysctl_tcp_tso_win_divisor;
|
|
u8 sysctl_tcp_workaround_signed_windows;
|
|
int sysctl_tcp_limit_output_bytes;
|
|
int sysctl_tcp_challenge_ack_limit;
|
|
int sysctl_tcp_min_rtt_wlen;
|
|
u8 sysctl_tcp_min_tso_segs;
|
|
u8 sysctl_tcp_tso_rtt_log;
|
|
u8 sysctl_tcp_autocorking;
|
|
u8 sysctl_tcp_reflect_tos;
|
|
int sysctl_tcp_invalid_ratelimit;
|
|
int sysctl_tcp_pacing_ss_ratio;
|
|
int sysctl_tcp_pacing_ca_ratio;
|
|
int sysctl_tcp_wmem[3];
|
|
int sysctl_tcp_rmem[3];
|
|
unsigned int sysctl_tcp_child_ehash_entries;
|
|
unsigned long sysctl_tcp_comp_sack_delay_ns;
|
|
unsigned long sysctl_tcp_comp_sack_slack_ns;
|
|
int sysctl_max_syn_backlog;
|
|
int sysctl_tcp_fastopen;
|
|
const struct tcp_congestion_ops __attribute__((btf_type_tag("rcu"))) *tcp_congestion_control;
|
|
struct tcp_fastopen_context __attribute__((btf_type_tag("rcu"))) *tcp_fastopen_ctx;
|
|
unsigned int sysctl_tcp_fastopen_blackhole_timeout;
|
|
atomic_t tfo_active_disable_times;
|
|
unsigned long tfo_active_disable_stamp;
|
|
u32 tcp_challenge_timestamp;
|
|
u32 tcp_challenge_count;
|
|
u8 sysctl_tcp_plb_enabled;
|
|
u8 sysctl_tcp_plb_idle_rehash_rounds;
|
|
u8 sysctl_tcp_plb_rehash_rounds;
|
|
u8 sysctl_tcp_plb_suspend_rto_sec;
|
|
int sysctl_tcp_plb_cong_thresh;
|
|
int sysctl_udp_wmem_min;
|
|
int sysctl_udp_rmem_min;
|
|
u8 sysctl_fib_notify_on_flag_change;
|
|
u8 sysctl_igmp_llm_reports;
|
|
int sysctl_igmp_max_memberships;
|
|
int sysctl_igmp_max_msf;
|
|
int sysctl_igmp_qrv;
|
|
struct ping_group_range ping_group_range;
|
|
atomic_t dev_addr_genid;
|
|
unsigned int sysctl_udp_child_hash_entries;
|
|
unsigned long *sysctl_local_reserved_ports;
|
|
int sysctl_ip_prot_sock;
|
|
struct mr_table *mrt;
|
|
u32 sysctl_fib_multipath_hash_fields;
|
|
u8 sysctl_fib_multipath_use_neigh;
|
|
u8 sysctl_fib_multipath_hash_policy;
|
|
struct fib_notifier_ops *notifier_ops;
|
|
unsigned int fib_seq;
|
|
struct fib_notifier_ops *ipmr_notifier_ops;
|
|
unsigned int ipmr_seq;
|
|
atomic_t rt_genid;
|
|
siphash_key_t ip_id_key;
|
|
};
|
|
|
|
struct dst_entry;
|
|
|
|
struct sk_buff;
|
|
|
|
struct neighbour;
|
|
|
|
struct dst_ops {
|
|
unsigned short family;
|
|
unsigned int gc_thresh;
|
|
void (*gc)(struct dst_ops *);
|
|
struct dst_entry * (*check)(struct dst_entry *, __u32);
|
|
unsigned int (*default_advmss)(const struct dst_entry *);
|
|
unsigned int (*mtu)(const struct dst_entry *);
|
|
u32 * (*cow_metrics)(struct dst_entry *, unsigned long);
|
|
void (*destroy)(struct dst_entry *);
|
|
void (*ifdown)(struct dst_entry *, struct net_device *, int);
|
|
struct dst_entry * (*negative_advice)(struct dst_entry *);
|
|
void (*link_failure)(struct sk_buff *);
|
|
void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool);
|
|
void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *);
|
|
int (*local_out)(struct net *, struct sock *, struct sk_buff *);
|
|
struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *);
|
|
void (*confirm_neigh)(const struct dst_entry *, const void *);
|
|
struct kmem_cache *kmem_cachep;
|
|
struct percpu_counter pcpuc_entries;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct netns_sysctl_ipv6 {
|
|
struct ctl_table_header *hdr;
|
|
struct ctl_table_header *route_hdr;
|
|
struct ctl_table_header *icmp_hdr;
|
|
struct ctl_table_header *frags_hdr;
|
|
struct ctl_table_header *xfrm6_hdr;
|
|
int flush_delay;
|
|
int ip6_rt_max_size;
|
|
int ip6_rt_gc_min_interval;
|
|
int ip6_rt_gc_timeout;
|
|
int ip6_rt_gc_interval;
|
|
int ip6_rt_gc_elasticity;
|
|
int ip6_rt_mtu_expires;
|
|
int ip6_rt_min_advmss;
|
|
u32 multipath_hash_fields;
|
|
u8 multipath_hash_policy;
|
|
u8 bindv6only;
|
|
u8 flowlabel_consistency;
|
|
u8 auto_flowlabels;
|
|
int icmpv6_time;
|
|
u8 icmpv6_echo_ignore_all;
|
|
u8 icmpv6_echo_ignore_multicast;
|
|
u8 icmpv6_echo_ignore_anycast;
|
|
unsigned long icmpv6_ratemask[4];
|
|
unsigned long *icmpv6_ratemask_ptr;
|
|
u8 anycast_src_echo_reply;
|
|
u8 ip_nonlocal_bind;
|
|
u8 fwmark_reflect;
|
|
u8 flowlabel_state_ranges;
|
|
int idgen_retries;
|
|
int idgen_delay;
|
|
int flowlabel_reflect;
|
|
int max_dst_opts_cnt;
|
|
int max_hbh_opts_cnt;
|
|
int max_dst_opts_len;
|
|
int max_hbh_opts_len;
|
|
int seg6_flowlabel;
|
|
u32 ioam6_id;
|
|
u64 ioam6_id_wide;
|
|
bool skip_notify_on_dev_down;
|
|
u8 fib_notify_on_flag_change;
|
|
};
|
|
|
|
struct ipv6_devconf;
|
|
|
|
struct fib6_info;
|
|
|
|
struct rt6_info;
|
|
|
|
struct rt6_statistics;
|
|
|
|
struct fib6_table;
|
|
|
|
struct seg6_pernet_data;
|
|
|
|
struct ioam6_pernet_data;
|
|
|
|
struct netns_ipv6 {
|
|
struct dst_ops ip6_dst_ops;
|
|
struct netns_sysctl_ipv6 sysctl;
|
|
struct ipv6_devconf *devconf_all;
|
|
struct ipv6_devconf *devconf_dflt;
|
|
struct inet_peer_base *peers;
|
|
struct fqdir *fqdir;
|
|
struct fib6_info *fib6_null_entry;
|
|
struct rt6_info *ip6_null_entry;
|
|
struct rt6_statistics *rt6_stats;
|
|
struct timer_list ip6_fib_timer;
|
|
struct hlist_head *fib_table_hash;
|
|
struct fib6_table *fib6_main_tbl;
|
|
struct list_head fib6_walkers;
|
|
rwlock_t fib6_walker_lock;
|
|
spinlock_t fib6_gc_lock;
|
|
atomic_t ip6_rt_gc_expire;
|
|
unsigned long ip6_rt_last_gc;
|
|
unsigned char flowlabel_has_excl;
|
|
struct sock *ndisc_sk;
|
|
struct sock *tcp_sk;
|
|
struct sock *igmp_sk;
|
|
struct sock *mc_autojoin_sk;
|
|
struct hlist_head *inet6_addr_lst;
|
|
spinlock_t addrconf_hash_lock;
|
|
struct delayed_work addr_chk_work;
|
|
atomic_t dev_addr_genid;
|
|
atomic_t fib6_sernum;
|
|
struct seg6_pernet_data *seg6_data;
|
|
struct fib_notifier_ops *notifier_ops;
|
|
struct fib_notifier_ops *ip6mr_notifier_ops;
|
|
unsigned int ipmr_seq;
|
|
struct {
|
|
struct hlist_head head;
|
|
spinlock_t lock;
|
|
u32 seq;
|
|
} ip6addrlbl_table;
|
|
struct ioam6_pernet_data *ioam6_data;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct nf_logger;
|
|
|
|
struct nf_hook_entries;
|
|
|
|
struct netns_nf {
|
|
struct proc_dir_entry *proc_netfilter;
|
|
const struct nf_logger __attribute__((btf_type_tag("rcu"))) *nf_loggers[11];
|
|
struct ctl_table_header *nf_log_dir_header;
|
|
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv4[5];
|
|
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv6[5];
|
|
unsigned int defrag_ipv4_users;
|
|
unsigned int defrag_ipv6_users;
|
|
};
|
|
|
|
struct nf_generic_net {
|
|
unsigned int timeout;
|
|
};
|
|
|
|
struct nf_tcp_net {
|
|
unsigned int timeouts[14];
|
|
u8 tcp_loose;
|
|
u8 tcp_be_liberal;
|
|
u8 tcp_max_retrans;
|
|
u8 tcp_ignore_invalid_rst;
|
|
};
|
|
|
|
struct nf_udp_net {
|
|
unsigned int timeouts[2];
|
|
};
|
|
|
|
struct nf_icmp_net {
|
|
unsigned int timeout;
|
|
};
|
|
|
|
struct nf_dccp_net {
|
|
u8 dccp_loose;
|
|
unsigned int dccp_timeout[10];
|
|
};
|
|
|
|
struct nf_sctp_net {
|
|
unsigned int timeouts[10];
|
|
};
|
|
|
|
struct nf_ip_net {
|
|
struct nf_generic_net generic;
|
|
struct nf_tcp_net tcp;
|
|
struct nf_udp_net udp;
|
|
struct nf_icmp_net icmp;
|
|
struct nf_icmp_net icmpv6;
|
|
struct nf_dccp_net dccp;
|
|
struct nf_sctp_net sctp;
|
|
};
|
|
|
|
struct ip_conntrack_stat;
|
|
|
|
struct nf_ct_event_notifier;
|
|
|
|
struct netns_ct {
|
|
bool ecache_dwork_pending;
|
|
u8 sysctl_log_invalid;
|
|
u8 sysctl_events;
|
|
u8 sysctl_acct;
|
|
u8 sysctl_tstamp;
|
|
u8 sysctl_checksum;
|
|
struct ip_conntrack_stat __attribute__((btf_type_tag("percpu"))) *stat;
|
|
struct nf_ct_event_notifier __attribute__((btf_type_tag("rcu"))) *nf_conntrack_event_cb;
|
|
struct nf_ip_net nf_ct_proto;
|
|
unsigned int labels_used;
|
|
};
|
|
|
|
struct netns_bpf {
|
|
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *run_array[2];
|
|
struct bpf_prog *progs[2];
|
|
struct list_head links[2];
|
|
};
|
|
|
|
struct xfrm_policy_hash {
|
|
struct hlist_head __attribute__((btf_type_tag("rcu"))) *table;
|
|
unsigned int hmask;
|
|
u8 dbits4;
|
|
u8 sbits4;
|
|
u8 dbits6;
|
|
u8 sbits6;
|
|
};
|
|
|
|
struct xfrm_policy_hthresh {
|
|
struct work_struct work;
|
|
seqlock_t lock;
|
|
u8 lbits4;
|
|
u8 rbits4;
|
|
u8 lbits6;
|
|
u8 rbits6;
|
|
};
|
|
|
|
struct netns_xfrm {
|
|
struct list_head state_all;
|
|
struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_bydst;
|
|
struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_bysrc;
|
|
struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_byspi;
|
|
struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_byseq;
|
|
unsigned int state_hmask;
|
|
unsigned int state_num;
|
|
struct work_struct state_hash_work;
|
|
struct list_head policy_all;
|
|
struct hlist_head *policy_byidx;
|
|
unsigned int policy_idx_hmask;
|
|
struct hlist_head policy_inexact[3];
|
|
struct xfrm_policy_hash policy_bydst[3];
|
|
unsigned int policy_count[6];
|
|
struct work_struct policy_hash_work;
|
|
struct xfrm_policy_hthresh policy_hthresh;
|
|
struct list_head inexact_bins;
|
|
struct sock *nlsk;
|
|
struct sock *nlsk_stash;
|
|
u32 sysctl_aevent_etime;
|
|
u32 sysctl_aevent_rseqth;
|
|
int sysctl_larval_drop;
|
|
u32 sysctl_acq_expires;
|
|
u8 policy_default[3];
|
|
struct ctl_table_header *sysctl_hdr;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct dst_ops xfrm4_dst_ops;
|
|
struct dst_ops xfrm6_dst_ops;
|
|
spinlock_t xfrm_state_lock;
|
|
seqcount_spinlock_t xfrm_state_hash_generation;
|
|
seqcount_spinlock_t xfrm_policy_hash_generation;
|
|
spinlock_t xfrm_policy_lock;
|
|
struct mutex xfrm_cfg_mutex;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct mpls_route;
|
|
|
|
struct netns_mpls {
|
|
int ip_ttl_propagate;
|
|
int default_ttl;
|
|
size_t platform_labels;
|
|
struct mpls_route __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("rcu"))) *platform_label;
|
|
struct ctl_table_header *ctl;
|
|
};
|
|
|
|
struct netns_xdp {
|
|
struct mutex lock;
|
|
struct hlist_head list;
|
|
};
|
|
|
|
struct uevent_sock;
|
|
|
|
struct net_generic;
|
|
|
|
struct net {
|
|
refcount_t passive;
|
|
spinlock_t rules_mod_lock;
|
|
atomic_t dev_unreg_count;
|
|
unsigned int dev_base_seq;
|
|
int ifindex;
|
|
spinlock_t nsid_lock;
|
|
atomic_t fnhe_genid;
|
|
struct list_head list;
|
|
struct list_head exit_list;
|
|
struct llist_node cleanup_list;
|
|
struct key_tag *key_domain;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
struct idr netns_ids;
|
|
struct ns_common ns;
|
|
struct ref_tracker_dir refcnt_tracker;
|
|
struct ref_tracker_dir notrefcnt_tracker;
|
|
struct list_head dev_base_head;
|
|
struct proc_dir_entry *proc_net;
|
|
struct proc_dir_entry *proc_net_stat;
|
|
struct ctl_table_set sysctls;
|
|
struct sock *rtnl;
|
|
struct sock *genl_sock;
|
|
struct uevent_sock *uevent_sock;
|
|
struct hlist_head *dev_name_head;
|
|
struct hlist_head *dev_index_head;
|
|
struct raw_notifier_head netdev_chain;
|
|
u32 hash_mix;
|
|
struct net_device *loopback_dev;
|
|
struct list_head rules_ops;
|
|
struct netns_core core;
|
|
struct netns_mib mib;
|
|
struct netns_packet packet;
|
|
struct netns_unix unx;
|
|
struct netns_nexthop nexthop;
|
|
struct netns_ipv4 ipv4;
|
|
struct netns_ipv6 ipv6;
|
|
struct netns_nf nf;
|
|
struct netns_ct ct;
|
|
struct net_generic __attribute__((btf_type_tag("rcu"))) *gen;
|
|
struct netns_bpf bpf;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct netns_xfrm xfrm;
|
|
u64 net_cookie;
|
|
struct netns_mpls mpls;
|
|
struct netns_xdp xdp;
|
|
struct sock *diag_nlsk;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *);
|
|
|
|
struct notifier_block {
|
|
notifier_fn_t notifier_call;
|
|
struct notifier_block __attribute__((btf_type_tag("rcu"))) *next;
|
|
int priority;
|
|
};
|
|
|
|
struct pcpu_dstats;
|
|
|
|
typedef u32 xdp_features_t;
|
|
|
|
typedef u64 netdev_features_t;
|
|
|
|
struct net_device_stats {
|
|
union {
|
|
unsigned long rx_packets;
|
|
atomic_long_t __rx_packets;
|
|
};
|
|
union {
|
|
unsigned long tx_packets;
|
|
atomic_long_t __tx_packets;
|
|
};
|
|
union {
|
|
unsigned long rx_bytes;
|
|
atomic_long_t __rx_bytes;
|
|
};
|
|
union {
|
|
unsigned long tx_bytes;
|
|
atomic_long_t __tx_bytes;
|
|
};
|
|
union {
|
|
unsigned long rx_errors;
|
|
atomic_long_t __rx_errors;
|
|
};
|
|
union {
|
|
unsigned long tx_errors;
|
|
atomic_long_t __tx_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_dropped;
|
|
atomic_long_t __rx_dropped;
|
|
};
|
|
union {
|
|
unsigned long tx_dropped;
|
|
atomic_long_t __tx_dropped;
|
|
};
|
|
union {
|
|
unsigned long multicast;
|
|
atomic_long_t __multicast;
|
|
};
|
|
union {
|
|
unsigned long collisions;
|
|
atomic_long_t __collisions;
|
|
};
|
|
union {
|
|
unsigned long rx_length_errors;
|
|
atomic_long_t __rx_length_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_over_errors;
|
|
atomic_long_t __rx_over_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_crc_errors;
|
|
atomic_long_t __rx_crc_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_frame_errors;
|
|
atomic_long_t __rx_frame_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_fifo_errors;
|
|
atomic_long_t __rx_fifo_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_missed_errors;
|
|
atomic_long_t __rx_missed_errors;
|
|
};
|
|
union {
|
|
unsigned long tx_aborted_errors;
|
|
atomic_long_t __tx_aborted_errors;
|
|
};
|
|
union {
|
|
unsigned long tx_carrier_errors;
|
|
atomic_long_t __tx_carrier_errors;
|
|
};
|
|
union {
|
|
unsigned long tx_fifo_errors;
|
|
atomic_long_t __tx_fifo_errors;
|
|
};
|
|
union {
|
|
unsigned long tx_heartbeat_errors;
|
|
atomic_long_t __tx_heartbeat_errors;
|
|
};
|
|
union {
|
|
unsigned long tx_window_errors;
|
|
atomic_long_t __tx_window_errors;
|
|
};
|
|
union {
|
|
unsigned long rx_compressed;
|
|
atomic_long_t __rx_compressed;
|
|
};
|
|
union {
|
|
unsigned long tx_compressed;
|
|
atomic_long_t __tx_compressed;
|
|
};
|
|
};
|
|
|
|
struct netdev_hw_addr_list {
|
|
struct list_head list;
|
|
int count;
|
|
struct rb_root tree;
|
|
};
|
|
|
|
enum rx_handler_result {
|
|
RX_HANDLER_CONSUMED = 0,
|
|
RX_HANDLER_ANOTHER = 1,
|
|
RX_HANDLER_EXACT = 2,
|
|
RX_HANDLER_PASS = 3,
|
|
};
|
|
|
|
typedef enum rx_handler_result rx_handler_result_t;
|
|
|
|
typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **);
|
|
|
|
typedef struct {
|
|
struct net *net;
|
|
} possible_net_t;
|
|
|
|
enum netdev_ml_priv_type {
|
|
ML_PRIV_NONE = 0,
|
|
ML_PRIV_CAN = 1,
|
|
};
|
|
|
|
struct netdev_tc_txq {
|
|
u16 count;
|
|
u16 offset;
|
|
};
|
|
|
|
struct sfp_bus;
|
|
|
|
struct bpf_xdp_link;
|
|
|
|
struct bpf_xdp_entity {
|
|
struct bpf_prog *prog;
|
|
struct bpf_xdp_link *link;
|
|
};
|
|
|
|
typedef struct {} netdevice_tracker;
|
|
|
|
struct netdev_name_node;
|
|
|
|
struct dev_ifalias;
|
|
|
|
struct net_device_ops;
|
|
|
|
struct xdp_metadata_ops;
|
|
|
|
struct net_device_core_stats;
|
|
|
|
struct ethtool_ops;
|
|
|
|
struct ndisc_ops;
|
|
|
|
struct header_ops;
|
|
|
|
struct in_device;
|
|
|
|
struct inet6_dev;
|
|
|
|
struct wireless_dev;
|
|
|
|
struct mpls_dev;
|
|
|
|
struct netdev_rx_queue;
|
|
|
|
struct mini_Qdisc;
|
|
|
|
struct netdev_queue;
|
|
|
|
struct cpu_rmap;
|
|
|
|
struct Qdisc;
|
|
|
|
struct xdp_dev_bulk_queue;
|
|
|
|
struct xps_dev_maps;
|
|
|
|
struct netpoll_info;
|
|
|
|
struct pcpu_lstats;
|
|
|
|
struct pcpu_sw_netstats;
|
|
|
|
struct rtnl_link_ops;
|
|
|
|
struct netprio_map;
|
|
|
|
struct phy_device;
|
|
|
|
struct udp_tunnel_nic_info;
|
|
|
|
struct udp_tunnel_nic;
|
|
|
|
struct rtnl_hw_stats64;
|
|
|
|
struct devlink_port;
|
|
|
|
struct net_device {
|
|
char name[16];
|
|
struct netdev_name_node *name_node;
|
|
struct dev_ifalias __attribute__((btf_type_tag("rcu"))) *ifalias;
|
|
unsigned long mem_end;
|
|
unsigned long mem_start;
|
|
unsigned long base_addr;
|
|
unsigned long state;
|
|
struct list_head dev_list;
|
|
struct list_head napi_list;
|
|
struct list_head unreg_list;
|
|
struct list_head close_list;
|
|
struct list_head ptype_all;
|
|
struct list_head ptype_specific;
|
|
struct {
|
|
struct list_head upper;
|
|
struct list_head lower;
|
|
} adj_list;
|
|
unsigned int flags;
|
|
xdp_features_t xdp_features;
|
|
unsigned long long priv_flags;
|
|
const struct net_device_ops *netdev_ops;
|
|
const struct xdp_metadata_ops *xdp_metadata_ops;
|
|
int ifindex;
|
|
unsigned short gflags;
|
|
unsigned short hard_header_len;
|
|
unsigned int mtu;
|
|
unsigned short needed_headroom;
|
|
unsigned short needed_tailroom;
|
|
netdev_features_t features;
|
|
netdev_features_t hw_features;
|
|
netdev_features_t wanted_features;
|
|
netdev_features_t vlan_features;
|
|
netdev_features_t hw_enc_features;
|
|
netdev_features_t mpls_features;
|
|
netdev_features_t gso_partial_features;
|
|
unsigned int min_mtu;
|
|
unsigned int max_mtu;
|
|
unsigned short type;
|
|
unsigned char min_header_len;
|
|
unsigned char name_assign_type;
|
|
int group;
|
|
struct net_device_stats stats;
|
|
struct net_device_core_stats __attribute__((btf_type_tag("percpu"))) *core_stats;
|
|
atomic_t carrier_up_count;
|
|
atomic_t carrier_down_count;
|
|
const struct ethtool_ops *ethtool_ops;
|
|
const struct ndisc_ops *ndisc_ops;
|
|
const struct header_ops *header_ops;
|
|
unsigned char operstate;
|
|
unsigned char link_mode;
|
|
unsigned char if_port;
|
|
unsigned char dma;
|
|
unsigned char perm_addr[32];
|
|
unsigned char addr_assign_type;
|
|
unsigned char addr_len;
|
|
unsigned char upper_level;
|
|
unsigned char lower_level;
|
|
unsigned short neigh_priv_len;
|
|
unsigned short dev_id;
|
|
unsigned short dev_port;
|
|
unsigned short padded;
|
|
spinlock_t addr_list_lock;
|
|
int irq;
|
|
struct netdev_hw_addr_list uc;
|
|
struct netdev_hw_addr_list mc;
|
|
struct netdev_hw_addr_list dev_addrs;
|
|
struct kset *queues_kset;
|
|
unsigned int promiscuity;
|
|
unsigned int allmulti;
|
|
bool uc_promisc;
|
|
struct in_device __attribute__((btf_type_tag("rcu"))) *ip_ptr;
|
|
struct inet6_dev __attribute__((btf_type_tag("rcu"))) *ip6_ptr;
|
|
struct wireless_dev *ieee80211_ptr;
|
|
struct mpls_dev __attribute__((btf_type_tag("rcu"))) *mpls_ptr;
|
|
const unsigned char *dev_addr;
|
|
struct netdev_rx_queue *_rx;
|
|
unsigned int num_rx_queues;
|
|
unsigned int real_num_rx_queues;
|
|
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog;
|
|
unsigned long gro_flush_timeout;
|
|
int napi_defer_hard_irqs;
|
|
unsigned int gro_max_size;
|
|
unsigned int gro_ipv4_max_size;
|
|
rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler;
|
|
void __attribute__((btf_type_tag("rcu"))) *rx_handler_data;
|
|
struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq_ingress;
|
|
struct netdev_queue __attribute__((btf_type_tag("rcu"))) *ingress_queue;
|
|
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_ingress;
|
|
unsigned char broadcast[32];
|
|
struct cpu_rmap *rx_cpu_rmap;
|
|
struct hlist_node index_hlist;
|
|
struct netdev_queue *_tx;
|
|
unsigned int num_tx_queues;
|
|
unsigned int real_num_tx_queues;
|
|
struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc;
|
|
unsigned int tx_queue_len;
|
|
spinlock_t tx_global_lock;
|
|
struct xdp_dev_bulk_queue __attribute__((btf_type_tag("percpu"))) *xdp_bulkq;
|
|
struct xps_dev_maps __attribute__((btf_type_tag("rcu"))) *xps_maps[2];
|
|
struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq_egress;
|
|
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_egress;
|
|
struct hlist_head qdisc_hash[16];
|
|
struct timer_list watchdog_timer;
|
|
int watchdog_timeo;
|
|
u32 proto_down_reason;
|
|
struct list_head todo_list;
|
|
int __attribute__((btf_type_tag("percpu"))) *pcpu_refcnt;
|
|
struct ref_tracker_dir refcnt_tracker;
|
|
struct list_head link_watch_list;
|
|
enum {
|
|
NETREG_UNINITIALIZED = 0,
|
|
NETREG_REGISTERED = 1,
|
|
NETREG_UNREGISTERING = 2,
|
|
NETREG_UNREGISTERED = 3,
|
|
NETREG_RELEASED = 4,
|
|
NETREG_DUMMY = 5,
|
|
} reg_state: 8;
|
|
bool dismantle;
|
|
enum {
|
|
RTNL_LINK_INITIALIZED = 0,
|
|
RTNL_LINK_INITIALIZING = 1,
|
|
} rtnl_link_state: 16;
|
|
bool needs_free_netdev;
|
|
void (*priv_destructor)(struct net_device *);
|
|
struct netpoll_info __attribute__((btf_type_tag("rcu"))) *npinfo;
|
|
possible_net_t nd_net;
|
|
void *ml_priv;
|
|
enum netdev_ml_priv_type ml_priv_type;
|
|
union {
|
|
struct pcpu_lstats __attribute__((btf_type_tag("percpu"))) *lstats;
|
|
struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *tstats;
|
|
struct pcpu_dstats __attribute__((btf_type_tag("percpu"))) *dstats;
|
|
};
|
|
struct device dev;
|
|
const struct attribute_group *sysfs_groups[4];
|
|
const struct attribute_group *sysfs_rx_queue_group;
|
|
const struct rtnl_link_ops *rtnl_link_ops;
|
|
unsigned int gso_max_size;
|
|
unsigned int tso_max_size;
|
|
u16 gso_max_segs;
|
|
u16 tso_max_segs;
|
|
unsigned int gso_ipv4_max_size;
|
|
s16 num_tc;
|
|
struct netdev_tc_txq tc_to_txq[16];
|
|
u8 prio_tc_map[16];
|
|
struct netprio_map __attribute__((btf_type_tag("rcu"))) *priomap;
|
|
struct phy_device *phydev;
|
|
struct sfp_bus *sfp_bus;
|
|
struct lock_class_key *qdisc_tx_busylock;
|
|
bool proto_down;
|
|
unsigned int wol_enabled: 1;
|
|
unsigned int threaded: 1;
|
|
struct list_head net_notifier_list;
|
|
const struct udp_tunnel_nic_info *udp_tunnel_nic_info;
|
|
struct udp_tunnel_nic *udp_tunnel_nic;
|
|
struct bpf_xdp_entity xdp_state[3];
|
|
u8 dev_addr_shadow[32];
|
|
netdevice_tracker linkwatch_dev_tracker;
|
|
netdevice_tracker watchdog_dev_tracker;
|
|
netdevice_tracker dev_registered_tracker;
|
|
struct rtnl_hw_stats64 *offload_xstats_l3;
|
|
struct devlink_port *devlink_port;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct dev_ifalias {
|
|
struct callback_head rcuhead;
|
|
char ifalias[0];
|
|
};
|
|
|
|
enum netdev_tx {
|
|
__NETDEV_TX_MIN = -2147483648,
|
|
NETDEV_TX_OK = 0,
|
|
NETDEV_TX_BUSY = 16,
|
|
};
|
|
|
|
typedef enum netdev_tx netdev_tx_t;
|
|
|
|
typedef __u16 __be16;
|
|
|
|
enum tc_setup_type {
|
|
TC_QUERY_CAPS = 0,
|
|
TC_SETUP_QDISC_MQPRIO = 1,
|
|
TC_SETUP_CLSU32 = 2,
|
|
TC_SETUP_CLSFLOWER = 3,
|
|
TC_SETUP_CLSMATCHALL = 4,
|
|
TC_SETUP_CLSBPF = 5,
|
|
TC_SETUP_BLOCK = 6,
|
|
TC_SETUP_QDISC_CBS = 7,
|
|
TC_SETUP_QDISC_RED = 8,
|
|
TC_SETUP_QDISC_PRIO = 9,
|
|
TC_SETUP_QDISC_MQ = 10,
|
|
TC_SETUP_QDISC_ETF = 11,
|
|
TC_SETUP_ROOT_QDISC = 12,
|
|
TC_SETUP_QDISC_GRED = 13,
|
|
TC_SETUP_QDISC_TAPRIO = 14,
|
|
TC_SETUP_FT = 15,
|
|
TC_SETUP_QDISC_ETS = 16,
|
|
TC_SETUP_QDISC_TBF = 17,
|
|
TC_SETUP_QDISC_FIFO = 18,
|
|
TC_SETUP_QDISC_HTB = 19,
|
|
TC_SETUP_ACT = 20,
|
|
};
|
|
|
|
struct ifreq;
|
|
|
|
struct if_settings;
|
|
|
|
struct ifmap;
|
|
|
|
struct neigh_parms;
|
|
|
|
struct rtnl_link_stats64;
|
|
|
|
struct ifla_vf_info;
|
|
|
|
struct ifla_vf_stats;
|
|
|
|
struct nlattr;
|
|
|
|
struct ifla_vf_guid;
|
|
|
|
struct netlink_ext_ack;
|
|
|
|
struct ndmsg;
|
|
|
|
struct netlink_callback;
|
|
|
|
struct nlmsghdr;
|
|
|
|
struct netdev_phys_item_id;
|
|
|
|
struct netdev_bpf;
|
|
|
|
struct xdp_frame;
|
|
|
|
struct xdp_buff;
|
|
|
|
struct ip_tunnel_parm;
|
|
|
|
struct net_device_path_ctx;
|
|
|
|
struct net_device_path;
|
|
|
|
struct skb_shared_hwtstamps;
|
|
|
|
struct net_device_ops {
|
|
int (*ndo_init)(struct net_device *);
|
|
void (*ndo_uninit)(struct net_device *);
|
|
int (*ndo_open)(struct net_device *);
|
|
int (*ndo_stop)(struct net_device *);
|
|
netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *);
|
|
netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t);
|
|
u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *);
|
|
void (*ndo_change_rx_flags)(struct net_device *, int);
|
|
void (*ndo_set_rx_mode)(struct net_device *);
|
|
int (*ndo_set_mac_address)(struct net_device *, void *);
|
|
int (*ndo_validate_addr)(struct net_device *);
|
|
int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int);
|
|
int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int);
|
|
int (*ndo_siocbond)(struct net_device *, struct ifreq *, int);
|
|
int (*ndo_siocwandev)(struct net_device *, struct if_settings *);
|
|
int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int);
|
|
int (*ndo_set_config)(struct net_device *, struct ifmap *);
|
|
int (*ndo_change_mtu)(struct net_device *, int);
|
|
int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *);
|
|
void (*ndo_tx_timeout)(struct net_device *, unsigned int);
|
|
void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *);
|
|
bool (*ndo_has_offload_stats)(const struct net_device *, int);
|
|
int (*ndo_get_offload_stats)(int, const struct net_device *, void *);
|
|
struct net_device_stats * (*ndo_get_stats)(struct net_device *);
|
|
int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16);
|
|
int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16);
|
|
void (*ndo_poll_controller)(struct net_device *);
|
|
int (*ndo_netpoll_setup)(struct net_device *, struct netpoll_info *);
|
|
void (*ndo_netpoll_cleanup)(struct net_device *);
|
|
int (*ndo_set_vf_mac)(struct net_device *, int, u8 *);
|
|
int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16);
|
|
int (*ndo_set_vf_rate)(struct net_device *, int, int, int);
|
|
int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool);
|
|
int (*ndo_set_vf_trust)(struct net_device *, int, bool);
|
|
int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *);
|
|
int (*ndo_set_vf_link_state)(struct net_device *, int, int);
|
|
int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *);
|
|
int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **);
|
|
int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *);
|
|
int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *);
|
|
int (*ndo_set_vf_guid)(struct net_device *, int, u64, int);
|
|
int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool);
|
|
int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *);
|
|
int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32);
|
|
int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *);
|
|
int (*ndo_del_slave)(struct net_device *, struct net_device *);
|
|
struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool);
|
|
struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *);
|
|
netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t);
|
|
int (*ndo_set_features)(struct net_device *, netdev_features_t);
|
|
int (*ndo_neigh_construct)(struct net_device *, struct neighbour *);
|
|
void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *);
|
|
int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *);
|
|
int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *);
|
|
int (*ndo_fdb_del_bulk)(struct ndmsg *, struct nlattr **, struct net_device *, u16, struct netlink_ext_ack *);
|
|
int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *);
|
|
int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *);
|
|
int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *);
|
|
int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int);
|
|
int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16);
|
|
int (*ndo_change_carrier)(struct net_device *, bool);
|
|
int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *);
|
|
int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *);
|
|
int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t);
|
|
void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *);
|
|
void (*ndo_dfwd_del_station)(struct net_device *, void *);
|
|
int (*ndo_set_tx_maxrate)(struct net_device *, int, u32);
|
|
int (*ndo_get_iflink)(const struct net_device *);
|
|
int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *);
|
|
void (*ndo_set_rx_headroom)(struct net_device *, int);
|
|
int (*ndo_bpf)(struct net_device *, struct netdev_bpf *);
|
|
int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32);
|
|
struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *);
|
|
int (*ndo_xsk_wakeup)(struct net_device *, u32, u32);
|
|
int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int);
|
|
struct net_device * (*ndo_get_peer_dev)(struct net_device *);
|
|
int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *);
|
|
ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool);
|
|
};
|
|
|
|
typedef __u32 __wsum;
|
|
|
|
typedef unsigned int sk_buff_data_t;
|
|
|
|
struct skb_ext;
|
|
|
|
struct sk_buff {
|
|
union {
|
|
struct {
|
|
struct sk_buff *next;
|
|
struct sk_buff *prev;
|
|
union {
|
|
struct net_device *dev;
|
|
unsigned long dev_scratch;
|
|
};
|
|
};
|
|
struct rb_node rbnode;
|
|
struct list_head list;
|
|
struct llist_node ll_node;
|
|
};
|
|
union {
|
|
struct sock *sk;
|
|
int ip_defrag_offset;
|
|
};
|
|
union {
|
|
ktime_t tstamp;
|
|
u64 skb_mstamp_ns;
|
|
};
|
|
char cb[48];
|
|
union {
|
|
struct {
|
|
unsigned long _skb_refdst;
|
|
void (*destructor)(struct sk_buff *);
|
|
};
|
|
struct list_head tcp_tsorted_anchor;
|
|
unsigned long _sk_redir;
|
|
};
|
|
unsigned long _nfct;
|
|
unsigned int len;
|
|
unsigned int data_len;
|
|
__u16 mac_len;
|
|
__u16 hdr_len;
|
|
__u16 queue_mapping;
|
|
__u8 __cloned_offset[0];
|
|
__u8 cloned: 1;
|
|
__u8 nohdr: 1;
|
|
__u8 fclone: 2;
|
|
__u8 peeked: 1;
|
|
__u8 head_frag: 1;
|
|
__u8 pfmemalloc: 1;
|
|
__u8 pp_recycle: 1;
|
|
__u8 active_extensions;
|
|
union {
|
|
struct {
|
|
__u8 __pkt_type_offset[0];
|
|
__u8 pkt_type: 3;
|
|
__u8 ignore_df: 1;
|
|
__u8 nf_trace: 1;
|
|
__u8 ip_summed: 2;
|
|
__u8 ooo_okay: 1;
|
|
__u8 l4_hash: 1;
|
|
__u8 sw_hash: 1;
|
|
__u8 wifi_acked_valid: 1;
|
|
__u8 wifi_acked: 1;
|
|
__u8 no_fcs: 1;
|
|
__u8 encapsulation: 1;
|
|
__u8 encap_hdr_csum: 1;
|
|
__u8 csum_valid: 1;
|
|
__u8 __pkt_vlan_present_offset[0];
|
|
__u8 remcsum_offload: 1;
|
|
__u8 csum_complete_sw: 1;
|
|
__u8 csum_level: 2;
|
|
__u8 dst_pending_confirm: 1;
|
|
__u8 mono_delivery_time: 1;
|
|
__u8 tc_skip_classify: 1;
|
|
__u8 tc_at_ingress: 1;
|
|
__u8 ndisc_nodetype: 2;
|
|
__u8 ipvs_property: 1;
|
|
__u8 inner_protocol_type: 1;
|
|
__u8 redirected: 1;
|
|
__u8 nf_skip_egress: 1;
|
|
__u8 slow_gro: 1;
|
|
__u8 csum_not_inet: 1;
|
|
__u16 tc_index;
|
|
union {
|
|
__wsum csum;
|
|
struct {
|
|
__u16 csum_start;
|
|
__u16 csum_offset;
|
|
};
|
|
};
|
|
__u32 priority;
|
|
int skb_iif;
|
|
__u32 hash;
|
|
union {
|
|
u32 vlan_all;
|
|
struct {
|
|
__be16 vlan_proto;
|
|
__u16 vlan_tci;
|
|
};
|
|
};
|
|
union {
|
|
unsigned int napi_id;
|
|
unsigned int sender_cpu;
|
|
};
|
|
u16 alloc_cpu;
|
|
__u32 secmark;
|
|
union {
|
|
__u32 mark;
|
|
__u32 reserved_tailroom;
|
|
};
|
|
union {
|
|
__be16 inner_protocol;
|
|
__u8 inner_ipproto;
|
|
};
|
|
__u16 inner_transport_header;
|
|
__u16 inner_network_header;
|
|
__u16 inner_mac_header;
|
|
__be16 protocol;
|
|
__u16 transport_header;
|
|
__u16 network_header;
|
|
__u16 mac_header;
|
|
};
|
|
struct {
|
|
__u8 __pkt_type_offset[0];
|
|
__u8 pkt_type: 3;
|
|
__u8 ignore_df: 1;
|
|
__u8 nf_trace: 1;
|
|
__u8 ip_summed: 2;
|
|
__u8 ooo_okay: 1;
|
|
__u8 l4_hash: 1;
|
|
__u8 sw_hash: 1;
|
|
__u8 wifi_acked_valid: 1;
|
|
__u8 wifi_acked: 1;
|
|
__u8 no_fcs: 1;
|
|
__u8 encapsulation: 1;
|
|
__u8 encap_hdr_csum: 1;
|
|
__u8 csum_valid: 1;
|
|
__u8 __pkt_vlan_present_offset[0];
|
|
__u8 remcsum_offload: 1;
|
|
__u8 csum_complete_sw: 1;
|
|
__u8 csum_level: 2;
|
|
__u8 dst_pending_confirm: 1;
|
|
__u8 mono_delivery_time: 1;
|
|
__u8 tc_skip_classify: 1;
|
|
__u8 tc_at_ingress: 1;
|
|
__u8 ndisc_nodetype: 2;
|
|
__u8 ipvs_property: 1;
|
|
__u8 inner_protocol_type: 1;
|
|
__u8 redirected: 1;
|
|
__u8 nf_skip_egress: 1;
|
|
__u8 slow_gro: 1;
|
|
__u8 csum_not_inet: 1;
|
|
__u16 tc_index;
|
|
union {
|
|
__wsum csum;
|
|
struct {
|
|
__u16 csum_start;
|
|
__u16 csum_offset;
|
|
};
|
|
};
|
|
__u32 priority;
|
|
int skb_iif;
|
|
__u32 hash;
|
|
union {
|
|
u32 vlan_all;
|
|
struct {
|
|
__be16 vlan_proto;
|
|
__u16 vlan_tci;
|
|
};
|
|
};
|
|
union {
|
|
unsigned int napi_id;
|
|
unsigned int sender_cpu;
|
|
};
|
|
u16 alloc_cpu;
|
|
__u32 secmark;
|
|
union {
|
|
__u32 mark;
|
|
__u32 reserved_tailroom;
|
|
};
|
|
union {
|
|
__be16 inner_protocol;
|
|
__u8 inner_ipproto;
|
|
};
|
|
__u16 inner_transport_header;
|
|
__u16 inner_network_header;
|
|
__u16 inner_mac_header;
|
|
__be16 protocol;
|
|
__u16 transport_header;
|
|
__u16 network_header;
|
|
__u16 mac_header;
|
|
} headers;
|
|
};
|
|
sk_buff_data_t tail;
|
|
sk_buff_data_t end;
|
|
unsigned char *head;
|
|
unsigned char *data;
|
|
unsigned int truesize;
|
|
refcount_t users;
|
|
struct skb_ext *extensions;
|
|
};
|
|
|
|
struct skb_ext {
|
|
refcount_t refcnt;
|
|
u8 offset[2];
|
|
u8 chunks;
|
|
char: 8;
|
|
char data[0];
|
|
};
|
|
|
|
typedef unsigned short __kernel_sa_family_t;
|
|
|
|
typedef __kernel_sa_family_t sa_family_t;
|
|
|
|
struct sockaddr {
|
|
sa_family_t sa_family;
|
|
union {
|
|
char sa_data_min[14];
|
|
struct {
|
|
struct { } __empty_sa_data;
|
|
char sa_data[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct ifmap {
|
|
unsigned long mem_start;
|
|
unsigned long mem_end;
|
|
unsigned short base_addr;
|
|
unsigned char irq;
|
|
unsigned char dma;
|
|
unsigned char port;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned short encoding;
|
|
unsigned short parity;
|
|
} raw_hdlc_proto;
|
|
|
|
typedef struct {
|
|
unsigned int interval;
|
|
unsigned int timeout;
|
|
} cisco_proto;
|
|
|
|
typedef struct {
|
|
unsigned int t391;
|
|
unsigned int t392;
|
|
unsigned int n391;
|
|
unsigned int n392;
|
|
unsigned int n393;
|
|
unsigned short lmi;
|
|
unsigned short dce;
|
|
} fr_proto;
|
|
|
|
typedef struct {
|
|
unsigned int dlci;
|
|
} fr_proto_pvc;
|
|
|
|
typedef struct {
|
|
unsigned int dlci;
|
|
char master[16];
|
|
} fr_proto_pvc_info;
|
|
|
|
typedef struct {
|
|
unsigned short dce;
|
|
unsigned int modulo;
|
|
unsigned int window;
|
|
unsigned int t1;
|
|
unsigned int t2;
|
|
unsigned int n2;
|
|
} x25_hdlc_proto;
|
|
|
|
typedef struct {
|
|
unsigned int clock_rate;
|
|
unsigned int clock_type;
|
|
unsigned short loopback;
|
|
} sync_serial_settings;
|
|
|
|
typedef struct {
|
|
unsigned int clock_rate;
|
|
unsigned int clock_type;
|
|
unsigned short loopback;
|
|
unsigned int slot_map;
|
|
} te1_settings;
|
|
|
|
struct if_settings {
|
|
unsigned int type;
|
|
unsigned int size;
|
|
union {
|
|
raw_hdlc_proto __attribute__((btf_type_tag("user"))) *raw_hdlc;
|
|
cisco_proto __attribute__((btf_type_tag("user"))) *cisco;
|
|
fr_proto __attribute__((btf_type_tag("user"))) *fr;
|
|
fr_proto_pvc __attribute__((btf_type_tag("user"))) *fr_pvc;
|
|
fr_proto_pvc_info __attribute__((btf_type_tag("user"))) *fr_pvc_info;
|
|
x25_hdlc_proto __attribute__((btf_type_tag("user"))) *x25;
|
|
sync_serial_settings __attribute__((btf_type_tag("user"))) *sync;
|
|
te1_settings __attribute__((btf_type_tag("user"))) *te1;
|
|
} ifs_ifsu;
|
|
};
|
|
|
|
struct ifreq {
|
|
union {
|
|
char ifrn_name[16];
|
|
} ifr_ifrn;
|
|
union {
|
|
struct sockaddr ifru_addr;
|
|
struct sockaddr ifru_dstaddr;
|
|
struct sockaddr ifru_broadaddr;
|
|
struct sockaddr ifru_netmask;
|
|
struct sockaddr ifru_hwaddr;
|
|
short ifru_flags;
|
|
int ifru_ivalue;
|
|
int ifru_mtu;
|
|
struct ifmap ifru_map;
|
|
char ifru_slave[16];
|
|
char ifru_newname[16];
|
|
void __attribute__((btf_type_tag("user"))) *ifru_data;
|
|
struct if_settings ifru_settings;
|
|
} ifr_ifru;
|
|
};
|
|
|
|
struct rtnl_link_stats64 {
|
|
__u64 rx_packets;
|
|
__u64 tx_packets;
|
|
__u64 rx_bytes;
|
|
__u64 tx_bytes;
|
|
__u64 rx_errors;
|
|
__u64 tx_errors;
|
|
__u64 rx_dropped;
|
|
__u64 tx_dropped;
|
|
__u64 multicast;
|
|
__u64 collisions;
|
|
__u64 rx_length_errors;
|
|
__u64 rx_over_errors;
|
|
__u64 rx_crc_errors;
|
|
__u64 rx_frame_errors;
|
|
__u64 rx_fifo_errors;
|
|
__u64 rx_missed_errors;
|
|
__u64 tx_aborted_errors;
|
|
__u64 tx_carrier_errors;
|
|
__u64 tx_fifo_errors;
|
|
__u64 tx_heartbeat_errors;
|
|
__u64 tx_window_errors;
|
|
__u64 rx_compressed;
|
|
__u64 tx_compressed;
|
|
__u64 rx_nohandler;
|
|
__u64 rx_otherhost_dropped;
|
|
};
|
|
|
|
struct ifla_vf_info {
|
|
__u32 vf;
|
|
__u8 mac[32];
|
|
__u32 vlan;
|
|
__u32 qos;
|
|
__u32 spoofchk;
|
|
__u32 linkstate;
|
|
__u32 min_tx_rate;
|
|
__u32 max_tx_rate;
|
|
__u32 rss_query_en;
|
|
__u32 trusted;
|
|
__be16 vlan_proto;
|
|
};
|
|
|
|
struct ifla_vf_stats {
|
|
__u64 rx_packets;
|
|
__u64 tx_packets;
|
|
__u64 rx_bytes;
|
|
__u64 tx_bytes;
|
|
__u64 broadcast;
|
|
__u64 multicast;
|
|
__u64 rx_dropped;
|
|
__u64 tx_dropped;
|
|
};
|
|
|
|
struct nlattr {
|
|
__u16 nla_len;
|
|
__u16 nla_type;
|
|
};
|
|
|
|
struct ifla_vf_guid {
|
|
__u32 vf;
|
|
__u64 guid;
|
|
};
|
|
|
|
struct nla_policy;
|
|
|
|
struct netlink_ext_ack {
|
|
const char *_msg;
|
|
const struct nlattr *bad_attr;
|
|
const struct nla_policy *policy;
|
|
const struct nlattr *miss_nest;
|
|
u16 miss_type;
|
|
u8 cookie[20];
|
|
u8 cookie_len;
|
|
char _msg_buf[80];
|
|
};
|
|
|
|
struct netlink_range_validation;
|
|
|
|
struct netlink_range_validation_signed;
|
|
|
|
struct nla_policy {
|
|
u8 type;
|
|
u8 validation_type;
|
|
u16 len;
|
|
union {
|
|
u16 strict_start_type;
|
|
const u32 bitfield32_valid;
|
|
const u32 mask;
|
|
const char *reject_message;
|
|
const struct nla_policy *nested_policy;
|
|
struct netlink_range_validation *range;
|
|
struct netlink_range_validation_signed *range_signed;
|
|
struct {
|
|
s16 min;
|
|
s16 max;
|
|
};
|
|
int (*validate)(const struct nlattr *, struct netlink_ext_ack *);
|
|
};
|
|
};
|
|
|
|
struct netlink_range_validation {
|
|
u64 min;
|
|
u64 max;
|
|
};
|
|
|
|
struct netlink_range_validation_signed {
|
|
s64 min;
|
|
s64 max;
|
|
};
|
|
|
|
struct ndmsg {
|
|
__u8 ndm_family;
|
|
__u8 ndm_pad1;
|
|
__u16 ndm_pad2;
|
|
__s32 ndm_ifindex;
|
|
__u16 ndm_state;
|
|
__u8 ndm_flags;
|
|
__u8 ndm_type;
|
|
};
|
|
|
|
struct netlink_callback {
|
|
struct sk_buff *skb;
|
|
const struct nlmsghdr *nlh;
|
|
int (*dump)(struct sk_buff *, struct netlink_callback *);
|
|
int (*done)(struct netlink_callback *);
|
|
void *data;
|
|
struct module *module;
|
|
struct netlink_ext_ack *extack;
|
|
u16 family;
|
|
u16 answer_flags;
|
|
u32 min_dump_alloc;
|
|
unsigned int prev_seq;
|
|
unsigned int seq;
|
|
bool strict_check;
|
|
union {
|
|
u8 ctx[48];
|
|
long args[6];
|
|
};
|
|
};
|
|
|
|
struct nlmsghdr {
|
|
__u32 nlmsg_len;
|
|
__u16 nlmsg_type;
|
|
__u16 nlmsg_flags;
|
|
__u32 nlmsg_seq;
|
|
__u32 nlmsg_pid;
|
|
};
|
|
|
|
struct netdev_phys_item_id {
|
|
unsigned char id[32];
|
|
unsigned char id_len;
|
|
};
|
|
|
|
enum bpf_netdev_command {
|
|
XDP_SETUP_PROG = 0,
|
|
XDP_SETUP_PROG_HW = 1,
|
|
BPF_OFFLOAD_MAP_ALLOC = 2,
|
|
BPF_OFFLOAD_MAP_FREE = 3,
|
|
XDP_SETUP_XSK_POOL = 4,
|
|
};
|
|
|
|
struct bpf_offloaded_map;
|
|
|
|
struct xsk_buff_pool;
|
|
|
|
struct netdev_bpf {
|
|
enum bpf_netdev_command command;
|
|
union {
|
|
struct {
|
|
u32 flags;
|
|
struct bpf_prog *prog;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
struct {
|
|
struct bpf_offloaded_map *offmap;
|
|
};
|
|
struct {
|
|
struct xsk_buff_pool *pool;
|
|
u16 queue_id;
|
|
} xsk;
|
|
};
|
|
};
|
|
|
|
struct bpf_map_dev_ops;
|
|
|
|
struct bpf_offloaded_map {
|
|
struct bpf_map map;
|
|
struct net_device *netdev;
|
|
const struct bpf_map_dev_ops *dev_ops;
|
|
void *dev_priv;
|
|
struct list_head offloads;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_map_dev_ops {
|
|
int (*map_get_next_key)(struct bpf_offloaded_map *, void *, void *);
|
|
int (*map_lookup_elem)(struct bpf_offloaded_map *, void *, void *);
|
|
int (*map_update_elem)(struct bpf_offloaded_map *, void *, void *, u64);
|
|
int (*map_delete_elem)(struct bpf_offloaded_map *, void *);
|
|
};
|
|
|
|
struct xdp_mem_info {
|
|
u32 type;
|
|
u32 id;
|
|
};
|
|
|
|
struct xdp_frame {
|
|
void *data;
|
|
u16 len;
|
|
u16 headroom;
|
|
u32 metasize;
|
|
struct xdp_mem_info mem;
|
|
struct net_device *dev_rx;
|
|
u32 frame_sz;
|
|
u32 flags;
|
|
};
|
|
|
|
struct xdp_rxq_info;
|
|
|
|
struct xdp_txq_info;
|
|
|
|
struct xdp_buff {
|
|
void *data;
|
|
void *data_end;
|
|
void *data_meta;
|
|
void *data_hard_start;
|
|
struct xdp_rxq_info *rxq;
|
|
struct xdp_txq_info *txq;
|
|
u32 frame_sz;
|
|
u32 flags;
|
|
};
|
|
|
|
struct xdp_rxq_info {
|
|
struct net_device *dev;
|
|
u32 queue_index;
|
|
u32 reg_state;
|
|
struct xdp_mem_info mem;
|
|
unsigned int napi_id;
|
|
u32 frag_size;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct xdp_txq_info {
|
|
struct net_device *dev;
|
|
};
|
|
|
|
struct net_device_path_ctx {
|
|
const struct net_device *dev;
|
|
u8 daddr[6];
|
|
int num_vlans;
|
|
struct {
|
|
u16 id;
|
|
__be16 proto;
|
|
} vlan[2];
|
|
};
|
|
|
|
enum net_device_path_type {
|
|
DEV_PATH_ETHERNET = 0,
|
|
DEV_PATH_VLAN = 1,
|
|
DEV_PATH_BRIDGE = 2,
|
|
DEV_PATH_PPPOE = 3,
|
|
DEV_PATH_DSA = 4,
|
|
DEV_PATH_MTK_WDMA = 5,
|
|
};
|
|
|
|
struct net_device_path {
|
|
enum net_device_path_type type;
|
|
const struct net_device *dev;
|
|
union {
|
|
struct {
|
|
u16 id;
|
|
__be16 proto;
|
|
u8 h_dest[6];
|
|
} encap;
|
|
struct {
|
|
enum {
|
|
DEV_PATH_BR_VLAN_KEEP = 0,
|
|
DEV_PATH_BR_VLAN_TAG = 1,
|
|
DEV_PATH_BR_VLAN_UNTAG = 2,
|
|
DEV_PATH_BR_VLAN_UNTAG_HW = 3,
|
|
} vlan_mode;
|
|
u16 vlan_id;
|
|
__be16 vlan_proto;
|
|
} bridge;
|
|
struct {
|
|
int port;
|
|
u16 proto;
|
|
} dsa;
|
|
struct {
|
|
u8 wdma_idx;
|
|
u8 queue;
|
|
u16 wcid;
|
|
u8 bss;
|
|
} mtk_wdma;
|
|
};
|
|
};
|
|
|
|
struct skb_shared_hwtstamps {
|
|
union {
|
|
ktime_t hwtstamp;
|
|
void *netdev_data;
|
|
};
|
|
};
|
|
|
|
struct xdp_md;
|
|
|
|
struct xdp_metadata_ops {
|
|
int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *);
|
|
int (*xmo_rx_hash)(const struct xdp_md *, u32 *);
|
|
};
|
|
|
|
struct xdp_md {
|
|
__u32 data;
|
|
__u32 data_end;
|
|
__u32 data_meta;
|
|
__u32 ingress_ifindex;
|
|
__u32 rx_queue_index;
|
|
__u32 egress_ifindex;
|
|
};
|
|
|
|
struct net_device_core_stats {
|
|
unsigned long rx_dropped;
|
|
unsigned long tx_dropped;
|
|
unsigned long rx_nohandler;
|
|
unsigned long rx_otherhost_dropped;
|
|
};
|
|
|
|
enum ethtool_phys_id_state {
|
|
ETHTOOL_ID_INACTIVE = 0,
|
|
ETHTOOL_ID_ACTIVE = 1,
|
|
ETHTOOL_ID_ON = 2,
|
|
ETHTOOL_ID_OFF = 3,
|
|
};
|
|
|
|
struct ethtool_drvinfo;
|
|
|
|
struct ethtool_regs;
|
|
|
|
struct ethtool_wolinfo;
|
|
|
|
struct ethtool_link_ext_state_info;
|
|
|
|
struct ethtool_link_ext_stats;
|
|
|
|
struct ethtool_eeprom;
|
|
|
|
struct ethtool_coalesce;
|
|
|
|
struct kernel_ethtool_coalesce;
|
|
|
|
struct ethtool_ringparam;
|
|
|
|
struct kernel_ethtool_ringparam;
|
|
|
|
struct ethtool_pause_stats;
|
|
|
|
struct ethtool_pauseparam;
|
|
|
|
struct ethtool_test;
|
|
|
|
struct ethtool_stats;
|
|
|
|
struct ethtool_rxnfc;
|
|
|
|
struct ethtool_flash;
|
|
|
|
struct ethtool_channels;
|
|
|
|
struct ethtool_dump;
|
|
|
|
struct ethtool_ts_info;
|
|
|
|
struct ethtool_modinfo;
|
|
|
|
struct ethtool_eee;
|
|
|
|
struct ethtool_tunable;
|
|
|
|
struct ethtool_link_ksettings;
|
|
|
|
struct ethtool_fec_stats;
|
|
|
|
struct ethtool_fecparam;
|
|
|
|
struct ethtool_module_eeprom;
|
|
|
|
struct ethtool_eth_phy_stats;
|
|
|
|
struct ethtool_eth_mac_stats;
|
|
|
|
struct ethtool_eth_ctrl_stats;
|
|
|
|
struct ethtool_rmon_stats;
|
|
|
|
struct ethtool_rmon_hist_range;
|
|
|
|
struct ethtool_module_power_mode_params;
|
|
|
|
struct ethtool_mm_state;
|
|
|
|
struct ethtool_mm_cfg;
|
|
|
|
struct ethtool_mm_stats;
|
|
|
|
struct ethtool_ops {
|
|
u32 cap_link_lanes_supported: 1;
|
|
u32 supported_coalesce_params;
|
|
u32 supported_ring_params;
|
|
void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
|
|
int (*get_regs_len)(struct net_device *);
|
|
void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
|
|
void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
|
|
int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
|
|
u32 (*get_msglevel)(struct net_device *);
|
|
void (*set_msglevel)(struct net_device *, u32);
|
|
int (*nway_reset)(struct net_device *);
|
|
u32 (*get_link)(struct net_device *);
|
|
int (*get_link_ext_state)(struct net_device *, struct ethtool_link_ext_state_info *);
|
|
void (*get_link_ext_stats)(struct net_device *, struct ethtool_link_ext_stats *);
|
|
int (*get_eeprom_len)(struct net_device *);
|
|
int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
|
|
int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
|
|
int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
|
|
int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
|
|
void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
|
|
int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
|
|
void (*get_pause_stats)(struct net_device *, struct ethtool_pause_stats *);
|
|
void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
|
|
int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
|
|
void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
|
|
void (*get_strings)(struct net_device *, u32, u8 *);
|
|
int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state);
|
|
void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
|
|
int (*begin)(struct net_device *);
|
|
void (*complete)(struct net_device *);
|
|
u32 (*get_priv_flags)(struct net_device *);
|
|
int (*set_priv_flags)(struct net_device *, u32);
|
|
int (*get_sset_count)(struct net_device *, int);
|
|
int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, u32 *);
|
|
int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
|
|
int (*flash_device)(struct net_device *, struct ethtool_flash *);
|
|
int (*reset)(struct net_device *, u32 *);
|
|
u32 (*get_rxfh_key_size)(struct net_device *);
|
|
u32 (*get_rxfh_indir_size)(struct net_device *);
|
|
int (*get_rxfh)(struct net_device *, u32 *, u8 *, u8 *);
|
|
int (*set_rxfh)(struct net_device *, const u32 *, const u8 *, const u8);
|
|
int (*get_rxfh_context)(struct net_device *, u32 *, u8 *, u8 *, u32);
|
|
int (*set_rxfh_context)(struct net_device *, const u32 *, const u8 *, const u8, u32 *, bool);
|
|
void (*get_channels)(struct net_device *, struct ethtool_channels *);
|
|
int (*set_channels)(struct net_device *, struct ethtool_channels *);
|
|
int (*get_dump_flag)(struct net_device *, struct ethtool_dump *);
|
|
int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *);
|
|
int (*set_dump)(struct net_device *, struct ethtool_dump *);
|
|
int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *);
|
|
int (*get_module_info)(struct net_device *, struct ethtool_modinfo *);
|
|
int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
|
|
int (*get_eee)(struct net_device *, struct ethtool_eee *);
|
|
int (*set_eee)(struct net_device *, struct ethtool_eee *);
|
|
int (*get_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
|
|
int (*set_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
|
|
int (*get_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
|
|
int (*set_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
|
|
int (*get_link_ksettings)(struct net_device *, struct ethtool_link_ksettings *);
|
|
int (*set_link_ksettings)(struct net_device *, const struct ethtool_link_ksettings *);
|
|
void (*get_fec_stats)(struct net_device *, struct ethtool_fec_stats *);
|
|
int (*get_fecparam)(struct net_device *, struct ethtool_fecparam *);
|
|
int (*set_fecparam)(struct net_device *, struct ethtool_fecparam *);
|
|
void (*get_ethtool_phy_stats)(struct net_device *, struct ethtool_stats *, u64 *);
|
|
int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
|
|
int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
|
|
int (*get_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *);
|
|
void (*get_eth_phy_stats)(struct net_device *, struct ethtool_eth_phy_stats *);
|
|
void (*get_eth_mac_stats)(struct net_device *, struct ethtool_eth_mac_stats *);
|
|
void (*get_eth_ctrl_stats)(struct net_device *, struct ethtool_eth_ctrl_stats *);
|
|
void (*get_rmon_stats)(struct net_device *, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **);
|
|
int (*get_module_power_mode)(struct net_device *, struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
|
|
int (*set_module_power_mode)(struct net_device *, const struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
|
|
int (*get_mm)(struct net_device *, struct ethtool_mm_state *);
|
|
int (*set_mm)(struct net_device *, struct ethtool_mm_cfg *, struct netlink_ext_ack *);
|
|
void (*get_mm_stats)(struct net_device *, struct ethtool_mm_stats *);
|
|
};
|
|
|
|
struct nd_opt_hdr;
|
|
|
|
struct ndisc_options;
|
|
|
|
struct prefix_info;
|
|
|
|
struct in6_addr;
|
|
|
|
struct ndisc_ops {
|
|
int (*is_useropt)(u8);
|
|
int (*parse_options)(const struct net_device *, struct nd_opt_hdr *, struct ndisc_options *);
|
|
void (*update)(const struct net_device *, struct neighbour *, u32, u8, const struct ndisc_options *);
|
|
int (*opt_addr_space)(const struct net_device *, u8, struct neighbour *, u8 *, u8 **);
|
|
void (*fill_addr_option)(const struct net_device *, struct sk_buff *, u8, const u8 *);
|
|
void (*prefix_rcv_add_addr)(struct net *, struct net_device *, const struct prefix_info *, struct inet6_dev *, struct in6_addr *, int, u32, bool, bool, __u32, u32, bool);
|
|
};
|
|
|
|
struct hh_cache;
|
|
|
|
struct header_ops {
|
|
int (*create)(struct sk_buff *, struct net_device *, unsigned short, const void *, const void *, unsigned int);
|
|
int (*parse)(const struct sk_buff *, unsigned char *);
|
|
int (*cache)(const struct neighbour *, struct hh_cache *, __be16);
|
|
void (*cache_update)(struct hh_cache *, const struct net_device *, const unsigned char *);
|
|
bool (*validate)(const char *, unsigned int);
|
|
__be16 (*parse_protocol)(const struct sk_buff *);
|
|
};
|
|
|
|
struct sk_buff_list {
|
|
struct sk_buff *next;
|
|
struct sk_buff *prev;
|
|
};
|
|
|
|
struct sk_buff_head {
|
|
union {
|
|
struct {
|
|
struct sk_buff *next;
|
|
struct sk_buff *prev;
|
|
};
|
|
struct sk_buff_list list;
|
|
};
|
|
__u32 qlen;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct hh_cache {
|
|
unsigned int hh_len;
|
|
seqlock_t hh_lock;
|
|
unsigned long hh_data[12];
|
|
};
|
|
|
|
struct neigh_table;
|
|
|
|
struct neigh_ops;
|
|
|
|
struct neighbour {
|
|
struct neighbour __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct neigh_table *tbl;
|
|
struct neigh_parms *parms;
|
|
unsigned long confirmed;
|
|
unsigned long updated;
|
|
rwlock_t lock;
|
|
refcount_t refcnt;
|
|
unsigned int arp_queue_len_bytes;
|
|
struct sk_buff_head arp_queue;
|
|
struct timer_list timer;
|
|
unsigned long used;
|
|
atomic_t probes;
|
|
u8 nud_state;
|
|
u8 type;
|
|
u8 dead;
|
|
u8 protocol;
|
|
u32 flags;
|
|
seqlock_t ha_lock;
|
|
int: 32;
|
|
unsigned char ha[32];
|
|
struct hh_cache hh;
|
|
int (*output)(struct neighbour *, struct sk_buff *);
|
|
const struct neigh_ops *ops;
|
|
struct list_head gc_list;
|
|
struct list_head managed_list;
|
|
struct callback_head rcu;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
u8 primary_key[0];
|
|
};
|
|
|
|
struct ipv4_devconf {
|
|
void *sysctl;
|
|
int data[33];
|
|
unsigned long state[1];
|
|
};
|
|
|
|
struct in_ifaddr;
|
|
|
|
struct ip_mc_list;
|
|
|
|
struct in_device {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
refcount_t refcnt;
|
|
int dead;
|
|
struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_list;
|
|
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *mc_list;
|
|
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("rcu"))) *mc_hash;
|
|
int mc_count;
|
|
spinlock_t mc_tomb_lock;
|
|
struct ip_mc_list *mc_tomb;
|
|
unsigned long mr_v1_seen;
|
|
unsigned long mr_v2_seen;
|
|
unsigned long mr_maxdelay;
|
|
unsigned long mr_qi;
|
|
unsigned long mr_qri;
|
|
unsigned char mr_qrv;
|
|
unsigned char mr_gq_running;
|
|
u32 mr_ifc_count;
|
|
struct timer_list mr_gq_timer;
|
|
struct timer_list mr_ifc_timer;
|
|
struct neigh_parms *arp_parms;
|
|
struct ipv4_devconf cnf;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
typedef __u32 __be32;
|
|
|
|
struct in6_addr {
|
|
union {
|
|
__u8 u6_addr8[16];
|
|
__be16 u6_addr16[8];
|
|
__be32 u6_addr32[4];
|
|
} in6_u;
|
|
};
|
|
|
|
struct ipv6_stable_secret {
|
|
bool initialized;
|
|
struct in6_addr secret;
|
|
};
|
|
|
|
struct ipv6_devconf {
|
|
__s32 forwarding;
|
|
__s32 hop_limit;
|
|
__s32 mtu6;
|
|
__s32 accept_ra;
|
|
__s32 accept_redirects;
|
|
__s32 autoconf;
|
|
__s32 dad_transmits;
|
|
__s32 rtr_solicits;
|
|
__s32 rtr_solicit_interval;
|
|
__s32 rtr_solicit_max_interval;
|
|
__s32 rtr_solicit_delay;
|
|
__s32 force_mld_version;
|
|
__s32 mldv1_unsolicited_report_interval;
|
|
__s32 mldv2_unsolicited_report_interval;
|
|
__s32 use_tempaddr;
|
|
__s32 temp_valid_lft;
|
|
__s32 temp_prefered_lft;
|
|
__s32 regen_max_retry;
|
|
__s32 max_desync_factor;
|
|
__s32 max_addresses;
|
|
__s32 accept_ra_defrtr;
|
|
__u32 ra_defrtr_metric;
|
|
__s32 accept_ra_min_hop_limit;
|
|
__s32 accept_ra_pinfo;
|
|
__s32 ignore_routes_with_linkdown;
|
|
__s32 proxy_ndp;
|
|
__s32 accept_source_route;
|
|
__s32 accept_ra_from_local;
|
|
__s32 disable_ipv6;
|
|
__s32 drop_unicast_in_l2_multicast;
|
|
__s32 accept_dad;
|
|
__s32 force_tllao;
|
|
__s32 ndisc_notify;
|
|
__s32 suppress_frag_ndisc;
|
|
__s32 accept_ra_mtu;
|
|
__s32 drop_unsolicited_na;
|
|
__s32 accept_untracked_na;
|
|
struct ipv6_stable_secret stable_secret;
|
|
__s32 use_oif_addrs_only;
|
|
__s32 keep_addr_on_down;
|
|
__s32 seg6_enabled;
|
|
__u32 enhanced_dad;
|
|
__u32 addr_gen_mode;
|
|
__s32 disable_policy;
|
|
__s32 ndisc_tclass;
|
|
__s32 rpl_seg_enabled;
|
|
__u32 ioam6_id;
|
|
__u32 ioam6_id_wide;
|
|
__u8 ioam6_enabled;
|
|
__u8 ndisc_evict_nocarrier;
|
|
struct ctl_table_header *sysctl_header;
|
|
};
|
|
|
|
struct icmpv6_mib_device;
|
|
|
|
struct icmpv6msg_mib_device;
|
|
|
|
struct ipv6_devstat {
|
|
struct proc_dir_entry *proc_dir_entry;
|
|
struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6;
|
|
struct icmpv6_mib_device *icmpv6dev;
|
|
struct icmpv6msg_mib_device *icmpv6msgdev;
|
|
};
|
|
|
|
struct ifmcaddr6;
|
|
|
|
struct ifacaddr6;
|
|
|
|
struct inet6_dev {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct list_head addr_list;
|
|
struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *mc_list;
|
|
struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *mc_tomb;
|
|
unsigned char mc_qrv;
|
|
unsigned char mc_gq_running;
|
|
unsigned char mc_ifc_count;
|
|
unsigned char mc_dad_count;
|
|
unsigned long mc_v1_seen;
|
|
unsigned long mc_qi;
|
|
unsigned long mc_qri;
|
|
unsigned long mc_maxdelay;
|
|
struct delayed_work mc_gq_work;
|
|
struct delayed_work mc_ifc_work;
|
|
struct delayed_work mc_dad_work;
|
|
struct delayed_work mc_query_work;
|
|
struct delayed_work mc_report_work;
|
|
struct sk_buff_head mc_query_queue;
|
|
struct sk_buff_head mc_report_queue;
|
|
spinlock_t mc_query_lock;
|
|
spinlock_t mc_report_lock;
|
|
struct mutex mc_lock;
|
|
struct ifacaddr6 *ac_list;
|
|
rwlock_t lock;
|
|
refcount_t refcnt;
|
|
__u32 if_flags;
|
|
int dead;
|
|
u32 desync_factor;
|
|
struct list_head tempaddr_list;
|
|
struct in6_addr token;
|
|
struct neigh_parms *nd_parms;
|
|
struct ipv6_devconf cnf;
|
|
struct ipv6_devstat stats;
|
|
struct timer_list rs_timer;
|
|
__s32 rs_interval;
|
|
__u8 rs_probes;
|
|
unsigned long tstamp;
|
|
struct callback_head rcu;
|
|
unsigned int ra_mtu;
|
|
};
|
|
|
|
struct mpls_pcpu_stats;
|
|
|
|
struct mpls_dev {
|
|
int input_enabled;
|
|
struct net_device *dev;
|
|
struct mpls_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats;
|
|
struct ctl_table_header *sysctl;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct rps_map;
|
|
|
|
struct rps_dev_flow_table;
|
|
|
|
struct netdev_rx_queue {
|
|
struct xdp_rxq_info xdp_rxq;
|
|
struct rps_map __attribute__((btf_type_tag("rcu"))) *rps_map;
|
|
struct rps_dev_flow_table __attribute__((btf_type_tag("rcu"))) *rps_flow_table;
|
|
struct kobject kobj;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct xsk_buff_pool *pool;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct rps_map {
|
|
unsigned int len;
|
|
struct callback_head rcu;
|
|
u16 cpus[0];
|
|
};
|
|
|
|
struct rps_dev_flow {
|
|
u16 cpu;
|
|
u16 filter;
|
|
unsigned int last_qtail;
|
|
};
|
|
|
|
struct rps_dev_flow_table {
|
|
unsigned int mask;
|
|
struct callback_head rcu;
|
|
struct rps_dev_flow flows[0];
|
|
};
|
|
|
|
struct tcf_proto;
|
|
|
|
struct tcf_block;
|
|
|
|
struct gnet_stats_basic_sync;
|
|
|
|
struct gnet_stats_queue;
|
|
|
|
struct mini_Qdisc {
|
|
struct tcf_proto *filter_list;
|
|
struct tcf_block *block;
|
|
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
|
|
struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats;
|
|
unsigned long rcu_state;
|
|
};
|
|
|
|
struct tcf_result;
|
|
|
|
struct tcf_proto_ops;
|
|
|
|
struct tcf_chain;
|
|
|
|
struct tcf_proto {
|
|
struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next;
|
|
void __attribute__((btf_type_tag("rcu"))) *root;
|
|
int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
|
|
__be16 protocol;
|
|
u32 prio;
|
|
void *data;
|
|
const struct tcf_proto_ops *ops;
|
|
struct tcf_chain *chain;
|
|
spinlock_t lock;
|
|
bool deleting;
|
|
refcount_t refcnt;
|
|
struct callback_head rcu;
|
|
struct hlist_node destroy_ht_node;
|
|
};
|
|
|
|
struct tcf_result {
|
|
union {
|
|
struct {
|
|
unsigned long class;
|
|
u32 classid;
|
|
};
|
|
const struct tcf_proto *goto_tp;
|
|
};
|
|
};
|
|
|
|
typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *);
|
|
|
|
struct tcf_walker;
|
|
|
|
struct tcf_exts;
|
|
|
|
struct tcmsg;
|
|
|
|
struct tcf_proto_ops {
|
|
struct list_head head;
|
|
char kind[16];
|
|
int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
|
|
int (*init)(struct tcf_proto *);
|
|
void (*destroy)(struct tcf_proto *, bool, struct netlink_ext_ack *);
|
|
void * (*get)(struct tcf_proto *, u32);
|
|
void (*put)(struct tcf_proto *, void *);
|
|
int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, unsigned long, u32, struct nlattr **, void **, u32, struct netlink_ext_ack *);
|
|
int (*delete)(struct tcf_proto *, void *, bool *, bool, struct netlink_ext_ack *);
|
|
bool (*delete_empty)(struct tcf_proto *);
|
|
void (*walk)(struct tcf_proto *, struct tcf_walker *, bool);
|
|
int (*reoffload)(struct tcf_proto *, bool, flow_setup_cb_t *, void *, struct netlink_ext_ack *);
|
|
void (*hw_add)(struct tcf_proto *, void *);
|
|
void (*hw_del)(struct tcf_proto *, void *);
|
|
void (*bind_class)(void *, u32, unsigned long, void *, unsigned long);
|
|
void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *);
|
|
void (*tmplt_destroy)(void *);
|
|
struct tcf_exts * (*get_exts)(const struct tcf_proto *, u32);
|
|
int (*dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
|
|
int (*terse_dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
|
|
int (*tmplt_dump)(struct sk_buff *, struct net *, void *);
|
|
struct module *owner;
|
|
int flags;
|
|
};
|
|
|
|
struct tcf_chain {
|
|
struct mutex filter_chain_lock;
|
|
struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain;
|
|
struct list_head list;
|
|
struct tcf_block *block;
|
|
u32 index;
|
|
unsigned int refcnt;
|
|
unsigned int action_refcnt;
|
|
bool explicitly_created;
|
|
bool flushing;
|
|
const struct tcf_proto_ops *tmplt_ops;
|
|
void *tmplt_priv;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct flow_block {
|
|
struct list_head cb_list;
|
|
};
|
|
|
|
struct tcf_block {
|
|
struct mutex lock;
|
|
struct list_head chain_list;
|
|
u32 index;
|
|
u32 classid;
|
|
refcount_t refcnt;
|
|
struct net *net;
|
|
struct Qdisc *q;
|
|
struct rw_semaphore cb_lock;
|
|
struct flow_block flow_block;
|
|
struct list_head owner_list;
|
|
bool keep_dst;
|
|
atomic_t offloadcnt;
|
|
unsigned int nooffloaddevcnt;
|
|
unsigned int lockeddevcnt;
|
|
struct {
|
|
struct tcf_chain *chain;
|
|
struct list_head filter_chain_list;
|
|
} chain0;
|
|
struct callback_head rcu;
|
|
struct hlist_head proto_destroy_ht[128];
|
|
struct mutex proto_destroy_lock;
|
|
};
|
|
|
|
struct net_rate_estimator;
|
|
|
|
struct qdisc_skb_head {
|
|
struct sk_buff *head;
|
|
struct sk_buff *tail;
|
|
__u32 qlen;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct gnet_stats_basic_sync {
|
|
u64_stats_t bytes;
|
|
u64_stats_t packets;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct gnet_stats_queue {
|
|
__u32 qlen;
|
|
__u32 backlog;
|
|
__u32 drops;
|
|
__u32 requeues;
|
|
__u32 overlimits;
|
|
};
|
|
|
|
struct Qdisc_ops;
|
|
|
|
struct qdisc_size_table;
|
|
|
|
struct Qdisc {
|
|
int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
|
|
struct sk_buff * (*dequeue)(struct Qdisc *);
|
|
unsigned int flags;
|
|
u32 limit;
|
|
const struct Qdisc_ops *ops;
|
|
struct qdisc_size_table __attribute__((btf_type_tag("rcu"))) *stab;
|
|
struct hlist_node hash;
|
|
u32 handle;
|
|
u32 parent;
|
|
struct netdev_queue *dev_queue;
|
|
struct net_rate_estimator __attribute__((btf_type_tag("rcu"))) *rate_est;
|
|
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
|
|
struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats;
|
|
int pad;
|
|
refcount_t refcnt;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct sk_buff_head gso_skb;
|
|
struct qdisc_skb_head q;
|
|
struct gnet_stats_basic_sync bstats;
|
|
struct gnet_stats_queue qstats;
|
|
unsigned long state;
|
|
unsigned long state2;
|
|
struct Qdisc *next_sched;
|
|
struct sk_buff_head skb_bad_txq;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t busylock;
|
|
spinlock_t seqlock;
|
|
struct callback_head rcu;
|
|
netdevice_tracker dev_tracker;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long privdata[0];
|
|
};
|
|
|
|
struct Qdisc_class_ops;
|
|
|
|
struct gnet_dump;
|
|
|
|
struct Qdisc_ops {
|
|
struct Qdisc_ops *next;
|
|
const struct Qdisc_class_ops *cl_ops;
|
|
char id[16];
|
|
int priv_size;
|
|
unsigned int static_flags;
|
|
int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
|
|
struct sk_buff * (*dequeue)(struct Qdisc *);
|
|
struct sk_buff * (*peek)(struct Qdisc *);
|
|
int (*init)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
|
|
void (*reset)(struct Qdisc *);
|
|
void (*destroy)(struct Qdisc *);
|
|
int (*change)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
|
|
void (*attach)(struct Qdisc *);
|
|
int (*change_tx_queue_len)(struct Qdisc *, unsigned int);
|
|
void (*change_real_num_tx)(struct Qdisc *, unsigned int);
|
|
int (*dump)(struct Qdisc *, struct sk_buff *);
|
|
int (*dump_stats)(struct Qdisc *, struct gnet_dump *);
|
|
void (*ingress_block_set)(struct Qdisc *, u32);
|
|
void (*egress_block_set)(struct Qdisc *, u32);
|
|
u32 (*ingress_block_get)(struct Qdisc *);
|
|
u32 (*egress_block_get)(struct Qdisc *);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct qdisc_walker;
|
|
|
|
struct Qdisc_class_ops {
|
|
unsigned int flags;
|
|
struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
|
|
int (*graft)(struct Qdisc *, unsigned long, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *);
|
|
struct Qdisc * (*leaf)(struct Qdisc *, unsigned long);
|
|
void (*qlen_notify)(struct Qdisc *, unsigned long);
|
|
unsigned long (*find)(struct Qdisc *, u32);
|
|
int (*change)(struct Qdisc *, u32, u32, struct nlattr **, unsigned long *, struct netlink_ext_ack *);
|
|
int (*delete)(struct Qdisc *, unsigned long, struct netlink_ext_ack *);
|
|
void (*walk)(struct Qdisc *, struct qdisc_walker *);
|
|
struct tcf_block * (*tcf_block)(struct Qdisc *, unsigned long, struct netlink_ext_ack *);
|
|
unsigned long (*bind_tcf)(struct Qdisc *, unsigned long, u32);
|
|
void (*unbind_tcf)(struct Qdisc *, unsigned long);
|
|
int (*dump)(struct Qdisc *, unsigned long, struct sk_buff *, struct tcmsg *);
|
|
int (*dump_stats)(struct Qdisc *, unsigned long, struct gnet_dump *);
|
|
};
|
|
|
|
struct dql {
|
|
unsigned int num_queued;
|
|
unsigned int adj_limit;
|
|
unsigned int last_obj_cnt;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned int limit;
|
|
unsigned int num_completed;
|
|
unsigned int prev_ovlimit;
|
|
unsigned int prev_num_queued;
|
|
unsigned int prev_last_obj_cnt;
|
|
unsigned int lowest_slack;
|
|
unsigned long slack_start_time;
|
|
unsigned int max_limit;
|
|
unsigned int min_limit;
|
|
unsigned int slack_hold_time;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct netdev_queue {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc;
|
|
struct Qdisc *qdisc_sleeping;
|
|
struct kobject kobj;
|
|
unsigned long tx_maxrate;
|
|
atomic_long_t trans_timeout;
|
|
struct net_device *sb_dev;
|
|
struct xsk_buff_pool *pool;
|
|
long: 64;
|
|
spinlock_t _xmit_lock;
|
|
int xmit_lock_owner;
|
|
unsigned long trans_start;
|
|
unsigned long state;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct dql dql;
|
|
};
|
|
|
|
struct tcmsg {
|
|
unsigned char tcm_family;
|
|
unsigned char tcm__pad1;
|
|
unsigned short tcm__pad2;
|
|
int tcm_ifindex;
|
|
__u32 tcm_handle;
|
|
__u32 tcm_parent;
|
|
__u32 tcm_info;
|
|
};
|
|
|
|
struct tc_stats {
|
|
__u64 bytes;
|
|
__u32 packets;
|
|
__u32 drops;
|
|
__u32 overlimits;
|
|
__u32 bps;
|
|
__u32 pps;
|
|
__u32 qlen;
|
|
__u32 backlog;
|
|
};
|
|
|
|
struct gnet_dump {
|
|
spinlock_t *lock;
|
|
struct sk_buff *skb;
|
|
struct nlattr *tail;
|
|
int compat_tc_stats;
|
|
int compat_xstats;
|
|
int padattr;
|
|
void *xstats;
|
|
int xstats_len;
|
|
struct tc_stats tc_stats;
|
|
};
|
|
|
|
struct tc_sizespec {
|
|
unsigned char cell_log;
|
|
unsigned char size_log;
|
|
short cell_align;
|
|
int overhead;
|
|
unsigned int linklayer;
|
|
unsigned int mpu;
|
|
unsigned int mtu;
|
|
unsigned int tsize;
|
|
};
|
|
|
|
struct qdisc_size_table {
|
|
struct callback_head rcu;
|
|
struct list_head list;
|
|
struct tc_sizespec szopts;
|
|
int refcnt;
|
|
u16 data[0];
|
|
};
|
|
|
|
struct nf_hook_state;
|
|
|
|
typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *);
|
|
|
|
struct nf_hook_entry {
|
|
nf_hookfn *hook;
|
|
void *priv;
|
|
};
|
|
|
|
struct nf_hook_entries {
|
|
u16 num_hook_entries;
|
|
struct nf_hook_entry hooks[0];
|
|
};
|
|
|
|
struct xdp_dev_bulk_queue {
|
|
struct xdp_frame *q[16];
|
|
struct list_head flush_node;
|
|
struct net_device *dev;
|
|
struct net_device *dev_rx;
|
|
struct bpf_prog *xdp_prog;
|
|
unsigned int count;
|
|
};
|
|
|
|
struct xps_map;
|
|
|
|
struct xps_dev_maps {
|
|
struct callback_head rcu;
|
|
unsigned int nr_ids;
|
|
s16 num_tc;
|
|
struct xps_map __attribute__((btf_type_tag("rcu"))) *attr_map[0];
|
|
};
|
|
|
|
struct xps_map {
|
|
unsigned int len;
|
|
unsigned int alloc_len;
|
|
struct callback_head rcu;
|
|
u16 queues[0];
|
|
};
|
|
|
|
struct semaphore {
|
|
raw_spinlock_t lock;
|
|
unsigned int count;
|
|
struct list_head wait_list;
|
|
};
|
|
|
|
struct netpoll;
|
|
|
|
struct netpoll_info {
|
|
refcount_t refcnt;
|
|
struct semaphore dev_lock;
|
|
struct sk_buff_head txq;
|
|
struct delayed_work tx_work;
|
|
struct netpoll *netpoll;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct pcpu_lstats {
|
|
u64_stats_t packets;
|
|
u64_stats_t bytes;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct pcpu_sw_netstats {
|
|
u64_stats_t rx_packets;
|
|
u64_stats_t rx_bytes;
|
|
u64_stats_t tx_packets;
|
|
u64_stats_t tx_bytes;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct rtnl_link_ops {
|
|
struct list_head list;
|
|
const char *kind;
|
|
size_t priv_size;
|
|
struct net_device * (*alloc)(struct nlattr **, const char *, unsigned char, unsigned int, unsigned int);
|
|
void (*setup)(struct net_device *);
|
|
bool netns_refund;
|
|
unsigned int maxtype;
|
|
const struct nla_policy *policy;
|
|
int (*validate)(struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
|
|
int (*newlink)(struct net *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
|
|
int (*changelink)(struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
|
|
void (*dellink)(struct net_device *, struct list_head *);
|
|
size_t (*get_size)(const struct net_device *);
|
|
int (*fill_info)(struct sk_buff *, const struct net_device *);
|
|
size_t (*get_xstats_size)(const struct net_device *);
|
|
int (*fill_xstats)(struct sk_buff *, const struct net_device *);
|
|
unsigned int (*get_num_tx_queues)();
|
|
unsigned int (*get_num_rx_queues)();
|
|
unsigned int slave_maxtype;
|
|
const struct nla_policy *slave_policy;
|
|
int (*slave_changelink)(struct net_device *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
|
|
size_t (*get_slave_size)(const struct net_device *, const struct net_device *);
|
|
int (*fill_slave_info)(struct sk_buff *, const struct net_device *, const struct net_device *);
|
|
struct net * (*get_link_net)(const struct net_device *);
|
|
size_t (*get_linkxstats_size)(const struct net_device *, int);
|
|
int (*fill_linkxstats)(struct sk_buff *, const struct net_device *, int *, int);
|
|
};
|
|
|
|
struct netprio_map {
|
|
struct callback_head rcu;
|
|
u32 priomap_len;
|
|
u32 priomap[0];
|
|
};
|
|
|
|
struct udp_tunnel_nic_table_info {
|
|
unsigned int n_entries;
|
|
unsigned int tunnel_types;
|
|
};
|
|
|
|
struct udp_tunnel_info;
|
|
|
|
struct udp_tunnel_nic_shared;
|
|
|
|
struct udp_tunnel_nic_info {
|
|
int (*set_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
|
|
int (*unset_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
|
|
int (*sync_table)(struct net_device *, unsigned int);
|
|
struct udp_tunnel_nic_shared *shared;
|
|
unsigned int flags;
|
|
struct udp_tunnel_nic_table_info tables[4];
|
|
};
|
|
|
|
struct rtnl_hw_stats64 {
|
|
__u64 rx_packets;
|
|
__u64 tx_packets;
|
|
__u64 rx_bytes;
|
|
__u64 tx_bytes;
|
|
__u64 rx_errors;
|
|
__u64 tx_errors;
|
|
__u64 rx_dropped;
|
|
__u64 tx_dropped;
|
|
__u64 multicast;
|
|
};
|
|
|
|
struct prot_inuse {
|
|
int all;
|
|
int val[64];
|
|
};
|
|
|
|
struct ipstats_mib {
|
|
u64 mibs[37];
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct tcp_mib {
|
|
unsigned long mibs[16];
|
|
};
|
|
|
|
struct linux_mib {
|
|
unsigned long mibs[127];
|
|
};
|
|
|
|
struct udp_mib {
|
|
unsigned long mibs[10];
|
|
};
|
|
|
|
struct mptcp_mib {
|
|
unsigned long mibs[52];
|
|
};
|
|
|
|
struct icmp_mib {
|
|
unsigned long mibs[30];
|
|
};
|
|
|
|
struct icmpmsg_mib {
|
|
atomic_long_t mibs[512];
|
|
};
|
|
|
|
struct icmpv6_mib {
|
|
unsigned long mibs[7];
|
|
};
|
|
|
|
struct icmpv6msg_mib {
|
|
atomic_long_t mibs[512];
|
|
};
|
|
|
|
struct ip_ra_chain {
|
|
struct ip_ra_chain __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct sock *sk;
|
|
union {
|
|
void (*destructor)(struct sock *);
|
|
struct sock *saved_sk;
|
|
};
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct fib_table {
|
|
struct hlist_node tb_hlist;
|
|
u32 tb_id;
|
|
int tb_num_default;
|
|
struct callback_head rcu;
|
|
unsigned long *tb_data;
|
|
unsigned long __data[0];
|
|
};
|
|
|
|
typedef u32 (*rht_hashfn_t)(const void *, u32, u32);
|
|
|
|
typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32);
|
|
|
|
struct rhashtable_compare_arg;
|
|
|
|
typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *);
|
|
|
|
struct rhashtable_params {
|
|
u16 nelem_hint;
|
|
u16 key_len;
|
|
u16 key_offset;
|
|
u16 head_offset;
|
|
unsigned int max_size;
|
|
u16 min_size;
|
|
bool automatic_shrinking;
|
|
rht_hashfn_t hashfn;
|
|
rht_obj_hashfn_t obj_hashfn;
|
|
rht_obj_cmpfn_t obj_cmpfn;
|
|
};
|
|
|
|
struct bucket_table;
|
|
|
|
struct rhashtable {
|
|
struct bucket_table __attribute__((btf_type_tag("rcu"))) *tbl;
|
|
unsigned int key_len;
|
|
unsigned int max_elems;
|
|
struct rhashtable_params p;
|
|
bool rhlist;
|
|
struct work_struct run_work;
|
|
struct mutex mutex;
|
|
spinlock_t lock;
|
|
atomic_t nelems;
|
|
};
|
|
|
|
struct inet_frags;
|
|
|
|
struct fqdir {
|
|
long high_thresh;
|
|
long low_thresh;
|
|
int timeout;
|
|
int max_dist;
|
|
struct inet_frags *f;
|
|
struct net *net;
|
|
bool dead;
|
|
long: 56;
|
|
long: 64;
|
|
long: 64;
|
|
struct rhashtable rhashtable;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
atomic_long_t mem;
|
|
struct work_struct destroy_work;
|
|
struct llist_node free_list;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct inet_frag_queue;
|
|
|
|
struct inet_frags {
|
|
unsigned int qsize;
|
|
void (*constructor)(struct inet_frag_queue *, const void *);
|
|
void (*destructor)(struct inet_frag_queue *);
|
|
void (*frag_expire)(struct timer_list *);
|
|
struct kmem_cache *frags_cachep;
|
|
const char *frags_cache_name;
|
|
struct rhashtable_params rhash_params;
|
|
refcount_t refcnt;
|
|
struct completion completion;
|
|
};
|
|
|
|
struct frag_v4_compare_key {
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
u32 user;
|
|
u32 vif;
|
|
__be16 id;
|
|
u16 protocol;
|
|
};
|
|
|
|
struct frag_v6_compare_key {
|
|
struct in6_addr saddr;
|
|
struct in6_addr daddr;
|
|
u32 user;
|
|
__be32 id;
|
|
u32 iif;
|
|
};
|
|
|
|
struct inet_frag_queue {
|
|
struct rhash_head node;
|
|
union {
|
|
struct frag_v4_compare_key v4;
|
|
struct frag_v6_compare_key v6;
|
|
} key;
|
|
struct timer_list timer;
|
|
spinlock_t lock;
|
|
refcount_t refcnt;
|
|
struct rb_root rb_fragments;
|
|
struct sk_buff *fragments_tail;
|
|
struct sk_buff *last_run_head;
|
|
ktime_t stamp;
|
|
int len;
|
|
int meat;
|
|
u8 mono_delivery_time;
|
|
__u8 flags;
|
|
u16 max_size;
|
|
struct fqdir *fqdir;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct rhashtable_compare_arg {
|
|
struct rhashtable *ht;
|
|
const void *key;
|
|
};
|
|
|
|
struct rhash_lock_head;
|
|
|
|
struct bucket_table {
|
|
unsigned int size;
|
|
unsigned int nest;
|
|
u32 hash_rnd;
|
|
struct list_head walkers;
|
|
struct callback_head rcu;
|
|
struct bucket_table __attribute__((btf_type_tag("rcu"))) *future_tbl;
|
|
struct lockdep_map dep_map;
|
|
long: 64;
|
|
struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *buckets[0];
|
|
};
|
|
|
|
enum tcp_ca_event {
|
|
CA_EVENT_TX_START = 0,
|
|
CA_EVENT_CWND_RESTART = 1,
|
|
CA_EVENT_COMPLETE_CWR = 2,
|
|
CA_EVENT_LOSS = 3,
|
|
CA_EVENT_ECN_NO_CE = 4,
|
|
CA_EVENT_ECN_IS_CE = 5,
|
|
};
|
|
|
|
struct ack_sample;
|
|
|
|
struct rate_sample;
|
|
|
|
union tcp_cc_info;
|
|
|
|
struct tcp_congestion_ops {
|
|
u32 (*ssthresh)(struct sock *);
|
|
void (*cong_avoid)(struct sock *, u32, u32);
|
|
void (*set_state)(struct sock *, u8);
|
|
void (*cwnd_event)(struct sock *, enum tcp_ca_event);
|
|
void (*in_ack_event)(struct sock *, u32);
|
|
void (*pkts_acked)(struct sock *, const struct ack_sample *);
|
|
u32 (*min_tso_segs)(struct sock *);
|
|
void (*cong_control)(struct sock *, const struct rate_sample *);
|
|
u32 (*undo_cwnd)(struct sock *);
|
|
u32 (*sndbuf_expand)(struct sock *);
|
|
size_t (*get_info)(struct sock *, u32, int *, union tcp_cc_info *);
|
|
char name[16];
|
|
struct module *owner;
|
|
struct list_head list;
|
|
u32 key;
|
|
u32 flags;
|
|
void (*init)(struct sock *);
|
|
void (*release)(struct sock *);
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct tcp_fastopen_context {
|
|
siphash_key_t key[2];
|
|
int num;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct xfrm_state;
|
|
|
|
struct lwtunnel_state;
|
|
|
|
struct dst_entry {
|
|
struct net_device *dev;
|
|
struct dst_ops *ops;
|
|
unsigned long _metrics;
|
|
unsigned long expires;
|
|
struct xfrm_state *xfrm;
|
|
int (*input)(struct sk_buff *);
|
|
int (*output)(struct net *, struct sock *, struct sk_buff *);
|
|
unsigned short flags;
|
|
short obsolete;
|
|
unsigned short header_len;
|
|
unsigned short trailer_len;
|
|
atomic_t __refcnt;
|
|
int __use;
|
|
unsigned long lastuse;
|
|
struct lwtunnel_state *lwtstate;
|
|
struct callback_head callback_head;
|
|
short error;
|
|
short __pad;
|
|
__u32 tclassid;
|
|
netdevice_tracker dev_tracker;
|
|
};
|
|
|
|
enum nf_log_type {
|
|
NF_LOG_TYPE_LOG = 0,
|
|
NF_LOG_TYPE_ULOG = 1,
|
|
NF_LOG_TYPE_MAX = 2,
|
|
};
|
|
|
|
typedef u8 u_int8_t;
|
|
|
|
struct nf_loginfo;
|
|
|
|
typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *);
|
|
|
|
struct nf_logger {
|
|
char *name;
|
|
enum nf_log_type type;
|
|
nf_logfn *logfn;
|
|
struct module *me;
|
|
};
|
|
|
|
struct ip_conntrack_stat {
|
|
unsigned int found;
|
|
unsigned int invalid;
|
|
unsigned int insert;
|
|
unsigned int insert_failed;
|
|
unsigned int clash_resolve;
|
|
unsigned int drop;
|
|
unsigned int early_drop;
|
|
unsigned int error;
|
|
unsigned int expect_new;
|
|
unsigned int expect_create;
|
|
unsigned int expect_delete;
|
|
unsigned int search_restart;
|
|
unsigned int chaintoolong;
|
|
};
|
|
|
|
struct nf_ct_event;
|
|
|
|
struct nf_exp_event;
|
|
|
|
struct nf_ct_event_notifier {
|
|
int (*ct_event)(unsigned int, const struct nf_ct_event *);
|
|
int (*exp_event)(unsigned int, const struct nf_exp_event *);
|
|
};
|
|
|
|
struct net_generic {
|
|
union {
|
|
struct {
|
|
unsigned int len;
|
|
struct callback_head rcu;
|
|
} s;
|
|
struct {
|
|
struct { } __empty_ptr;
|
|
void *ptr[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct mpls_nh {
|
|
struct net_device *nh_dev;
|
|
unsigned int nh_flags;
|
|
u8 nh_labels;
|
|
u8 nh_via_alen;
|
|
u8 nh_via_table;
|
|
u8 nh_reserved1;
|
|
u32 nh_label[0];
|
|
};
|
|
|
|
struct mpls_route {
|
|
struct callback_head rt_rcu;
|
|
u8 rt_protocol;
|
|
u8 rt_payload_type;
|
|
u8 rt_max_alen;
|
|
u8 rt_ttl_propagate;
|
|
u8 rt_nhn;
|
|
u8 rt_nhn_alive;
|
|
u8 rt_nh_size;
|
|
u8 rt_via_offset;
|
|
u8 rt_reserved1;
|
|
struct mpls_nh rt_nh[0];
|
|
};
|
|
|
|
struct sock_fprog_kern {
|
|
u16 len;
|
|
struct sock_filter *filter;
|
|
};
|
|
|
|
struct bpf_link_info {
|
|
__u32 type;
|
|
__u32 id;
|
|
__u32 prog_id;
|
|
union {
|
|
struct {
|
|
__u64 tp_name;
|
|
__u32 tp_name_len;
|
|
} raw_tracepoint;
|
|
struct {
|
|
__u32 attach_type;
|
|
__u32 target_obj_id;
|
|
__u32 target_btf_id;
|
|
} tracing;
|
|
struct {
|
|
__u64 cgroup_id;
|
|
__u32 attach_type;
|
|
} cgroup;
|
|
struct {
|
|
__u64 target_name;
|
|
__u32 target_name_len;
|
|
union {
|
|
struct {
|
|
__u32 map_id;
|
|
} map;
|
|
};
|
|
union {
|
|
struct {
|
|
__u64 cgroup_id;
|
|
__u32 order;
|
|
} cgroup;
|
|
struct {
|
|
__u32 tid;
|
|
__u32 pid;
|
|
} task;
|
|
};
|
|
} iter;
|
|
struct {
|
|
__u32 netns_ino;
|
|
__u32 attach_type;
|
|
} netns;
|
|
struct {
|
|
__u32 ifindex;
|
|
} xdp;
|
|
};
|
|
};
|
|
|
|
struct pernet_operations {
|
|
struct list_head list;
|
|
int (*init)(struct net *);
|
|
void (*pre_exit)(struct net *);
|
|
void (*exit)(struct net *);
|
|
void (*exit_batch)(struct list_head *);
|
|
unsigned int *id;
|
|
size_t size;
|
|
};
|
|
|
|
enum netns_bpf_attach_type {
|
|
NETNS_BPF_INVALID = -1,
|
|
NETNS_BPF_FLOW_DISSECTOR = 0,
|
|
NETNS_BPF_SK_LOOKUP = 1,
|
|
MAX_NETNS_BPF_ATTACH_TYPE = 2,
|
|
};
|
|
|
|
struct bpf_netns_link {
|
|
struct bpf_link link;
|
|
enum bpf_attach_type type;
|
|
enum netns_bpf_attach_type netns_type;
|
|
struct net *net;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct bpf_link_primer {
|
|
struct bpf_link *link;
|
|
struct file *file;
|
|
int fd;
|
|
u32 id;
|
|
};
|
|
|
|
struct mem_section_usage;
|
|
|
|
struct mem_section {
|
|
unsigned long section_mem_map;
|
|
struct mem_section_usage *usage;
|
|
};
|
|
|
|
struct mem_section_usage {
|
|
unsigned long subsection_map[1];
|
|
unsigned long pageblock_flags[0];
|
|
};
|
|
|
|
enum pageblock_bits {
|
|
PB_migrate = 0,
|
|
PB_migrate_end = 2,
|
|
PB_migrate_skip = 3,
|
|
NR_PAGEBLOCK_BITS = 4,
|
|
};
|
|
|
|
enum {
|
|
SECTION_MARKED_PRESENT_BIT = 0,
|
|
SECTION_HAS_MEM_MAP_BIT = 1,
|
|
SECTION_IS_ONLINE_BIT = 2,
|
|
SECTION_IS_EARLY_BIT = 3,
|
|
SECTION_MAP_LAST_BIT = 4,
|
|
};
|
|
|
|
enum mminit_level {
|
|
MMINIT_WARNING = 0,
|
|
MMINIT_VERIFY = 1,
|
|
MMINIT_TRACE = 2,
|
|
};
|
|
|
|
enum zone_type {
|
|
ZONE_DMA = 0,
|
|
ZONE_DMA32 = 1,
|
|
ZONE_NORMAL = 2,
|
|
ZONE_MOVABLE = 3,
|
|
__MAX_NR_ZONES = 4,
|
|
};
|
|
|
|
struct cacheline_padding {
|
|
char x[0];
|
|
};
|
|
|
|
struct free_area {
|
|
struct list_head free_list[4];
|
|
unsigned long nr_free;
|
|
};
|
|
|
|
struct pglist_data;
|
|
|
|
struct per_cpu_pages;
|
|
|
|
struct per_cpu_zonestat;
|
|
|
|
struct zone {
|
|
unsigned long _watermark[4];
|
|
unsigned long watermark_boost;
|
|
unsigned long nr_reserved_highatomic;
|
|
long lowmem_reserve[4];
|
|
struct pglist_data *zone_pgdat;
|
|
struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset;
|
|
struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats;
|
|
int pageset_high;
|
|
int pageset_batch;
|
|
unsigned long zone_start_pfn;
|
|
atomic_long_t managed_pages;
|
|
unsigned long spanned_pages;
|
|
unsigned long present_pages;
|
|
const char *name;
|
|
int initialized;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct cacheline_padding _pad1_;
|
|
struct free_area free_area[11];
|
|
unsigned long flags;
|
|
spinlock_t lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct cacheline_padding _pad2_;
|
|
unsigned long percpu_drift_mark;
|
|
unsigned long compact_cached_free_pfn;
|
|
unsigned long compact_cached_migrate_pfn[2];
|
|
unsigned long compact_init_migrate_pfn;
|
|
unsigned long compact_init_free_pfn;
|
|
unsigned int compact_considered;
|
|
unsigned int compact_defer_shift;
|
|
int compact_order_failed;
|
|
bool compact_blockskip_flush;
|
|
bool contiguous;
|
|
short: 16;
|
|
struct cacheline_padding _pad3_;
|
|
atomic_long_t vm_stat[10];
|
|
atomic_long_t vm_numa_event[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct zoneref {
|
|
struct zone *zone;
|
|
int zone_idx;
|
|
};
|
|
|
|
struct zonelist {
|
|
struct zoneref _zonerefs[5];
|
|
};
|
|
|
|
struct lruvec {
|
|
struct list_head lists[5];
|
|
spinlock_t lru_lock;
|
|
unsigned long anon_cost;
|
|
unsigned long file_cost;
|
|
atomic_long_t nonresident_age;
|
|
unsigned long refaults[2];
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct per_cpu_nodestat;
|
|
|
|
struct pglist_data {
|
|
struct zone node_zones[4];
|
|
struct zonelist node_zonelists[1];
|
|
int nr_zones;
|
|
unsigned long node_start_pfn;
|
|
unsigned long node_present_pages;
|
|
unsigned long node_spanned_pages;
|
|
int node_id;
|
|
wait_queue_head_t kswapd_wait;
|
|
wait_queue_head_t pfmemalloc_wait;
|
|
wait_queue_head_t reclaim_wait[4];
|
|
atomic_t nr_writeback_throttled;
|
|
unsigned long nr_reclaim_start;
|
|
struct task_struct *kswapd;
|
|
int kswapd_order;
|
|
enum zone_type kswapd_highest_zoneidx;
|
|
int kswapd_failures;
|
|
int kcompactd_max_order;
|
|
enum zone_type kcompactd_highest_zoneidx;
|
|
wait_queue_head_t kcompactd_wait;
|
|
struct task_struct *kcompactd;
|
|
bool proactive_compact_trigger;
|
|
unsigned long totalreserve_pages;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct cacheline_padding _pad1_;
|
|
struct lruvec __lruvec;
|
|
unsigned long flags;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct cacheline_padding _pad2_;
|
|
struct per_cpu_nodestat __attribute__((btf_type_tag("percpu"))) *per_cpu_nodestats;
|
|
atomic_long_t vm_stat[41];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct per_cpu_pages {
|
|
spinlock_t lock;
|
|
int count;
|
|
int high;
|
|
int batch;
|
|
short free_factor;
|
|
struct list_head lists[12];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct per_cpu_zonestat {
|
|
s8 vm_stat_diff[10];
|
|
s8 stat_threshold;
|
|
};
|
|
|
|
struct anon_vma {
|
|
struct anon_vma *root;
|
|
struct rw_semaphore rwsem;
|
|
atomic_t refcount;
|
|
unsigned long num_children;
|
|
unsigned long num_active_vmas;
|
|
struct anon_vma *parent;
|
|
struct rb_root_cached rb_root;
|
|
};
|
|
|
|
struct readahead_control {
|
|
struct file *file;
|
|
struct address_space *mapping;
|
|
struct file_ra_state *ra;
|
|
unsigned long _index;
|
|
unsigned int _nr_pages;
|
|
unsigned int _batch_count;
|
|
bool _workingset;
|
|
unsigned long _pflags;
|
|
};
|
|
|
|
struct wait_queue_entry;
|
|
|
|
typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *);
|
|
|
|
struct wait_queue_entry {
|
|
unsigned int flags;
|
|
void *private;
|
|
wait_queue_func_t func;
|
|
struct list_head entry;
|
|
};
|
|
|
|
typedef struct wait_queue_entry wait_queue_entry_t;
|
|
|
|
struct wait_page_queue {
|
|
struct folio *folio;
|
|
int bit_nr;
|
|
wait_queue_entry_t wait;
|
|
};
|
|
|
|
struct swap_cluster_info {
|
|
spinlock_t lock;
|
|
unsigned int data: 24;
|
|
unsigned int flags: 8;
|
|
};
|
|
|
|
struct swap_cluster_list {
|
|
struct swap_cluster_info head;
|
|
struct swap_cluster_info tail;
|
|
};
|
|
|
|
struct percpu_cluster;
|
|
|
|
struct swap_info_struct {
|
|
struct percpu_ref users;
|
|
unsigned long flags;
|
|
short prio;
|
|
struct plist_node list;
|
|
signed char type;
|
|
unsigned int max;
|
|
unsigned char *swap_map;
|
|
struct swap_cluster_info *cluster_info;
|
|
struct swap_cluster_list free_clusters;
|
|
unsigned int lowest_bit;
|
|
unsigned int highest_bit;
|
|
unsigned int pages;
|
|
unsigned int inuse_pages;
|
|
unsigned int cluster_next;
|
|
unsigned int cluster_nr;
|
|
unsigned int __attribute__((btf_type_tag("percpu"))) *cluster_next_cpu;
|
|
struct percpu_cluster __attribute__((btf_type_tag("percpu"))) *percpu_cluster;
|
|
struct rb_root swap_extent_root;
|
|
struct block_device *bdev;
|
|
struct file *swap_file;
|
|
unsigned int old_block_size;
|
|
struct completion comp;
|
|
spinlock_t lock;
|
|
spinlock_t cont_lock;
|
|
struct work_struct discard_work;
|
|
struct swap_cluster_list discard_clusters;
|
|
struct plist_node avail_lists[0];
|
|
};
|
|
|
|
struct percpu_cluster {
|
|
struct swap_cluster_info index;
|
|
unsigned int next;
|
|
};
|
|
|
|
struct reclaim_state {
|
|
unsigned long reclaimed_slab;
|
|
};
|
|
|
|
struct compact_control;
|
|
|
|
struct capture_control {
|
|
struct compact_control *cc;
|
|
struct page *page;
|
|
};
|
|
|
|
struct compact_control {
|
|
struct list_head freepages;
|
|
struct list_head migratepages;
|
|
unsigned int nr_freepages;
|
|
unsigned int nr_migratepages;
|
|
unsigned long free_pfn;
|
|
unsigned long migrate_pfn;
|
|
unsigned long fast_start_pfn;
|
|
struct zone *zone;
|
|
unsigned long total_migrate_scanned;
|
|
unsigned long total_free_scanned;
|
|
unsigned short fast_search_fail;
|
|
short search_order;
|
|
const gfp_t gfp_mask;
|
|
int order;
|
|
int migratetype;
|
|
const unsigned int alloc_flags;
|
|
const int highest_zoneidx;
|
|
enum migrate_mode mode;
|
|
bool ignore_skip_hint;
|
|
bool no_set_skip_hint;
|
|
bool ignore_block_suitable;
|
|
bool direct_compaction;
|
|
bool proactive_compaction;
|
|
bool whole_zone;
|
|
bool contended;
|
|
bool finish_pageblock;
|
|
bool alloc_contig;
|
|
};
|
|
|
|
struct per_cpu_nodestat {
|
|
s8 stat_threshold;
|
|
s8 vm_node_stat_diff[41];
|
|
};
|
|
|
|
struct posix_acl_entry {
|
|
short e_tag;
|
|
unsigned short e_perm;
|
|
union {
|
|
kuid_t e_uid;
|
|
kgid_t e_gid;
|
|
};
|
|
};
|
|
|
|
struct posix_acl {
|
|
refcount_t a_refcount;
|
|
struct callback_head a_rcu;
|
|
unsigned int a_count;
|
|
struct posix_acl_entry a_entries[0];
|
|
};
|
|
|
|
struct nlm_lockowner;
|
|
|
|
struct nfs_lock_info {
|
|
u32 state;
|
|
struct nlm_lockowner *owner;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct nfs4_lock_state;
|
|
|
|
struct nfs4_lock_info {
|
|
struct nfs4_lock_state *owner;
|
|
};
|
|
|
|
struct file_lock_operations;
|
|
|
|
struct lock_manager_operations;
|
|
|
|
struct file_lock {
|
|
struct file_lock *fl_blocker;
|
|
struct list_head fl_list;
|
|
struct hlist_node fl_link;
|
|
struct list_head fl_blocked_requests;
|
|
struct list_head fl_blocked_member;
|
|
fl_owner_t fl_owner;
|
|
unsigned int fl_flags;
|
|
unsigned char fl_type;
|
|
unsigned int fl_pid;
|
|
int fl_link_cpu;
|
|
wait_queue_head_t fl_wait;
|
|
struct file *fl_file;
|
|
loff_t fl_start;
|
|
loff_t fl_end;
|
|
struct fasync_struct *fl_fasync;
|
|
unsigned long fl_break_time;
|
|
unsigned long fl_downgrade_time;
|
|
const struct file_lock_operations *fl_ops;
|
|
const struct lock_manager_operations *fl_lmops;
|
|
union {
|
|
struct nfs_lock_info nfs_fl;
|
|
struct nfs4_lock_info nfs4_fl;
|
|
struct {
|
|
struct list_head link;
|
|
int state;
|
|
unsigned int debug_id;
|
|
} afs;
|
|
struct {
|
|
struct inode *inode;
|
|
} ceph;
|
|
} fl_u;
|
|
};
|
|
|
|
struct file_lock_operations {
|
|
void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
|
|
void (*fl_release_private)(struct file_lock *);
|
|
};
|
|
|
|
struct lock_manager_operations {
|
|
void *lm_mod_owner;
|
|
fl_owner_t (*lm_get_owner)(fl_owner_t);
|
|
void (*lm_put_owner)(fl_owner_t);
|
|
void (*lm_notify)(struct file_lock *);
|
|
int (*lm_grant)(struct file_lock *, int);
|
|
bool (*lm_break)(struct file_lock *);
|
|
int (*lm_change)(struct file_lock *, int, struct list_head *);
|
|
void (*lm_setup)(struct file_lock *, void **);
|
|
bool (*lm_breaker_owns_lease)(struct file_lock *);
|
|
bool (*lm_lock_expirable)(struct file_lock *);
|
|
void (*lm_expire_lock)();
|
|
};
|
|
|
|
struct file_lock_context {
|
|
spinlock_t flc_lock;
|
|
struct list_head flc_flock;
|
|
struct list_head flc_posix;
|
|
struct list_head flc_lease;
|
|
};
|
|
|
|
struct cdev {
|
|
struct kobject kobj;
|
|
struct module *owner;
|
|
const struct file_operations *ops;
|
|
struct list_head list;
|
|
dev_t dev;
|
|
unsigned int count;
|
|
};
|
|
|
|
struct inodes_stat_t {
|
|
long nr_inodes;
|
|
long nr_unused;
|
|
long dummy[5];
|
|
};
|
|
|
|
enum rw_hint {
|
|
WRITE_LIFE_NOT_SET = 0,
|
|
WRITE_LIFE_NONE = 1,
|
|
WRITE_LIFE_SHORT = 2,
|
|
WRITE_LIFE_MEDIUM = 3,
|
|
WRITE_LIFE_LONG = 4,
|
|
WRITE_LIFE_EXTREME = 5,
|
|
};
|
|
|
|
enum inode_i_mutex_lock_class {
|
|
I_MUTEX_NORMAL = 0,
|
|
I_MUTEX_PARENT = 1,
|
|
I_MUTEX_CHILD = 2,
|
|
I_MUTEX_XATTR = 3,
|
|
I_MUTEX_NONDIR2 = 4,
|
|
I_MUTEX_PARENT2 = 5,
|
|
};
|
|
|
|
enum file_time_flags {
|
|
S_ATIME = 1,
|
|
S_MTIME = 2,
|
|
S_CTIME = 4,
|
|
S_VERSION = 8,
|
|
};
|
|
|
|
enum xa_lock_type {
|
|
XA_LOCK_IRQ = 1,
|
|
XA_LOCK_BH = 2,
|
|
};
|
|
|
|
enum lru_status {
|
|
LRU_REMOVED = 0,
|
|
LRU_REMOVED_RETRY = 1,
|
|
LRU_ROTATE = 2,
|
|
LRU_SKIP = 3,
|
|
LRU_RETRY = 4,
|
|
};
|
|
|
|
enum vm_event_item {
|
|
PGPGIN = 0,
|
|
PGPGOUT = 1,
|
|
PSWPIN = 2,
|
|
PSWPOUT = 3,
|
|
PGALLOC_DMA = 4,
|
|
PGALLOC_DMA32 = 5,
|
|
PGALLOC_NORMAL = 6,
|
|
PGALLOC_MOVABLE = 7,
|
|
ALLOCSTALL_DMA = 8,
|
|
ALLOCSTALL_DMA32 = 9,
|
|
ALLOCSTALL_NORMAL = 10,
|
|
ALLOCSTALL_MOVABLE = 11,
|
|
PGSCAN_SKIP_DMA = 12,
|
|
PGSCAN_SKIP_DMA32 = 13,
|
|
PGSCAN_SKIP_NORMAL = 14,
|
|
PGSCAN_SKIP_MOVABLE = 15,
|
|
PGFREE = 16,
|
|
PGACTIVATE = 17,
|
|
PGDEACTIVATE = 18,
|
|
PGLAZYFREE = 19,
|
|
PGFAULT = 20,
|
|
PGMAJFAULT = 21,
|
|
PGLAZYFREED = 22,
|
|
PGREFILL = 23,
|
|
PGREUSE = 24,
|
|
PGSTEAL_KSWAPD = 25,
|
|
PGSTEAL_DIRECT = 26,
|
|
PGSTEAL_KHUGEPAGED = 27,
|
|
PGDEMOTE_KSWAPD = 28,
|
|
PGDEMOTE_DIRECT = 29,
|
|
PGDEMOTE_KHUGEPAGED = 30,
|
|
PGSCAN_KSWAPD = 31,
|
|
PGSCAN_DIRECT = 32,
|
|
PGSCAN_KHUGEPAGED = 33,
|
|
PGSCAN_DIRECT_THROTTLE = 34,
|
|
PGSCAN_ANON = 35,
|
|
PGSCAN_FILE = 36,
|
|
PGSTEAL_ANON = 37,
|
|
PGSTEAL_FILE = 38,
|
|
PGINODESTEAL = 39,
|
|
SLABS_SCANNED = 40,
|
|
KSWAPD_INODESTEAL = 41,
|
|
KSWAPD_LOW_WMARK_HIT_QUICKLY = 42,
|
|
KSWAPD_HIGH_WMARK_HIT_QUICKLY = 43,
|
|
PAGEOUTRUN = 44,
|
|
PGROTATED = 45,
|
|
DROP_PAGECACHE = 46,
|
|
DROP_SLAB = 47,
|
|
OOM_KILL = 48,
|
|
PGMIGRATE_SUCCESS = 49,
|
|
PGMIGRATE_FAIL = 50,
|
|
THP_MIGRATION_SUCCESS = 51,
|
|
THP_MIGRATION_FAIL = 52,
|
|
THP_MIGRATION_SPLIT = 53,
|
|
COMPACTMIGRATE_SCANNED = 54,
|
|
COMPACTFREE_SCANNED = 55,
|
|
COMPACTISOLATED = 56,
|
|
COMPACTSTALL = 57,
|
|
COMPACTFAIL = 58,
|
|
COMPACTSUCCESS = 59,
|
|
KCOMPACTD_WAKE = 60,
|
|
KCOMPACTD_MIGRATE_SCANNED = 61,
|
|
KCOMPACTD_FREE_SCANNED = 62,
|
|
HTLB_BUDDY_PGALLOC = 63,
|
|
HTLB_BUDDY_PGALLOC_FAIL = 64,
|
|
UNEVICTABLE_PGCULLED = 65,
|
|
UNEVICTABLE_PGSCANNED = 66,
|
|
UNEVICTABLE_PGRESCUED = 67,
|
|
UNEVICTABLE_PGMLOCKED = 68,
|
|
UNEVICTABLE_PGMUNLOCKED = 69,
|
|
UNEVICTABLE_PGCLEARED = 70,
|
|
UNEVICTABLE_PGSTRANDED = 71,
|
|
SWAP_RA = 72,
|
|
SWAP_RA_HIT = 73,
|
|
DIRECT_MAP_LEVEL2_SPLIT = 74,
|
|
DIRECT_MAP_LEVEL3_SPLIT = 75,
|
|
NR_VM_EVENT_ITEMS = 76,
|
|
};
|
|
|
|
enum {
|
|
SB_UNFROZEN = 0,
|
|
SB_FREEZE_WRITE = 1,
|
|
SB_FREEZE_PAGEFAULT = 2,
|
|
SB_FREEZE_FS = 3,
|
|
SB_FREEZE_COMPLETE = 4,
|
|
};
|
|
|
|
typedef unsigned int slab_flags_t;
|
|
|
|
typedef int __kernel_rwf_t;
|
|
|
|
typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *);
|
|
|
|
struct wait_bit_key {
|
|
void *flags;
|
|
int bit_nr;
|
|
unsigned long timeout;
|
|
};
|
|
|
|
struct wait_bit_queue_entry {
|
|
struct wait_bit_key key;
|
|
struct wait_queue_entry wq_entry;
|
|
};
|
|
|
|
typedef int wait_bit_action_f(struct wait_bit_key *, int);
|
|
|
|
typedef __kernel_ulong_t ino_t;
|
|
|
|
struct fsnotify_event {
|
|
struct list_head list;
|
|
};
|
|
|
|
struct fs_pin {
|
|
wait_queue_head_t wait;
|
|
int done;
|
|
struct hlist_node s_list;
|
|
struct hlist_node m_list;
|
|
void (*kill)(struct fs_pin *);
|
|
};
|
|
|
|
struct mount;
|
|
|
|
struct mnt_namespace {
|
|
struct ns_common ns;
|
|
struct mount *root;
|
|
struct list_head list;
|
|
spinlock_t ns_lock;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
u64 seq;
|
|
wait_queue_head_t poll;
|
|
u64 event;
|
|
unsigned int mounts;
|
|
unsigned int pending_mounts;
|
|
};
|
|
|
|
struct mnt_pcp;
|
|
|
|
struct mountpoint;
|
|
|
|
struct mount {
|
|
struct hlist_node mnt_hash;
|
|
struct mount *mnt_parent;
|
|
struct dentry *mnt_mountpoint;
|
|
struct vfsmount mnt;
|
|
union {
|
|
struct callback_head mnt_rcu;
|
|
struct llist_node mnt_llist;
|
|
};
|
|
struct mnt_pcp __attribute__((btf_type_tag("percpu"))) *mnt_pcp;
|
|
struct list_head mnt_mounts;
|
|
struct list_head mnt_child;
|
|
struct list_head mnt_instance;
|
|
const char *mnt_devname;
|
|
struct list_head mnt_list;
|
|
struct list_head mnt_expire;
|
|
struct list_head mnt_share;
|
|
struct list_head mnt_slave_list;
|
|
struct list_head mnt_slave;
|
|
struct mount *mnt_master;
|
|
struct mnt_namespace *mnt_ns;
|
|
struct mountpoint *mnt_mp;
|
|
union {
|
|
struct hlist_node mnt_mp_list;
|
|
struct hlist_node mnt_umount;
|
|
};
|
|
struct list_head mnt_umounting;
|
|
struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *mnt_fsnotify_marks;
|
|
__u32 mnt_fsnotify_mask;
|
|
int mnt_id;
|
|
int mnt_group_id;
|
|
int mnt_expiry_mark;
|
|
struct hlist_head mnt_pins;
|
|
struct hlist_head mnt_stuck_children;
|
|
};
|
|
|
|
struct mnt_pcp {
|
|
int mnt_count;
|
|
int mnt_writers;
|
|
};
|
|
|
|
struct mountpoint {
|
|
struct hlist_node m_hash;
|
|
struct dentry *m_dentry;
|
|
struct hlist_head m_list;
|
|
int m_count;
|
|
};
|
|
|
|
struct inotify_group_private_data {
|
|
spinlock_t idr_lock;
|
|
struct idr idr;
|
|
struct ucounts *ucounts;
|
|
};
|
|
|
|
struct fsnotify_ops;
|
|
|
|
struct fsnotify_group {
|
|
const struct fsnotify_ops *ops;
|
|
refcount_t refcnt;
|
|
spinlock_t notification_lock;
|
|
struct list_head notification_list;
|
|
wait_queue_head_t notification_waitq;
|
|
unsigned int q_len;
|
|
unsigned int max_events;
|
|
unsigned int priority;
|
|
bool shutdown;
|
|
int flags;
|
|
unsigned int owner_flags;
|
|
struct mutex mark_mutex;
|
|
atomic_t user_waits;
|
|
struct list_head marks_list;
|
|
struct fasync_struct *fsn_fa;
|
|
struct fsnotify_event *overflow_event;
|
|
struct mem_cgroup *memcg;
|
|
union {
|
|
void *private;
|
|
struct inotify_group_private_data inotify_data;
|
|
};
|
|
};
|
|
|
|
struct fsnotify_iter_info;
|
|
|
|
struct fsnotify_mark;
|
|
|
|
struct fsnotify_ops {
|
|
int (*handle_event)(struct fsnotify_group *, u32, const void *, int, struct inode *, const struct qstr *, u32, struct fsnotify_iter_info *);
|
|
int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32);
|
|
void (*free_group_priv)(struct fsnotify_group *);
|
|
void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *);
|
|
void (*free_event)(struct fsnotify_group *, struct fsnotify_event *);
|
|
void (*free_mark)(struct fsnotify_mark *);
|
|
};
|
|
|
|
struct fsnotify_iter_info {
|
|
struct fsnotify_mark *marks[5];
|
|
struct fsnotify_group *current_group;
|
|
unsigned int report_mask;
|
|
int srcu_idx;
|
|
};
|
|
|
|
struct fsnotify_mark {
|
|
__u32 mask;
|
|
refcount_t refcnt;
|
|
struct fsnotify_group *group;
|
|
struct list_head g_list;
|
|
spinlock_t lock;
|
|
struct hlist_node obj_list;
|
|
struct fsnotify_mark_connector *connector;
|
|
__u32 ignore_mask;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct request;
|
|
|
|
struct io_comp_batch {
|
|
struct request *req_list;
|
|
bool need_ts;
|
|
void (*complete)(struct io_comp_batch *);
|
|
};
|
|
|
|
typedef void *mempool_alloc_t(gfp_t, void *);
|
|
|
|
typedef void mempool_free_t(void *, void *);
|
|
|
|
struct mempool_s {
|
|
spinlock_t lock;
|
|
int min_nr;
|
|
int curr_nr;
|
|
void **elements;
|
|
void *pool_data;
|
|
mempool_alloc_t *alloc;
|
|
mempool_free_t *free;
|
|
wait_queue_head_t wait;
|
|
};
|
|
|
|
typedef struct mempool_s mempool_t;
|
|
|
|
struct bio;
|
|
|
|
struct bio_list {
|
|
struct bio *head;
|
|
struct bio *tail;
|
|
};
|
|
|
|
struct bio_alloc_cache;
|
|
|
|
struct bio_set {
|
|
struct kmem_cache *bio_slab;
|
|
unsigned int front_pad;
|
|
struct bio_alloc_cache __attribute__((btf_type_tag("percpu"))) *cache;
|
|
mempool_t bio_pool;
|
|
mempool_t bvec_pool;
|
|
unsigned int back_pad;
|
|
spinlock_t rescue_lock;
|
|
struct bio_list rescue_list;
|
|
struct work_struct rescue_work;
|
|
struct workqueue_struct *rescue_workqueue;
|
|
struct hlist_node cpuhp_dead;
|
|
};
|
|
|
|
struct block_device_operations;
|
|
|
|
struct timer_rand_state;
|
|
|
|
struct disk_events;
|
|
|
|
struct cdrom_device_info;
|
|
|
|
struct badblocks;
|
|
|
|
struct blk_independent_access_ranges;
|
|
|
|
struct gendisk {
|
|
int major;
|
|
int first_minor;
|
|
int minors;
|
|
char disk_name[32];
|
|
unsigned short events;
|
|
unsigned short event_flags;
|
|
struct xarray part_tbl;
|
|
struct block_device *part0;
|
|
const struct block_device_operations *fops;
|
|
struct request_queue *queue;
|
|
void *private_data;
|
|
struct bio_set bio_split;
|
|
int flags;
|
|
unsigned long state;
|
|
struct mutex open_mutex;
|
|
unsigned int open_partitions;
|
|
struct backing_dev_info *bdi;
|
|
struct kobject queue_kobj;
|
|
struct kobject *slave_dir;
|
|
struct list_head slave_bdevs;
|
|
struct timer_rand_state *random;
|
|
atomic_t sync_io;
|
|
struct disk_events *ev;
|
|
struct cdrom_device_info *cdi;
|
|
int node_id;
|
|
struct badblocks *bb;
|
|
struct lockdep_map lockdep_map;
|
|
u64 diskseq;
|
|
struct blk_independent_access_ranges *ia_ranges;
|
|
};
|
|
|
|
struct blk_zone;
|
|
|
|
typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *);
|
|
|
|
enum blk_unique_id {
|
|
BLK_UID_T10 = 1,
|
|
BLK_UID_EUI64 = 2,
|
|
BLK_UID_NAA = 3,
|
|
};
|
|
|
|
struct hd_geometry;
|
|
|
|
struct pr_ops;
|
|
|
|
struct block_device_operations {
|
|
void (*submit_bio)(struct bio *);
|
|
int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int);
|
|
int (*open)(struct block_device *, fmode_t);
|
|
void (*release)(struct gendisk *, fmode_t);
|
|
int (*ioctl)(struct block_device *, fmode_t, unsigned int, unsigned long);
|
|
int (*compat_ioctl)(struct block_device *, fmode_t, unsigned int, unsigned long);
|
|
unsigned int (*check_events)(struct gendisk *, unsigned int);
|
|
void (*unlock_native_capacity)(struct gendisk *);
|
|
int (*getgeo)(struct block_device *, struct hd_geometry *);
|
|
int (*set_read_only)(struct block_device *, bool);
|
|
void (*free_disk)(struct gendisk *);
|
|
void (*swap_slot_free_notify)(struct block_device *, unsigned long);
|
|
int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *);
|
|
char * (*devnode)(struct gendisk *, umode_t *);
|
|
int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id);
|
|
struct module *owner;
|
|
const struct pr_ops *pr_ops;
|
|
int (*alternative_gpt_sector)(struct gendisk *, sector_t *);
|
|
};
|
|
|
|
typedef __u32 blk_opf_t;
|
|
|
|
typedef u8 blk_status_t;
|
|
|
|
struct bvec_iter {
|
|
sector_t bi_sector;
|
|
unsigned int bi_size;
|
|
unsigned int bi_idx;
|
|
unsigned int bi_bvec_done;
|
|
} __attribute__((packed));
|
|
|
|
typedef unsigned int blk_qc_t;
|
|
|
|
typedef void bio_end_io_t(struct bio *);
|
|
|
|
struct bio_issue {
|
|
u64 value;
|
|
};
|
|
|
|
struct blkcg_gq;
|
|
|
|
struct bio {
|
|
struct bio *bi_next;
|
|
struct block_device *bi_bdev;
|
|
blk_opf_t bi_opf;
|
|
unsigned short bi_flags;
|
|
unsigned short bi_ioprio;
|
|
blk_status_t bi_status;
|
|
atomic_t __bi_remaining;
|
|
struct bvec_iter bi_iter;
|
|
blk_qc_t bi_cookie;
|
|
bio_end_io_t *bi_end_io;
|
|
void *bi_private;
|
|
struct blkcg_gq *bi_blkg;
|
|
struct bio_issue bi_issue;
|
|
u64 bi_iocost_cost;
|
|
union { };
|
|
unsigned short bi_vcnt;
|
|
unsigned short bi_max_vecs;
|
|
atomic_t __bi_cnt;
|
|
struct bio_vec *bi_io_vec;
|
|
struct bio_set *bi_pool;
|
|
struct bio_vec bi_inline_vecs[0];
|
|
};
|
|
|
|
struct bio_alloc_cache {
|
|
struct bio *free_list;
|
|
struct bio *free_list_irq;
|
|
unsigned int nr;
|
|
unsigned int nr_irq;
|
|
};
|
|
|
|
struct blk_zone {
|
|
__u64 start;
|
|
__u64 len;
|
|
__u64 wp;
|
|
__u8 type;
|
|
__u8 cond;
|
|
__u8 non_seq;
|
|
__u8 reset;
|
|
__u8 resv[4];
|
|
__u64 capacity;
|
|
__u8 reserved[24];
|
|
};
|
|
|
|
enum pr_type {
|
|
PR_WRITE_EXCLUSIVE = 1,
|
|
PR_EXCLUSIVE_ACCESS = 2,
|
|
PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
|
|
PR_EXCLUSIVE_ACCESS_REG_ONLY = 4,
|
|
PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
|
|
PR_EXCLUSIVE_ACCESS_ALL_REGS = 6,
|
|
};
|
|
|
|
struct pr_ops {
|
|
int (*pr_register)(struct block_device *, u64, u64, u32);
|
|
int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32);
|
|
int (*pr_release)(struct block_device *, u64, enum pr_type);
|
|
int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool);
|
|
int (*pr_clear)(struct block_device *, u64);
|
|
};
|
|
|
|
enum blk_bounce {
|
|
BLK_BOUNCE_NONE = 0,
|
|
BLK_BOUNCE_HIGH = 1,
|
|
};
|
|
|
|
enum blk_zoned_model {
|
|
BLK_ZONED_NONE = 0,
|
|
BLK_ZONED_HA = 1,
|
|
BLK_ZONED_HM = 2,
|
|
};
|
|
|
|
struct queue_limits {
|
|
enum blk_bounce bounce;
|
|
unsigned long seg_boundary_mask;
|
|
unsigned long virt_boundary_mask;
|
|
unsigned int max_hw_sectors;
|
|
unsigned int max_dev_sectors;
|
|
unsigned int chunk_sectors;
|
|
unsigned int max_sectors;
|
|
unsigned int max_user_sectors;
|
|
unsigned int max_segment_size;
|
|
unsigned int physical_block_size;
|
|
unsigned int logical_block_size;
|
|
unsigned int alignment_offset;
|
|
unsigned int io_min;
|
|
unsigned int io_opt;
|
|
unsigned int max_discard_sectors;
|
|
unsigned int max_hw_discard_sectors;
|
|
unsigned int max_secure_erase_sectors;
|
|
unsigned int max_write_zeroes_sectors;
|
|
unsigned int max_zone_append_sectors;
|
|
unsigned int discard_granularity;
|
|
unsigned int discard_alignment;
|
|
unsigned int zone_write_granularity;
|
|
unsigned short max_segments;
|
|
unsigned short max_integrity_segments;
|
|
unsigned short max_discard_segments;
|
|
unsigned char misaligned;
|
|
unsigned char discard_misaligned;
|
|
unsigned char raid_partial_stripes_expensive;
|
|
enum blk_zoned_model zoned;
|
|
unsigned int dma_alignment;
|
|
};
|
|
|
|
struct elevator_queue;
|
|
|
|
struct blk_queue_stats;
|
|
|
|
struct rq_qos;
|
|
|
|
struct blk_mq_ops;
|
|
|
|
struct blk_mq_ctx;
|
|
|
|
struct blk_stat_callback;
|
|
|
|
struct blk_rq_stat;
|
|
|
|
struct blk_mq_tags;
|
|
|
|
struct blk_trace;
|
|
|
|
struct blk_flush_queue;
|
|
|
|
struct blk_mq_tag_set;
|
|
|
|
struct request_queue {
|
|
struct request *last_merge;
|
|
struct elevator_queue *elevator;
|
|
struct percpu_ref q_usage_counter;
|
|
struct blk_queue_stats *stats;
|
|
struct rq_qos *rq_qos;
|
|
const struct blk_mq_ops *mq_ops;
|
|
struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx;
|
|
unsigned int queue_depth;
|
|
struct xarray hctx_table;
|
|
unsigned int nr_hw_queues;
|
|
void *queuedata;
|
|
unsigned long queue_flags;
|
|
atomic_t pm_only;
|
|
int id;
|
|
spinlock_t queue_lock;
|
|
struct gendisk *disk;
|
|
refcount_t refs;
|
|
struct kobject *mq_kobj;
|
|
struct device *dev;
|
|
enum rpm_status rpm_status;
|
|
unsigned long nr_requests;
|
|
unsigned int dma_pad_mask;
|
|
unsigned int rq_timeout;
|
|
int poll_nsec;
|
|
struct blk_stat_callback *poll_cb;
|
|
struct blk_rq_stat *poll_stat;
|
|
struct timer_list timeout;
|
|
struct work_struct timeout_work;
|
|
atomic_t nr_active_requests_shared_tags;
|
|
struct blk_mq_tags *sched_shared_tags;
|
|
struct list_head icq_list;
|
|
unsigned long blkcg_pols[1];
|
|
struct blkcg_gq *root_blkg;
|
|
struct list_head blkg_list;
|
|
struct mutex blkcg_mutex;
|
|
struct queue_limits limits;
|
|
unsigned int required_elevator_features;
|
|
int node;
|
|
struct blk_trace __attribute__((btf_type_tag("rcu"))) *blk_trace;
|
|
struct blk_flush_queue *fq;
|
|
struct list_head requeue_list;
|
|
spinlock_t requeue_lock;
|
|
struct delayed_work requeue_work;
|
|
struct mutex sysfs_lock;
|
|
struct mutex sysfs_dir_lock;
|
|
struct list_head unused_hctx_list;
|
|
spinlock_t unused_hctx_lock;
|
|
int mq_freeze_depth;
|
|
struct callback_head callback_head;
|
|
wait_queue_head_t mq_freeze_wq;
|
|
struct mutex mq_freeze_lock;
|
|
int quiesce_depth;
|
|
struct blk_mq_tag_set *tag_set;
|
|
struct list_head tag_set_list;
|
|
struct dentry *debugfs_dir;
|
|
struct dentry *sched_debugfs_dir;
|
|
struct dentry *rqos_debugfs_dir;
|
|
struct mutex debugfs_mutex;
|
|
bool mq_sysfs_init_done;
|
|
};
|
|
|
|
enum blk_eh_timer_return {
|
|
BLK_EH_DONE = 0,
|
|
BLK_EH_RESET_TIMER = 1,
|
|
};
|
|
|
|
struct blk_mq_hw_ctx;
|
|
|
|
struct blk_mq_queue_data;
|
|
|
|
struct blk_mq_ops {
|
|
blk_status_t (*queue_rq)(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *);
|
|
void (*commit_rqs)(struct blk_mq_hw_ctx *);
|
|
void (*queue_rqs)(struct request **);
|
|
int (*get_budget)(struct request_queue *);
|
|
void (*put_budget)(struct request_queue *, int);
|
|
void (*set_rq_budget_token)(struct request *, int);
|
|
int (*get_rq_budget_token)(struct request *);
|
|
enum blk_eh_timer_return (*timeout)(struct request *);
|
|
int (*poll)(struct blk_mq_hw_ctx *, struct io_comp_batch *);
|
|
void (*complete)(struct request *);
|
|
int (*init_hctx)(struct blk_mq_hw_ctx *, void *, unsigned int);
|
|
void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
|
|
int (*init_request)(struct blk_mq_tag_set *, struct request *, unsigned int, unsigned int);
|
|
void (*exit_request)(struct blk_mq_tag_set *, struct request *, unsigned int);
|
|
void (*cleanup_rq)(struct request *);
|
|
bool (*busy)(struct request_queue *);
|
|
void (*map_queues)(struct blk_mq_tag_set *);
|
|
void (*show_rq)(struct seq_file *, struct request *);
|
|
};
|
|
|
|
struct blk_mq_ctxs;
|
|
|
|
struct blk_mq_ctx {
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head rq_lists[3];
|
|
long: 64;
|
|
};
|
|
unsigned int cpu;
|
|
unsigned short index_hw[3];
|
|
struct blk_mq_hw_ctx *hctxs[3];
|
|
struct request_queue *queue;
|
|
struct blk_mq_ctxs *ctxs;
|
|
struct kobject kobj;
|
|
long: 64;
|
|
};
|
|
|
|
struct blk_rq_stat {
|
|
u64 mean;
|
|
u64 min;
|
|
u64 max;
|
|
u32 nr_samples;
|
|
u64 batch;
|
|
};
|
|
|
|
struct rchan;
|
|
|
|
struct blk_trace {
|
|
int trace_state;
|
|
struct rchan *rchan;
|
|
unsigned long __attribute__((btf_type_tag("percpu"))) *sequence;
|
|
unsigned char __attribute__((btf_type_tag("percpu"))) *msg_data;
|
|
u16 act_mask;
|
|
u64 start_lba;
|
|
u64 end_lba;
|
|
u32 pid;
|
|
u32 dev;
|
|
struct dentry *dir;
|
|
struct list_head running_list;
|
|
atomic_t dropped;
|
|
};
|
|
|
|
struct blk_independent_access_range {
|
|
struct kobject kobj;
|
|
sector_t sector;
|
|
sector_t nr_sectors;
|
|
};
|
|
|
|
struct blk_independent_access_ranges {
|
|
struct kobject kobj;
|
|
bool sysfs_registered;
|
|
unsigned int nr_ia_ranges;
|
|
struct blk_independent_access_range ia_range[0];
|
|
};
|
|
|
|
struct partition_meta_info {
|
|
char uuid[37];
|
|
u8 volname[64];
|
|
};
|
|
|
|
struct ld_semaphore {
|
|
atomic_long_t count;
|
|
raw_spinlock_t wait_lock;
|
|
unsigned int wait_readers;
|
|
struct list_head read_wait;
|
|
struct list_head write_wait;
|
|
};
|
|
|
|
typedef unsigned int tcflag_t;
|
|
|
|
typedef unsigned char cc_t;
|
|
|
|
typedef unsigned int speed_t;
|
|
|
|
struct ktermios {
|
|
tcflag_t c_iflag;
|
|
tcflag_t c_oflag;
|
|
tcflag_t c_cflag;
|
|
tcflag_t c_lflag;
|
|
cc_t c_line;
|
|
cc_t c_cc[19];
|
|
speed_t c_ispeed;
|
|
speed_t c_ospeed;
|
|
};
|
|
|
|
struct winsize {
|
|
unsigned short ws_row;
|
|
unsigned short ws_col;
|
|
unsigned short ws_xpixel;
|
|
unsigned short ws_ypixel;
|
|
};
|
|
|
|
struct tty_driver;
|
|
|
|
struct tty_operations;
|
|
|
|
struct tty_ldisc;
|
|
|
|
struct tty_port;
|
|
|
|
struct tty_struct {
|
|
struct kref kref;
|
|
struct device *dev;
|
|
struct tty_driver *driver;
|
|
const struct tty_operations *ops;
|
|
int index;
|
|
struct ld_semaphore ldisc_sem;
|
|
struct tty_ldisc *ldisc;
|
|
struct mutex atomic_write_lock;
|
|
struct mutex legacy_mutex;
|
|
struct mutex throttle_mutex;
|
|
struct rw_semaphore termios_rwsem;
|
|
struct mutex winsize_mutex;
|
|
struct ktermios termios;
|
|
struct ktermios termios_locked;
|
|
char name[64];
|
|
unsigned long flags;
|
|
int count;
|
|
struct winsize winsize;
|
|
struct {
|
|
spinlock_t lock;
|
|
bool stopped;
|
|
bool tco_stopped;
|
|
unsigned long unused[0];
|
|
} flow;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct pid *pgrp;
|
|
struct pid *session;
|
|
unsigned char pktstatus;
|
|
bool packet;
|
|
unsigned long unused[0];
|
|
} ctrl;
|
|
int hw_stopped;
|
|
unsigned int receive_room;
|
|
int flow_change;
|
|
struct tty_struct *link;
|
|
struct fasync_struct *fasync;
|
|
wait_queue_head_t write_wait;
|
|
wait_queue_head_t read_wait;
|
|
struct work_struct hangup_work;
|
|
void *disc_data;
|
|
void *driver_data;
|
|
spinlock_t files_lock;
|
|
struct list_head tty_files;
|
|
int closing;
|
|
unsigned char *write_buf;
|
|
int write_cnt;
|
|
struct work_struct SAK_work;
|
|
struct tty_port *port;
|
|
};
|
|
|
|
struct tty_driver {
|
|
struct kref kref;
|
|
struct cdev **cdevs;
|
|
struct module *owner;
|
|
const char *driver_name;
|
|
const char *name;
|
|
int name_base;
|
|
int major;
|
|
int minor_start;
|
|
unsigned int num;
|
|
short type;
|
|
short subtype;
|
|
struct ktermios init_termios;
|
|
unsigned long flags;
|
|
struct proc_dir_entry *proc_entry;
|
|
struct tty_driver *other;
|
|
struct tty_struct **ttys;
|
|
struct tty_port **ports;
|
|
struct ktermios **termios;
|
|
void *driver_state;
|
|
const struct tty_operations *ops;
|
|
struct list_head tty_drivers;
|
|
};
|
|
|
|
struct __kfifo {
|
|
unsigned int in;
|
|
unsigned int out;
|
|
unsigned int mask;
|
|
unsigned int esize;
|
|
void *data;
|
|
};
|
|
|
|
struct tty_buffer {
|
|
union {
|
|
struct tty_buffer *next;
|
|
struct llist_node free;
|
|
};
|
|
int used;
|
|
int size;
|
|
int commit;
|
|
int lookahead;
|
|
int read;
|
|
bool flags;
|
|
unsigned long data[0];
|
|
};
|
|
|
|
struct tty_bufhead {
|
|
struct tty_buffer *head;
|
|
struct work_struct work;
|
|
struct mutex lock;
|
|
atomic_t priority;
|
|
struct tty_buffer sentinel;
|
|
struct llist_head free;
|
|
atomic_t mem_used;
|
|
int mem_limit;
|
|
struct tty_buffer *tail;
|
|
};
|
|
|
|
struct tty_port_operations;
|
|
|
|
struct tty_port_client_operations;
|
|
|
|
struct tty_port {
|
|
struct tty_bufhead buf;
|
|
struct tty_struct *tty;
|
|
struct tty_struct *itty;
|
|
const struct tty_port_operations *ops;
|
|
const struct tty_port_client_operations *client_ops;
|
|
spinlock_t lock;
|
|
int blocked_open;
|
|
int count;
|
|
wait_queue_head_t open_wait;
|
|
wait_queue_head_t delta_msr_wait;
|
|
unsigned long flags;
|
|
unsigned long iflags;
|
|
unsigned char console: 1;
|
|
struct mutex mutex;
|
|
struct mutex buf_mutex;
|
|
unsigned char *xmit_buf;
|
|
struct {
|
|
union {
|
|
struct __kfifo kfifo;
|
|
unsigned char *type;
|
|
const unsigned char *const_type;
|
|
char (*rectype)[0];
|
|
unsigned char *ptr;
|
|
const unsigned char *ptr_const;
|
|
};
|
|
unsigned char buf[0];
|
|
} xmit_fifo;
|
|
unsigned int close_delay;
|
|
unsigned int closing_wait;
|
|
int drain_delay;
|
|
struct kref kref;
|
|
void *client_data;
|
|
};
|
|
|
|
struct tty_port_operations {
|
|
bool (*carrier_raised)(struct tty_port *);
|
|
void (*dtr_rts)(struct tty_port *, bool);
|
|
void (*shutdown)(struct tty_port *);
|
|
int (*activate)(struct tty_port *, struct tty_struct *);
|
|
void (*destruct)(struct tty_port *);
|
|
};
|
|
|
|
struct tty_port_client_operations {
|
|
int (*receive_buf)(struct tty_port *, const unsigned char *, const unsigned char *, size_t);
|
|
void (*lookahead_buf)(struct tty_port *, const unsigned char *, const unsigned char *, unsigned int);
|
|
void (*write_wakeup)(struct tty_port *);
|
|
};
|
|
|
|
struct serial_icounter_struct;
|
|
|
|
struct serial_struct;
|
|
|
|
struct tty_operations {
|
|
struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int);
|
|
int (*install)(struct tty_driver *, struct tty_struct *);
|
|
void (*remove)(struct tty_driver *, struct tty_struct *);
|
|
int (*open)(struct tty_struct *, struct file *);
|
|
void (*close)(struct tty_struct *, struct file *);
|
|
void (*shutdown)(struct tty_struct *);
|
|
void (*cleanup)(struct tty_struct *);
|
|
int (*write)(struct tty_struct *, const unsigned char *, int);
|
|
int (*put_char)(struct tty_struct *, unsigned char);
|
|
void (*flush_chars)(struct tty_struct *);
|
|
unsigned int (*write_room)(struct tty_struct *);
|
|
unsigned int (*chars_in_buffer)(struct tty_struct *);
|
|
int (*ioctl)(struct tty_struct *, unsigned int, unsigned long);
|
|
long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long);
|
|
void (*set_termios)(struct tty_struct *, const struct ktermios *);
|
|
void (*throttle)(struct tty_struct *);
|
|
void (*unthrottle)(struct tty_struct *);
|
|
void (*stop)(struct tty_struct *);
|
|
void (*start)(struct tty_struct *);
|
|
void (*hangup)(struct tty_struct *);
|
|
int (*break_ctl)(struct tty_struct *, int);
|
|
void (*flush_buffer)(struct tty_struct *);
|
|
void (*set_ldisc)(struct tty_struct *);
|
|
void (*wait_until_sent)(struct tty_struct *, int);
|
|
void (*send_xchar)(struct tty_struct *, char);
|
|
int (*tiocmget)(struct tty_struct *);
|
|
int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int);
|
|
int (*resize)(struct tty_struct *, struct winsize *);
|
|
int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *);
|
|
int (*get_serial)(struct tty_struct *, struct serial_struct *);
|
|
int (*set_serial)(struct tty_struct *, struct serial_struct *);
|
|
void (*show_fdinfo)(struct tty_struct *, struct seq_file *);
|
|
int (*proc_show)(struct seq_file *, void *);
|
|
};
|
|
|
|
struct tty_ldisc_ops;
|
|
|
|
struct tty_ldisc {
|
|
struct tty_ldisc_ops *ops;
|
|
struct tty_struct *tty;
|
|
};
|
|
|
|
struct tty_ldisc_ops {
|
|
char *name;
|
|
int num;
|
|
int (*open)(struct tty_struct *);
|
|
void (*close)(struct tty_struct *);
|
|
void (*flush_buffer)(struct tty_struct *);
|
|
ssize_t (*read)(struct tty_struct *, struct file *, unsigned char *, size_t, void **, unsigned long);
|
|
ssize_t (*write)(struct tty_struct *, struct file *, const unsigned char *, size_t);
|
|
int (*ioctl)(struct tty_struct *, unsigned int, unsigned long);
|
|
int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long);
|
|
void (*set_termios)(struct tty_struct *, const struct ktermios *);
|
|
__poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *);
|
|
void (*hangup)(struct tty_struct *);
|
|
void (*receive_buf)(struct tty_struct *, const unsigned char *, const char *, int);
|
|
void (*write_wakeup)(struct tty_struct *);
|
|
void (*dcd_change)(struct tty_struct *, bool);
|
|
int (*receive_buf2)(struct tty_struct *, const unsigned char *, const char *, int);
|
|
void (*lookahead_buf)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct blk_plug {
|
|
struct request *mq_list;
|
|
struct request *cached_rq;
|
|
unsigned short nr_ios;
|
|
unsigned short rq_count;
|
|
bool multiple_queues;
|
|
bool has_elevator;
|
|
bool nowait;
|
|
struct list_head cb_list;
|
|
};
|
|
|
|
struct dqstats {
|
|
unsigned long stat[8];
|
|
struct percpu_counter counter[8];
|
|
};
|
|
|
|
struct quota_module_name {
|
|
int qm_fmt_id;
|
|
char *qm_mod_name;
|
|
};
|
|
|
|
enum {
|
|
_DQUOT_USAGE_ENABLED = 0,
|
|
_DQUOT_LIMITS_ENABLED = 1,
|
|
_DQUOT_SUSPENDED = 2,
|
|
_DQUOT_STATE_FLAGS = 3,
|
|
};
|
|
|
|
enum {
|
|
DQF_INFO_DIRTY_B = 17,
|
|
};
|
|
|
|
enum {
|
|
DQST_LOOKUPS = 0,
|
|
DQST_DROPS = 1,
|
|
DQST_READS = 2,
|
|
DQST_WRITES = 3,
|
|
DQST_CACHE_HITS = 4,
|
|
DQST_ALLOC_DQUOTS = 5,
|
|
DQST_FREE_DQUOTS = 6,
|
|
DQST_SYNCS = 7,
|
|
_DQST_DQSTAT_LAST = 8,
|
|
};
|
|
|
|
enum {
|
|
DQF_ROOT_SQUASH_B = 0,
|
|
DQF_SYS_FILE_B = 16,
|
|
DQF_PRIVATE = 17,
|
|
};
|
|
|
|
enum {
|
|
QIF_BLIMITS_B = 0,
|
|
QIF_SPACE_B = 1,
|
|
QIF_ILIMITS_B = 2,
|
|
QIF_INODES_B = 3,
|
|
QIF_BTIME_B = 4,
|
|
QIF_ITIME_B = 5,
|
|
};
|
|
|
|
typedef __kernel_uid32_t qid_t;
|
|
|
|
struct dquot_warn {
|
|
struct super_block *w_sb;
|
|
struct kqid w_dq_id;
|
|
short w_type;
|
|
};
|
|
|
|
struct va_format {
|
|
const char *fmt;
|
|
va_list *va;
|
|
};
|
|
|
|
enum netfs_read_from_hole {
|
|
NETFS_READ_HOLE_IGNORE = 0,
|
|
NETFS_READ_HOLE_CLEAR = 1,
|
|
NETFS_READ_HOLE_FAIL = 2,
|
|
};
|
|
|
|
enum netfs_io_source {
|
|
NETFS_FILL_WITH_ZEROES = 0,
|
|
NETFS_DOWNLOAD_FROM_SERVER = 1,
|
|
NETFS_READ_FROM_CACHE = 2,
|
|
NETFS_INVALID_READ = 3,
|
|
};
|
|
|
|
enum netfs_io_origin {
|
|
NETFS_READAHEAD = 0,
|
|
NETFS_READPAGE = 1,
|
|
NETFS_READ_FOR_WRITE = 2,
|
|
};
|
|
|
|
enum netfs_rreq_ref_trace {
|
|
netfs_rreq_trace_get_hold = 0,
|
|
netfs_rreq_trace_get_subreq = 1,
|
|
netfs_rreq_trace_put_complete = 2,
|
|
netfs_rreq_trace_put_discard = 3,
|
|
netfs_rreq_trace_put_failed = 4,
|
|
netfs_rreq_trace_put_hold = 5,
|
|
netfs_rreq_trace_put_subreq = 6,
|
|
netfs_rreq_trace_put_zero_len = 7,
|
|
netfs_rreq_trace_new = 8,
|
|
};
|
|
|
|
enum netfs_sreq_ref_trace {
|
|
netfs_sreq_trace_get_copy_to_cache = 0,
|
|
netfs_sreq_trace_get_resubmit = 1,
|
|
netfs_sreq_trace_get_short_read = 2,
|
|
netfs_sreq_trace_new = 3,
|
|
netfs_sreq_trace_put_clear = 4,
|
|
netfs_sreq_trace_put_failed = 5,
|
|
netfs_sreq_trace_put_merged = 6,
|
|
netfs_sreq_trace_put_no_copy = 7,
|
|
netfs_sreq_trace_put_terminated = 8,
|
|
};
|
|
|
|
enum netfs_rreq_trace {
|
|
netfs_rreq_trace_assess = 0,
|
|
netfs_rreq_trace_copy = 1,
|
|
netfs_rreq_trace_done = 2,
|
|
netfs_rreq_trace_free = 3,
|
|
netfs_rreq_trace_resubmit = 4,
|
|
netfs_rreq_trace_unlock = 5,
|
|
netfs_rreq_trace_unmark = 6,
|
|
};
|
|
|
|
enum {
|
|
WORK_STRUCT_PENDING_BIT = 0LL,
|
|
WORK_STRUCT_INACTIVE_BIT = 1LL,
|
|
WORK_STRUCT_PWQ_BIT = 2LL,
|
|
WORK_STRUCT_LINKED_BIT = 3LL,
|
|
WORK_STRUCT_COLOR_SHIFT = 4LL,
|
|
WORK_STRUCT_COLOR_BITS = 4LL,
|
|
WORK_STRUCT_PENDING = 1LL,
|
|
WORK_STRUCT_INACTIVE = 2LL,
|
|
WORK_STRUCT_PWQ = 4LL,
|
|
WORK_STRUCT_LINKED = 8LL,
|
|
WORK_STRUCT_STATIC = 0LL,
|
|
WORK_NR_COLORS = 16LL,
|
|
WORK_CPU_UNBOUND = 64LL,
|
|
WORK_STRUCT_FLAG_BITS = 8LL,
|
|
WORK_OFFQ_FLAG_BASE = 4LL,
|
|
__WORK_OFFQ_CANCELING = 4LL,
|
|
WORK_OFFQ_CANCELING = 16LL,
|
|
WORK_OFFQ_FLAG_BITS = 1LL,
|
|
WORK_OFFQ_POOL_SHIFT = 5LL,
|
|
WORK_OFFQ_LEFT = 59LL,
|
|
WORK_OFFQ_POOL_BITS = 31LL,
|
|
WORK_OFFQ_POOL_NONE = 2147483647LL,
|
|
WORK_STRUCT_FLAG_MASK = 255LL,
|
|
WORK_STRUCT_WQ_DATA_MASK = -256LL,
|
|
WORK_STRUCT_NO_POOL = 68719476704LL,
|
|
WORK_BUSY_PENDING = 1LL,
|
|
WORK_BUSY_RUNNING = 2LL,
|
|
WORKER_DESC_LEN = 24LL,
|
|
};
|
|
|
|
enum netfs_sreq_trace {
|
|
netfs_sreq_trace_download_instead = 0,
|
|
netfs_sreq_trace_free = 1,
|
|
netfs_sreq_trace_prepare = 2,
|
|
netfs_sreq_trace_resubmit_short = 3,
|
|
netfs_sreq_trace_submit = 4,
|
|
netfs_sreq_trace_terminated = 5,
|
|
netfs_sreq_trace_write = 6,
|
|
netfs_sreq_trace_write_skip = 7,
|
|
netfs_sreq_trace_write_term = 8,
|
|
};
|
|
|
|
struct netfs_io_request;
|
|
|
|
struct netfs_io_subrequest {
|
|
struct netfs_io_request *rreq;
|
|
struct list_head rreq_link;
|
|
loff_t start;
|
|
size_t len;
|
|
size_t transferred;
|
|
refcount_t ref;
|
|
short error;
|
|
unsigned short debug_index;
|
|
enum netfs_io_source source;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct netfs_cache_ops;
|
|
|
|
struct netfs_cache_resources {
|
|
const struct netfs_cache_ops *ops;
|
|
void *cache_priv;
|
|
void *cache_priv2;
|
|
unsigned int debug_id;
|
|
unsigned int inval_counter;
|
|
};
|
|
|
|
struct netfs_request_ops;
|
|
|
|
struct netfs_io_request {
|
|
struct work_struct work;
|
|
struct inode *inode;
|
|
struct address_space *mapping;
|
|
struct netfs_cache_resources cache_resources;
|
|
struct list_head subrequests;
|
|
void *netfs_priv;
|
|
unsigned int debug_id;
|
|
atomic_t nr_outstanding;
|
|
atomic_t nr_copy_ops;
|
|
size_t submitted;
|
|
size_t len;
|
|
short error;
|
|
enum netfs_io_origin origin;
|
|
loff_t i_size;
|
|
loff_t start;
|
|
unsigned long no_unlock_folio;
|
|
refcount_t ref;
|
|
unsigned long flags;
|
|
const struct netfs_request_ops *netfs_ops;
|
|
};
|
|
|
|
typedef void (*netfs_io_terminated_t)(void *, ssize_t, bool);
|
|
|
|
struct netfs_cache_ops {
|
|
void (*end_operation)(struct netfs_cache_resources *);
|
|
int (*read)(struct netfs_cache_resources *, loff_t, struct iov_iter *, enum netfs_read_from_hole, netfs_io_terminated_t, void *);
|
|
int (*write)(struct netfs_cache_resources *, loff_t, struct iov_iter *, netfs_io_terminated_t, void *);
|
|
void (*expand_readahead)(struct netfs_cache_resources *, loff_t *, size_t *, loff_t);
|
|
enum netfs_io_source (*prepare_read)(struct netfs_io_subrequest *, loff_t);
|
|
int (*prepare_write)(struct netfs_cache_resources *, loff_t *, size_t *, loff_t, bool);
|
|
enum netfs_io_source (*prepare_ondemand_read)(struct netfs_cache_resources *, loff_t, size_t *, loff_t, unsigned long *, ino_t);
|
|
int (*query_occupancy)(struct netfs_cache_resources *, loff_t, size_t, size_t, loff_t *, size_t *);
|
|
};
|
|
|
|
struct netfs_request_ops {
|
|
int (*init_request)(struct netfs_io_request *, struct file *);
|
|
void (*free_request)(struct netfs_io_request *);
|
|
int (*begin_cache_operation)(struct netfs_io_request *);
|
|
void (*expand_readahead)(struct netfs_io_request *);
|
|
bool (*clamp_length)(struct netfs_io_subrequest *);
|
|
void (*issue_read)(struct netfs_io_subrequest *);
|
|
bool (*is_still_valid)(struct netfs_io_request *);
|
|
int (*check_write_begin)(struct file *, loff_t, unsigned int, struct folio **, void **);
|
|
void (*done)(struct netfs_io_request *);
|
|
};
|
|
|
|
struct netfs_inode {
|
|
struct inode inode;
|
|
const struct netfs_request_ops *ops;
|
|
loff_t remote_i_size;
|
|
};
|
|
|
|
enum bh_state_bits {
|
|
BH_Uptodate = 0,
|
|
BH_Dirty = 1,
|
|
BH_Lock = 2,
|
|
BH_Req = 3,
|
|
BH_Mapped = 4,
|
|
BH_New = 5,
|
|
BH_Async_Read = 6,
|
|
BH_Async_Write = 7,
|
|
BH_Delay = 8,
|
|
BH_Boundary = 9,
|
|
BH_Write_EIO = 10,
|
|
BH_Unwritten = 11,
|
|
BH_Quiet = 12,
|
|
BH_Meta = 13,
|
|
BH_Prio = 14,
|
|
BH_Defer_Completion = 15,
|
|
BH_PrivateStart = 16,
|
|
};
|
|
|
|
enum passtype {
|
|
PASS_SCAN = 0,
|
|
PASS_REVOKE = 1,
|
|
PASS_REPLAY = 2,
|
|
};
|
|
|
|
typedef unsigned int tid_t;
|
|
|
|
struct transaction_chp_stats_s {
|
|
unsigned long cs_chp_time;
|
|
__u32 cs_forced_to_close;
|
|
__u32 cs_written;
|
|
__u32 cs_dropped;
|
|
};
|
|
|
|
struct journal_s;
|
|
|
|
typedef struct journal_s journal_t;
|
|
|
|
struct journal_head;
|
|
|
|
struct transaction_s;
|
|
|
|
typedef struct transaction_s transaction_t;
|
|
|
|
struct transaction_s {
|
|
journal_t *t_journal;
|
|
tid_t t_tid;
|
|
enum {
|
|
T_RUNNING = 0,
|
|
T_LOCKED = 1,
|
|
T_SWITCH = 2,
|
|
T_FLUSH = 3,
|
|
T_COMMIT = 4,
|
|
T_COMMIT_DFLUSH = 5,
|
|
T_COMMIT_JFLUSH = 6,
|
|
T_COMMIT_CALLBACK = 7,
|
|
T_FINISHED = 8,
|
|
} t_state;
|
|
unsigned long t_log_start;
|
|
int t_nr_buffers;
|
|
struct journal_head *t_reserved_list;
|
|
struct journal_head *t_buffers;
|
|
struct journal_head *t_forget;
|
|
struct journal_head *t_checkpoint_list;
|
|
struct journal_head *t_checkpoint_io_list;
|
|
struct journal_head *t_shadow_list;
|
|
struct list_head t_inode_list;
|
|
spinlock_t t_handle_lock;
|
|
unsigned long t_max_wait;
|
|
unsigned long t_start;
|
|
unsigned long t_requested;
|
|
struct transaction_chp_stats_s t_chp_stats;
|
|
atomic_t t_updates;
|
|
atomic_t t_outstanding_credits;
|
|
atomic_t t_outstanding_revokes;
|
|
atomic_t t_handle_count;
|
|
transaction_t *t_cpnext;
|
|
transaction_t *t_cpprev;
|
|
unsigned long t_expires;
|
|
ktime_t t_start_time;
|
|
unsigned int t_synchronous_commit: 1;
|
|
int t_need_data_flush;
|
|
struct list_head t_private_list;
|
|
};
|
|
|
|
struct transaction_run_stats_s {
|
|
unsigned long rs_wait;
|
|
unsigned long rs_request_delay;
|
|
unsigned long rs_running;
|
|
unsigned long rs_locked;
|
|
unsigned long rs_flushing;
|
|
unsigned long rs_logging;
|
|
__u32 rs_handle_count;
|
|
__u32 rs_blocks;
|
|
__u32 rs_blocks_logged;
|
|
};
|
|
|
|
struct transaction_stats_s {
|
|
unsigned long ts_tid;
|
|
unsigned long ts_requested;
|
|
struct transaction_run_stats_s run;
|
|
};
|
|
|
|
struct buffer_head;
|
|
|
|
struct journal_superblock_s;
|
|
|
|
typedef struct journal_superblock_s journal_superblock_t;
|
|
|
|
struct jbd2_revoke_table_s;
|
|
|
|
struct jbd2_inode;
|
|
|
|
struct crypto_shash;
|
|
|
|
struct journal_s {
|
|
unsigned long j_flags;
|
|
unsigned long j_atomic_flags;
|
|
int j_errno;
|
|
struct mutex j_abort_mutex;
|
|
struct buffer_head *j_sb_buffer;
|
|
journal_superblock_t *j_superblock;
|
|
int j_format_version;
|
|
rwlock_t j_state_lock;
|
|
int j_barrier_count;
|
|
struct mutex j_barrier;
|
|
transaction_t *j_running_transaction;
|
|
transaction_t *j_committing_transaction;
|
|
transaction_t *j_checkpoint_transactions;
|
|
wait_queue_head_t j_wait_transaction_locked;
|
|
wait_queue_head_t j_wait_done_commit;
|
|
wait_queue_head_t j_wait_commit;
|
|
wait_queue_head_t j_wait_updates;
|
|
wait_queue_head_t j_wait_reserved;
|
|
wait_queue_head_t j_fc_wait;
|
|
struct mutex j_checkpoint_mutex;
|
|
struct buffer_head *j_chkpt_bhs[64];
|
|
struct shrinker j_shrinker;
|
|
struct percpu_counter j_checkpoint_jh_count;
|
|
transaction_t *j_shrink_transaction;
|
|
unsigned long j_head;
|
|
unsigned long j_tail;
|
|
unsigned long j_free;
|
|
unsigned long j_first;
|
|
unsigned long j_last;
|
|
unsigned long j_fc_first;
|
|
unsigned long j_fc_off;
|
|
unsigned long j_fc_last;
|
|
struct block_device *j_dev;
|
|
int j_blocksize;
|
|
unsigned long long j_blk_offset;
|
|
char j_devname[56];
|
|
struct block_device *j_fs_dev;
|
|
unsigned int j_total_len;
|
|
atomic_t j_reserved_credits;
|
|
spinlock_t j_list_lock;
|
|
struct inode *j_inode;
|
|
tid_t j_tail_sequence;
|
|
tid_t j_transaction_sequence;
|
|
tid_t j_commit_sequence;
|
|
tid_t j_commit_request;
|
|
__u8 j_uuid[16];
|
|
struct task_struct *j_task;
|
|
int j_max_transaction_buffers;
|
|
int j_revoke_records_per_block;
|
|
unsigned long j_commit_interval;
|
|
struct timer_list j_commit_timer;
|
|
spinlock_t j_revoke_lock;
|
|
struct jbd2_revoke_table_s *j_revoke;
|
|
struct jbd2_revoke_table_s *j_revoke_table[2];
|
|
struct buffer_head **j_wbuf;
|
|
struct buffer_head **j_fc_wbuf;
|
|
int j_wbufsize;
|
|
int j_fc_wbufsize;
|
|
pid_t j_last_sync_writer;
|
|
u64 j_average_commit_time;
|
|
u32 j_min_batch_time;
|
|
u32 j_max_batch_time;
|
|
void (*j_commit_callback)(journal_t *, transaction_t *);
|
|
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
|
|
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
|
|
spinlock_t j_history_lock;
|
|
struct proc_dir_entry *j_proc_entry;
|
|
struct transaction_stats_s j_stats;
|
|
unsigned int j_failed_commit;
|
|
void *j_private;
|
|
struct crypto_shash *j_chksum_driver;
|
|
__u32 j_csum_seed;
|
|
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
|
|
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
|
|
};
|
|
|
|
typedef void bh_end_io_t(struct buffer_head *, int);
|
|
|
|
struct buffer_head {
|
|
unsigned long b_state;
|
|
struct buffer_head *b_this_page;
|
|
union {
|
|
struct page *b_page;
|
|
struct folio *b_folio;
|
|
};
|
|
sector_t b_blocknr;
|
|
size_t b_size;
|
|
char *b_data;
|
|
struct block_device *b_bdev;
|
|
bh_end_io_t *b_end_io;
|
|
void *b_private;
|
|
struct list_head b_assoc_buffers;
|
|
struct address_space *b_assoc_map;
|
|
atomic_t b_count;
|
|
spinlock_t b_uptodate_lock;
|
|
};
|
|
|
|
struct fiemap_extent;
|
|
|
|
struct fiemap_extent_info {
|
|
unsigned int fi_flags;
|
|
unsigned int fi_extents_mapped;
|
|
unsigned int fi_extents_max;
|
|
struct fiemap_extent __attribute__((btf_type_tag("user"))) *fi_extents_start;
|
|
};
|
|
|
|
struct fiemap_extent {
|
|
__u64 fe_logical;
|
|
__u64 fe_physical;
|
|
__u64 fe_length;
|
|
__u64 fe_reserved64[2];
|
|
__u32 fe_flags;
|
|
__u32 fe_reserved[3];
|
|
};
|
|
|
|
struct journal_header_s {
|
|
__be32 h_magic;
|
|
__be32 h_blocktype;
|
|
__be32 h_sequence;
|
|
};
|
|
|
|
typedef struct journal_header_s journal_header_t;
|
|
|
|
struct journal_superblock_s {
|
|
journal_header_t s_header;
|
|
__be32 s_blocksize;
|
|
__be32 s_maxlen;
|
|
__be32 s_first;
|
|
__be32 s_sequence;
|
|
__be32 s_start;
|
|
__be32 s_errno;
|
|
__be32 s_feature_compat;
|
|
__be32 s_feature_incompat;
|
|
__be32 s_feature_ro_compat;
|
|
__u8 s_uuid[16];
|
|
__be32 s_nr_users;
|
|
__be32 s_dynsuper;
|
|
__be32 s_max_transaction;
|
|
__be32 s_max_trans_data;
|
|
__u8 s_checksum_type;
|
|
__u8 s_padding2[3];
|
|
__be32 s_num_fc_blks;
|
|
__u32 s_padding[41];
|
|
__be32 s_checksum;
|
|
__u8 s_users[768];
|
|
};
|
|
|
|
struct jbd2_inode {
|
|
transaction_t *i_transaction;
|
|
transaction_t *i_next_transaction;
|
|
struct list_head i_list;
|
|
struct inode *i_vfs_inode;
|
|
unsigned long i_flags;
|
|
loff_t i_dirty_start;
|
|
loff_t i_dirty_end;
|
|
};
|
|
|
|
struct crypto_alg;
|
|
|
|
struct crypto_tfm {
|
|
u32 crt_flags;
|
|
int node;
|
|
void (*exit)(struct crypto_tfm *);
|
|
struct crypto_alg *__crt_alg;
|
|
void *__crt_ctx[0];
|
|
};
|
|
|
|
struct crypto_shash {
|
|
unsigned int descsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct cipher_alg {
|
|
unsigned int cia_min_keysize;
|
|
unsigned int cia_max_keysize;
|
|
int (*cia_setkey)(struct crypto_tfm *, const u8 *, unsigned int);
|
|
void (*cia_encrypt)(struct crypto_tfm *, u8 *, const u8 *);
|
|
void (*cia_decrypt)(struct crypto_tfm *, u8 *, const u8 *);
|
|
};
|
|
|
|
struct compress_alg {
|
|
int (*coa_compress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
|
|
int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
|
|
};
|
|
|
|
struct crypto_type;
|
|
|
|
struct crypto_alg {
|
|
struct list_head cra_list;
|
|
struct list_head cra_users;
|
|
u32 cra_flags;
|
|
unsigned int cra_blocksize;
|
|
unsigned int cra_ctxsize;
|
|
unsigned int cra_alignmask;
|
|
int cra_priority;
|
|
refcount_t cra_refcnt;
|
|
char cra_name[128];
|
|
char cra_driver_name[128];
|
|
const struct crypto_type *cra_type;
|
|
union {
|
|
struct cipher_alg cipher;
|
|
struct compress_alg compress;
|
|
} cra_u;
|
|
int (*cra_init)(struct crypto_tfm *);
|
|
void (*cra_exit)(struct crypto_tfm *);
|
|
void (*cra_destroy)(struct crypto_alg *);
|
|
struct module *cra_module;
|
|
};
|
|
|
|
struct crypto_instance;
|
|
|
|
struct crypto_type {
|
|
unsigned int (*ctxsize)(struct crypto_alg *, u32, u32);
|
|
unsigned int (*extsize)(struct crypto_alg *);
|
|
int (*init)(struct crypto_tfm *, u32, u32);
|
|
int (*init_tfm)(struct crypto_tfm *);
|
|
void (*show)(struct seq_file *, struct crypto_alg *);
|
|
int (*report)(struct sk_buff *, struct crypto_alg *);
|
|
void (*free)(struct crypto_instance *);
|
|
unsigned int type;
|
|
unsigned int maskclear;
|
|
unsigned int maskset;
|
|
unsigned int tfmsize;
|
|
};
|
|
|
|
struct jbd2_buffer_trigger_type;
|
|
|
|
struct journal_head {
|
|
struct buffer_head *b_bh;
|
|
spinlock_t b_state_lock;
|
|
int b_jcount;
|
|
unsigned int b_jlist;
|
|
unsigned int b_modified;
|
|
char *b_frozen_data;
|
|
char *b_committed_data;
|
|
transaction_t *b_transaction;
|
|
transaction_t *b_next_transaction;
|
|
struct journal_head *b_tnext;
|
|
struct journal_head *b_tprev;
|
|
transaction_t *b_cp_transaction;
|
|
struct journal_head *b_cpnext;
|
|
struct journal_head *b_cpprev;
|
|
struct jbd2_buffer_trigger_type *b_triggers;
|
|
struct jbd2_buffer_trigger_type *b_frozen_triggers;
|
|
};
|
|
|
|
struct jbd2_buffer_trigger_type {
|
|
void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t);
|
|
void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *);
|
|
};
|
|
|
|
enum req_op {
|
|
REQ_OP_READ = 0,
|
|
REQ_OP_WRITE = 1,
|
|
REQ_OP_FLUSH = 2,
|
|
REQ_OP_DISCARD = 3,
|
|
REQ_OP_SECURE_ERASE = 5,
|
|
REQ_OP_WRITE_ZEROES = 9,
|
|
REQ_OP_ZONE_OPEN = 10,
|
|
REQ_OP_ZONE_CLOSE = 11,
|
|
REQ_OP_ZONE_FINISH = 12,
|
|
REQ_OP_ZONE_APPEND = 13,
|
|
REQ_OP_ZONE_RESET = 15,
|
|
REQ_OP_ZONE_RESET_ALL = 17,
|
|
REQ_OP_DRV_IN = 34,
|
|
REQ_OP_DRV_OUT = 35,
|
|
REQ_OP_LAST = 36,
|
|
};
|
|
|
|
enum req_flag_bits {
|
|
__REQ_FAILFAST_DEV = 8,
|
|
__REQ_FAILFAST_TRANSPORT = 9,
|
|
__REQ_FAILFAST_DRIVER = 10,
|
|
__REQ_SYNC = 11,
|
|
__REQ_META = 12,
|
|
__REQ_PRIO = 13,
|
|
__REQ_NOMERGE = 14,
|
|
__REQ_IDLE = 15,
|
|
__REQ_INTEGRITY = 16,
|
|
__REQ_FUA = 17,
|
|
__REQ_PREFLUSH = 18,
|
|
__REQ_RAHEAD = 19,
|
|
__REQ_BACKGROUND = 20,
|
|
__REQ_NOWAIT = 21,
|
|
__REQ_CGROUP_PUNT = 22,
|
|
__REQ_POLLED = 23,
|
|
__REQ_ALLOC_CACHE = 24,
|
|
__REQ_SWAP = 25,
|
|
__REQ_DRV = 26,
|
|
__REQ_NOUNMAP = 27,
|
|
__REQ_NR_BITS = 28,
|
|
};
|
|
|
|
enum bio_post_read_step {
|
|
STEP_INITIAL = 0,
|
|
STEP_DECRYPT = 1,
|
|
STEP_VERITY = 2,
|
|
STEP_MAX = 3,
|
|
};
|
|
|
|
struct bio_post_read_ctx {
|
|
struct bio *bio;
|
|
struct work_struct work;
|
|
unsigned int cur_step;
|
|
unsigned int enabled_steps;
|
|
};
|
|
|
|
struct jbd2_journal_handle;
|
|
|
|
typedef struct jbd2_journal_handle handle_t;
|
|
|
|
struct jbd2_journal_handle {
|
|
union {
|
|
transaction_t *h_transaction;
|
|
journal_t *h_journal;
|
|
};
|
|
handle_t *h_rsv_handle;
|
|
int h_total_credits;
|
|
int h_revoke_credits;
|
|
int h_revoke_credits_requested;
|
|
int h_ref;
|
|
int h_err;
|
|
unsigned int h_sync: 1;
|
|
unsigned int h_jdata: 1;
|
|
unsigned int h_reserved: 1;
|
|
unsigned int h_aborted: 1;
|
|
unsigned int h_type: 8;
|
|
unsigned int h_line_no: 16;
|
|
unsigned long h_start_jiffies;
|
|
unsigned int h_requested_credits;
|
|
unsigned int saved_alloc_context;
|
|
};
|
|
|
|
typedef unsigned long long ext4_fsblk_t;
|
|
|
|
typedef __u32 ext4_lblk_t;
|
|
|
|
struct ext4_map_blocks {
|
|
ext4_fsblk_t m_pblk;
|
|
ext4_lblk_t m_lblk;
|
|
unsigned int m_len;
|
|
unsigned int m_flags;
|
|
};
|
|
|
|
typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int);
|
|
|
|
struct bvec_iter_all {
|
|
struct bio_vec bv;
|
|
int idx;
|
|
unsigned int done;
|
|
};
|
|
|
|
struct fat_entry;
|
|
|
|
struct fatent_operations {
|
|
void (*ent_blocknr)(struct super_block *, int, int *, sector_t *);
|
|
void (*ent_set_ptr)(struct fat_entry *, int);
|
|
int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t);
|
|
int (*ent_get)(struct fat_entry *);
|
|
void (*ent_put)(struct fat_entry *, int);
|
|
int (*ent_next)(struct fat_entry *);
|
|
};
|
|
|
|
typedef __u16 __le16;
|
|
|
|
typedef __u32 __le32;
|
|
|
|
struct fat_entry {
|
|
int entry;
|
|
union {
|
|
u8 *ent12_p[2];
|
|
__le16 *ent16_p;
|
|
__le32 *ent32_p;
|
|
} u;
|
|
int nr_bhs;
|
|
struct buffer_head *bhs[2];
|
|
struct inode *fat_inode;
|
|
};
|
|
|
|
typedef unsigned long long llu;
|
|
|
|
struct fat_mount_options {
|
|
kuid_t fs_uid;
|
|
kgid_t fs_gid;
|
|
unsigned short fs_fmask;
|
|
unsigned short fs_dmask;
|
|
unsigned short codepage;
|
|
int time_offset;
|
|
char *iocharset;
|
|
unsigned short shortname;
|
|
unsigned char name_check;
|
|
unsigned char errors;
|
|
unsigned char nfs;
|
|
unsigned short allow_utime;
|
|
unsigned int quiet: 1;
|
|
unsigned int showexec: 1;
|
|
unsigned int sys_immutable: 1;
|
|
unsigned int dotsOK: 1;
|
|
unsigned int isvfat: 1;
|
|
unsigned int utf8: 1;
|
|
unsigned int unicode_xlate: 1;
|
|
unsigned int numtail: 1;
|
|
unsigned int flush: 1;
|
|
unsigned int nocase: 1;
|
|
unsigned int usefree: 1;
|
|
unsigned int tz_set: 1;
|
|
unsigned int rodir: 1;
|
|
unsigned int discard: 1;
|
|
unsigned int dos1xfloppy: 1;
|
|
};
|
|
|
|
struct nls_table;
|
|
|
|
struct msdos_sb_info {
|
|
unsigned short sec_per_clus;
|
|
unsigned short cluster_bits;
|
|
unsigned int cluster_size;
|
|
unsigned char fats;
|
|
unsigned char fat_bits;
|
|
unsigned short fat_start;
|
|
unsigned long fat_length;
|
|
unsigned long dir_start;
|
|
unsigned short dir_entries;
|
|
unsigned long data_start;
|
|
unsigned long max_cluster;
|
|
unsigned long root_cluster;
|
|
unsigned long fsinfo_sector;
|
|
struct mutex fat_lock;
|
|
struct mutex nfs_build_inode_lock;
|
|
struct mutex s_lock;
|
|
unsigned int prev_free;
|
|
unsigned int free_clusters;
|
|
unsigned int free_clus_valid;
|
|
struct fat_mount_options options;
|
|
struct nls_table *nls_disk;
|
|
struct nls_table *nls_io;
|
|
const void *dir_ops;
|
|
int dir_per_block;
|
|
int dir_per_block_bits;
|
|
unsigned int vol_id;
|
|
int fatent_shift;
|
|
const struct fatent_operations *fatent_ops;
|
|
struct inode *fat_inode;
|
|
struct inode *fsinfo_inode;
|
|
struct ratelimit_state ratelimit;
|
|
spinlock_t inode_hash_lock;
|
|
struct hlist_head inode_hashtable[256];
|
|
spinlock_t dir_hash_lock;
|
|
struct hlist_head dir_hashtable[256];
|
|
unsigned int dirty;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef u16 wchar_t;
|
|
|
|
struct nls_table {
|
|
const char *charset;
|
|
const char *alias;
|
|
int (*uni2char)(wchar_t, unsigned char *, int);
|
|
int (*char2uni)(const unsigned char *, int, wchar_t *);
|
|
const unsigned char *charset2lower;
|
|
const unsigned char *charset2upper;
|
|
struct module *owner;
|
|
struct nls_table *next;
|
|
};
|
|
|
|
struct fatent_ra {
|
|
sector_t cur;
|
|
sector_t limit;
|
|
unsigned int ra_blocks;
|
|
sector_t ra_advance;
|
|
sector_t ra_next;
|
|
sector_t ra_limit;
|
|
};
|
|
|
|
struct fstrim_range {
|
|
__u64 start;
|
|
__u64 len;
|
|
__u64 minlen;
|
|
};
|
|
|
|
typedef u32 rpc_authflavor_t;
|
|
|
|
struct nlmclnt_operations;
|
|
|
|
struct nfs_server;
|
|
|
|
struct nfs_fh;
|
|
|
|
struct nfs_fsinfo;
|
|
|
|
struct nfs_fattr;
|
|
|
|
struct nfs_access_entry;
|
|
|
|
struct rpc_message;
|
|
|
|
struct rpc_task;
|
|
|
|
struct nfs_unlinkdata;
|
|
|
|
struct nfs_renamedata;
|
|
|
|
struct nfs_readdir_arg;
|
|
|
|
struct nfs_readdir_res;
|
|
|
|
struct nfs_fsstat;
|
|
|
|
struct nfs_pathconf;
|
|
|
|
struct xdr_stream;
|
|
|
|
struct nfs_entry;
|
|
|
|
struct nfs_pgio_header;
|
|
|
|
struct rpc_clnt;
|
|
|
|
struct nfs_commit_data;
|
|
|
|
struct nfs_open_context;
|
|
|
|
struct nfs_client;
|
|
|
|
struct nfs_client_initdata;
|
|
|
|
struct nfs_rpc_ops {
|
|
u32 version;
|
|
const struct dentry_operations *dentry_ops;
|
|
const struct inode_operations *dir_inode_ops;
|
|
const struct inode_operations *file_inode_ops;
|
|
const struct file_operations *file_ops;
|
|
const struct nlmclnt_operations *nlmclnt_ops;
|
|
int (*getroot)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
|
|
int (*submount)(struct fs_context *, struct nfs_server *);
|
|
int (*try_get_tree)(struct fs_context *);
|
|
int (*getattr)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, struct inode *);
|
|
int (*setattr)(struct dentry *, struct nfs_fattr *, struct iattr *);
|
|
int (*lookup)(struct inode *, struct dentry *, struct nfs_fh *, struct nfs_fattr *);
|
|
int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *);
|
|
int (*access)(struct inode *, struct nfs_access_entry *, const struct cred *);
|
|
int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int);
|
|
int (*create)(struct inode *, struct dentry *, struct iattr *, int);
|
|
int (*remove)(struct inode *, struct dentry *);
|
|
void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *);
|
|
void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *);
|
|
int (*unlink_done)(struct rpc_task *, struct inode *);
|
|
void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *);
|
|
void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *);
|
|
int (*rename_done)(struct rpc_task *, struct inode *, struct inode *);
|
|
int (*link)(struct inode *, struct inode *, const struct qstr *);
|
|
int (*symlink)(struct inode *, struct dentry *, struct page *, unsigned int, struct iattr *);
|
|
int (*mkdir)(struct inode *, struct dentry *, struct iattr *);
|
|
int (*rmdir)(struct inode *, const struct qstr *);
|
|
int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *);
|
|
int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t);
|
|
int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *);
|
|
int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
|
|
int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *);
|
|
int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);
|
|
int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool);
|
|
int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *);
|
|
void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *);
|
|
int (*read_done)(struct rpc_task *, struct nfs_pgio_header *);
|
|
void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **);
|
|
int (*write_done)(struct rpc_task *, struct nfs_pgio_header *);
|
|
void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **);
|
|
void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *);
|
|
int (*commit_done)(struct rpc_task *, struct nfs_commit_data *);
|
|
int (*lock)(struct file *, int, struct file_lock *);
|
|
int (*lock_check_bounds)(const struct file_lock *);
|
|
void (*clear_acl_cache)(struct inode *);
|
|
void (*close_context)(struct nfs_open_context *, int);
|
|
struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *);
|
|
int (*have_delegation)(struct inode *, fmode_t);
|
|
struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *);
|
|
struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *);
|
|
void (*free_client)(struct nfs_client *);
|
|
struct nfs_server * (*create_server)(struct fs_context *);
|
|
struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t);
|
|
int (*discover_trunking)(struct nfs_server *, struct nfs_fh *);
|
|
void (*enable_swap)(struct inode *);
|
|
void (*disable_swap)(struct inode *);
|
|
};
|
|
|
|
typedef __u64 __addrpair;
|
|
|
|
typedef __u32 __portpair;
|
|
|
|
struct hlist_nulls_node {
|
|
struct hlist_nulls_node *next;
|
|
struct hlist_nulls_node **pprev;
|
|
};
|
|
|
|
struct proto;
|
|
|
|
struct sock_common {
|
|
union {
|
|
__addrpair skc_addrpair;
|
|
struct {
|
|
__be32 skc_daddr;
|
|
__be32 skc_rcv_saddr;
|
|
};
|
|
};
|
|
union {
|
|
unsigned int skc_hash;
|
|
__u16 skc_u16hashes[2];
|
|
};
|
|
union {
|
|
__portpair skc_portpair;
|
|
struct {
|
|
__be16 skc_dport;
|
|
__u16 skc_num;
|
|
};
|
|
};
|
|
unsigned short skc_family;
|
|
volatile unsigned char skc_state;
|
|
unsigned char skc_reuse: 4;
|
|
unsigned char skc_reuseport: 1;
|
|
unsigned char skc_ipv6only: 1;
|
|
unsigned char skc_net_refcnt: 1;
|
|
int skc_bound_dev_if;
|
|
union {
|
|
struct hlist_node skc_bind_node;
|
|
struct hlist_node skc_portaddr_node;
|
|
};
|
|
struct proto *skc_prot;
|
|
possible_net_t skc_net;
|
|
struct in6_addr skc_v6_daddr;
|
|
struct in6_addr skc_v6_rcv_saddr;
|
|
atomic64_t skc_cookie;
|
|
union {
|
|
unsigned long skc_flags;
|
|
struct sock *skc_listener;
|
|
struct inet_timewait_death_row *skc_tw_dr;
|
|
};
|
|
int skc_dontcopy_begin[0];
|
|
union {
|
|
struct hlist_node skc_node;
|
|
struct hlist_nulls_node skc_nulls_node;
|
|
};
|
|
unsigned short skc_tx_queue_mapping;
|
|
unsigned short skc_rx_queue_mapping;
|
|
union {
|
|
int skc_incoming_cpu;
|
|
u32 skc_rcv_wnd;
|
|
u32 skc_tw_rcv_nxt;
|
|
};
|
|
refcount_t skc_refcnt;
|
|
int skc_dontcopy_end[0];
|
|
union {
|
|
u32 skc_rxhash;
|
|
u32 skc_window_clamp;
|
|
u32 skc_tw_snd_nxt;
|
|
};
|
|
};
|
|
|
|
typedef struct {
|
|
spinlock_t slock;
|
|
int owned;
|
|
wait_queue_head_t wq;
|
|
} socket_lock_t;
|
|
|
|
struct sock_cgroup_data {
|
|
struct cgroup *cgroup;
|
|
u32 classid;
|
|
u16 prioidx;
|
|
};
|
|
|
|
typedef struct {} netns_tracker;
|
|
|
|
struct sk_filter;
|
|
|
|
struct socket_wq;
|
|
|
|
struct xfrm_policy;
|
|
|
|
struct socket;
|
|
|
|
struct sock_reuseport;
|
|
|
|
struct sock {
|
|
struct sock_common __sk_common;
|
|
struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_rx_dst;
|
|
int sk_rx_dst_ifindex;
|
|
u32 sk_rx_dst_cookie;
|
|
socket_lock_t sk_lock;
|
|
atomic_t sk_drops;
|
|
int sk_rcvlowat;
|
|
struct sk_buff_head sk_error_queue;
|
|
struct sk_buff_head sk_receive_queue;
|
|
struct {
|
|
atomic_t rmem_alloc;
|
|
int len;
|
|
struct sk_buff *head;
|
|
struct sk_buff *tail;
|
|
} sk_backlog;
|
|
int sk_forward_alloc;
|
|
u32 sk_reserved_mem;
|
|
unsigned int sk_ll_usec;
|
|
unsigned int sk_napi_id;
|
|
int sk_rcvbuf;
|
|
struct sk_filter __attribute__((btf_type_tag("rcu"))) *sk_filter;
|
|
union {
|
|
struct socket_wq __attribute__((btf_type_tag("rcu"))) *sk_wq;
|
|
struct socket_wq *sk_wq_raw;
|
|
};
|
|
struct xfrm_policy __attribute__((btf_type_tag("rcu"))) *sk_policy[2];
|
|
struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_dst_cache;
|
|
atomic_t sk_omem_alloc;
|
|
int sk_sndbuf;
|
|
int sk_wmem_queued;
|
|
refcount_t sk_wmem_alloc;
|
|
unsigned long sk_tsq_flags;
|
|
union {
|
|
struct sk_buff *sk_send_head;
|
|
struct rb_root tcp_rtx_queue;
|
|
};
|
|
struct sk_buff_head sk_write_queue;
|
|
__s32 sk_peek_off;
|
|
int sk_write_pending;
|
|
__u32 sk_dst_pending_confirm;
|
|
u32 sk_pacing_status;
|
|
long sk_sndtimeo;
|
|
struct timer_list sk_timer;
|
|
__u32 sk_priority;
|
|
__u32 sk_mark;
|
|
unsigned long sk_pacing_rate;
|
|
unsigned long sk_max_pacing_rate;
|
|
struct page_frag sk_frag;
|
|
netdev_features_t sk_route_caps;
|
|
int sk_gso_type;
|
|
unsigned int sk_gso_max_size;
|
|
gfp_t sk_allocation;
|
|
__u32 sk_txhash;
|
|
u8 sk_gso_disabled: 1;
|
|
u8 sk_kern_sock: 1;
|
|
u8 sk_no_check_tx: 1;
|
|
u8 sk_no_check_rx: 1;
|
|
u8 sk_userlocks: 4;
|
|
u8 sk_pacing_shift;
|
|
u16 sk_type;
|
|
u16 sk_protocol;
|
|
u16 sk_gso_max_segs;
|
|
unsigned long sk_lingertime;
|
|
struct proto *sk_prot_creator;
|
|
rwlock_t sk_callback_lock;
|
|
int sk_err;
|
|
int sk_err_soft;
|
|
u32 sk_ack_backlog;
|
|
u32 sk_max_ack_backlog;
|
|
kuid_t sk_uid;
|
|
u8 sk_txrehash;
|
|
u8 sk_prefer_busy_poll;
|
|
u16 sk_busy_poll_budget;
|
|
spinlock_t sk_peer_lock;
|
|
int sk_bind_phc;
|
|
struct pid *sk_peer_pid;
|
|
const struct cred *sk_peer_cred;
|
|
long sk_rcvtimeo;
|
|
ktime_t sk_stamp;
|
|
atomic_t sk_tskey;
|
|
atomic_t sk_zckey;
|
|
u32 sk_tsflags;
|
|
u8 sk_shutdown;
|
|
u8 sk_clockid;
|
|
u8 sk_txtime_deadline_mode: 1;
|
|
u8 sk_txtime_report_errors: 1;
|
|
u8 sk_txtime_unused: 6;
|
|
bool sk_use_task_frag;
|
|
struct socket *sk_socket;
|
|
void *sk_user_data;
|
|
void *sk_security;
|
|
struct sock_cgroup_data sk_cgrp_data;
|
|
struct mem_cgroup *sk_memcg;
|
|
void (*sk_state_change)(struct sock *);
|
|
void (*sk_data_ready)(struct sock *);
|
|
void (*sk_write_space)(struct sock *);
|
|
void (*sk_error_report)(struct sock *);
|
|
int (*sk_backlog_rcv)(struct sock *, struct sk_buff *);
|
|
void (*sk_destruct)(struct sock *);
|
|
struct sock_reuseport __attribute__((btf_type_tag("rcu"))) *sk_reuseport_cb;
|
|
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *sk_bpf_storage;
|
|
struct callback_head sk_rcu;
|
|
netns_tracker ns_tracker;
|
|
struct hlist_node sk_bind2_node;
|
|
};
|
|
|
|
struct smc_hashinfo;
|
|
|
|
typedef struct {
|
|
union {
|
|
void *kernel;
|
|
void __attribute__((btf_type_tag("user"))) *user;
|
|
};
|
|
bool is_kernel: 1;
|
|
} sockptr_t;
|
|
|
|
struct msghdr;
|
|
|
|
struct sk_psock;
|
|
|
|
struct request_sock_ops;
|
|
|
|
struct timewait_sock_ops;
|
|
|
|
struct raw_hashinfo;
|
|
|
|
struct proto {
|
|
void (*close)(struct sock *, long);
|
|
int (*pre_connect)(struct sock *, struct sockaddr *, int);
|
|
int (*connect)(struct sock *, struct sockaddr *, int);
|
|
int (*disconnect)(struct sock *, int);
|
|
struct sock * (*accept)(struct sock *, int, int *, bool);
|
|
int (*ioctl)(struct sock *, int, unsigned long);
|
|
int (*init)(struct sock *);
|
|
void (*destroy)(struct sock *);
|
|
void (*shutdown)(struct sock *, int);
|
|
int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
|
|
int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
|
|
void (*keepalive)(struct sock *, int);
|
|
int (*compat_ioctl)(struct sock *, unsigned int, unsigned long);
|
|
int (*sendmsg)(struct sock *, struct msghdr *, size_t);
|
|
int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *);
|
|
int (*sendpage)(struct sock *, struct page *, int, size_t, int);
|
|
int (*bind)(struct sock *, struct sockaddr *, int);
|
|
int (*bind_add)(struct sock *, struct sockaddr *, int);
|
|
int (*backlog_rcv)(struct sock *, struct sk_buff *);
|
|
bool (*bpf_bypass_getsockopt)(int, int);
|
|
void (*release_cb)(struct sock *);
|
|
int (*hash)(struct sock *);
|
|
void (*unhash)(struct sock *);
|
|
void (*rehash)(struct sock *);
|
|
int (*get_port)(struct sock *, unsigned short);
|
|
void (*put_port)(struct sock *);
|
|
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
|
|
unsigned int inuse_idx;
|
|
int (*forward_alloc_get)(const struct sock *);
|
|
bool (*stream_memory_free)(const struct sock *, int);
|
|
bool (*sock_is_readable)(struct sock *);
|
|
void (*enter_memory_pressure)(struct sock *);
|
|
void (*leave_memory_pressure)(struct sock *);
|
|
atomic_long_t *memory_allocated;
|
|
int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc;
|
|
struct percpu_counter *sockets_allocated;
|
|
unsigned long *memory_pressure;
|
|
long *sysctl_mem;
|
|
int *sysctl_wmem;
|
|
int *sysctl_rmem;
|
|
u32 sysctl_wmem_offset;
|
|
u32 sysctl_rmem_offset;
|
|
int max_header;
|
|
bool no_autobind;
|
|
struct kmem_cache *slab;
|
|
unsigned int obj_size;
|
|
slab_flags_t slab_flags;
|
|
unsigned int useroffset;
|
|
unsigned int usersize;
|
|
unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count;
|
|
struct request_sock_ops *rsk_prot;
|
|
struct timewait_sock_ops *twsk_prot;
|
|
union {
|
|
struct inet_hashinfo *hashinfo;
|
|
struct udp_table *udp_table;
|
|
struct raw_hashinfo *raw_hash;
|
|
struct smc_hashinfo *smc_hash;
|
|
} h;
|
|
struct module *owner;
|
|
char name[32];
|
|
struct list_head node;
|
|
int (*diag_destroy)(struct sock *, int);
|
|
};
|
|
|
|
struct ubuf_info;
|
|
|
|
struct msghdr {
|
|
void *msg_name;
|
|
int msg_namelen;
|
|
int msg_inq;
|
|
struct iov_iter msg_iter;
|
|
union {
|
|
void *msg_control;
|
|
void __attribute__((btf_type_tag("user"))) *msg_control_user;
|
|
};
|
|
bool msg_control_is_user: 1;
|
|
bool msg_get_inq: 1;
|
|
unsigned int msg_flags;
|
|
__kernel_size_t msg_controllen;
|
|
struct kiocb *msg_iocb;
|
|
struct ubuf_info *msg_ubuf;
|
|
int (*sg_from_iter)(struct sock *, struct sk_buff *, struct iov_iter *, size_t);
|
|
};
|
|
|
|
struct ubuf_info {
|
|
void (*callback)(struct sk_buff *, struct ubuf_info *, bool);
|
|
refcount_t refcnt;
|
|
u8 flags;
|
|
};
|
|
|
|
struct neigh_parms {
|
|
possible_net_t net;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct list_head list;
|
|
int (*neigh_setup)(struct neighbour *);
|
|
struct neigh_table *tbl;
|
|
void *sysctl_table;
|
|
int dead;
|
|
refcount_t refcnt;
|
|
struct callback_head callback_head;
|
|
int reachable_time;
|
|
u32 qlen;
|
|
int data[14];
|
|
unsigned long data_state[1];
|
|
};
|
|
|
|
struct pneigh_entry;
|
|
|
|
struct neigh_statistics;
|
|
|
|
struct neigh_hash_table;
|
|
|
|
struct neigh_table {
|
|
int family;
|
|
unsigned int entry_size;
|
|
unsigned int key_len;
|
|
__be16 protocol;
|
|
__u32 (*hash)(const void *, const struct net_device *, __u32 *);
|
|
bool (*key_eq)(const struct neighbour *, const void *);
|
|
int (*constructor)(struct neighbour *);
|
|
int (*pconstructor)(struct pneigh_entry *);
|
|
void (*pdestructor)(struct pneigh_entry *);
|
|
void (*proxy_redo)(struct sk_buff *);
|
|
int (*is_multicast)(const void *);
|
|
bool (*allow_add)(const struct net_device *, struct netlink_ext_ack *);
|
|
char *id;
|
|
struct neigh_parms parms;
|
|
struct list_head parms_list;
|
|
int gc_interval;
|
|
int gc_thresh1;
|
|
int gc_thresh2;
|
|
int gc_thresh3;
|
|
unsigned long last_flush;
|
|
struct delayed_work gc_work;
|
|
struct delayed_work managed_work;
|
|
struct timer_list proxy_timer;
|
|
struct sk_buff_head proxy_queue;
|
|
atomic_t entries;
|
|
atomic_t gc_entries;
|
|
struct list_head gc_list;
|
|
struct list_head managed_list;
|
|
rwlock_t lock;
|
|
unsigned long last_rand;
|
|
struct neigh_statistics __attribute__((btf_type_tag("percpu"))) *stats;
|
|
struct neigh_hash_table __attribute__((btf_type_tag("rcu"))) *nht;
|
|
struct pneigh_entry **phash_buckets;
|
|
};
|
|
|
|
struct pneigh_entry {
|
|
struct pneigh_entry *next;
|
|
possible_net_t net;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
u32 flags;
|
|
u8 protocol;
|
|
u8 key[0];
|
|
};
|
|
|
|
struct neigh_statistics {
|
|
unsigned long allocs;
|
|
unsigned long destroys;
|
|
unsigned long hash_grows;
|
|
unsigned long res_failed;
|
|
unsigned long lookups;
|
|
unsigned long hits;
|
|
unsigned long rcv_probes_mcast;
|
|
unsigned long rcv_probes_ucast;
|
|
unsigned long periodic_gc_runs;
|
|
unsigned long forced_gc_runs;
|
|
unsigned long unres_discards;
|
|
unsigned long table_fulls;
|
|
};
|
|
|
|
struct neigh_hash_table {
|
|
struct neighbour __attribute__((btf_type_tag("rcu"))) **hash_buckets;
|
|
unsigned int hash_shift;
|
|
__u32 hash_rnd[4];
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct neigh_ops {
|
|
int family;
|
|
void (*solicit)(struct neighbour *, struct sk_buff *);
|
|
void (*error_report)(struct neighbour *, struct sk_buff *);
|
|
int (*output)(struct neighbour *, struct sk_buff *);
|
|
int (*connected_output)(struct neighbour *, struct sk_buff *);
|
|
};
|
|
|
|
struct ip6_sf_list;
|
|
|
|
struct ifmcaddr6 {
|
|
struct in6_addr mca_addr;
|
|
struct inet6_dev *idev;
|
|
struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_sources;
|
|
struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_tomb;
|
|
unsigned int mca_sfmode;
|
|
unsigned char mca_crcount;
|
|
unsigned long mca_sfcount[2];
|
|
struct delayed_work mca_work;
|
|
unsigned int mca_flags;
|
|
int mca_users;
|
|
refcount_t mca_refcnt;
|
|
unsigned long mca_cstamp;
|
|
unsigned long mca_tstamp;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ip6_sf_list {
|
|
struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *sf_next;
|
|
struct in6_addr sf_addr;
|
|
unsigned long sf_count[2];
|
|
unsigned char sf_gsresp;
|
|
unsigned char sf_oldin;
|
|
unsigned char sf_crcount;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ifacaddr6 {
|
|
struct in6_addr aca_addr;
|
|
struct fib6_info *aca_rt;
|
|
struct ifacaddr6 *aca_next;
|
|
struct hlist_node aca_addr_lst;
|
|
int aca_users;
|
|
refcount_t aca_refcnt;
|
|
unsigned long aca_cstamp;
|
|
unsigned long aca_tstamp;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct icmpv6_mib_device {
|
|
atomic_long_t mibs[7];
|
|
};
|
|
|
|
struct icmpv6msg_mib_device {
|
|
atomic_long_t mibs[512];
|
|
};
|
|
|
|
struct request_sock;
|
|
|
|
struct request_sock_ops {
|
|
int family;
|
|
unsigned int obj_size;
|
|
struct kmem_cache *slab;
|
|
char *slab_name;
|
|
int (*rtx_syn_ack)(const struct sock *, struct request_sock *);
|
|
void (*send_ack)(const struct sock *, struct sk_buff *, struct request_sock *);
|
|
void (*send_reset)(const struct sock *, struct sk_buff *);
|
|
void (*destructor)(struct request_sock *);
|
|
void (*syn_ack_timeout)(const struct request_sock *);
|
|
};
|
|
|
|
struct saved_syn;
|
|
|
|
struct request_sock {
|
|
struct sock_common __req_common;
|
|
struct request_sock *dl_next;
|
|
u16 mss;
|
|
u8 num_retrans;
|
|
u8 syncookie: 1;
|
|
u8 num_timeout: 7;
|
|
u32 ts_recent;
|
|
struct timer_list rsk_timer;
|
|
const struct request_sock_ops *rsk_ops;
|
|
struct sock *sk;
|
|
struct saved_syn *saved_syn;
|
|
u32 secid;
|
|
u32 peer_secid;
|
|
u32 timeout;
|
|
};
|
|
|
|
struct saved_syn {
|
|
u32 mac_hdrlen;
|
|
u32 network_hdrlen;
|
|
u32 tcp_hdrlen;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct timewait_sock_ops {
|
|
struct kmem_cache *twsk_slab;
|
|
char *twsk_slab_name;
|
|
unsigned int twsk_obj_size;
|
|
int (*twsk_unique)(struct sock *, struct sock *, void *);
|
|
void (*twsk_destructor)(struct sock *);
|
|
};
|
|
|
|
struct sk_filter {
|
|
refcount_t refcnt;
|
|
struct callback_head rcu;
|
|
struct bpf_prog *prog;
|
|
};
|
|
|
|
struct socket_wq {
|
|
wait_queue_head_t wait;
|
|
struct fasync_struct *fasync_list;
|
|
unsigned long flags;
|
|
struct callback_head rcu;
|
|
long: 64;
|
|
};
|
|
|
|
struct xfrm_mark {
|
|
__u32 v;
|
|
__u32 m;
|
|
};
|
|
|
|
typedef union {
|
|
__be32 a4;
|
|
__be32 a6[4];
|
|
struct in6_addr in6;
|
|
} xfrm_address_t;
|
|
|
|
struct xfrm_selector {
|
|
xfrm_address_t daddr;
|
|
xfrm_address_t saddr;
|
|
__be16 dport;
|
|
__be16 dport_mask;
|
|
__be16 sport;
|
|
__be16 sport_mask;
|
|
__u16 family;
|
|
__u8 prefixlen_d;
|
|
__u8 prefixlen_s;
|
|
__u8 proto;
|
|
int ifindex;
|
|
__kernel_uid32_t user;
|
|
};
|
|
|
|
struct xfrm_lifetime_cfg {
|
|
__u64 soft_byte_limit;
|
|
__u64 hard_byte_limit;
|
|
__u64 soft_packet_limit;
|
|
__u64 hard_packet_limit;
|
|
__u64 soft_add_expires_seconds;
|
|
__u64 hard_add_expires_seconds;
|
|
__u64 soft_use_expires_seconds;
|
|
__u64 hard_use_expires_seconds;
|
|
};
|
|
|
|
struct xfrm_lifetime_cur {
|
|
__u64 bytes;
|
|
__u64 packets;
|
|
__u64 add_time;
|
|
__u64 use_time;
|
|
};
|
|
|
|
struct xfrm_policy_walk_entry {
|
|
struct list_head all;
|
|
u8 dead;
|
|
};
|
|
|
|
struct xfrm_policy_queue {
|
|
struct sk_buff_head hold_queue;
|
|
struct timer_list hold_timer;
|
|
unsigned long timeout;
|
|
};
|
|
|
|
struct xfrm_id {
|
|
xfrm_address_t daddr;
|
|
__be32 spi;
|
|
__u8 proto;
|
|
};
|
|
|
|
struct xfrm_tmpl {
|
|
struct xfrm_id id;
|
|
xfrm_address_t saddr;
|
|
unsigned short encap_family;
|
|
u32 reqid;
|
|
u8 mode;
|
|
u8 share;
|
|
u8 optional;
|
|
u8 allalgs;
|
|
u32 aalgos;
|
|
u32 ealgos;
|
|
u32 calgos;
|
|
};
|
|
|
|
struct xfrm_dev_offload {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct net_device *real_dev;
|
|
unsigned long offload_handle;
|
|
u8 dir: 2;
|
|
u8 type: 2;
|
|
};
|
|
|
|
struct xfrm_sec_ctx;
|
|
|
|
struct xfrm_policy {
|
|
possible_net_t xp_net;
|
|
struct hlist_node bydst;
|
|
struct hlist_node byidx;
|
|
rwlock_t lock;
|
|
refcount_t refcnt;
|
|
u32 pos;
|
|
struct timer_list timer;
|
|
atomic_t genid;
|
|
u32 priority;
|
|
u32 index;
|
|
u32 if_id;
|
|
struct xfrm_mark mark;
|
|
struct xfrm_selector selector;
|
|
struct xfrm_lifetime_cfg lft;
|
|
struct xfrm_lifetime_cur curlft;
|
|
struct xfrm_policy_walk_entry walk;
|
|
struct xfrm_policy_queue polq;
|
|
bool bydst_reinsert;
|
|
u8 type;
|
|
u8 action;
|
|
u8 flags;
|
|
u8 xfrm_nr;
|
|
u16 family;
|
|
struct xfrm_sec_ctx *security;
|
|
struct xfrm_tmpl xfrm_vec[6];
|
|
struct hlist_node bydst_inexact_list;
|
|
struct callback_head rcu;
|
|
struct xfrm_dev_offload xdo;
|
|
};
|
|
|
|
typedef enum {
|
|
SS_FREE = 0,
|
|
SS_UNCONNECTED = 1,
|
|
SS_CONNECTING = 2,
|
|
SS_CONNECTED = 3,
|
|
SS_DISCONNECTING = 4,
|
|
} socket_state;
|
|
|
|
struct proto_ops;
|
|
|
|
struct socket {
|
|
socket_state state;
|
|
short type;
|
|
unsigned long flags;
|
|
struct file *file;
|
|
struct sock *sk;
|
|
const struct proto_ops *ops;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct socket_wq wq;
|
|
};
|
|
|
|
typedef struct {
|
|
size_t written;
|
|
size_t count;
|
|
union {
|
|
char __attribute__((btf_type_tag("user"))) *buf;
|
|
void *data;
|
|
} arg;
|
|
int error;
|
|
} read_descriptor_t;
|
|
|
|
typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t);
|
|
|
|
typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *);
|
|
|
|
struct proto_ops {
|
|
int family;
|
|
struct module *owner;
|
|
int (*release)(struct socket *);
|
|
int (*bind)(struct socket *, struct sockaddr *, int);
|
|
int (*connect)(struct socket *, struct sockaddr *, int, int);
|
|
int (*socketpair)(struct socket *, struct socket *);
|
|
int (*accept)(struct socket *, struct socket *, int, bool);
|
|
int (*getname)(struct socket *, struct sockaddr *, int);
|
|
__poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *);
|
|
int (*ioctl)(struct socket *, unsigned int, unsigned long);
|
|
int (*compat_ioctl)(struct socket *, unsigned int, unsigned long);
|
|
int (*gettstamp)(struct socket *, void __attribute__((btf_type_tag("user"))) *, bool, bool);
|
|
int (*listen)(struct socket *, int);
|
|
int (*shutdown)(struct socket *, int);
|
|
int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int);
|
|
int (*getsockopt)(struct socket *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
|
|
void (*show_fdinfo)(struct seq_file *, struct socket *);
|
|
int (*sendmsg)(struct socket *, struct msghdr *, size_t);
|
|
int (*recvmsg)(struct socket *, struct msghdr *, size_t, int);
|
|
int (*mmap)(struct file *, struct socket *, struct vm_area_struct *);
|
|
ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
|
|
ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
|
|
int (*set_peek_off)(struct sock *, int);
|
|
int (*peek_len)(struct socket *);
|
|
int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t);
|
|
int (*read_skb)(struct sock *, skb_read_actor_t);
|
|
int (*sendpage_locked)(struct sock *, struct page *, int, size_t, int);
|
|
int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t);
|
|
int (*set_rcvlowat)(struct sock *, int);
|
|
};
|
|
|
|
struct new_utsname {
|
|
char sysname[65];
|
|
char nodename[65];
|
|
char release[65];
|
|
char version[65];
|
|
char machine[65];
|
|
char domainname[65];
|
|
};
|
|
|
|
struct uts_namespace {
|
|
struct new_utsname name;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
struct ns_common ns;
|
|
};
|
|
|
|
struct sock_reuseport {
|
|
struct callback_head rcu;
|
|
u16 max_socks;
|
|
u16 num_socks;
|
|
u16 num_closed_socks;
|
|
u16 incoming_cpu;
|
|
unsigned int synq_overflow_ts;
|
|
unsigned int reuseport_id;
|
|
unsigned int bind_inany: 1;
|
|
unsigned int has_conns: 1;
|
|
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *prog;
|
|
struct sock *socks[0];
|
|
};
|
|
|
|
struct fib_rule;
|
|
|
|
struct flowi;
|
|
|
|
struct fib_lookup_arg;
|
|
|
|
struct fib_rule_hdr;
|
|
|
|
struct fib_rules_ops {
|
|
int family;
|
|
struct list_head list;
|
|
int rule_size;
|
|
int addr_size;
|
|
int unresolved_rules;
|
|
int nr_goto_rules;
|
|
unsigned int fib_rules_seq;
|
|
int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *);
|
|
bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *);
|
|
int (*match)(struct fib_rule *, struct flowi *, int);
|
|
int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *);
|
|
int (*delete)(struct fib_rule *);
|
|
int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **);
|
|
int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *);
|
|
size_t (*nlmsg_payload)(struct fib_rule *);
|
|
void (*flush_cache)(struct fib_rules_ops *);
|
|
int nlgroup;
|
|
struct list_head rules_list;
|
|
struct module *owner;
|
|
struct net *fro_net;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef __u64 __be64;
|
|
|
|
struct fib_kuid_range {
|
|
kuid_t start;
|
|
kuid_t end;
|
|
};
|
|
|
|
struct fib_rule_port_range {
|
|
__u16 start;
|
|
__u16 end;
|
|
};
|
|
|
|
struct fib_rule {
|
|
struct list_head list;
|
|
int iifindex;
|
|
int oifindex;
|
|
u32 mark;
|
|
u32 mark_mask;
|
|
u32 flags;
|
|
u32 table;
|
|
u8 action;
|
|
u8 l3mdev;
|
|
u8 proto;
|
|
u8 ip_proto;
|
|
u32 target;
|
|
__be64 tun_id;
|
|
struct fib_rule __attribute__((btf_type_tag("rcu"))) *ctarget;
|
|
struct net *fr_net;
|
|
refcount_t refcnt;
|
|
u32 pref;
|
|
int suppress_ifgroup;
|
|
int suppress_prefixlen;
|
|
char iifname[16];
|
|
char oifname[16];
|
|
struct fib_kuid_range uid_range;
|
|
struct fib_rule_port_range sport_range;
|
|
struct fib_rule_port_range dport_range;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct flowi_tunnel {
|
|
__be64 tun_id;
|
|
};
|
|
|
|
struct flowi_common {
|
|
int flowic_oif;
|
|
int flowic_iif;
|
|
int flowic_l3mdev;
|
|
__u32 flowic_mark;
|
|
__u8 flowic_tos;
|
|
__u8 flowic_scope;
|
|
__u8 flowic_proto;
|
|
__u8 flowic_flags;
|
|
__u32 flowic_secid;
|
|
kuid_t flowic_uid;
|
|
struct flowi_tunnel flowic_tun_key;
|
|
__u32 flowic_multipath_hash;
|
|
};
|
|
|
|
union flowi_uli {
|
|
struct {
|
|
__be16 dport;
|
|
__be16 sport;
|
|
} ports;
|
|
struct {
|
|
__u8 type;
|
|
__u8 code;
|
|
} icmpt;
|
|
__be32 gre_key;
|
|
struct {
|
|
__u8 type;
|
|
} mht;
|
|
};
|
|
|
|
struct flowi4 {
|
|
struct flowi_common __fl_common;
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
union flowi_uli uli;
|
|
};
|
|
|
|
struct flowi6 {
|
|
struct flowi_common __fl_common;
|
|
struct in6_addr daddr;
|
|
struct in6_addr saddr;
|
|
__be32 flowlabel;
|
|
union flowi_uli uli;
|
|
__u32 mp_hash;
|
|
};
|
|
|
|
struct flowi {
|
|
union {
|
|
struct flowi_common __fl_common;
|
|
struct flowi4 ip4;
|
|
struct flowi6 ip6;
|
|
} u;
|
|
};
|
|
|
|
struct fib_lookup_arg {
|
|
void *lookup_ptr;
|
|
const void *lookup_data;
|
|
void *result;
|
|
struct fib_rule *rule;
|
|
u32 table;
|
|
int flags;
|
|
};
|
|
|
|
struct fib_rule_hdr {
|
|
__u8 family;
|
|
__u8 dst_len;
|
|
__u8 src_len;
|
|
__u8 tos;
|
|
__u8 table;
|
|
__u8 res1;
|
|
__u8 res2;
|
|
__u8 action;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct fib_notifier_ops {
|
|
int family;
|
|
struct list_head list;
|
|
unsigned int (*fib_seq_read)(struct net *);
|
|
int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *);
|
|
struct module *owner;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct rpc_timer {
|
|
struct list_head list;
|
|
unsigned long expires;
|
|
struct delayed_work dwork;
|
|
};
|
|
|
|
struct rpc_wait_queue {
|
|
spinlock_t lock;
|
|
struct list_head tasks[4];
|
|
unsigned char maxpriority;
|
|
unsigned char priority;
|
|
unsigned char nr;
|
|
unsigned short qlen;
|
|
struct rpc_timer timer_list;
|
|
const char *name;
|
|
};
|
|
|
|
struct nfs_seqid_counter {
|
|
ktime_t create_time;
|
|
int owner_id;
|
|
int flags;
|
|
u32 counter;
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
struct rpc_wait_queue wait;
|
|
};
|
|
|
|
struct nfs4_stateid_struct {
|
|
union {
|
|
char data[16];
|
|
struct {
|
|
__be32 seqid;
|
|
char other[12];
|
|
};
|
|
};
|
|
enum {
|
|
NFS4_INVALID_STATEID_TYPE = 0,
|
|
NFS4_SPECIAL_STATEID_TYPE = 1,
|
|
NFS4_OPEN_STATEID_TYPE = 2,
|
|
NFS4_LOCK_STATEID_TYPE = 3,
|
|
NFS4_DELEGATION_STATEID_TYPE = 4,
|
|
NFS4_LAYOUT_STATEID_TYPE = 5,
|
|
NFS4_PNFS_DS_STATEID_TYPE = 6,
|
|
NFS4_REVOKED_STATEID_TYPE = 7,
|
|
} type;
|
|
};
|
|
|
|
typedef struct nfs4_stateid_struct nfs4_stateid;
|
|
|
|
struct nfs4_state;
|
|
|
|
struct nfs4_lock_state {
|
|
struct list_head ls_locks;
|
|
struct nfs4_state *ls_state;
|
|
unsigned long ls_flags;
|
|
struct nfs_seqid_counter ls_seqid;
|
|
nfs4_stateid ls_stateid;
|
|
refcount_t ls_count;
|
|
fl_owner_t ls_owner;
|
|
};
|
|
|
|
struct nfs4_state_owner;
|
|
|
|
struct nfs4_state {
|
|
struct list_head open_states;
|
|
struct list_head inode_states;
|
|
struct list_head lock_states;
|
|
struct nfs4_state_owner *owner;
|
|
struct inode *inode;
|
|
unsigned long flags;
|
|
spinlock_t state_lock;
|
|
seqlock_t seqlock;
|
|
nfs4_stateid stateid;
|
|
nfs4_stateid open_stateid;
|
|
unsigned int n_rdonly;
|
|
unsigned int n_wronly;
|
|
unsigned int n_rdwr;
|
|
fmode_t state;
|
|
refcount_t count;
|
|
wait_queue_head_t waitq;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct nfs4_state_owner {
|
|
struct nfs_server *so_server;
|
|
struct list_head so_lru;
|
|
unsigned long so_expires;
|
|
struct rb_node so_server_node;
|
|
const struct cred *so_cred;
|
|
spinlock_t so_lock;
|
|
atomic_t so_count;
|
|
unsigned long so_flags;
|
|
struct list_head so_states;
|
|
struct nfs_seqid_counter so_seqid;
|
|
seqcount_spinlock_t so_reclaim_seqcount;
|
|
struct mutex so_delegreturn_mutex;
|
|
};
|
|
|
|
struct nlm_host;
|
|
|
|
enum nfs4_change_attr_type {
|
|
NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0,
|
|
NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1,
|
|
NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2,
|
|
NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3,
|
|
NFS4_CHANGE_TYPE_IS_UNDEFINED = 4,
|
|
};
|
|
|
|
struct nfs_fsid {
|
|
uint64_t major;
|
|
uint64_t minor;
|
|
};
|
|
|
|
struct nfs_auth_info {
|
|
unsigned int flavor_len;
|
|
rpc_authflavor_t flavors[12];
|
|
};
|
|
|
|
struct pnfs_layoutdriver_type;
|
|
|
|
struct ida {
|
|
struct xarray xa;
|
|
};
|
|
|
|
struct __kernel_sockaddr_storage {
|
|
union {
|
|
struct {
|
|
__kernel_sa_family_t ss_family;
|
|
char __data[126];
|
|
};
|
|
void *__align;
|
|
};
|
|
};
|
|
|
|
struct nfs_iostats;
|
|
|
|
struct nfs_server {
|
|
struct nfs_client *nfs_client;
|
|
struct list_head client_link;
|
|
struct list_head master_link;
|
|
struct rpc_clnt *client;
|
|
struct rpc_clnt *client_acl;
|
|
struct nlm_host *nlm_host;
|
|
struct nfs_iostats __attribute__((btf_type_tag("percpu"))) *io_stats;
|
|
atomic_long_t writeback;
|
|
unsigned int write_congested;
|
|
unsigned int flags;
|
|
unsigned int fattr_valid;
|
|
unsigned int caps;
|
|
unsigned int rsize;
|
|
unsigned int rpages;
|
|
unsigned int wsize;
|
|
unsigned int wpages;
|
|
unsigned int wtmult;
|
|
unsigned int dtsize;
|
|
unsigned short port;
|
|
unsigned int bsize;
|
|
unsigned int acregmin;
|
|
unsigned int acregmax;
|
|
unsigned int acdirmin;
|
|
unsigned int acdirmax;
|
|
unsigned int namelen;
|
|
unsigned int options;
|
|
unsigned int clone_blksize;
|
|
enum nfs4_change_attr_type change_attr_type;
|
|
struct nfs_fsid fsid;
|
|
__u64 maxfilesize;
|
|
struct timespec64 time_delta;
|
|
unsigned long mount_time;
|
|
struct super_block *super;
|
|
dev_t s_dev;
|
|
struct nfs_auth_info auth_info;
|
|
u32 pnfs_blksize;
|
|
u32 attr_bitmask[3];
|
|
u32 attr_bitmask_nl[3];
|
|
u32 exclcreat_bitmask[3];
|
|
u32 cache_consistency_bitmask[3];
|
|
u32 acl_bitmask;
|
|
u32 fh_expire_type;
|
|
struct pnfs_layoutdriver_type *pnfs_curr_ld;
|
|
struct rpc_wait_queue roc_rpcwaitq;
|
|
void *pnfs_ld_data;
|
|
struct rb_root state_owners;
|
|
struct ida openowner_id;
|
|
struct ida lockowner_id;
|
|
struct list_head state_owners_lru;
|
|
struct list_head layouts;
|
|
struct list_head delegations;
|
|
struct list_head ss_copies;
|
|
unsigned long mig_gen;
|
|
unsigned long mig_status;
|
|
void (*destroy)(struct nfs_server *);
|
|
atomic_t active;
|
|
struct __kernel_sockaddr_storage mountd_address;
|
|
size_t mountd_addrlen;
|
|
u32 mountd_version;
|
|
unsigned short mountd_port;
|
|
unsigned short mountd_protocol;
|
|
struct rpc_wait_queue uoc_rpcwaitq;
|
|
unsigned int read_hdrsize;
|
|
const struct cred *cred;
|
|
bool has_sec_mnt_opts;
|
|
};
|
|
|
|
typedef struct {
|
|
char data[8];
|
|
} nfs4_verifier;
|
|
|
|
struct nfs41_server_owner;
|
|
|
|
struct nfs41_server_scope;
|
|
|
|
struct nfs41_impl_id;
|
|
|
|
struct nfs_subversion;
|
|
|
|
struct idmap;
|
|
|
|
struct nfs4_minor_version_ops;
|
|
|
|
struct nfs4_slot_table;
|
|
|
|
struct nfs4_session;
|
|
|
|
struct nfs_client {
|
|
refcount_t cl_count;
|
|
atomic_t cl_mds_count;
|
|
int cl_cons_state;
|
|
unsigned long cl_res_state;
|
|
unsigned long cl_flags;
|
|
struct __kernel_sockaddr_storage cl_addr;
|
|
size_t cl_addrlen;
|
|
char *cl_hostname;
|
|
char *cl_acceptor;
|
|
struct list_head cl_share_link;
|
|
struct list_head cl_superblocks;
|
|
struct rpc_clnt *cl_rpcclient;
|
|
const struct nfs_rpc_ops *rpc_ops;
|
|
int cl_proto;
|
|
struct nfs_subversion *cl_nfs_mod;
|
|
u32 cl_minorversion;
|
|
unsigned int cl_nconnect;
|
|
unsigned int cl_max_connect;
|
|
const char *cl_principal;
|
|
struct list_head cl_ds_clients;
|
|
u64 cl_clientid;
|
|
nfs4_verifier cl_confirm;
|
|
unsigned long cl_state;
|
|
spinlock_t cl_lock;
|
|
unsigned long cl_lease_time;
|
|
unsigned long cl_last_renewal;
|
|
struct delayed_work cl_renewd;
|
|
struct rpc_wait_queue cl_rpcwaitq;
|
|
struct idmap *cl_idmap;
|
|
const char *cl_owner_id;
|
|
u32 cl_cb_ident;
|
|
const struct nfs4_minor_version_ops *cl_mvops;
|
|
unsigned long cl_mig_gen;
|
|
struct nfs4_slot_table *cl_slot_tbl;
|
|
u32 cl_seqid;
|
|
u32 cl_exchange_flags;
|
|
struct nfs4_session *cl_session;
|
|
bool cl_preserve_clid;
|
|
struct nfs41_server_owner *cl_serverowner;
|
|
struct nfs41_server_scope *cl_serverscope;
|
|
struct nfs41_impl_id *cl_implid;
|
|
unsigned long cl_sp4_flags;
|
|
char cl_ipaddr[48];
|
|
struct net *cl_net;
|
|
struct list_head pending_cb_stateids;
|
|
};
|
|
|
|
struct rpc_xprt_switch;
|
|
|
|
struct rpc_xprt;
|
|
|
|
struct rpc_xprt_iter_ops;
|
|
|
|
struct rpc_xprt_iter {
|
|
struct rpc_xprt_switch __attribute__((btf_type_tag("rcu"))) *xpi_xpswitch;
|
|
struct rpc_xprt *xpi_cursor;
|
|
const struct rpc_xprt_iter_ops *xpi_ops;
|
|
};
|
|
|
|
struct rpc_pipe_dir_head {
|
|
struct list_head pdh_entries;
|
|
struct dentry *pdh_dentry;
|
|
};
|
|
|
|
struct rpc_rtt {
|
|
unsigned long timeo;
|
|
unsigned long srtt[5];
|
|
unsigned long sdrtt[5];
|
|
int ntimeouts[5];
|
|
};
|
|
|
|
struct rpc_timeout {
|
|
unsigned long to_initval;
|
|
unsigned long to_maxval;
|
|
unsigned long to_increment;
|
|
unsigned int to_retries;
|
|
unsigned char to_exponential;
|
|
};
|
|
|
|
struct rpc_procinfo;
|
|
|
|
struct rpc_auth;
|
|
|
|
struct rpc_stat;
|
|
|
|
struct rpc_iostats;
|
|
|
|
struct rpc_program;
|
|
|
|
struct rpc_sysfs_client;
|
|
|
|
struct rpc_clnt {
|
|
refcount_t cl_count;
|
|
unsigned int cl_clid;
|
|
struct list_head cl_clients;
|
|
struct list_head cl_tasks;
|
|
atomic_t cl_pid;
|
|
spinlock_t cl_lock;
|
|
struct rpc_xprt __attribute__((btf_type_tag("rcu"))) *cl_xprt;
|
|
const struct rpc_procinfo *cl_procinfo;
|
|
u32 cl_prog;
|
|
u32 cl_vers;
|
|
u32 cl_maxproc;
|
|
struct rpc_auth *cl_auth;
|
|
struct rpc_stat *cl_stats;
|
|
struct rpc_iostats *cl_metrics;
|
|
unsigned int cl_softrtry: 1;
|
|
unsigned int cl_softerr: 1;
|
|
unsigned int cl_discrtry: 1;
|
|
unsigned int cl_noretranstimeo: 1;
|
|
unsigned int cl_autobind: 1;
|
|
unsigned int cl_chatty: 1;
|
|
struct rpc_rtt *cl_rtt;
|
|
const struct rpc_timeout *cl_timeout;
|
|
atomic_t cl_swapper;
|
|
int cl_nodelen;
|
|
char cl_nodename[65];
|
|
struct rpc_pipe_dir_head cl_pipedir_objects;
|
|
struct rpc_clnt *cl_parent;
|
|
struct rpc_rtt cl_rtt_default;
|
|
struct rpc_timeout cl_timeout_default;
|
|
const struct rpc_program *cl_program;
|
|
const char *cl_principal;
|
|
struct rpc_sysfs_client *cl_sysfs;
|
|
union {
|
|
struct rpc_xprt_iter cl_xpi;
|
|
struct work_struct cl_work;
|
|
};
|
|
const struct cred *cl_cred;
|
|
unsigned int cl_max_connect;
|
|
};
|
|
|
|
struct rpc_xprt_ops;
|
|
|
|
struct svc_xprt;
|
|
|
|
struct xprt_class;
|
|
|
|
struct rpc_sysfs_xprt;
|
|
|
|
struct rpc_xprt {
|
|
struct kref kref;
|
|
const struct rpc_xprt_ops *ops;
|
|
unsigned int id;
|
|
const struct rpc_timeout *timeout;
|
|
struct __kernel_sockaddr_storage addr;
|
|
size_t addrlen;
|
|
int prot;
|
|
unsigned long cong;
|
|
unsigned long cwnd;
|
|
size_t max_payload;
|
|
struct rpc_wait_queue binding;
|
|
struct rpc_wait_queue sending;
|
|
struct rpc_wait_queue pending;
|
|
struct rpc_wait_queue backlog;
|
|
struct list_head free;
|
|
unsigned int max_reqs;
|
|
unsigned int min_reqs;
|
|
unsigned int num_reqs;
|
|
unsigned long state;
|
|
unsigned char resvport: 1;
|
|
unsigned char reuseport: 1;
|
|
atomic_t swapper;
|
|
unsigned int bind_index;
|
|
struct list_head xprt_switch;
|
|
unsigned long bind_timeout;
|
|
unsigned long reestablish_timeout;
|
|
unsigned int connect_cookie;
|
|
struct work_struct task_cleanup;
|
|
struct timer_list timer;
|
|
unsigned long last_used;
|
|
unsigned long idle_timeout;
|
|
unsigned long connect_timeout;
|
|
unsigned long max_reconnect_timeout;
|
|
atomic_long_t queuelen;
|
|
spinlock_t transport_lock;
|
|
spinlock_t reserve_lock;
|
|
spinlock_t queue_lock;
|
|
u32 xid;
|
|
struct rpc_task *snd_task;
|
|
struct list_head xmit_queue;
|
|
atomic_long_t xmit_queuelen;
|
|
struct svc_xprt *bc_xprt;
|
|
struct rb_root recv_queue;
|
|
struct {
|
|
unsigned long bind_count;
|
|
unsigned long connect_count;
|
|
unsigned long connect_start;
|
|
unsigned long connect_time;
|
|
unsigned long sends;
|
|
unsigned long recvs;
|
|
unsigned long bad_xids;
|
|
unsigned long max_slots;
|
|
unsigned long long req_u;
|
|
unsigned long long bklog_u;
|
|
unsigned long long sending_u;
|
|
unsigned long long pending_u;
|
|
} stat;
|
|
struct net *xprt_net;
|
|
netns_tracker ns_tracker;
|
|
const char *servername;
|
|
const char *address_strings[6];
|
|
struct callback_head rcu;
|
|
const struct xprt_class *xprt_class;
|
|
struct rpc_sysfs_xprt *xprt_sysfs;
|
|
bool main;
|
|
};
|
|
|
|
struct rpc_rqst;
|
|
|
|
struct xdr_buf;
|
|
|
|
struct rpc_xprt_ops {
|
|
void (*set_buffer_size)(struct rpc_xprt *, size_t, size_t);
|
|
int (*reserve_xprt)(struct rpc_xprt *, struct rpc_task *);
|
|
void (*release_xprt)(struct rpc_xprt *, struct rpc_task *);
|
|
void (*alloc_slot)(struct rpc_xprt *, struct rpc_task *);
|
|
void (*free_slot)(struct rpc_xprt *, struct rpc_rqst *);
|
|
void (*rpcbind)(struct rpc_task *);
|
|
void (*set_port)(struct rpc_xprt *, unsigned short);
|
|
void (*connect)(struct rpc_xprt *, struct rpc_task *);
|
|
int (*get_srcaddr)(struct rpc_xprt *, char *, size_t);
|
|
unsigned short (*get_srcport)(struct rpc_xprt *);
|
|
int (*buf_alloc)(struct rpc_task *);
|
|
void (*buf_free)(struct rpc_task *);
|
|
int (*prepare_request)(struct rpc_rqst *, struct xdr_buf *);
|
|
int (*send_request)(struct rpc_rqst *);
|
|
void (*wait_for_reply_request)(struct rpc_task *);
|
|
void (*timer)(struct rpc_xprt *, struct rpc_task *);
|
|
void (*release_request)(struct rpc_task *);
|
|
void (*close)(struct rpc_xprt *);
|
|
void (*destroy)(struct rpc_xprt *);
|
|
void (*set_connect_timeout)(struct rpc_xprt *, unsigned long, unsigned long);
|
|
void (*print_stats)(struct rpc_xprt *, struct seq_file *);
|
|
int (*enable_swap)(struct rpc_xprt *);
|
|
void (*disable_swap)(struct rpc_xprt *);
|
|
void (*inject_disconnect)(struct rpc_xprt *);
|
|
int (*bc_setup)(struct rpc_xprt *, unsigned int);
|
|
size_t (*bc_maxpayload)(struct rpc_xprt *);
|
|
unsigned int (*bc_num_slots)(struct rpc_xprt *);
|
|
void (*bc_free_rqst)(struct rpc_rqst *);
|
|
void (*bc_destroy)(struct rpc_xprt *, unsigned int);
|
|
};
|
|
|
|
struct rpc_wait {
|
|
struct list_head list;
|
|
struct list_head links;
|
|
struct list_head timer_list;
|
|
};
|
|
|
|
struct rpc_message {
|
|
const struct rpc_procinfo *rpc_proc;
|
|
void *rpc_argp;
|
|
void *rpc_resp;
|
|
const struct cred *rpc_cred;
|
|
};
|
|
|
|
struct rpc_call_ops;
|
|
|
|
struct rpc_cred;
|
|
|
|
struct rpc_task {
|
|
atomic_t tk_count;
|
|
int tk_status;
|
|
struct list_head tk_task;
|
|
void (*tk_callback)(struct rpc_task *);
|
|
void (*tk_action)(struct rpc_task *);
|
|
unsigned long tk_timeout;
|
|
unsigned long tk_runstate;
|
|
struct rpc_wait_queue *tk_waitqueue;
|
|
union {
|
|
struct work_struct tk_work;
|
|
struct rpc_wait tk_wait;
|
|
} u;
|
|
struct rpc_message tk_msg;
|
|
void *tk_calldata;
|
|
const struct rpc_call_ops *tk_ops;
|
|
struct rpc_clnt *tk_client;
|
|
struct rpc_xprt *tk_xprt;
|
|
struct rpc_cred *tk_op_cred;
|
|
struct rpc_rqst *tk_rqstp;
|
|
struct workqueue_struct *tk_workqueue;
|
|
ktime_t tk_start;
|
|
pid_t tk_owner;
|
|
int tk_rpc_status;
|
|
unsigned short tk_flags;
|
|
unsigned short tk_timeouts;
|
|
unsigned short tk_pid;
|
|
unsigned char tk_priority: 2;
|
|
unsigned char tk_garb_retry: 2;
|
|
unsigned char tk_cred_retry: 2;
|
|
unsigned char tk_rebind_retry: 2;
|
|
};
|
|
|
|
typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *);
|
|
|
|
typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *);
|
|
|
|
struct rpc_procinfo {
|
|
u32 p_proc;
|
|
kxdreproc_t p_encode;
|
|
kxdrdproc_t p_decode;
|
|
unsigned int p_arglen;
|
|
unsigned int p_replen;
|
|
unsigned int p_timer;
|
|
u32 p_statidx;
|
|
const char *p_name;
|
|
};
|
|
|
|
struct xdr_buf {
|
|
struct kvec head[1];
|
|
struct kvec tail[1];
|
|
struct bio_vec *bvec;
|
|
struct page **pages;
|
|
unsigned int page_base;
|
|
unsigned int page_len;
|
|
unsigned int flags;
|
|
unsigned int buflen;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct rpc_rqst {
|
|
struct rpc_xprt *rq_xprt;
|
|
struct xdr_buf rq_snd_buf;
|
|
struct xdr_buf rq_rcv_buf;
|
|
struct rpc_task *rq_task;
|
|
struct rpc_cred *rq_cred;
|
|
__be32 rq_xid;
|
|
int rq_cong;
|
|
u32 rq_seqno;
|
|
int rq_enc_pages_num;
|
|
struct page **rq_enc_pages;
|
|
void (*rq_release_snd_buf)(struct rpc_rqst *);
|
|
union {
|
|
struct list_head rq_list;
|
|
struct rb_node rq_recv;
|
|
};
|
|
struct list_head rq_xmit;
|
|
struct list_head rq_xmit2;
|
|
void *rq_buffer;
|
|
size_t rq_callsize;
|
|
void *rq_rbuffer;
|
|
size_t rq_rcvsize;
|
|
size_t rq_xmit_bytes_sent;
|
|
size_t rq_reply_bytes_recvd;
|
|
struct xdr_buf rq_private_buf;
|
|
unsigned long rq_majortimeo;
|
|
unsigned long rq_minortimeo;
|
|
unsigned long rq_timeout;
|
|
ktime_t rq_rtt;
|
|
unsigned int rq_retries;
|
|
unsigned int rq_connect_cookie;
|
|
atomic_t rq_pin;
|
|
u32 rq_bytes_sent;
|
|
ktime_t rq_xtime;
|
|
int rq_ntrans;
|
|
};
|
|
|
|
struct rpc_credops;
|
|
|
|
struct rpc_cred {
|
|
struct hlist_node cr_hash;
|
|
struct list_head cr_lru;
|
|
struct callback_head cr_rcu;
|
|
struct rpc_auth *cr_auth;
|
|
const struct rpc_credops *cr_ops;
|
|
unsigned long cr_expire;
|
|
unsigned long cr_flags;
|
|
refcount_t cr_count;
|
|
const struct cred *cr_cred;
|
|
};
|
|
|
|
struct rpc_authops;
|
|
|
|
struct rpc_cred_cache;
|
|
|
|
struct rpc_auth {
|
|
unsigned int au_cslack;
|
|
unsigned int au_rslack;
|
|
unsigned int au_verfsize;
|
|
unsigned int au_ralign;
|
|
unsigned long au_flags;
|
|
const struct rpc_authops *au_ops;
|
|
rpc_authflavor_t au_flavor;
|
|
refcount_t au_count;
|
|
struct rpc_cred_cache *au_credcache;
|
|
};
|
|
|
|
struct rpc_auth_create_args;
|
|
|
|
struct auth_cred;
|
|
|
|
struct rpcsec_gss_info;
|
|
|
|
struct rpc_authops {
|
|
struct module *owner;
|
|
rpc_authflavor_t au_flavor;
|
|
char *au_name;
|
|
struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *);
|
|
void (*destroy)(struct rpc_auth *);
|
|
int (*hash_cred)(struct auth_cred *, unsigned int);
|
|
struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int);
|
|
struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t);
|
|
rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *);
|
|
int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *);
|
|
int (*key_timeout)(struct rpc_auth *, struct rpc_cred *);
|
|
};
|
|
|
|
struct rpc_auth_create_args {
|
|
rpc_authflavor_t pseudoflavor;
|
|
const char *target_name;
|
|
};
|
|
|
|
struct auth_cred {
|
|
const struct cred *cred;
|
|
const char *principal;
|
|
};
|
|
|
|
struct rpcsec_gss_oid {
|
|
unsigned int len;
|
|
u8 data[32];
|
|
};
|
|
|
|
struct rpcsec_gss_info {
|
|
struct rpcsec_gss_oid oid;
|
|
u32 qop;
|
|
u32 service;
|
|
};
|
|
|
|
struct rpc_credops {
|
|
const char *cr_name;
|
|
int (*cr_init)(struct rpc_auth *, struct rpc_cred *);
|
|
void (*crdestroy)(struct rpc_cred *);
|
|
int (*crmatch)(struct auth_cred *, struct rpc_cred *, int);
|
|
int (*crmarshal)(struct rpc_task *, struct xdr_stream *);
|
|
int (*crrefresh)(struct rpc_task *);
|
|
int (*crvalidate)(struct rpc_task *, struct xdr_stream *);
|
|
int (*crwrap_req)(struct rpc_task *, struct xdr_stream *);
|
|
int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *);
|
|
int (*crkey_timeout)(struct rpc_cred *);
|
|
char * (*crstringify_acceptor)(struct rpc_cred *);
|
|
bool (*crneed_reencode)(struct rpc_task *);
|
|
};
|
|
|
|
struct xdr_stream {
|
|
__be32 *p;
|
|
struct xdr_buf *buf;
|
|
__be32 *end;
|
|
struct kvec *iov;
|
|
struct kvec scratch;
|
|
struct page **page_ptr;
|
|
unsigned int nwords;
|
|
struct rpc_rqst *rqst;
|
|
};
|
|
|
|
struct rpc_call_ops {
|
|
void (*rpc_call_prepare)(struct rpc_task *, void *);
|
|
void (*rpc_call_done)(struct rpc_task *, void *);
|
|
void (*rpc_count_stats)(struct rpc_task *, void *);
|
|
void (*rpc_release)(void *);
|
|
};
|
|
|
|
struct xprt_create;
|
|
|
|
struct xprt_class {
|
|
struct list_head list;
|
|
int ident;
|
|
struct rpc_xprt * (*setup)(struct xprt_create *);
|
|
struct module *owner;
|
|
char name[32];
|
|
const char *netid[0];
|
|
};
|
|
|
|
struct xprt_create {
|
|
int ident;
|
|
struct net *net;
|
|
struct sockaddr *srcaddr;
|
|
struct sockaddr *dstaddr;
|
|
size_t addrlen;
|
|
const char *servername;
|
|
struct svc_xprt *bc_xprt;
|
|
struct rpc_xprt_switch *bc_xps;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct rpc_sysfs_xprt_switch;
|
|
|
|
struct rpc_xprt_switch {
|
|
spinlock_t xps_lock;
|
|
struct kref xps_kref;
|
|
unsigned int xps_id;
|
|
unsigned int xps_nxprts;
|
|
unsigned int xps_nactive;
|
|
unsigned int xps_nunique_destaddr_xprts;
|
|
atomic_long_t xps_queuelen;
|
|
struct list_head xps_xprt_list;
|
|
struct net *xps_net;
|
|
const struct rpc_xprt_iter_ops *xps_iter_ops;
|
|
struct rpc_sysfs_xprt_switch *xps_sysfs;
|
|
struct callback_head xps_rcu;
|
|
};
|
|
|
|
struct rpc_xprt_iter_ops {
|
|
void (*xpi_rewind)(struct rpc_xprt_iter *);
|
|
struct rpc_xprt * (*xpi_xprt)(struct rpc_xprt_iter *);
|
|
struct rpc_xprt * (*xpi_next)(struct rpc_xprt_iter *);
|
|
};
|
|
|
|
struct rpc_stat {
|
|
const struct rpc_program *program;
|
|
unsigned int netcnt;
|
|
unsigned int netudpcnt;
|
|
unsigned int nettcpcnt;
|
|
unsigned int nettcpconn;
|
|
unsigned int netreconn;
|
|
unsigned int rpccnt;
|
|
unsigned int rpcretrans;
|
|
unsigned int rpcauthrefresh;
|
|
unsigned int rpcgarbage;
|
|
};
|
|
|
|
struct rpc_version;
|
|
|
|
struct rpc_program {
|
|
const char *name;
|
|
u32 number;
|
|
unsigned int nrvers;
|
|
const struct rpc_version **version;
|
|
struct rpc_stat *stats;
|
|
const char *pipe_dir_name;
|
|
};
|
|
|
|
struct rpc_version {
|
|
u32 number;
|
|
unsigned int nrprocs;
|
|
const struct rpc_procinfo *procs;
|
|
unsigned int *counts;
|
|
};
|
|
|
|
struct nfs_seqid;
|
|
|
|
struct nfs4_state_recovery_ops;
|
|
|
|
struct nfs4_state_maintenance_ops;
|
|
|
|
struct nfs4_mig_recovery_ops;
|
|
|
|
struct nfs4_minor_version_ops {
|
|
u32 minor_version;
|
|
unsigned int init_caps;
|
|
int (*init_client)(struct nfs_client *);
|
|
void (*shutdown_client)(struct nfs_client *);
|
|
bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *);
|
|
int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
|
|
void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *);
|
|
int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *);
|
|
struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t);
|
|
void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *);
|
|
const struct rpc_call_ops *call_sync_ops;
|
|
const struct nfs4_state_recovery_ops *reboot_recovery_ops;
|
|
const struct nfs4_state_recovery_ops *nograce_recovery_ops;
|
|
const struct nfs4_state_maintenance_ops *state_renewal_ops;
|
|
const struct nfs4_mig_recovery_ops *mig_recovery_ops;
|
|
};
|
|
|
|
struct nfs_fh {
|
|
unsigned short size;
|
|
unsigned char data[128];
|
|
};
|
|
|
|
struct nfs_fsinfo {
|
|
struct nfs_fattr *fattr;
|
|
__u32 rtmax;
|
|
__u32 rtpref;
|
|
__u32 rtmult;
|
|
__u32 wtmax;
|
|
__u32 wtpref;
|
|
__u32 wtmult;
|
|
__u32 dtpref;
|
|
__u64 maxfilesize;
|
|
struct timespec64 time_delta;
|
|
__u32 lease_time;
|
|
__u32 nlayouttypes;
|
|
__u32 layouttype[8];
|
|
__u32 blksize;
|
|
__u32 clone_blksize;
|
|
enum nfs4_change_attr_type change_attr_type;
|
|
__u32 xattr_support;
|
|
};
|
|
|
|
struct nfs4_string;
|
|
|
|
struct nfs4_threshold;
|
|
|
|
struct nfs4_label;
|
|
|
|
struct nfs_fattr {
|
|
unsigned int valid;
|
|
umode_t mode;
|
|
__u32 nlink;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
dev_t rdev;
|
|
__u64 size;
|
|
union {
|
|
struct {
|
|
__u32 blocksize;
|
|
__u32 blocks;
|
|
} nfs2;
|
|
struct {
|
|
__u64 used;
|
|
} nfs3;
|
|
} du;
|
|
struct nfs_fsid fsid;
|
|
__u64 fileid;
|
|
__u64 mounted_on_fileid;
|
|
struct timespec64 atime;
|
|
struct timespec64 mtime;
|
|
struct timespec64 ctime;
|
|
__u64 change_attr;
|
|
__u64 pre_change_attr;
|
|
__u64 pre_size;
|
|
struct timespec64 pre_mtime;
|
|
struct timespec64 pre_ctime;
|
|
unsigned long time_start;
|
|
unsigned long gencount;
|
|
struct nfs4_string *owner_name;
|
|
struct nfs4_string *group_name;
|
|
struct nfs4_threshold *mdsthreshold;
|
|
struct nfs4_label *label;
|
|
};
|
|
|
|
struct nfs4_string {
|
|
unsigned int len;
|
|
char *data;
|
|
};
|
|
|
|
struct nfs4_threshold {
|
|
__u32 bm;
|
|
__u32 l_type;
|
|
__u64 rd_sz;
|
|
__u64 wr_sz;
|
|
__u64 rd_io_sz;
|
|
__u64 wr_io_sz;
|
|
};
|
|
|
|
struct nfs4_label {
|
|
uint32_t lfs;
|
|
uint32_t pi;
|
|
u32 len;
|
|
char *label;
|
|
};
|
|
|
|
struct nfs_seqid {
|
|
struct nfs_seqid_counter *sequence;
|
|
struct list_head list;
|
|
struct rpc_task *task;
|
|
};
|
|
|
|
struct nfs4_state_recovery_ops {
|
|
int owner_flag_bit;
|
|
int state_flag_bit;
|
|
int (*recover_open)(struct nfs4_state_owner *, struct nfs4_state *);
|
|
int (*recover_lock)(struct nfs4_state *, struct file_lock *);
|
|
int (*establish_clid)(struct nfs_client *, const struct cred *);
|
|
int (*reclaim_complete)(struct nfs_client *, const struct cred *);
|
|
int (*detect_trunking)(struct nfs_client *, struct nfs_client **, const struct cred *);
|
|
};
|
|
|
|
struct nfs4_state_maintenance_ops {
|
|
int (*sched_state_renewal)(struct nfs_client *, const struct cred *, unsigned int);
|
|
const struct cred * (*get_state_renewal_cred)(struct nfs_client *);
|
|
int (*renew_lease)(struct nfs_client *, const struct cred *);
|
|
};
|
|
|
|
struct nfs4_fs_locations;
|
|
|
|
struct nfs4_mig_recovery_ops {
|
|
int (*get_locations)(struct nfs_server *, struct nfs_fh *, struct nfs4_fs_locations *, struct page *, const struct cred *);
|
|
int (*fsid_present)(struct inode *, const struct cred *);
|
|
};
|
|
|
|
struct nfs4_pathname {
|
|
unsigned int ncomponents;
|
|
struct nfs4_string components[512];
|
|
};
|
|
|
|
struct nfs4_fs_location {
|
|
unsigned int nservers;
|
|
struct nfs4_string servers[10];
|
|
struct nfs4_pathname rootpath;
|
|
};
|
|
|
|
struct nfs4_fs_locations {
|
|
struct nfs_fattr *fattr;
|
|
const struct nfs_server *server;
|
|
struct nfs4_pathname fs_path;
|
|
int nlocations;
|
|
struct nfs4_fs_location locations[10];
|
|
};
|
|
|
|
struct nfs_iostats {
|
|
unsigned long long bytes[8];
|
|
unsigned long events[27];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct nlmclnt_operations {
|
|
void (*nlmclnt_alloc_call)(void *);
|
|
bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *);
|
|
void (*nlmclnt_release_call)(void *);
|
|
};
|
|
|
|
struct nfs_access_entry {
|
|
struct rb_node rb_node;
|
|
struct list_head lru;
|
|
kuid_t fsuid;
|
|
kgid_t fsgid;
|
|
struct group_info *group_info;
|
|
u64 timestamp;
|
|
__u32 mask;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct nfs4_slot;
|
|
|
|
struct nfs4_sequence_args {
|
|
struct nfs4_slot *sa_slot;
|
|
u8 sa_cache_this: 1;
|
|
u8 sa_privileged: 1;
|
|
};
|
|
|
|
struct nfs_removeargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
struct qstr name;
|
|
};
|
|
|
|
struct nfs4_sequence_res {
|
|
struct nfs4_slot *sr_slot;
|
|
unsigned long sr_timestamp;
|
|
int sr_status;
|
|
u32 sr_status_flags;
|
|
u32 sr_highest_slotid;
|
|
u32 sr_target_highest_slotid;
|
|
};
|
|
|
|
struct nfs4_change_info {
|
|
u32 atomic;
|
|
u64 before;
|
|
u64 after;
|
|
};
|
|
|
|
struct nfs_removeres {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_server *server;
|
|
struct nfs_fattr *dir_attr;
|
|
struct nfs4_change_info cinfo;
|
|
};
|
|
|
|
struct nfs_unlinkdata {
|
|
struct nfs_removeargs args;
|
|
struct nfs_removeres res;
|
|
struct dentry *dentry;
|
|
wait_queue_head_t wq;
|
|
const struct cred *cred;
|
|
struct nfs_fattr dir_attr;
|
|
long timeout;
|
|
};
|
|
|
|
struct nfs_renameargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *old_dir;
|
|
const struct nfs_fh *new_dir;
|
|
const struct qstr *old_name;
|
|
const struct qstr *new_name;
|
|
};
|
|
|
|
struct nfs_renameres {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_server *server;
|
|
struct nfs4_change_info old_cinfo;
|
|
struct nfs_fattr *old_fattr;
|
|
struct nfs4_change_info new_cinfo;
|
|
struct nfs_fattr *new_fattr;
|
|
};
|
|
|
|
struct nfs_renamedata {
|
|
struct nfs_renameargs args;
|
|
struct nfs_renameres res;
|
|
struct rpc_task task;
|
|
const struct cred *cred;
|
|
struct inode *old_dir;
|
|
struct dentry *old_dentry;
|
|
struct nfs_fattr old_fattr;
|
|
struct inode *new_dir;
|
|
struct dentry *new_dentry;
|
|
struct nfs_fattr new_fattr;
|
|
void (*complete)(struct rpc_task *, struct nfs_renamedata *);
|
|
long timeout;
|
|
bool cancelled;
|
|
};
|
|
|
|
struct nfs_readdir_arg {
|
|
struct dentry *dentry;
|
|
const struct cred *cred;
|
|
__be32 *verf;
|
|
u64 cookie;
|
|
struct page **pages;
|
|
unsigned int page_len;
|
|
bool plus;
|
|
};
|
|
|
|
struct nfs_readdir_res {
|
|
__be32 *verf;
|
|
};
|
|
|
|
struct nfs_fsstat {
|
|
struct nfs_fattr *fattr;
|
|
__u64 tbytes;
|
|
__u64 fbytes;
|
|
__u64 abytes;
|
|
__u64 tfiles;
|
|
__u64 ffiles;
|
|
__u64 afiles;
|
|
};
|
|
|
|
struct nfs_pathconf {
|
|
struct nfs_fattr *fattr;
|
|
__u32 max_link;
|
|
__u32 max_namelen;
|
|
};
|
|
|
|
struct nfs_entry {
|
|
__u64 ino;
|
|
__u64 cookie;
|
|
const char *name;
|
|
unsigned int len;
|
|
int eof;
|
|
struct nfs_fh *fh;
|
|
struct nfs_fattr *fattr;
|
|
unsigned char d_type;
|
|
struct nfs_server *server;
|
|
};
|
|
|
|
struct nfs_write_verifier {
|
|
char data[8];
|
|
};
|
|
|
|
enum nfs3_stable_how {
|
|
NFS_UNSTABLE = 0,
|
|
NFS_DATA_SYNC = 1,
|
|
NFS_FILE_SYNC = 2,
|
|
NFS_INVALID_STABLE_HOW = -1,
|
|
};
|
|
|
|
struct nfs_writeverf {
|
|
struct nfs_write_verifier verifier;
|
|
enum nfs3_stable_how committed;
|
|
};
|
|
|
|
struct nfs_lock_context;
|
|
|
|
struct nfs_pgio_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
struct nfs_open_context *context;
|
|
struct nfs_lock_context *lock_context;
|
|
nfs4_stateid stateid;
|
|
__u64 offset;
|
|
__u32 count;
|
|
unsigned int pgbase;
|
|
struct page **pages;
|
|
union {
|
|
unsigned int replen;
|
|
struct {
|
|
const u32 *bitmask;
|
|
u32 bitmask_store[3];
|
|
enum nfs3_stable_how stable;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct nfs_pgio_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_fattr *fattr;
|
|
__u64 count;
|
|
__u32 op_status;
|
|
union {
|
|
struct {
|
|
unsigned int replen;
|
|
int eof;
|
|
};
|
|
struct {
|
|
struct nfs_writeverf *verf;
|
|
const struct nfs_server *server;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct nfs_page_array {
|
|
struct page **pagevec;
|
|
unsigned int npages;
|
|
struct page *page_array[8];
|
|
};
|
|
|
|
struct nfs_page;
|
|
|
|
struct pnfs_layout_segment;
|
|
|
|
struct nfs_pgio_completion_ops;
|
|
|
|
struct nfs_rw_ops;
|
|
|
|
struct nfs_io_completion;
|
|
|
|
struct nfs_direct_req;
|
|
|
|
struct nfs_pgio_header {
|
|
struct inode *inode;
|
|
const struct cred *cred;
|
|
struct list_head pages;
|
|
struct nfs_page *req;
|
|
struct nfs_writeverf verf;
|
|
fmode_t rw_mode;
|
|
struct pnfs_layout_segment *lseg;
|
|
loff_t io_start;
|
|
const struct rpc_call_ops *mds_ops;
|
|
void (*release)(struct nfs_pgio_header *);
|
|
const struct nfs_pgio_completion_ops *completion_ops;
|
|
const struct nfs_rw_ops *rw_ops;
|
|
struct nfs_io_completion *io_completion;
|
|
struct nfs_direct_req *dreq;
|
|
int pnfs_error;
|
|
int error;
|
|
unsigned int good_bytes;
|
|
unsigned long flags;
|
|
struct rpc_task task;
|
|
struct nfs_fattr fattr;
|
|
struct nfs_pgio_args args;
|
|
struct nfs_pgio_res res;
|
|
unsigned long timestamp;
|
|
int (*pgio_done_cb)(struct rpc_task *, struct nfs_pgio_header *);
|
|
__u64 mds_offset;
|
|
struct nfs_page_array page_array;
|
|
struct nfs_client *ds_clp;
|
|
u32 ds_commit_idx;
|
|
u32 pgio_mirror_idx;
|
|
};
|
|
|
|
struct nfs_page {
|
|
struct list_head wb_list;
|
|
union {
|
|
struct page *wb_page;
|
|
struct folio *wb_folio;
|
|
};
|
|
struct nfs_lock_context *wb_lock_context;
|
|
unsigned long wb_index;
|
|
unsigned int wb_offset;
|
|
unsigned int wb_pgbase;
|
|
unsigned int wb_bytes;
|
|
struct kref wb_kref;
|
|
unsigned long wb_flags;
|
|
struct nfs_write_verifier wb_verf;
|
|
struct nfs_page *wb_this_page;
|
|
struct nfs_page *wb_head;
|
|
unsigned short wb_nio;
|
|
};
|
|
|
|
struct nfs_lock_context {
|
|
refcount_t count;
|
|
struct list_head list;
|
|
struct nfs_open_context *open_context;
|
|
fl_owner_t lockowner;
|
|
atomic_t io_count;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct nfs_open_context {
|
|
struct nfs_lock_context lock_context;
|
|
fl_owner_t flock_owner;
|
|
struct dentry *dentry;
|
|
const struct cred *cred;
|
|
struct rpc_cred __attribute__((btf_type_tag("rcu"))) *ll_cred;
|
|
struct nfs4_state *state;
|
|
fmode_t mode;
|
|
unsigned long flags;
|
|
int error;
|
|
struct list_head list;
|
|
struct nfs4_threshold *mdsthreshold;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct nfs_pgio_completion_ops {
|
|
void (*error_cleanup)(struct list_head *, int);
|
|
void (*init_hdr)(struct nfs_pgio_header *);
|
|
void (*completion)(struct nfs_pgio_header *);
|
|
void (*reschedule_io)(struct nfs_pgio_header *);
|
|
};
|
|
|
|
struct rpc_task_setup;
|
|
|
|
struct nfs_rw_ops {
|
|
struct nfs_pgio_header * (*rw_alloc_header)();
|
|
void (*rw_free_header)(struct nfs_pgio_header *);
|
|
int (*rw_done)(struct rpc_task *, struct nfs_pgio_header *, struct inode *);
|
|
void (*rw_result)(struct rpc_task *, struct nfs_pgio_header *);
|
|
void (*rw_initiate)(struct nfs_pgio_header *, struct rpc_message *, const struct nfs_rpc_ops *, struct rpc_task_setup *, int);
|
|
};
|
|
|
|
struct rpc_task_setup {
|
|
struct rpc_task *task;
|
|
struct rpc_clnt *rpc_client;
|
|
struct rpc_xprt *rpc_xprt;
|
|
struct rpc_cred *rpc_op_cred;
|
|
const struct rpc_message *rpc_message;
|
|
const struct rpc_call_ops *callback_ops;
|
|
void *callback_data;
|
|
struct workqueue_struct *workqueue;
|
|
unsigned short flags;
|
|
signed char priority;
|
|
};
|
|
|
|
struct nfs_mds_commit_info {
|
|
atomic_t rpcs_out;
|
|
atomic_long_t ncommit;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct pnfs_ds_commit_info {};
|
|
|
|
struct nfs_direct_req {
|
|
struct kref kref;
|
|
struct nfs_open_context *ctx;
|
|
struct nfs_lock_context *l_ctx;
|
|
struct kiocb *iocb;
|
|
struct inode *inode;
|
|
atomic_t io_count;
|
|
spinlock_t lock;
|
|
loff_t io_start;
|
|
ssize_t count;
|
|
ssize_t max_count;
|
|
ssize_t bytes_left;
|
|
ssize_t error;
|
|
struct completion completion;
|
|
struct nfs_mds_commit_info mds_cinfo;
|
|
struct pnfs_ds_commit_info ds_cinfo;
|
|
struct work_struct work;
|
|
int flags;
|
|
};
|
|
|
|
struct nfs_commitargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
__u64 offset;
|
|
__u32 count;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs_commitres {
|
|
struct nfs4_sequence_res seq_res;
|
|
__u32 op_status;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs_writeverf *verf;
|
|
const struct nfs_server *server;
|
|
};
|
|
|
|
struct nfs_commit_completion_ops;
|
|
|
|
struct nfs_commit_data {
|
|
struct rpc_task task;
|
|
struct inode *inode;
|
|
const struct cred *cred;
|
|
struct nfs_fattr fattr;
|
|
struct nfs_writeverf verf;
|
|
struct list_head pages;
|
|
struct list_head list;
|
|
struct nfs_direct_req *dreq;
|
|
struct nfs_commitargs args;
|
|
struct nfs_commitres res;
|
|
struct nfs_open_context *context;
|
|
struct pnfs_layout_segment *lseg;
|
|
struct nfs_client *ds_clp;
|
|
int ds_commit_index;
|
|
loff_t lwb;
|
|
const struct rpc_call_ops *mds_ops;
|
|
const struct nfs_commit_completion_ops *completion_ops;
|
|
int (*commit_done_cb)(struct rpc_task *, struct nfs_commit_data *);
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct nfs_commit_info;
|
|
|
|
struct nfs_commit_completion_ops {
|
|
void (*completion)(struct nfs_commit_data *);
|
|
void (*resched_write)(struct nfs_commit_info *, struct nfs_page *);
|
|
};
|
|
|
|
struct nfs_commit_info {
|
|
struct inode *inode;
|
|
struct nfs_mds_commit_info *mds;
|
|
struct pnfs_ds_commit_info *ds;
|
|
struct nfs_direct_req *dreq;
|
|
const struct nfs_commit_completion_ops *completion_ops;
|
|
};
|
|
|
|
struct nfs_client_initdata {
|
|
unsigned long init_flags;
|
|
const char *hostname;
|
|
const struct __kernel_sockaddr_storage *addr;
|
|
const char *nodename;
|
|
const char *ip_addr;
|
|
size_t addrlen;
|
|
struct nfs_subversion *nfs_mod;
|
|
int proto;
|
|
u32 minorversion;
|
|
unsigned int nconnect;
|
|
unsigned int max_connect;
|
|
struct net *net;
|
|
const struct rpc_timeout *timeparms;
|
|
const struct cred *cred;
|
|
};
|
|
|
|
struct pnfs_layout_hdr;
|
|
|
|
struct nfs4_cached_acl;
|
|
|
|
struct nfs_delegation;
|
|
|
|
struct nfs_inode {
|
|
__u64 fileid;
|
|
struct nfs_fh fh;
|
|
unsigned long flags;
|
|
unsigned long cache_validity;
|
|
unsigned long read_cache_jiffies;
|
|
unsigned long attrtimeo;
|
|
unsigned long attrtimeo_timestamp;
|
|
unsigned long attr_gencount;
|
|
struct rb_root access_cache;
|
|
struct list_head access_cache_entry_lru;
|
|
struct list_head access_cache_inode_lru;
|
|
union {
|
|
struct {
|
|
unsigned long cache_change_attribute;
|
|
__be32 cookieverf[2];
|
|
struct rw_semaphore rmdir_sem;
|
|
};
|
|
struct {
|
|
atomic_long_t nrequests;
|
|
atomic_long_t redirtied_pages;
|
|
struct nfs_mds_commit_info commit_info;
|
|
struct mutex commit_mutex;
|
|
};
|
|
};
|
|
struct list_head open_files;
|
|
struct nfs4_cached_acl *nfs4_acl;
|
|
struct list_head open_states;
|
|
struct nfs_delegation __attribute__((btf_type_tag("rcu"))) *delegation;
|
|
struct rw_semaphore rwsem;
|
|
struct pnfs_layout_hdr *layout;
|
|
__u64 write_io;
|
|
__u64 read_io;
|
|
struct inode vfs_inode;
|
|
};
|
|
|
|
struct nfs_delegation {
|
|
struct list_head super_list;
|
|
const struct cred *cred;
|
|
struct inode *inode;
|
|
nfs4_stateid stateid;
|
|
fmode_t type;
|
|
unsigned long pagemod_limit;
|
|
__u64 change_attr;
|
|
unsigned long flags;
|
|
refcount_t refcount;
|
|
spinlock_t lock;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct nfs_createargs {
|
|
struct nfs_fh *fh;
|
|
const char *name;
|
|
unsigned int len;
|
|
struct iattr *sattr;
|
|
};
|
|
|
|
struct nfs_diropok {
|
|
struct nfs_fh *fh;
|
|
struct nfs_fattr *fattr;
|
|
};
|
|
|
|
struct nfs_createdata {
|
|
struct nfs_createargs arg;
|
|
struct nfs_diropok res;
|
|
struct nfs_fh fhandle;
|
|
struct nfs_fattr fattr;
|
|
};
|
|
|
|
struct nfs2_fsstat {
|
|
__u32 tsize;
|
|
__u32 bsize;
|
|
__u32 blocks;
|
|
__u32 bfree;
|
|
__u32 bavail;
|
|
};
|
|
|
|
struct nfs_sattrargs {
|
|
struct nfs_fh *fh;
|
|
struct iattr *sattr;
|
|
};
|
|
|
|
struct nfs_diropargs {
|
|
struct nfs_fh *fh;
|
|
const char *name;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct nfs_readlinkargs {
|
|
struct nfs_fh *fh;
|
|
unsigned int pgbase;
|
|
unsigned int pglen;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct nfs_linkargs {
|
|
struct nfs_fh *fromfh;
|
|
struct nfs_fh *tofh;
|
|
const char *toname;
|
|
unsigned int tolen;
|
|
};
|
|
|
|
struct nfs_symlinkargs {
|
|
struct nfs_fh *fromfh;
|
|
const char *fromname;
|
|
unsigned int fromlen;
|
|
struct page **pages;
|
|
unsigned int pathlen;
|
|
struct iattr *sattr;
|
|
};
|
|
|
|
struct nfs_readdirargs {
|
|
struct nfs_fh *fh;
|
|
__u32 cookie;
|
|
unsigned int count;
|
|
struct page **pages;
|
|
};
|
|
|
|
enum p9_trans_status {
|
|
Connected = 0,
|
|
BeginDisconnect = 1,
|
|
Disconnected = 2,
|
|
Hung = 3,
|
|
};
|
|
|
|
enum fscache_cookie_state {
|
|
FSCACHE_COOKIE_STATE_QUIESCENT = 0,
|
|
FSCACHE_COOKIE_STATE_LOOKING_UP = 1,
|
|
FSCACHE_COOKIE_STATE_CREATING = 2,
|
|
FSCACHE_COOKIE_STATE_ACTIVE = 3,
|
|
FSCACHE_COOKIE_STATE_INVALIDATING = 4,
|
|
FSCACHE_COOKIE_STATE_FAILED = 5,
|
|
FSCACHE_COOKIE_STATE_LRU_DISCARDING = 6,
|
|
FSCACHE_COOKIE_STATE_WITHDRAWING = 7,
|
|
FSCACHE_COOKIE_STATE_RELINQUISHING = 8,
|
|
FSCACHE_COOKIE_STATE_DROPPED = 9,
|
|
};
|
|
|
|
enum p9_perm_t {
|
|
P9_DMDIR = 2147483648,
|
|
P9_DMAPPEND = 1073741824,
|
|
P9_DMEXCL = 536870912,
|
|
P9_DMMOUNT = 268435456,
|
|
P9_DMAUTH = 134217728,
|
|
P9_DMTMP = 67108864,
|
|
P9_DMSYMLINK = 33554432,
|
|
P9_DMLINK = 16777216,
|
|
P9_DMDEVICE = 8388608,
|
|
P9_DMNAMEDPIPE = 2097152,
|
|
P9_DMSOCKET = 1048576,
|
|
P9_DMSETUID = 524288,
|
|
P9_DMSETGID = 262144,
|
|
P9_DMSETVTX = 65536,
|
|
};
|
|
|
|
struct p9_qid {
|
|
u8 type;
|
|
u32 version;
|
|
u64 path;
|
|
};
|
|
|
|
struct p9_fid;
|
|
|
|
struct v9fs_inode {
|
|
struct netfs_inode netfs;
|
|
struct p9_qid qid;
|
|
unsigned int cache_validity;
|
|
struct p9_fid *writeback_fid;
|
|
struct mutex v_mutex;
|
|
};
|
|
|
|
struct p9_client;
|
|
|
|
struct p9_fid {
|
|
struct p9_client *clnt;
|
|
u32 fid;
|
|
refcount_t count;
|
|
int mode;
|
|
struct p9_qid qid;
|
|
u32 iounit;
|
|
kuid_t uid;
|
|
void *rdir;
|
|
struct hlist_node dlist;
|
|
struct hlist_node ilist;
|
|
};
|
|
|
|
struct p9_trans_module;
|
|
|
|
struct p9_client {
|
|
spinlock_t lock;
|
|
unsigned int msize;
|
|
unsigned char proto_version;
|
|
struct p9_trans_module *trans_mod;
|
|
enum p9_trans_status status;
|
|
void *trans;
|
|
struct kmem_cache *fcall_cache;
|
|
union {
|
|
struct {
|
|
int rfd;
|
|
int wfd;
|
|
} fd;
|
|
struct {
|
|
u16 port;
|
|
bool privport;
|
|
} tcp;
|
|
} trans_opts;
|
|
struct idr fids;
|
|
struct idr reqs;
|
|
char name[65];
|
|
};
|
|
|
|
typedef u8 uint8_t;
|
|
|
|
struct p9_rdir {
|
|
int head;
|
|
int tail;
|
|
uint8_t buf[0];
|
|
};
|
|
|
|
struct p9_wstat {
|
|
u16 size;
|
|
u16 type;
|
|
u32 dev;
|
|
struct p9_qid qid;
|
|
u32 mode;
|
|
u32 atime;
|
|
u32 mtime;
|
|
u64 length;
|
|
const char *name;
|
|
const char *uid;
|
|
const char *gid;
|
|
const char *muid;
|
|
char *extension;
|
|
kuid_t n_uid;
|
|
kgid_t n_gid;
|
|
kuid_t n_muid;
|
|
};
|
|
|
|
struct p9_dirent {
|
|
struct p9_qid qid;
|
|
u64 d_off;
|
|
unsigned char d_type;
|
|
char d_name[256];
|
|
};
|
|
|
|
struct key_user {
|
|
struct rb_node node;
|
|
struct mutex cons_lock;
|
|
spinlock_t lock;
|
|
refcount_t usage;
|
|
atomic_t nkeys;
|
|
atomic_t nikeys;
|
|
kuid_t uid;
|
|
int qnkeys;
|
|
int qnbytes;
|
|
};
|
|
|
|
enum kernel_pkey_operation {
|
|
kernel_pkey_encrypt = 0,
|
|
kernel_pkey_decrypt = 1,
|
|
kernel_pkey_sign = 2,
|
|
kernel_pkey_verify = 3,
|
|
};
|
|
|
|
enum key_need_perm {
|
|
KEY_NEED_UNSPECIFIED = 0,
|
|
KEY_NEED_VIEW = 1,
|
|
KEY_NEED_READ = 2,
|
|
KEY_NEED_WRITE = 3,
|
|
KEY_NEED_SEARCH = 4,
|
|
KEY_NEED_LINK = 5,
|
|
KEY_NEED_SETATTR = 6,
|
|
KEY_NEED_UNLINK = 7,
|
|
KEY_SYSADMIN_OVERRIDE = 8,
|
|
KEY_AUTHTOKEN_OVERRIDE = 9,
|
|
KEY_DEFER_PERM_CHECK = 10,
|
|
};
|
|
|
|
enum key_lookup_flag {
|
|
KEY_LOOKUP_CREATE = 1,
|
|
KEY_LOOKUP_PARTIAL = 2,
|
|
KEY_LOOKUP_ALL = 3,
|
|
};
|
|
|
|
enum key_state {
|
|
KEY_IS_UNINSTANTIATED = 0,
|
|
KEY_IS_POSITIVE = 1,
|
|
};
|
|
|
|
struct key_preparsed_payload {
|
|
const char *orig_description;
|
|
char *description;
|
|
union key_payload payload;
|
|
const void *data;
|
|
size_t datalen;
|
|
size_t quotalen;
|
|
time64_t expiry;
|
|
};
|
|
|
|
struct key_match_data {
|
|
bool (*cmp)(const struct key *, const struct key_match_data *);
|
|
const void *raw_data;
|
|
void *preparsed;
|
|
unsigned int lookup_type;
|
|
};
|
|
|
|
struct kernel_pkey_params {
|
|
struct key *key;
|
|
const char *encoding;
|
|
const char *hash_algo;
|
|
char *info;
|
|
__u32 in_len;
|
|
union {
|
|
__u32 out_len;
|
|
__u32 in2_len;
|
|
};
|
|
enum kernel_pkey_operation op: 8;
|
|
};
|
|
|
|
struct kernel_pkey_query {
|
|
__u32 supported_ops;
|
|
__u32 key_size;
|
|
__u16 max_data_size;
|
|
__u16 max_sig_size;
|
|
__u16 max_enc_size;
|
|
__u16 max_dec_size;
|
|
};
|
|
|
|
struct __key_reference_with_attributes;
|
|
|
|
typedef struct __key_reference_with_attributes *key_ref_t;
|
|
|
|
struct keyring_search_context {
|
|
struct keyring_index_key index_key;
|
|
const struct cred *cred;
|
|
struct key_match_data match_data;
|
|
unsigned int flags;
|
|
int (*iterator)(const void *, void *);
|
|
int skipped_ret;
|
|
bool possessed;
|
|
key_ref_t result;
|
|
time64_t now;
|
|
};
|
|
|
|
struct request_key_auth {
|
|
struct callback_head rcu;
|
|
struct key *target_key;
|
|
struct key *dest_keyring;
|
|
const struct cred *cred;
|
|
void *callout_info;
|
|
size_t callout_len;
|
|
pid_t pid;
|
|
char op[8];
|
|
};
|
|
|
|
struct audit_buffer;
|
|
|
|
enum ima_hooks {
|
|
NONE = 0,
|
|
FILE_CHECK = 1,
|
|
MMAP_CHECK = 2,
|
|
MMAP_CHECK_REQPROT = 3,
|
|
BPRM_CHECK = 4,
|
|
CREDS_CHECK = 5,
|
|
POST_SETATTR = 6,
|
|
MODULE_CHECK = 7,
|
|
FIRMWARE_CHECK = 8,
|
|
KEXEC_KERNEL_CHECK = 9,
|
|
KEXEC_INITRAMFS_CHECK = 10,
|
|
POLICY_CHECK = 11,
|
|
KEXEC_CMDLINE = 12,
|
|
KEY_CHECK = 13,
|
|
CRITICAL_DATA = 14,
|
|
SETXATTR_CHECK = 15,
|
|
MAX_CHECK = 16,
|
|
};
|
|
|
|
struct ima_key_entry {
|
|
struct list_head list;
|
|
void *payload;
|
|
size_t payload_len;
|
|
char *keyring_name;
|
|
};
|
|
|
|
typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t);
|
|
|
|
struct asn1_decoder {
|
|
const unsigned char *machine;
|
|
size_t machlen;
|
|
const asn1_action_t *actions;
|
|
};
|
|
|
|
struct rtattr;
|
|
|
|
struct crypto_template {
|
|
struct list_head list;
|
|
struct hlist_head instances;
|
|
struct module *module;
|
|
int (*create)(struct crypto_template *, struct rtattr **);
|
|
char name[128];
|
|
};
|
|
|
|
struct rsa_asn1_template {
|
|
const char *name;
|
|
const u8 *data;
|
|
size_t size;
|
|
};
|
|
|
|
struct crypto_spawn;
|
|
|
|
struct crypto_instance {
|
|
struct crypto_alg alg;
|
|
struct crypto_template *tmpl;
|
|
union {
|
|
struct hlist_node list;
|
|
struct crypto_spawn *spawns;
|
|
};
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct crypto_spawn {
|
|
struct list_head list;
|
|
struct crypto_alg *alg;
|
|
union {
|
|
struct crypto_instance *inst;
|
|
struct crypto_spawn *next;
|
|
};
|
|
const struct crypto_type *frontend;
|
|
u32 mask;
|
|
bool dead;
|
|
bool registered;
|
|
};
|
|
|
|
struct akcipher_request;
|
|
|
|
struct crypto_akcipher;
|
|
|
|
struct akcipher_alg {
|
|
int (*sign)(struct akcipher_request *);
|
|
int (*verify)(struct akcipher_request *);
|
|
int (*encrypt)(struct akcipher_request *);
|
|
int (*decrypt)(struct akcipher_request *);
|
|
int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int);
|
|
int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int);
|
|
unsigned int (*max_size)(struct crypto_akcipher *);
|
|
int (*init)(struct crypto_akcipher *);
|
|
void (*exit)(struct crypto_akcipher *);
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
typedef void (*crypto_completion_t)(void *, int);
|
|
|
|
struct crypto_async_request {
|
|
struct list_head list;
|
|
crypto_completion_t complete;
|
|
void *data;
|
|
struct crypto_tfm *tfm;
|
|
u32 flags;
|
|
};
|
|
|
|
struct akcipher_request {
|
|
struct crypto_async_request base;
|
|
struct scatterlist *src;
|
|
struct scatterlist *dst;
|
|
unsigned int src_len;
|
|
unsigned int dst_len;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct scatterlist {
|
|
unsigned long page_link;
|
|
unsigned int offset;
|
|
unsigned int length;
|
|
dma_addr_t dma_address;
|
|
unsigned int dma_length;
|
|
};
|
|
|
|
struct crypto_akcipher {
|
|
unsigned int reqsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct akcipher_instance {
|
|
void (*free)(struct akcipher_instance *);
|
|
union {
|
|
struct {
|
|
char head[72];
|
|
struct crypto_instance base;
|
|
} s;
|
|
struct akcipher_alg alg;
|
|
};
|
|
};
|
|
|
|
struct crypto_akcipher_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct pkcs1pad_inst_ctx {
|
|
struct crypto_akcipher_spawn spawn;
|
|
const struct rsa_asn1_template *digest_info;
|
|
};
|
|
|
|
typedef __kernel_long_t __kernel_off_t;
|
|
|
|
typedef __kernel_off_t off_t;
|
|
|
|
struct pkcs1pad_ctx {
|
|
struct crypto_akcipher *child;
|
|
unsigned int key_size;
|
|
};
|
|
|
|
struct pkcs1pad_request {
|
|
struct scatterlist in_sg[2];
|
|
struct scatterlist out_sg[1];
|
|
uint8_t *in_buf;
|
|
uint8_t *out_buf;
|
|
struct akcipher_request child_req;
|
|
};
|
|
|
|
enum mq_rq_state {
|
|
MQ_RQ_IDLE = 0,
|
|
MQ_RQ_IN_FLIGHT = 1,
|
|
MQ_RQ_COMPLETE = 2,
|
|
};
|
|
|
|
enum rq_end_io_ret {
|
|
RQ_END_IO_NONE = 0,
|
|
RQ_END_IO_FREE = 1,
|
|
};
|
|
|
|
struct blk_stat_callback {
|
|
struct list_head list;
|
|
struct timer_list timer;
|
|
struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat;
|
|
int (*bucket_fn)(const struct request *);
|
|
unsigned int buckets;
|
|
struct blk_rq_stat *stat;
|
|
void (*timer_fn)(struct blk_stat_callback *);
|
|
void *data;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef __u32 req_flags_t;
|
|
|
|
typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t);
|
|
|
|
typedef void (*smp_call_func_t)(void *);
|
|
|
|
struct __call_single_data {
|
|
struct __call_single_node node;
|
|
smp_call_func_t func;
|
|
void *info;
|
|
};
|
|
|
|
struct io_cq;
|
|
|
|
struct request {
|
|
struct request_queue *q;
|
|
struct blk_mq_ctx *mq_ctx;
|
|
struct blk_mq_hw_ctx *mq_hctx;
|
|
blk_opf_t cmd_flags;
|
|
req_flags_t rq_flags;
|
|
int tag;
|
|
int internal_tag;
|
|
unsigned int timeout;
|
|
unsigned int __data_len;
|
|
sector_t __sector;
|
|
struct bio *bio;
|
|
struct bio *biotail;
|
|
union {
|
|
struct list_head queuelist;
|
|
struct request *rq_next;
|
|
};
|
|
struct block_device *part;
|
|
u64 alloc_time_ns;
|
|
u64 start_time_ns;
|
|
u64 io_start_time_ns;
|
|
unsigned short stats_sectors;
|
|
unsigned short nr_phys_segments;
|
|
unsigned short ioprio;
|
|
enum mq_rq_state state;
|
|
atomic_t ref;
|
|
unsigned long deadline;
|
|
union {
|
|
struct hlist_node hash;
|
|
struct llist_node ipi_list;
|
|
};
|
|
union {
|
|
struct rb_node rb_node;
|
|
struct bio_vec special_vec;
|
|
void *completion_data;
|
|
};
|
|
union {
|
|
struct {
|
|
struct io_cq *icq;
|
|
void *priv[2];
|
|
} elv;
|
|
struct {
|
|
unsigned int seq;
|
|
struct list_head list;
|
|
rq_end_io_fn *saved_end_io;
|
|
} flush;
|
|
};
|
|
union {
|
|
struct __call_single_data csd;
|
|
u64 fifo_time;
|
|
};
|
|
rq_end_io_fn *end_io;
|
|
void *end_io_data;
|
|
};
|
|
|
|
struct blk_queue_stats {
|
|
struct list_head callbacks;
|
|
spinlock_t lock;
|
|
int accounting;
|
|
};
|
|
|
|
struct sbitmap_word;
|
|
|
|
struct sbitmap {
|
|
unsigned int depth;
|
|
unsigned int shift;
|
|
unsigned int map_nr;
|
|
bool round_robin;
|
|
struct sbitmap_word *map;
|
|
unsigned int __attribute__((btf_type_tag("percpu"))) *alloc_hint;
|
|
};
|
|
|
|
struct blk_mq_hw_ctx {
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head dispatch;
|
|
unsigned long state;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct delayed_work run_work;
|
|
cpumask_var_t cpumask;
|
|
int next_cpu;
|
|
int next_cpu_batch;
|
|
unsigned long flags;
|
|
void *sched_data;
|
|
struct request_queue *queue;
|
|
struct blk_flush_queue *fq;
|
|
void *driver_data;
|
|
struct sbitmap ctx_map;
|
|
struct blk_mq_ctx *dispatch_from;
|
|
unsigned int dispatch_busy;
|
|
unsigned short type;
|
|
unsigned short nr_ctx;
|
|
struct blk_mq_ctx **ctxs;
|
|
spinlock_t dispatch_wait_lock;
|
|
wait_queue_entry_t dispatch_wait;
|
|
atomic_t wait_index;
|
|
struct blk_mq_tags *tags;
|
|
struct blk_mq_tags *sched_tags;
|
|
unsigned long queued;
|
|
unsigned long run;
|
|
unsigned int numa_node;
|
|
unsigned int queue_num;
|
|
atomic_t nr_active;
|
|
struct hlist_node cpuhp_online;
|
|
struct hlist_node cpuhp_dead;
|
|
struct kobject kobj;
|
|
struct dentry *debugfs_dir;
|
|
struct dentry *sched_debugfs_dir;
|
|
struct list_head hctx_list;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct blk_flush_queue {
|
|
unsigned int flush_pending_idx: 1;
|
|
unsigned int flush_running_idx: 1;
|
|
blk_status_t rq_status;
|
|
unsigned long flush_pending_since;
|
|
struct list_head flush_queue[2];
|
|
struct list_head flush_data_in_flight;
|
|
struct request *flush_rq;
|
|
spinlock_t mq_flush_lock;
|
|
};
|
|
|
|
struct sbitmap_word {
|
|
unsigned long word;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned long cleared;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct blk_mq_ctxs {
|
|
struct kobject kobj;
|
|
struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx;
|
|
};
|
|
|
|
struct sbq_wait_state;
|
|
|
|
struct sbitmap_queue {
|
|
struct sbitmap sb;
|
|
unsigned int wake_batch;
|
|
atomic_t wake_index;
|
|
struct sbq_wait_state *ws;
|
|
atomic_t ws_active;
|
|
unsigned int min_shallow_depth;
|
|
atomic_t completion_cnt;
|
|
atomic_t wakeup_cnt;
|
|
};
|
|
|
|
struct blk_mq_tags {
|
|
unsigned int nr_tags;
|
|
unsigned int nr_reserved_tags;
|
|
atomic_t active_queues;
|
|
struct sbitmap_queue bitmap_tags;
|
|
struct sbitmap_queue breserved_tags;
|
|
struct request **rqs;
|
|
struct request **static_rqs;
|
|
struct list_head page_list;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct sbq_wait_state {
|
|
wait_queue_head_t wait;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct blk_mq_queue_data {
|
|
struct request *rq;
|
|
bool last;
|
|
};
|
|
|
|
struct blk_mq_queue_map {
|
|
unsigned int *mq_map;
|
|
unsigned int nr_queues;
|
|
unsigned int queue_offset;
|
|
};
|
|
|
|
struct blk_mq_tag_set {
|
|
struct blk_mq_queue_map map[3];
|
|
unsigned int nr_maps;
|
|
const struct blk_mq_ops *ops;
|
|
unsigned int nr_hw_queues;
|
|
unsigned int queue_depth;
|
|
unsigned int reserved_tags;
|
|
unsigned int cmd_size;
|
|
int numa_node;
|
|
unsigned int timeout;
|
|
unsigned int flags;
|
|
void *driver_data;
|
|
struct blk_mq_tags **tags;
|
|
struct blk_mq_tags *shared_tags;
|
|
struct mutex tag_list_lock;
|
|
struct list_head tag_list;
|
|
struct srcu_struct *srcu;
|
|
};
|
|
|
|
struct io_cq {
|
|
struct request_queue *q;
|
|
struct io_context *ioc;
|
|
union {
|
|
struct list_head q_node;
|
|
struct kmem_cache *__rcu_icq_cache;
|
|
};
|
|
union {
|
|
struct hlist_node ioc_node;
|
|
struct callback_head __rcu_head;
|
|
};
|
|
unsigned int flags;
|
|
};
|
|
|
|
typedef void (*exitcall_t)();
|
|
|
|
struct blk_mq_debugfs_attr;
|
|
|
|
struct rq_qos_ops {
|
|
void (*throttle)(struct rq_qos *, struct bio *);
|
|
void (*track)(struct rq_qos *, struct request *, struct bio *);
|
|
void (*merge)(struct rq_qos *, struct request *, struct bio *);
|
|
void (*issue)(struct rq_qos *, struct request *);
|
|
void (*requeue)(struct rq_qos *, struct request *);
|
|
void (*done)(struct rq_qos *, struct request *);
|
|
void (*done_bio)(struct rq_qos *, struct bio *);
|
|
void (*cleanup)(struct rq_qos *, struct bio *);
|
|
void (*queue_depth_changed)(struct rq_qos *);
|
|
void (*exit)(struct rq_qos *);
|
|
const struct blk_mq_debugfs_attr *debugfs_attrs;
|
|
};
|
|
|
|
enum rq_qos_id {
|
|
RQ_QOS_WBT = 0,
|
|
RQ_QOS_LATENCY = 1,
|
|
RQ_QOS_COST = 2,
|
|
};
|
|
|
|
struct rq_qos {
|
|
const struct rq_qos_ops *ops;
|
|
struct gendisk *disk;
|
|
enum rq_qos_id id;
|
|
struct rq_qos *next;
|
|
struct dentry *debugfs_dir;
|
|
};
|
|
|
|
struct blkg_iostat {
|
|
u64 bytes[3];
|
|
u64 ios[3];
|
|
};
|
|
|
|
struct blkg_iostat_set {
|
|
struct u64_stats_sync sync;
|
|
struct blkcg_gq *blkg;
|
|
struct llist_node lnode;
|
|
int lqueued;
|
|
struct blkg_iostat cur;
|
|
struct blkg_iostat last;
|
|
};
|
|
|
|
struct blkcg;
|
|
|
|
struct blkg_policy_data;
|
|
|
|
struct blkcg_gq {
|
|
struct request_queue *q;
|
|
struct list_head q_node;
|
|
struct hlist_node blkcg_node;
|
|
struct blkcg *blkcg;
|
|
struct blkcg_gq *parent;
|
|
struct percpu_ref refcnt;
|
|
bool online;
|
|
struct blkg_iostat_set __attribute__((btf_type_tag("percpu"))) *iostat_cpu;
|
|
struct blkg_iostat_set iostat;
|
|
struct blkg_policy_data *pd[6];
|
|
spinlock_t async_bio_lock;
|
|
struct bio_list async_bios;
|
|
union {
|
|
struct work_struct async_bio_work;
|
|
struct work_struct free_work;
|
|
};
|
|
atomic_t use_delay;
|
|
atomic64_t delay_nsec;
|
|
atomic64_t delay_start;
|
|
u64 last_delay;
|
|
int last_use;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct blkcg_policy_data;
|
|
|
|
struct blkcg {
|
|
struct cgroup_subsys_state css;
|
|
spinlock_t lock;
|
|
refcount_t online_pin;
|
|
struct xarray blkg_tree;
|
|
struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint;
|
|
struct hlist_head blkg_list;
|
|
struct blkcg_policy_data *cpd[6];
|
|
struct list_head all_blkcgs_node;
|
|
struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead;
|
|
};
|
|
|
|
struct blkcg_policy_data {
|
|
struct blkcg *blkcg;
|
|
int plid;
|
|
};
|
|
|
|
struct blkg_policy_data {
|
|
struct blkcg_gq *blkg;
|
|
int plid;
|
|
bool online;
|
|
};
|
|
|
|
struct rchan_callbacks;
|
|
|
|
struct rchan_buf;
|
|
|
|
struct rchan {
|
|
u32 version;
|
|
size_t subbuf_size;
|
|
size_t n_subbufs;
|
|
size_t alloc_size;
|
|
const struct rchan_callbacks *cb;
|
|
struct kref kref;
|
|
void *private_data;
|
|
size_t last_toobig;
|
|
struct rchan_buf * __attribute__((btf_type_tag("percpu"))) *buf;
|
|
int is_global;
|
|
struct list_head list;
|
|
struct dentry *parent;
|
|
int has_base_filename;
|
|
char base_filename[255];
|
|
};
|
|
|
|
struct rchan_callbacks {
|
|
int (*subbuf_start)(struct rchan_buf *, void *, void *, size_t);
|
|
struct dentry * (*create_buf_file)(const char *, struct dentry *, umode_t, struct rchan_buf *, int *);
|
|
int (*remove_buf_file)(struct dentry *);
|
|
};
|
|
|
|
struct rchan_buf {
|
|
void *start;
|
|
void *data;
|
|
size_t offset;
|
|
size_t subbufs_produced;
|
|
size_t subbufs_consumed;
|
|
struct rchan *chan;
|
|
wait_queue_head_t read_wait;
|
|
struct irq_work wakeup_work;
|
|
struct dentry *dentry;
|
|
struct kref kref;
|
|
struct page **page_array;
|
|
unsigned int page_count;
|
|
unsigned int finalized;
|
|
size_t *padding;
|
|
size_t prev_padding;
|
|
size_t bytes_consumed;
|
|
size_t early_bytes;
|
|
unsigned int cpu;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct blk_mq_debugfs_attr {
|
|
const char *name;
|
|
umode_t mode;
|
|
int (*show)(void *, struct seq_file *);
|
|
ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
const struct seq_operations *seq_ops;
|
|
};
|
|
|
|
typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t);
|
|
|
|
typedef void blkcg_pol_init_cpd_fn(struct blkcg_policy_data *);
|
|
|
|
typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *);
|
|
|
|
typedef void blkcg_pol_bind_cpd_fn(struct blkcg_policy_data *);
|
|
|
|
typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t);
|
|
|
|
typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *);
|
|
|
|
typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *);
|
|
|
|
typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *);
|
|
|
|
typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *);
|
|
|
|
typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *);
|
|
|
|
typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *);
|
|
|
|
struct blkcg_policy {
|
|
int plid;
|
|
struct cftype *dfl_cftypes;
|
|
struct cftype *legacy_cftypes;
|
|
blkcg_pol_alloc_cpd_fn *cpd_alloc_fn;
|
|
blkcg_pol_init_cpd_fn *cpd_init_fn;
|
|
blkcg_pol_free_cpd_fn *cpd_free_fn;
|
|
blkcg_pol_bind_cpd_fn *cpd_bind_fn;
|
|
blkcg_pol_alloc_pd_fn *pd_alloc_fn;
|
|
blkcg_pol_init_pd_fn *pd_init_fn;
|
|
blkcg_pol_online_pd_fn *pd_online_fn;
|
|
blkcg_pol_offline_pd_fn *pd_offline_fn;
|
|
blkcg_pol_free_pd_fn *pd_free_fn;
|
|
blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn;
|
|
blkcg_pol_stat_pd_fn *pd_stat_fn;
|
|
};
|
|
|
|
enum {
|
|
BIO_NO_PAGE_REF = 0,
|
|
BIO_CLONED = 1,
|
|
BIO_BOUNCED = 2,
|
|
BIO_QUIET = 3,
|
|
BIO_CHAIN = 4,
|
|
BIO_REFFED = 5,
|
|
BIO_BPS_THROTTLED = 6,
|
|
BIO_TRACE_COMPLETION = 7,
|
|
BIO_CGROUP_ACCT = 8,
|
|
BIO_QOS_THROTTLED = 9,
|
|
BIO_QOS_MERGED = 10,
|
|
BIO_REMAPPED = 11,
|
|
BIO_ZONE_WRITE_LOCKED = 12,
|
|
BIO_FLAG_LAST = 13,
|
|
};
|
|
|
|
enum {
|
|
__PERCPU_REF_ATOMIC = 1,
|
|
__PERCPU_REF_DEAD = 2,
|
|
__PERCPU_REF_ATOMIC_DEAD = 3,
|
|
__PERCPU_REF_FLAG_BITS = 2,
|
|
};
|
|
|
|
struct blk_iolatency {
|
|
struct rq_qos rqos;
|
|
struct timer_list timer;
|
|
bool enabled;
|
|
atomic_t enable_cnt;
|
|
struct work_struct enable_work;
|
|
};
|
|
|
|
struct percentile_stats {
|
|
u64 total;
|
|
u64 missed;
|
|
};
|
|
|
|
struct latency_stat {
|
|
union {
|
|
struct percentile_stats ps;
|
|
struct blk_rq_stat rqs;
|
|
};
|
|
};
|
|
|
|
struct rq_wait {
|
|
wait_queue_head_t wait;
|
|
atomic_t inflight;
|
|
};
|
|
|
|
struct iolatency_grp;
|
|
|
|
struct child_latency_info {
|
|
spinlock_t lock;
|
|
u64 last_scale_event;
|
|
u64 scale_lat;
|
|
u64 nr_samples;
|
|
struct iolatency_grp *scale_grp;
|
|
atomic_t scale_cookie;
|
|
};
|
|
|
|
struct iolatency_grp {
|
|
struct blkg_policy_data pd;
|
|
struct latency_stat __attribute__((btf_type_tag("percpu"))) *stats;
|
|
struct latency_stat cur_stat;
|
|
struct blk_iolatency *blkiolat;
|
|
unsigned int max_depth;
|
|
struct rq_wait rq_wait;
|
|
atomic64_t window_start;
|
|
atomic_t scale_cookie;
|
|
u64 min_lat_nsec;
|
|
u64 cur_win_nsec;
|
|
u64 lat_avg;
|
|
u64 nr_samples;
|
|
bool ssd;
|
|
struct child_latency_info child_lat;
|
|
};
|
|
|
|
typedef bool acquire_inflight_cb_t(struct rq_wait *, void *);
|
|
|
|
typedef void cleanup_cb_t(struct rq_wait *, void *);
|
|
|
|
struct blkg_conf_ctx {
|
|
struct block_device *bdev;
|
|
struct blkcg_gq *blkg;
|
|
char *body;
|
|
};
|
|
|
|
struct io_kiocb;
|
|
|
|
struct io_uring_sqe;
|
|
|
|
struct io_issue_def {
|
|
unsigned int needs_file: 1;
|
|
unsigned int plug: 1;
|
|
unsigned int hash_reg_file: 1;
|
|
unsigned int unbound_nonreg_file: 1;
|
|
unsigned int pollin: 1;
|
|
unsigned int pollout: 1;
|
|
unsigned int poll_exclusive: 1;
|
|
unsigned int buffer_select: 1;
|
|
unsigned int not_supported: 1;
|
|
unsigned int audit_skip: 1;
|
|
unsigned int ioprio: 1;
|
|
unsigned int iopoll: 1;
|
|
unsigned int iopoll_queue: 1;
|
|
unsigned int manual_alloc: 1;
|
|
int (*issue)(struct io_kiocb *, unsigned int);
|
|
int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);
|
|
};
|
|
|
|
struct io_cmd_data {
|
|
struct file *file;
|
|
__u8 data[56];
|
|
};
|
|
|
|
struct io_wq_work_node {
|
|
struct io_wq_work_node *next;
|
|
};
|
|
|
|
struct io_cqe {
|
|
__u64 user_data;
|
|
__s32 res;
|
|
union {
|
|
__u32 flags;
|
|
int fd;
|
|
};
|
|
};
|
|
|
|
typedef void (*io_req_tw_func_t)(struct io_kiocb *, bool *);
|
|
|
|
struct io_task_work {
|
|
struct llist_node node;
|
|
io_req_tw_func_t func;
|
|
};
|
|
|
|
struct io_wq_work {
|
|
struct io_wq_work_node list;
|
|
unsigned int flags;
|
|
int cancel_seq;
|
|
};
|
|
|
|
struct io_ring_ctx;
|
|
|
|
struct io_rsrc_node;
|
|
|
|
struct io_mapped_ubuf;
|
|
|
|
struct io_buffer;
|
|
|
|
struct io_buffer_list;
|
|
|
|
struct async_poll;
|
|
|
|
struct io_kiocb {
|
|
union {
|
|
struct file *file;
|
|
struct io_cmd_data cmd;
|
|
};
|
|
u8 opcode;
|
|
u8 iopoll_completed;
|
|
u16 buf_index;
|
|
unsigned int flags;
|
|
struct io_cqe cqe;
|
|
struct io_ring_ctx *ctx;
|
|
struct task_struct *task;
|
|
struct io_rsrc_node *rsrc_node;
|
|
union {
|
|
struct io_mapped_ubuf *imu;
|
|
struct io_buffer *kbuf;
|
|
struct io_buffer_list *buf_list;
|
|
};
|
|
union {
|
|
struct io_wq_work_node comp_list;
|
|
__poll_t apoll_events;
|
|
};
|
|
atomic_t refs;
|
|
atomic_t poll_refs;
|
|
struct io_task_work io_task_work;
|
|
union {
|
|
struct hlist_node hash_node;
|
|
struct {
|
|
u64 extra1;
|
|
u64 extra2;
|
|
};
|
|
};
|
|
struct async_poll *apoll;
|
|
void *async_data;
|
|
struct io_kiocb *link;
|
|
const struct cred *creds;
|
|
struct io_wq_work work;
|
|
};
|
|
|
|
struct io_wq;
|
|
|
|
struct io_uring_task {
|
|
int cached_refs;
|
|
const struct io_ring_ctx *last;
|
|
struct io_wq *io_wq;
|
|
struct file *registered_rings[16];
|
|
struct xarray xa;
|
|
struct wait_queue_head wait;
|
|
atomic_t in_idle;
|
|
atomic_t inflight_tracked;
|
|
struct percpu_counter inflight;
|
|
long: 64;
|
|
long: 64;
|
|
struct {
|
|
struct llist_head task_list;
|
|
struct callback_head task_work;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
};
|
|
|
|
enum task_work_notify_mode {
|
|
TWA_NONE = 0,
|
|
TWA_RESUME = 1,
|
|
TWA_SIGNAL = 2,
|
|
TWA_SIGNAL_NO_IPI = 3,
|
|
};
|
|
|
|
struct io_fixed_file;
|
|
|
|
struct io_file_table {
|
|
struct io_fixed_file *files;
|
|
unsigned long *bitmap;
|
|
unsigned int alloc_hint;
|
|
};
|
|
|
|
struct io_wq_work_list {
|
|
struct io_wq_work_node *first;
|
|
struct io_wq_work_node *last;
|
|
};
|
|
|
|
struct io_submit_link {
|
|
struct io_kiocb *head;
|
|
struct io_kiocb *last;
|
|
};
|
|
|
|
struct io_uring_cqe {
|
|
__u64 user_data;
|
|
__s32 res;
|
|
__u32 flags;
|
|
__u64 big_cqe[0];
|
|
};
|
|
|
|
struct io_submit_state {
|
|
struct io_wq_work_node free_list;
|
|
struct io_wq_work_list compl_reqs;
|
|
struct io_submit_link link;
|
|
bool plug_started;
|
|
bool need_plug;
|
|
unsigned short submit_nr;
|
|
unsigned int cqes_count;
|
|
struct blk_plug plug;
|
|
struct io_uring_cqe cqes[16];
|
|
};
|
|
|
|
struct io_hash_bucket;
|
|
|
|
struct io_hash_table {
|
|
struct io_hash_bucket *hbs;
|
|
unsigned int hash_bits;
|
|
};
|
|
|
|
struct io_alloc_cache {
|
|
struct hlist_head list;
|
|
unsigned int nr_cached;
|
|
};
|
|
|
|
struct io_restriction {
|
|
unsigned long register_op[1];
|
|
unsigned long sqe_op[1];
|
|
u8 sqe_flags_allowed;
|
|
u8 sqe_flags_required;
|
|
bool registered;
|
|
};
|
|
|
|
struct io_rings;
|
|
|
|
struct io_sq_data;
|
|
|
|
struct io_ev_fd;
|
|
|
|
struct io_rsrc_data;
|
|
|
|
struct io_wq_hash;
|
|
|
|
struct io_ring_ctx {
|
|
struct {
|
|
unsigned int flags;
|
|
unsigned int drain_next: 1;
|
|
unsigned int restricted: 1;
|
|
unsigned int off_timeout_used: 1;
|
|
unsigned int drain_active: 1;
|
|
unsigned int has_evfd: 1;
|
|
unsigned int task_complete: 1;
|
|
unsigned int syscall_iopoll: 1;
|
|
unsigned int poll_activated: 1;
|
|
unsigned int drain_disabled: 1;
|
|
unsigned int compat: 1;
|
|
enum task_work_notify_mode notify_method;
|
|
struct io_rings *rings;
|
|
struct task_struct *submitter_task;
|
|
struct percpu_ref refs;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct {
|
|
struct mutex uring_lock;
|
|
u32 *sq_array;
|
|
struct io_uring_sqe *sq_sqes;
|
|
unsigned int cached_sq_head;
|
|
unsigned int sq_entries;
|
|
struct io_rsrc_node *rsrc_node;
|
|
int rsrc_cached_refs;
|
|
atomic_t cancel_seq;
|
|
struct io_file_table file_table;
|
|
unsigned int nr_user_files;
|
|
unsigned int nr_user_bufs;
|
|
struct io_mapped_ubuf **user_bufs;
|
|
struct io_submit_state submit_state;
|
|
struct io_buffer_list *io_bl;
|
|
struct xarray io_bl_xa;
|
|
struct list_head io_buffers_cache;
|
|
struct io_hash_table cancel_table_locked;
|
|
struct list_head cq_overflow_list;
|
|
struct io_alloc_cache apoll_cache;
|
|
struct io_alloc_cache netmsg_cache;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct io_wq_work_list locked_free_list;
|
|
unsigned int locked_free_nr;
|
|
const struct cred *sq_creds;
|
|
struct io_sq_data *sq_data;
|
|
struct wait_queue_head sqo_sq_wait;
|
|
struct list_head sqd_list;
|
|
unsigned long check_cq;
|
|
unsigned int file_alloc_start;
|
|
unsigned int file_alloc_end;
|
|
struct xarray personalities;
|
|
u32 pers_next;
|
|
long: 32;
|
|
long: 64;
|
|
struct {
|
|
struct io_uring_cqe *cqe_cached;
|
|
struct io_uring_cqe *cqe_sentinel;
|
|
unsigned int cached_cq_tail;
|
|
unsigned int cq_entries;
|
|
struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd;
|
|
struct wait_queue_head cq_wait;
|
|
unsigned int cq_extra;
|
|
};
|
|
struct {
|
|
spinlock_t completion_lock;
|
|
bool poll_multi_queue;
|
|
bool cq_waiting;
|
|
struct io_wq_work_list iopoll_list;
|
|
struct io_hash_table cancel_table;
|
|
struct llist_head work_llist;
|
|
struct list_head io_buffers_comp;
|
|
};
|
|
struct {
|
|
spinlock_t timeout_lock;
|
|
atomic_t cq_timeouts;
|
|
struct list_head timeout_list;
|
|
struct list_head ltimeout_list;
|
|
unsigned int cq_last_tm_flush;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct wait_queue_head poll_wq;
|
|
struct io_restriction restrictions;
|
|
struct io_rsrc_node *rsrc_backup_node;
|
|
struct io_mapped_ubuf *dummy_ubuf;
|
|
struct io_rsrc_data *file_data;
|
|
struct io_rsrc_data *buf_data;
|
|
struct delayed_work rsrc_put_work;
|
|
struct callback_head rsrc_put_tw;
|
|
struct llist_head rsrc_put_llist;
|
|
struct list_head rsrc_ref_list;
|
|
spinlock_t rsrc_ref_lock;
|
|
struct list_head io_buffers_pages;
|
|
struct socket *ring_sock;
|
|
struct io_wq_hash *hash_map;
|
|
struct user_struct *user;
|
|
struct mm_struct *mm_account;
|
|
struct llist_head fallback_llist;
|
|
struct delayed_work fallback_work;
|
|
struct work_struct exit_work;
|
|
struct list_head tctx_list;
|
|
struct completion ref_comp;
|
|
u32 iowq_limits[2];
|
|
bool iowq_limits_set;
|
|
struct callback_head poll_wq_task_work;
|
|
struct list_head defer_list;
|
|
unsigned int sq_thread_idle;
|
|
unsigned int evfd_last_cq_tail;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct io_uring {
|
|
u32 head;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 tail;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct io_rings {
|
|
struct io_uring sq;
|
|
struct io_uring cq;
|
|
u32 sq_ring_mask;
|
|
u32 cq_ring_mask;
|
|
u32 sq_ring_entries;
|
|
u32 cq_ring_entries;
|
|
u32 sq_dropped;
|
|
atomic_t sq_flags;
|
|
u32 cq_flags;
|
|
u32 cq_overflow;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct io_uring_cqe cqes[0];
|
|
};
|
|
|
|
struct io_uring_sqe {
|
|
__u8 opcode;
|
|
__u8 flags;
|
|
__u16 ioprio;
|
|
__s32 fd;
|
|
union {
|
|
__u64 off;
|
|
__u64 addr2;
|
|
struct {
|
|
__u32 cmd_op;
|
|
__u32 __pad1;
|
|
};
|
|
};
|
|
union {
|
|
__u64 addr;
|
|
__u64 splice_off_in;
|
|
};
|
|
__u32 len;
|
|
union {
|
|
__kernel_rwf_t rw_flags;
|
|
__u32 fsync_flags;
|
|
__u16 poll_events;
|
|
__u32 poll32_events;
|
|
__u32 sync_range_flags;
|
|
__u32 msg_flags;
|
|
__u32 timeout_flags;
|
|
__u32 accept_flags;
|
|
__u32 cancel_flags;
|
|
__u32 open_flags;
|
|
__u32 statx_flags;
|
|
__u32 fadvise_advice;
|
|
__u32 splice_flags;
|
|
__u32 rename_flags;
|
|
__u32 unlink_flags;
|
|
__u32 hardlink_flags;
|
|
__u32 xattr_flags;
|
|
__u32 msg_ring_flags;
|
|
__u32 uring_cmd_flags;
|
|
};
|
|
__u64 user_data;
|
|
union {
|
|
__u16 buf_index;
|
|
__u16 buf_group;
|
|
};
|
|
__u16 personality;
|
|
union {
|
|
__s32 splice_fd_in;
|
|
__u32 file_index;
|
|
struct {
|
|
__u16 addr_len;
|
|
__u16 __pad3[1];
|
|
};
|
|
};
|
|
union {
|
|
struct {
|
|
__u64 addr3;
|
|
__u64 __pad2[1];
|
|
};
|
|
__u8 cmd[0];
|
|
};
|
|
};
|
|
|
|
struct io_rsrc_node {
|
|
struct percpu_ref refs;
|
|
struct list_head node;
|
|
struct list_head rsrc_list;
|
|
struct io_rsrc_data *rsrc_data;
|
|
struct llist_node llist;
|
|
bool done;
|
|
};
|
|
|
|
struct io_rsrc_put;
|
|
|
|
typedef void rsrc_put_fn(struct io_ring_ctx *, struct io_rsrc_put *);
|
|
|
|
struct io_rsrc_data {
|
|
struct io_ring_ctx *ctx;
|
|
u64 **tags;
|
|
unsigned int nr;
|
|
rsrc_put_fn *do_put;
|
|
atomic_t refs;
|
|
struct completion done;
|
|
bool quiesce;
|
|
};
|
|
|
|
struct io_rsrc_put {
|
|
struct list_head list;
|
|
u64 tag;
|
|
union {
|
|
void *rsrc;
|
|
struct file *file;
|
|
struct io_mapped_ubuf *buf;
|
|
};
|
|
};
|
|
|
|
struct io_mapped_ubuf {
|
|
u64 ubuf;
|
|
u64 ubuf_end;
|
|
unsigned int nr_bvecs;
|
|
unsigned long acct_pages;
|
|
struct bio_vec bvec[0];
|
|
};
|
|
|
|
struct io_fixed_file {
|
|
unsigned long file_ptr;
|
|
};
|
|
|
|
struct io_uring_buf_ring;
|
|
|
|
struct io_buffer_list {
|
|
union {
|
|
struct list_head buf_list;
|
|
struct {
|
|
struct page **buf_pages;
|
|
struct io_uring_buf_ring *buf_ring;
|
|
};
|
|
};
|
|
__u16 bgid;
|
|
__u16 buf_nr_pages;
|
|
__u16 nr_entries;
|
|
__u16 head;
|
|
__u16 mask;
|
|
};
|
|
|
|
struct io_uring_buf {
|
|
__u64 addr;
|
|
__u32 len;
|
|
__u16 bid;
|
|
__u16 resv;
|
|
};
|
|
|
|
struct io_uring_buf_ring {
|
|
union {
|
|
struct {
|
|
__u64 resv1;
|
|
__u32 resv2;
|
|
__u16 resv3;
|
|
__u16 tail;
|
|
};
|
|
struct {
|
|
struct { } __empty_bufs;
|
|
struct io_uring_buf bufs[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct io_hash_bucket {
|
|
spinlock_t lock;
|
|
struct hlist_head list;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct io_sq_data {
|
|
refcount_t refs;
|
|
atomic_t park_pending;
|
|
struct mutex lock;
|
|
struct list_head ctx_list;
|
|
struct task_struct *thread;
|
|
struct wait_queue_head wait;
|
|
unsigned int sq_thread_idle;
|
|
int sq_cpu;
|
|
pid_t task_pid;
|
|
pid_t task_tgid;
|
|
unsigned long state;
|
|
struct completion exited;
|
|
};
|
|
|
|
struct eventfd_ctx;
|
|
|
|
struct io_ev_fd {
|
|
struct eventfd_ctx *cq_ev_fd;
|
|
unsigned int eventfd_async: 1;
|
|
struct callback_head rcu;
|
|
atomic_t refs;
|
|
atomic_t ops;
|
|
};
|
|
|
|
struct io_wq_hash {
|
|
refcount_t refs;
|
|
unsigned long map;
|
|
struct wait_queue_head wait;
|
|
};
|
|
|
|
struct io_uring_cmd {
|
|
struct file *file;
|
|
const void *cmd;
|
|
union {
|
|
void (*task_work_cb)(struct io_uring_cmd *);
|
|
void *cookie;
|
|
};
|
|
u32 cmd_op;
|
|
u32 flags;
|
|
u8 pdu[32];
|
|
};
|
|
|
|
struct io_buffer {
|
|
struct list_head list;
|
|
__u64 addr;
|
|
__u32 len;
|
|
__u16 bid;
|
|
__u16 bgid;
|
|
};
|
|
|
|
struct io_poll {
|
|
struct file *file;
|
|
struct wait_queue_head *head;
|
|
__poll_t events;
|
|
struct wait_queue_entry wait;
|
|
};
|
|
|
|
struct io_cache_entry {
|
|
struct hlist_node node;
|
|
};
|
|
|
|
struct async_poll {
|
|
union {
|
|
struct io_poll poll;
|
|
struct io_cache_entry cache;
|
|
};
|
|
struct io_poll *double_poll;
|
|
};
|
|
|
|
struct io_cold_def {
|
|
unsigned short async_size;
|
|
const char *name;
|
|
int (*prep_async)(struct io_kiocb *);
|
|
void (*cleanup)(struct io_kiocb *);
|
|
void (*fail)(struct io_kiocb *);
|
|
};
|
|
|
|
enum io_uring_op {
|
|
IORING_OP_NOP = 0,
|
|
IORING_OP_READV = 1,
|
|
IORING_OP_WRITEV = 2,
|
|
IORING_OP_FSYNC = 3,
|
|
IORING_OP_READ_FIXED = 4,
|
|
IORING_OP_WRITE_FIXED = 5,
|
|
IORING_OP_POLL_ADD = 6,
|
|
IORING_OP_POLL_REMOVE = 7,
|
|
IORING_OP_SYNC_FILE_RANGE = 8,
|
|
IORING_OP_SENDMSG = 9,
|
|
IORING_OP_RECVMSG = 10,
|
|
IORING_OP_TIMEOUT = 11,
|
|
IORING_OP_TIMEOUT_REMOVE = 12,
|
|
IORING_OP_ACCEPT = 13,
|
|
IORING_OP_ASYNC_CANCEL = 14,
|
|
IORING_OP_LINK_TIMEOUT = 15,
|
|
IORING_OP_CONNECT = 16,
|
|
IORING_OP_FALLOCATE = 17,
|
|
IORING_OP_OPENAT = 18,
|
|
IORING_OP_CLOSE = 19,
|
|
IORING_OP_FILES_UPDATE = 20,
|
|
IORING_OP_STATX = 21,
|
|
IORING_OP_READ = 22,
|
|
IORING_OP_WRITE = 23,
|
|
IORING_OP_FADVISE = 24,
|
|
IORING_OP_MADVISE = 25,
|
|
IORING_OP_SEND = 26,
|
|
IORING_OP_RECV = 27,
|
|
IORING_OP_OPENAT2 = 28,
|
|
IORING_OP_EPOLL_CTL = 29,
|
|
IORING_OP_SPLICE = 30,
|
|
IORING_OP_PROVIDE_BUFFERS = 31,
|
|
IORING_OP_REMOVE_BUFFERS = 32,
|
|
IORING_OP_TEE = 33,
|
|
IORING_OP_SHUTDOWN = 34,
|
|
IORING_OP_RENAMEAT = 35,
|
|
IORING_OP_UNLINKAT = 36,
|
|
IORING_OP_MKDIRAT = 37,
|
|
IORING_OP_SYMLINKAT = 38,
|
|
IORING_OP_LINKAT = 39,
|
|
IORING_OP_MSG_RING = 40,
|
|
IORING_OP_FSETXATTR = 41,
|
|
IORING_OP_SETXATTR = 42,
|
|
IORING_OP_FGETXATTR = 43,
|
|
IORING_OP_GETXATTR = 44,
|
|
IORING_OP_SOCKET = 45,
|
|
IORING_OP_URING_CMD = 46,
|
|
IORING_OP_SEND_ZC = 47,
|
|
IORING_OP_SENDMSG_ZC = 48,
|
|
IORING_OP_LAST = 49,
|
|
};
|
|
|
|
enum irq_domain_bus_token {
|
|
DOMAIN_BUS_ANY = 0,
|
|
DOMAIN_BUS_WIRED = 1,
|
|
DOMAIN_BUS_GENERIC_MSI = 2,
|
|
DOMAIN_BUS_PCI_MSI = 3,
|
|
DOMAIN_BUS_PLATFORM_MSI = 4,
|
|
DOMAIN_BUS_NEXUS = 5,
|
|
DOMAIN_BUS_IPI = 6,
|
|
DOMAIN_BUS_FSL_MC_MSI = 7,
|
|
DOMAIN_BUS_TI_SCI_INTA_MSI = 8,
|
|
DOMAIN_BUS_WAKEUP = 9,
|
|
DOMAIN_BUS_VMD_MSI = 10,
|
|
DOMAIN_BUS_PCI_DEVICE_MSI = 11,
|
|
DOMAIN_BUS_PCI_DEVICE_MSIX = 12,
|
|
DOMAIN_BUS_DMAR = 13,
|
|
DOMAIN_BUS_AMDVI = 14,
|
|
DOMAIN_BUS_PCI_DEVICE_IMS = 15,
|
|
};
|
|
|
|
enum irqchip_irq_state {
|
|
IRQCHIP_STATE_PENDING = 0,
|
|
IRQCHIP_STATE_ACTIVE = 1,
|
|
IRQCHIP_STATE_MASKED = 2,
|
|
IRQCHIP_STATE_LINE_LEVEL = 3,
|
|
};
|
|
|
|
enum irq_gc_flags {
|
|
IRQ_GC_INIT_MASK_CACHE = 1,
|
|
IRQ_GC_INIT_NESTED_LOCK = 2,
|
|
IRQ_GC_MASK_CACHE_PER_TYPE = 4,
|
|
IRQ_GC_NO_MASK = 8,
|
|
IRQ_GC_BE_IO = 16,
|
|
};
|
|
|
|
enum irqreturn {
|
|
IRQ_NONE = 0,
|
|
IRQ_HANDLED = 1,
|
|
IRQ_WAKE_THREAD = 2,
|
|
};
|
|
|
|
enum irq_alloc_type {
|
|
X86_IRQ_ALLOC_TYPE_IOAPIC = 1,
|
|
X86_IRQ_ALLOC_TYPE_HPET = 2,
|
|
X86_IRQ_ALLOC_TYPE_PCI_MSI = 3,
|
|
X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4,
|
|
X86_IRQ_ALLOC_TYPE_DMAR = 5,
|
|
X86_IRQ_ALLOC_TYPE_AMDVI = 6,
|
|
X86_IRQ_ALLOC_TYPE_UV = 7,
|
|
};
|
|
|
|
enum {
|
|
MSI_FLAG_USE_DEF_DOM_OPS = 1,
|
|
MSI_FLAG_USE_DEF_CHIP_OPS = 2,
|
|
MSI_FLAG_ACTIVATE_EARLY = 4,
|
|
MSI_FLAG_MUST_REACTIVATE = 8,
|
|
MSI_FLAG_DEV_SYSFS = 16,
|
|
MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32,
|
|
MSI_FLAG_FREE_MSI_DESCS = 64,
|
|
MSI_FLAG_NOMASK_QUIRK = 128,
|
|
MSI_GENERIC_FLAGS_MASK = 65535,
|
|
MSI_DOMAIN_FLAGS_MASK = 4294901760,
|
|
MSI_FLAG_MULTI_PCI_MSI = 65536,
|
|
MSI_FLAG_PCI_MSIX = 131072,
|
|
MSI_FLAG_LEVEL_CAPABLE = 262144,
|
|
MSI_FLAG_MSIX_CONTIGUOUS = 524288,
|
|
MSI_FLAG_PCI_MSIX_ALLOC_DYN = 1048576,
|
|
MSI_FLAG_PCI_IMS = 2097152,
|
|
};
|
|
|
|
enum support_mode {
|
|
ALLOW_LEGACY = 0,
|
|
DENY_LEGACY = 1,
|
|
};
|
|
|
|
enum msi_domain_ids {
|
|
MSI_DEFAULT_DOMAIN = 0,
|
|
MSI_SECONDARY_DOMAIN = 1,
|
|
MSI_MAX_DEVICE_IRQDOMAINS = 2,
|
|
};
|
|
|
|
typedef int pci_power_t;
|
|
|
|
typedef unsigned int pci_channel_state_t;
|
|
|
|
typedef phys_addr_t resource_size_t;
|
|
|
|
struct resource {
|
|
resource_size_t start;
|
|
resource_size_t end;
|
|
const char *name;
|
|
unsigned long flags;
|
|
unsigned long desc;
|
|
struct resource *parent;
|
|
struct resource *sibling;
|
|
struct resource *child;
|
|
};
|
|
|
|
typedef unsigned short pci_dev_flags_t;
|
|
|
|
struct pci_vpd {
|
|
struct mutex lock;
|
|
unsigned int len;
|
|
u8 cap;
|
|
};
|
|
|
|
struct pci_bus;
|
|
|
|
struct pci_slot;
|
|
|
|
struct rcec_ea;
|
|
|
|
struct pci_driver;
|
|
|
|
struct pcie_link_state;
|
|
|
|
struct pci_sriov;
|
|
|
|
struct pci_dev {
|
|
struct list_head bus_list;
|
|
struct pci_bus *bus;
|
|
struct pci_bus *subordinate;
|
|
void *sysdata;
|
|
struct proc_dir_entry *procent;
|
|
struct pci_slot *slot;
|
|
unsigned int devfn;
|
|
unsigned short vendor;
|
|
unsigned short device;
|
|
unsigned short subsystem_vendor;
|
|
unsigned short subsystem_device;
|
|
unsigned int class;
|
|
u8 revision;
|
|
u8 hdr_type;
|
|
struct rcec_ea *rcec_ea;
|
|
struct pci_dev *rcec;
|
|
u32 devcap;
|
|
u8 pcie_cap;
|
|
u8 msi_cap;
|
|
u8 msix_cap;
|
|
u8 pcie_mpss: 3;
|
|
u8 rom_base_reg;
|
|
u8 pin;
|
|
u16 pcie_flags_reg;
|
|
unsigned long *dma_alias_mask;
|
|
struct pci_driver *driver;
|
|
u64 dma_mask;
|
|
struct device_dma_parameters dma_parms;
|
|
pci_power_t current_state;
|
|
unsigned int imm_ready: 1;
|
|
u8 pm_cap;
|
|
unsigned int pme_support: 5;
|
|
unsigned int pme_poll: 1;
|
|
unsigned int d1_support: 1;
|
|
unsigned int d2_support: 1;
|
|
unsigned int no_d1d2: 1;
|
|
unsigned int no_d3cold: 1;
|
|
unsigned int bridge_d3: 1;
|
|
unsigned int d3cold_allowed: 1;
|
|
unsigned int mmio_always_on: 1;
|
|
unsigned int wakeup_prepared: 1;
|
|
unsigned int skip_bus_pm: 1;
|
|
unsigned int ignore_hotplug: 1;
|
|
unsigned int hotplug_user_indicators: 1;
|
|
unsigned int clear_retrain_link: 1;
|
|
unsigned int d3hot_delay;
|
|
unsigned int d3cold_delay;
|
|
struct pcie_link_state *link_state;
|
|
unsigned int ltr_path: 1;
|
|
u16 l1ss;
|
|
unsigned int pasid_no_tlp: 1;
|
|
unsigned int eetlp_prefix_path: 1;
|
|
pci_channel_state_t error_state;
|
|
struct device dev;
|
|
int cfg_size;
|
|
unsigned int irq;
|
|
struct resource resource[11];
|
|
struct resource driver_exclusive_resource;
|
|
bool match_driver;
|
|
unsigned int transparent: 1;
|
|
unsigned int io_window: 1;
|
|
unsigned int pref_window: 1;
|
|
unsigned int pref_64_window: 1;
|
|
unsigned int multifunction: 1;
|
|
unsigned int is_busmaster: 1;
|
|
unsigned int no_msi: 1;
|
|
unsigned int no_64bit_msi: 1;
|
|
unsigned int block_cfg_access: 1;
|
|
unsigned int broken_parity_status: 1;
|
|
unsigned int irq_reroute_variant: 2;
|
|
unsigned int msi_enabled: 1;
|
|
unsigned int msix_enabled: 1;
|
|
unsigned int ari_enabled: 1;
|
|
unsigned int ats_enabled: 1;
|
|
unsigned int pasid_enabled: 1;
|
|
unsigned int pri_enabled: 1;
|
|
unsigned int is_managed: 1;
|
|
unsigned int is_msi_managed: 1;
|
|
unsigned int needs_freset: 1;
|
|
unsigned int state_saved: 1;
|
|
unsigned int is_physfn: 1;
|
|
unsigned int is_virtfn: 1;
|
|
unsigned int is_hotplug_bridge: 1;
|
|
unsigned int shpc_managed: 1;
|
|
unsigned int is_thunderbolt: 1;
|
|
unsigned int untrusted: 1;
|
|
unsigned int external_facing: 1;
|
|
unsigned int broken_intx_masking: 1;
|
|
unsigned int io_window_1k: 1;
|
|
unsigned int irq_managed: 1;
|
|
unsigned int non_compliant_bars: 1;
|
|
unsigned int is_probed: 1;
|
|
unsigned int link_active_reporting: 1;
|
|
unsigned int no_vf_scan: 1;
|
|
unsigned int no_command_memory: 1;
|
|
unsigned int rom_bar_overlap: 1;
|
|
pci_dev_flags_t dev_flags;
|
|
atomic_t enable_cnt;
|
|
u32 saved_config_space[16];
|
|
struct hlist_head saved_cap_space;
|
|
int rom_attr_enabled;
|
|
struct bin_attribute *res_attr[11];
|
|
struct bin_attribute *res_attr_wc[11];
|
|
void *msix_base;
|
|
raw_spinlock_t msi_lock;
|
|
struct pci_vpd vpd;
|
|
union {
|
|
struct pci_sriov *sriov;
|
|
struct pci_dev *physfn;
|
|
};
|
|
u16 ats_cap;
|
|
u8 ats_stu;
|
|
u16 pri_cap;
|
|
u32 pri_reqs_alloc;
|
|
unsigned int pasid_required: 1;
|
|
u16 pasid_cap;
|
|
u16 pasid_features;
|
|
u16 acs_cap;
|
|
phys_addr_t rom;
|
|
size_t romlen;
|
|
const char *driver_override;
|
|
unsigned long priv_flags;
|
|
u8 reset_methods[7];
|
|
};
|
|
|
|
typedef unsigned short pci_bus_flags_t;
|
|
|
|
struct pci_ops;
|
|
|
|
struct pci_bus {
|
|
struct list_head node;
|
|
struct pci_bus *parent;
|
|
struct list_head children;
|
|
struct list_head devices;
|
|
struct pci_dev *self;
|
|
struct list_head slots;
|
|
struct resource *resource[4];
|
|
struct list_head resources;
|
|
struct resource busn_res;
|
|
struct pci_ops *ops;
|
|
void *sysdata;
|
|
struct proc_dir_entry *procdir;
|
|
unsigned char number;
|
|
unsigned char primary;
|
|
unsigned char max_bus_speed;
|
|
unsigned char cur_bus_speed;
|
|
char name[48];
|
|
unsigned short bridge_ctl;
|
|
pci_bus_flags_t bus_flags;
|
|
struct device *bridge;
|
|
struct device dev;
|
|
struct bin_attribute *legacy_io;
|
|
struct bin_attribute *legacy_mem;
|
|
unsigned int is_added: 1;
|
|
unsigned int unsafe_warn: 1;
|
|
};
|
|
|
|
struct pci_ops {
|
|
int (*add_bus)(struct pci_bus *);
|
|
void (*remove_bus)(struct pci_bus *);
|
|
void * (*map_bus)(struct pci_bus *, unsigned int, int);
|
|
int (*read)(struct pci_bus *, unsigned int, int, int, u32 *);
|
|
int (*write)(struct pci_bus *, unsigned int, int, int, u32);
|
|
};
|
|
|
|
typedef unsigned long irq_hw_number_t;
|
|
|
|
struct irq_domain_ops;
|
|
|
|
struct irq_domain_chip_generic;
|
|
|
|
struct msi_parent_ops;
|
|
|
|
struct irq_data;
|
|
|
|
struct irq_domain {
|
|
struct list_head link;
|
|
const char *name;
|
|
const struct irq_domain_ops *ops;
|
|
void *host_data;
|
|
unsigned int flags;
|
|
unsigned int mapcount;
|
|
struct mutex mutex;
|
|
struct irq_domain *root;
|
|
struct fwnode_handle *fwnode;
|
|
enum irq_domain_bus_token bus_token;
|
|
struct irq_domain_chip_generic *gc;
|
|
struct device *dev;
|
|
struct device *pm_dev;
|
|
struct irq_domain *parent;
|
|
const struct msi_parent_ops *msi_parent_ops;
|
|
irq_hw_number_t hwirq_max;
|
|
unsigned int revmap_size;
|
|
struct xarray revmap_tree;
|
|
struct irq_data __attribute__((btf_type_tag("rcu"))) *revmap[0];
|
|
};
|
|
|
|
struct irq_fwspec;
|
|
|
|
struct irq_domain_ops {
|
|
int (*match)(struct irq_domain *, struct device_node *, enum irq_domain_bus_token);
|
|
int (*select)(struct irq_domain *, struct irq_fwspec *, enum irq_domain_bus_token);
|
|
int (*map)(struct irq_domain *, unsigned int, irq_hw_number_t);
|
|
void (*unmap)(struct irq_domain *, unsigned int);
|
|
int (*xlate)(struct irq_domain *, struct device_node *, const u32 *, unsigned int, unsigned long *, unsigned int *);
|
|
int (*alloc)(struct irq_domain *, unsigned int, unsigned int, void *);
|
|
void (*free)(struct irq_domain *, unsigned int, unsigned int);
|
|
int (*activate)(struct irq_domain *, struct irq_data *, bool);
|
|
void (*deactivate)(struct irq_domain *, struct irq_data *);
|
|
int (*translate)(struct irq_domain *, struct irq_fwspec *, unsigned long *, unsigned int *);
|
|
};
|
|
|
|
struct irq_fwspec {
|
|
struct fwnode_handle *fwnode;
|
|
int param_count;
|
|
u32 param[16];
|
|
};
|
|
|
|
struct irq_common_data;
|
|
|
|
struct irq_chip;
|
|
|
|
struct irq_data {
|
|
u32 mask;
|
|
unsigned int irq;
|
|
unsigned long hwirq;
|
|
struct irq_common_data *common;
|
|
struct irq_chip *chip;
|
|
struct irq_domain *domain;
|
|
struct irq_data *parent_data;
|
|
void *chip_data;
|
|
};
|
|
|
|
struct msi_desc;
|
|
|
|
struct irq_common_data {
|
|
unsigned int state_use_accessors;
|
|
void *handler_data;
|
|
struct msi_desc *msi_desc;
|
|
cpumask_var_t affinity;
|
|
cpumask_var_t effective_affinity;
|
|
};
|
|
|
|
struct pci_msi_desc {
|
|
union {
|
|
u32 msi_mask;
|
|
u32 msix_ctrl;
|
|
};
|
|
struct {
|
|
u8 is_msix: 1;
|
|
u8 multiple: 3;
|
|
u8 multi_cap: 3;
|
|
u8 can_mask: 1;
|
|
u8 is_64: 1;
|
|
u8 is_virtual: 1;
|
|
unsigned int default_irq;
|
|
} msi_attrib;
|
|
union {
|
|
u8 mask_pos;
|
|
void *mask_base;
|
|
};
|
|
};
|
|
|
|
union msi_domain_cookie {
|
|
u64 value;
|
|
void *ptr;
|
|
void *iobase;
|
|
};
|
|
|
|
union msi_instance_cookie {
|
|
u64 value;
|
|
void *ptr;
|
|
};
|
|
|
|
struct msi_desc_data {
|
|
union msi_domain_cookie dcookie;
|
|
union msi_instance_cookie icookie;
|
|
};
|
|
|
|
struct x86_msi_addr_lo {
|
|
union {
|
|
struct {
|
|
u32 reserved_0: 2;
|
|
u32 dest_mode_logical: 1;
|
|
u32 redirect_hint: 1;
|
|
u32 reserved_1: 1;
|
|
u32 virt_destid_8_14: 7;
|
|
u32 destid_0_7: 8;
|
|
u32 base_address: 12;
|
|
};
|
|
struct {
|
|
u32 dmar_reserved_0: 2;
|
|
u32 dmar_index_15: 1;
|
|
u32 dmar_subhandle_valid: 1;
|
|
u32 dmar_format: 1;
|
|
u32 dmar_index_0_14: 15;
|
|
u32 dmar_base_address: 12;
|
|
};
|
|
};
|
|
};
|
|
|
|
typedef struct x86_msi_addr_lo arch_msi_msg_addr_lo_t;
|
|
|
|
struct x86_msi_addr_hi {
|
|
u32 reserved: 8;
|
|
u32 destid_8_31: 24;
|
|
};
|
|
|
|
typedef struct x86_msi_addr_hi arch_msi_msg_addr_hi_t;
|
|
|
|
struct x86_msi_data {
|
|
union {
|
|
struct {
|
|
u32 vector: 8;
|
|
u32 delivery_mode: 3;
|
|
u32 dest_mode_logical: 1;
|
|
u32 reserved: 2;
|
|
u32 active_low: 1;
|
|
u32 is_level: 1;
|
|
};
|
|
u32 dmar_subhandle;
|
|
};
|
|
};
|
|
|
|
typedef struct x86_msi_data arch_msi_msg_data_t;
|
|
|
|
struct msi_msg {
|
|
union {
|
|
u32 address_lo;
|
|
arch_msi_msg_addr_lo_t arch_addr_lo;
|
|
};
|
|
union {
|
|
u32 address_hi;
|
|
arch_msi_msg_addr_hi_t arch_addr_hi;
|
|
};
|
|
union {
|
|
u32 data;
|
|
arch_msi_msg_data_t arch_data;
|
|
};
|
|
};
|
|
|
|
struct irq_affinity_desc;
|
|
|
|
struct msi_desc {
|
|
unsigned int irq;
|
|
unsigned int nvec_used;
|
|
struct device *dev;
|
|
struct msi_msg msg;
|
|
struct irq_affinity_desc *affinity;
|
|
const void *iommu_cookie;
|
|
struct device_attribute *sysfs_attrs;
|
|
void (*write_msi_msg)(struct msi_desc *, void *);
|
|
void *write_msi_msg_data;
|
|
u16 msi_index;
|
|
union {
|
|
struct pci_msi_desc pci;
|
|
struct msi_desc_data data;
|
|
};
|
|
};
|
|
|
|
struct irq_affinity_desc {
|
|
struct cpumask mask;
|
|
unsigned int is_managed: 1;
|
|
};
|
|
|
|
struct irq_chip {
|
|
const char *name;
|
|
unsigned int (*irq_startup)(struct irq_data *);
|
|
void (*irq_shutdown)(struct irq_data *);
|
|
void (*irq_enable)(struct irq_data *);
|
|
void (*irq_disable)(struct irq_data *);
|
|
void (*irq_ack)(struct irq_data *);
|
|
void (*irq_mask)(struct irq_data *);
|
|
void (*irq_mask_ack)(struct irq_data *);
|
|
void (*irq_unmask)(struct irq_data *);
|
|
void (*irq_eoi)(struct irq_data *);
|
|
int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool);
|
|
int (*irq_retrigger)(struct irq_data *);
|
|
int (*irq_set_type)(struct irq_data *, unsigned int);
|
|
int (*irq_set_wake)(struct irq_data *, unsigned int);
|
|
void (*irq_bus_lock)(struct irq_data *);
|
|
void (*irq_bus_sync_unlock)(struct irq_data *);
|
|
void (*irq_suspend)(struct irq_data *);
|
|
void (*irq_resume)(struct irq_data *);
|
|
void (*irq_pm_shutdown)(struct irq_data *);
|
|
void (*irq_calc_mask)(struct irq_data *);
|
|
void (*irq_print_chip)(struct irq_data *, struct seq_file *);
|
|
int (*irq_request_resources)(struct irq_data *);
|
|
void (*irq_release_resources)(struct irq_data *);
|
|
void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *);
|
|
void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *);
|
|
int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *);
|
|
int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool);
|
|
int (*irq_set_vcpu_affinity)(struct irq_data *, void *);
|
|
void (*ipi_send_single)(struct irq_data *, unsigned int);
|
|
void (*ipi_send_mask)(struct irq_data *, const struct cpumask *);
|
|
int (*irq_nmi_setup)(struct irq_data *);
|
|
void (*irq_nmi_teardown)(struct irq_data *);
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct irq_chip_generic;
|
|
|
|
struct irq_domain_chip_generic {
|
|
unsigned int irqs_per_chip;
|
|
unsigned int num_chips;
|
|
unsigned int irq_flags_to_clear;
|
|
unsigned int irq_flags_to_set;
|
|
enum irq_gc_flags gc_flags;
|
|
struct irq_chip_generic *gc[0];
|
|
};
|
|
|
|
struct irq_chip_regs {
|
|
unsigned long enable;
|
|
unsigned long disable;
|
|
unsigned long mask;
|
|
unsigned long ack;
|
|
unsigned long eoi;
|
|
unsigned long type;
|
|
unsigned long polarity;
|
|
};
|
|
|
|
struct irq_desc;
|
|
|
|
typedef void (*irq_flow_handler_t)(struct irq_desc *);
|
|
|
|
struct irq_chip_type {
|
|
struct irq_chip chip;
|
|
struct irq_chip_regs regs;
|
|
irq_flow_handler_t handler;
|
|
u32 type;
|
|
u32 mask_cache_priv;
|
|
u32 *mask_cache;
|
|
};
|
|
|
|
struct irq_chip_generic {
|
|
raw_spinlock_t lock;
|
|
void *reg_base;
|
|
u32 (*reg_readl)(void *);
|
|
void (*reg_writel)(u32, void *);
|
|
void (*suspend)(struct irq_chip_generic *);
|
|
void (*resume)(struct irq_chip_generic *);
|
|
unsigned int irq_base;
|
|
unsigned int irq_cnt;
|
|
u32 mask_cache;
|
|
u32 type_cache;
|
|
u32 polarity_cache;
|
|
u32 wake_enabled;
|
|
u32 wake_active;
|
|
unsigned int num_ct;
|
|
void *private;
|
|
unsigned long installed;
|
|
unsigned long unused;
|
|
struct irq_domain *domain;
|
|
struct list_head list;
|
|
struct irq_chip_type chip_types[0];
|
|
};
|
|
|
|
struct irqaction;
|
|
|
|
struct irq_affinity_notify;
|
|
|
|
struct irq_desc {
|
|
struct irq_common_data irq_common_data;
|
|
struct irq_data irq_data;
|
|
unsigned int __attribute__((btf_type_tag("percpu"))) *kstat_irqs;
|
|
irq_flow_handler_t handle_irq;
|
|
struct irqaction *action;
|
|
unsigned int status_use_accessors;
|
|
unsigned int core_internal_state__do_not_mess_with_it;
|
|
unsigned int depth;
|
|
unsigned int wake_depth;
|
|
unsigned int tot_count;
|
|
unsigned int irq_count;
|
|
unsigned long last_unhandled;
|
|
unsigned int irqs_unhandled;
|
|
atomic_t threads_handled;
|
|
int threads_handled_last;
|
|
raw_spinlock_t lock;
|
|
struct cpumask *percpu_enabled;
|
|
const struct cpumask *percpu_affinity;
|
|
const struct cpumask *affinity_hint;
|
|
struct irq_affinity_notify *affinity_notify;
|
|
cpumask_var_t pending_mask;
|
|
unsigned long threads_oneshot;
|
|
atomic_t threads_active;
|
|
wait_queue_head_t wait_for_threads;
|
|
unsigned int nr_actions;
|
|
unsigned int no_suspend_depth;
|
|
unsigned int cond_suspend_depth;
|
|
unsigned int force_resume_depth;
|
|
struct proc_dir_entry *dir;
|
|
struct callback_head rcu;
|
|
struct kobject kobj;
|
|
struct mutex request_mutex;
|
|
int parent_irq;
|
|
struct module *owner;
|
|
const char *name;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef enum irqreturn irqreturn_t;
|
|
|
|
typedef irqreturn_t (*irq_handler_t)(int, void *);
|
|
|
|
struct irqaction {
|
|
irq_handler_t handler;
|
|
void *dev_id;
|
|
void __attribute__((btf_type_tag("percpu"))) *percpu_dev_id;
|
|
struct irqaction *next;
|
|
irq_handler_t thread_fn;
|
|
struct task_struct *thread;
|
|
struct irqaction *secondary;
|
|
unsigned int irq;
|
|
unsigned int flags;
|
|
unsigned long thread_flags;
|
|
unsigned long thread_mask;
|
|
const char *name;
|
|
struct proc_dir_entry *dir;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct irq_affinity_notify {
|
|
unsigned int irq;
|
|
struct kref kref;
|
|
struct work_struct work;
|
|
void (*notify)(struct irq_affinity_notify *, const cpumask_t *);
|
|
void (*release)(struct kref *);
|
|
};
|
|
|
|
struct msi_domain_info;
|
|
|
|
struct msi_parent_ops {
|
|
u32 supported_flags;
|
|
const char *prefix;
|
|
bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *);
|
|
};
|
|
|
|
struct msi_domain_ops;
|
|
|
|
struct msi_domain_info {
|
|
u32 flags;
|
|
enum irq_domain_bus_token bus_token;
|
|
unsigned int hwsize;
|
|
struct msi_domain_ops *ops;
|
|
struct irq_chip *chip;
|
|
void *chip_data;
|
|
irq_flow_handler_t handler;
|
|
void *handler_data;
|
|
const char *handler_name;
|
|
void *data;
|
|
};
|
|
|
|
struct irq_alloc_info;
|
|
|
|
typedef struct irq_alloc_info msi_alloc_info_t;
|
|
|
|
struct msi_domain_ops {
|
|
irq_hw_number_t (*get_hwirq)(struct msi_domain_info *, msi_alloc_info_t *);
|
|
int (*msi_init)(struct irq_domain *, struct msi_domain_info *, unsigned int, irq_hw_number_t, msi_alloc_info_t *);
|
|
void (*msi_free)(struct irq_domain *, struct msi_domain_info *, unsigned int);
|
|
int (*msi_prepare)(struct irq_domain *, struct device *, int, msi_alloc_info_t *);
|
|
void (*prepare_desc)(struct irq_domain *, msi_alloc_info_t *, struct msi_desc *);
|
|
void (*set_desc)(msi_alloc_info_t *, struct msi_desc *);
|
|
int (*domain_alloc_irqs)(struct irq_domain *, struct device *, int);
|
|
void (*domain_free_irqs)(struct irq_domain *, struct device *);
|
|
void (*msi_post_free)(struct irq_domain *, struct device *);
|
|
};
|
|
|
|
struct ioapic_alloc_info {
|
|
int pin;
|
|
int node;
|
|
u32 is_level: 1;
|
|
u32 active_low: 1;
|
|
u32 valid: 1;
|
|
};
|
|
|
|
struct uv_alloc_info {
|
|
int limit;
|
|
int blade;
|
|
unsigned long offset;
|
|
char *name;
|
|
};
|
|
|
|
struct irq_alloc_info {
|
|
enum irq_alloc_type type;
|
|
u32 flags;
|
|
u32 devid;
|
|
irq_hw_number_t hwirq;
|
|
const struct cpumask *mask;
|
|
struct msi_desc *desc;
|
|
void *data;
|
|
union {
|
|
struct ioapic_alloc_info ioapic;
|
|
struct uv_alloc_info uv;
|
|
};
|
|
};
|
|
|
|
struct msi_dev_domain {
|
|
struct xarray store;
|
|
struct irq_domain *domain;
|
|
};
|
|
|
|
struct platform_msi_priv_data;
|
|
|
|
struct msi_device_data {
|
|
unsigned long properties;
|
|
struct platform_msi_priv_data *platform_data;
|
|
struct mutex mutex;
|
|
struct msi_dev_domain __domains[2];
|
|
unsigned long __iter_idx;
|
|
};
|
|
|
|
struct hotplug_slot;
|
|
|
|
struct pci_slot {
|
|
struct pci_bus *bus;
|
|
struct list_head list;
|
|
struct hotplug_slot *hotplug;
|
|
unsigned char number;
|
|
struct kobject kobj;
|
|
};
|
|
|
|
struct pci_dynids {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct pci_device_id;
|
|
|
|
struct pci_error_handlers;
|
|
|
|
struct pci_driver {
|
|
struct list_head node;
|
|
const char *name;
|
|
const struct pci_device_id *id_table;
|
|
int (*probe)(struct pci_dev *, const struct pci_device_id *);
|
|
void (*remove)(struct pci_dev *);
|
|
int (*suspend)(struct pci_dev *, pm_message_t);
|
|
int (*resume)(struct pci_dev *);
|
|
void (*shutdown)(struct pci_dev *);
|
|
int (*sriov_configure)(struct pci_dev *, int);
|
|
int (*sriov_set_msix_vec_count)(struct pci_dev *, int);
|
|
u32 (*sriov_get_vf_total_msix)(struct pci_dev *);
|
|
const struct pci_error_handlers *err_handler;
|
|
const struct attribute_group **groups;
|
|
const struct attribute_group **dev_groups;
|
|
struct device_driver driver;
|
|
struct pci_dynids dynids;
|
|
bool driver_managed_dma;
|
|
};
|
|
|
|
struct pci_device_id {
|
|
__u32 vendor;
|
|
__u32 device;
|
|
__u32 subvendor;
|
|
__u32 subdevice;
|
|
__u32 class;
|
|
__u32 class_mask;
|
|
kernel_ulong_t driver_data;
|
|
__u32 override_only;
|
|
};
|
|
|
|
typedef unsigned int pci_ers_result_t;
|
|
|
|
struct pci_error_handlers {
|
|
pci_ers_result_t (*error_detected)(struct pci_dev *, pci_channel_state_t);
|
|
pci_ers_result_t (*mmio_enabled)(struct pci_dev *);
|
|
pci_ers_result_t (*slot_reset)(struct pci_dev *);
|
|
void (*reset_prepare)(struct pci_dev *);
|
|
void (*reset_done)(struct pci_dev *);
|
|
void (*resume)(struct pci_dev *);
|
|
void (*cor_error_detected)(struct pci_dev *);
|
|
};
|
|
|
|
struct irq_affinity {
|
|
unsigned int pre_vectors;
|
|
unsigned int post_vectors;
|
|
unsigned int nr_sets;
|
|
unsigned int set_size[4];
|
|
void (*calc_sets)(struct irq_affinity *, unsigned int);
|
|
void *priv;
|
|
};
|
|
|
|
struct msix_entry {
|
|
u32 vector;
|
|
u16 entry;
|
|
};
|
|
|
|
struct msi_map {
|
|
int index;
|
|
int virq;
|
|
};
|
|
|
|
typedef u32 acpi_status;
|
|
|
|
typedef u16 acpi_owner_id;
|
|
|
|
union acpi_parse_object;
|
|
|
|
struct acpi_namespace_node;
|
|
|
|
union acpi_generic_state;
|
|
|
|
struct acpi_parse_state {
|
|
u8 *aml_start;
|
|
u8 *aml;
|
|
u8 *aml_end;
|
|
u8 *pkg_start;
|
|
u8 *pkg_end;
|
|
union acpi_parse_object *start_op;
|
|
struct acpi_namespace_node *start_node;
|
|
union acpi_generic_state *scope;
|
|
union acpi_parse_object *start_scope;
|
|
u32 aml_size;
|
|
};
|
|
|
|
union acpi_name_union {
|
|
u32 integer;
|
|
char ascii[4];
|
|
};
|
|
|
|
union acpi_operand_object;
|
|
|
|
struct acpi_namespace_node {
|
|
union acpi_operand_object *object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 flags;
|
|
union acpi_name_union name;
|
|
struct acpi_namespace_node *parent;
|
|
struct acpi_namespace_node *child;
|
|
struct acpi_namespace_node *peer;
|
|
acpi_owner_id owner_id;
|
|
};
|
|
|
|
struct acpi_walk_state;
|
|
|
|
typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **);
|
|
|
|
typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *);
|
|
|
|
struct acpi_opcode_info;
|
|
|
|
struct acpi_thread_state;
|
|
|
|
struct acpi_walk_state {
|
|
struct acpi_walk_state *next;
|
|
u8 descriptor_type;
|
|
u8 walk_type;
|
|
u16 opcode;
|
|
u8 next_op_info;
|
|
u8 num_operands;
|
|
u8 operand_index;
|
|
acpi_owner_id owner_id;
|
|
u8 last_predicate;
|
|
u8 current_result;
|
|
u8 return_used;
|
|
u8 scope_depth;
|
|
u8 pass_number;
|
|
u8 namespace_override;
|
|
u8 result_size;
|
|
u8 result_count;
|
|
u8 *aml;
|
|
u32 arg_types;
|
|
u32 method_breakpoint;
|
|
u32 user_breakpoint;
|
|
u32 parse_flags;
|
|
struct acpi_parse_state parser_state;
|
|
u32 prev_arg_types;
|
|
u32 arg_count;
|
|
u16 method_nesting_depth;
|
|
u8 method_is_nested;
|
|
struct acpi_namespace_node arguments[7];
|
|
struct acpi_namespace_node local_variables[8];
|
|
union acpi_operand_object *operands[9];
|
|
union acpi_operand_object **params;
|
|
u8 *aml_last_while;
|
|
union acpi_operand_object **caller_return_desc;
|
|
union acpi_generic_state *control_state;
|
|
struct acpi_namespace_node *deferred_node;
|
|
union acpi_operand_object *implicit_return_obj;
|
|
struct acpi_namespace_node *method_call_node;
|
|
union acpi_parse_object *method_call_op;
|
|
union acpi_operand_object *method_desc;
|
|
struct acpi_namespace_node *method_node;
|
|
char *method_pathname;
|
|
union acpi_parse_object *op;
|
|
const struct acpi_opcode_info *op_info;
|
|
union acpi_parse_object *origin;
|
|
union acpi_operand_object *result_obj;
|
|
union acpi_generic_state *results;
|
|
union acpi_operand_object *return_desc;
|
|
union acpi_generic_state *scope_info;
|
|
union acpi_parse_object *prev_op;
|
|
union acpi_parse_object *next_op;
|
|
struct acpi_thread_state *thread;
|
|
acpi_parse_downwards descending_callback;
|
|
acpi_parse_upwards ascending_callback;
|
|
};
|
|
|
|
union acpi_parse_value {
|
|
u64 integer;
|
|
u32 size;
|
|
char *string;
|
|
u8 *buffer;
|
|
char *name;
|
|
union acpi_parse_object *arg;
|
|
};
|
|
|
|
struct acpi_parse_obj_common {
|
|
union acpi_parse_object *parent;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 aml_opcode;
|
|
u8 *aml;
|
|
union acpi_parse_object *next;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_parse_value value;
|
|
u8 arg_list_length;
|
|
};
|
|
|
|
struct acpi_parse_obj_named {
|
|
union acpi_parse_object *parent;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 aml_opcode;
|
|
u8 *aml;
|
|
union acpi_parse_object *next;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_parse_value value;
|
|
u8 arg_list_length;
|
|
char *path;
|
|
u8 *data;
|
|
u32 length;
|
|
u32 name;
|
|
};
|
|
|
|
struct acpi_parse_obj_asl {
|
|
union acpi_parse_object *parent;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 aml_opcode;
|
|
u8 *aml;
|
|
union acpi_parse_object *next;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_parse_value value;
|
|
u8 arg_list_length;
|
|
union acpi_parse_object *child;
|
|
union acpi_parse_object *parent_method;
|
|
char *filename;
|
|
u8 file_changed;
|
|
char *parent_filename;
|
|
char *external_name;
|
|
char *namepath;
|
|
char name_seg[4];
|
|
u32 extra_value;
|
|
u32 column;
|
|
u32 line_number;
|
|
u32 logical_line_number;
|
|
u32 logical_byte_offset;
|
|
u32 end_line;
|
|
u32 end_logical_line;
|
|
u32 acpi_btype;
|
|
u32 aml_length;
|
|
u32 aml_subtree_length;
|
|
u32 final_aml_length;
|
|
u32 final_aml_offset;
|
|
u32 compile_flags;
|
|
u16 parse_opcode;
|
|
u8 aml_opcode_length;
|
|
u8 aml_pkg_len_bytes;
|
|
u8 extra;
|
|
char parse_op_name[20];
|
|
};
|
|
|
|
union acpi_parse_object {
|
|
struct acpi_parse_obj_common common;
|
|
struct acpi_parse_obj_named named;
|
|
struct acpi_parse_obj_asl asl;
|
|
};
|
|
|
|
struct acpi_object_common {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
};
|
|
|
|
struct acpi_object_integer {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 fill[3];
|
|
u64 value;
|
|
};
|
|
|
|
struct acpi_object_string {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
char *pointer;
|
|
u32 length;
|
|
};
|
|
|
|
struct acpi_object_buffer {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 *pointer;
|
|
u32 length;
|
|
u32 aml_length;
|
|
u8 *aml_start;
|
|
struct acpi_namespace_node *node;
|
|
};
|
|
|
|
struct acpi_object_package {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_operand_object **elements;
|
|
u8 *aml_start;
|
|
u32 aml_length;
|
|
u32 count;
|
|
};
|
|
|
|
struct acpi_object_event {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
void *os_semaphore;
|
|
};
|
|
|
|
typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *);
|
|
|
|
struct acpi_object_method {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 info_flags;
|
|
u8 param_count;
|
|
u8 sync_level;
|
|
union acpi_operand_object *mutex;
|
|
union acpi_operand_object *node;
|
|
u8 *aml_start;
|
|
union {
|
|
acpi_internal_method implementation;
|
|
union acpi_operand_object *handler;
|
|
} dispatch;
|
|
u32 aml_length;
|
|
acpi_owner_id owner_id;
|
|
u8 thread_count;
|
|
};
|
|
|
|
struct acpi_object_mutex {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 sync_level;
|
|
u16 acquisition_depth;
|
|
void *os_mutex;
|
|
u64 thread_id;
|
|
struct acpi_thread_state *owner_thread;
|
|
union acpi_operand_object *prev;
|
|
union acpi_operand_object *next;
|
|
struct acpi_namespace_node *node;
|
|
u8 original_sync_level;
|
|
};
|
|
|
|
typedef u64 acpi_physical_address;
|
|
|
|
struct acpi_object_region {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 space_id;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_operand_object *handler;
|
|
union acpi_operand_object *next;
|
|
acpi_physical_address address;
|
|
u32 length;
|
|
void *pointer;
|
|
};
|
|
|
|
struct acpi_object_notify_common {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
union acpi_operand_object *notify_list[2];
|
|
union acpi_operand_object *handler;
|
|
};
|
|
|
|
struct acpi_gpe_block_info;
|
|
|
|
struct acpi_object_device {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
union acpi_operand_object *notify_list[2];
|
|
union acpi_operand_object *handler;
|
|
struct acpi_gpe_block_info *gpe_block;
|
|
};
|
|
|
|
struct acpi_object_power_resource {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
union acpi_operand_object *notify_list[2];
|
|
union acpi_operand_object *handler;
|
|
u32 system_level;
|
|
u32 resource_order;
|
|
};
|
|
|
|
typedef u64 acpi_io_address;
|
|
|
|
struct acpi_object_processor {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 proc_id;
|
|
u8 length;
|
|
union acpi_operand_object *notify_list[2];
|
|
union acpi_operand_object *handler;
|
|
acpi_io_address address;
|
|
};
|
|
|
|
struct acpi_object_thermal_zone {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
union acpi_operand_object *notify_list[2];
|
|
union acpi_operand_object *handler;
|
|
};
|
|
|
|
struct acpi_object_field_common {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 field_flags;
|
|
u8 attribute;
|
|
u8 access_byte_width;
|
|
struct acpi_namespace_node *node;
|
|
u32 bit_length;
|
|
u32 base_byte_offset;
|
|
u32 value;
|
|
u8 start_field_bit_offset;
|
|
u8 access_length;
|
|
union acpi_operand_object *region_obj;
|
|
};
|
|
|
|
struct acpi_object_region_field {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 field_flags;
|
|
u8 attribute;
|
|
u8 access_byte_width;
|
|
struct acpi_namespace_node *node;
|
|
u32 bit_length;
|
|
u32 base_byte_offset;
|
|
u32 value;
|
|
u8 start_field_bit_offset;
|
|
u8 access_length;
|
|
u16 resource_length;
|
|
union acpi_operand_object *region_obj;
|
|
u8 *resource_buffer;
|
|
u16 pin_number_index;
|
|
u8 *internal_pcc_buffer;
|
|
};
|
|
|
|
struct acpi_object_buffer_field {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 field_flags;
|
|
u8 attribute;
|
|
u8 access_byte_width;
|
|
struct acpi_namespace_node *node;
|
|
u32 bit_length;
|
|
u32 base_byte_offset;
|
|
u32 value;
|
|
u8 start_field_bit_offset;
|
|
u8 access_length;
|
|
u8 is_create_field;
|
|
union acpi_operand_object *buffer_obj;
|
|
};
|
|
|
|
struct acpi_object_bank_field {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 field_flags;
|
|
u8 attribute;
|
|
u8 access_byte_width;
|
|
struct acpi_namespace_node *node;
|
|
u32 bit_length;
|
|
u32 base_byte_offset;
|
|
u32 value;
|
|
u8 start_field_bit_offset;
|
|
u8 access_length;
|
|
union acpi_operand_object *region_obj;
|
|
union acpi_operand_object *bank_obj;
|
|
};
|
|
|
|
struct acpi_object_index_field {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 field_flags;
|
|
u8 attribute;
|
|
u8 access_byte_width;
|
|
struct acpi_namespace_node *node;
|
|
u32 bit_length;
|
|
u32 base_byte_offset;
|
|
u32 value;
|
|
u8 start_field_bit_offset;
|
|
u8 access_length;
|
|
union acpi_operand_object *index_obj;
|
|
union acpi_operand_object *data_obj;
|
|
};
|
|
|
|
typedef void *acpi_handle;
|
|
|
|
typedef void (*acpi_notify_handler)(acpi_handle, u32, void *);
|
|
|
|
struct acpi_object_notify_handler {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
struct acpi_namespace_node *node;
|
|
u32 handler_type;
|
|
acpi_notify_handler handler;
|
|
void *context;
|
|
union acpi_operand_object *next[2];
|
|
};
|
|
|
|
typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *);
|
|
|
|
typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **);
|
|
|
|
struct acpi_object_addr_handler {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 space_id;
|
|
u8 handler_flags;
|
|
acpi_adr_space_handler handler;
|
|
struct acpi_namespace_node *node;
|
|
void *context;
|
|
void *context_mutex;
|
|
acpi_adr_space_setup setup;
|
|
union acpi_operand_object *region_list;
|
|
union acpi_operand_object *next;
|
|
};
|
|
|
|
struct acpi_object_reference {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
u8 class;
|
|
u8 target_type;
|
|
u8 resolved;
|
|
void *object;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_operand_object **where;
|
|
u8 *index_pointer;
|
|
u8 *aml;
|
|
u32 value;
|
|
};
|
|
|
|
struct acpi_object_extra {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
struct acpi_namespace_node *method_REG;
|
|
struct acpi_namespace_node *scope_node;
|
|
void *region_context;
|
|
u8 *aml_start;
|
|
u32 aml_length;
|
|
};
|
|
|
|
typedef void (*acpi_object_handler)(acpi_handle, void *);
|
|
|
|
struct acpi_object_data {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
acpi_object_handler handler;
|
|
void *pointer;
|
|
};
|
|
|
|
struct acpi_object_cache_list {
|
|
union acpi_operand_object *next_object;
|
|
u8 descriptor_type;
|
|
u8 type;
|
|
u16 reference_count;
|
|
u8 flags;
|
|
union acpi_operand_object *next;
|
|
};
|
|
|
|
union acpi_operand_object {
|
|
struct acpi_object_common common;
|
|
struct acpi_object_integer integer;
|
|
struct acpi_object_string string;
|
|
struct acpi_object_buffer buffer;
|
|
struct acpi_object_package package;
|
|
struct acpi_object_event event;
|
|
struct acpi_object_method method;
|
|
struct acpi_object_mutex mutex;
|
|
struct acpi_object_region region;
|
|
struct acpi_object_notify_common common_notify;
|
|
struct acpi_object_device device;
|
|
struct acpi_object_power_resource power_resource;
|
|
struct acpi_object_processor processor;
|
|
struct acpi_object_thermal_zone thermal_zone;
|
|
struct acpi_object_field_common common_field;
|
|
struct acpi_object_region_field field;
|
|
struct acpi_object_buffer_field buffer_field;
|
|
struct acpi_object_bank_field bank_field;
|
|
struct acpi_object_index_field index_field;
|
|
struct acpi_object_notify_handler notify;
|
|
struct acpi_object_addr_handler address_space;
|
|
struct acpi_object_reference reference;
|
|
struct acpi_object_extra extra;
|
|
struct acpi_object_data data;
|
|
struct acpi_object_cache_list cache;
|
|
struct acpi_namespace_node node;
|
|
};
|
|
|
|
struct acpi_thread_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
u8 current_sync_level;
|
|
struct acpi_walk_state *walk_state_list;
|
|
union acpi_operand_object *acquired_mutex_list;
|
|
u64 thread_id;
|
|
};
|
|
|
|
struct acpi_gpe_xrupt_info;
|
|
|
|
struct acpi_gpe_register_info;
|
|
|
|
struct acpi_gpe_event_info;
|
|
|
|
struct acpi_gpe_block_info {
|
|
struct acpi_namespace_node *node;
|
|
struct acpi_gpe_block_info *previous;
|
|
struct acpi_gpe_block_info *next;
|
|
struct acpi_gpe_xrupt_info *xrupt_block;
|
|
struct acpi_gpe_register_info *register_info;
|
|
struct acpi_gpe_event_info *event_info;
|
|
u64 address;
|
|
u32 register_count;
|
|
u16 gpe_count;
|
|
u16 block_base_number;
|
|
u8 space_id;
|
|
u8 initialized;
|
|
};
|
|
|
|
struct acpi_gpe_xrupt_info {
|
|
struct acpi_gpe_xrupt_info *previous;
|
|
struct acpi_gpe_xrupt_info *next;
|
|
struct acpi_gpe_block_info *gpe_block_list_head;
|
|
u32 interrupt_number;
|
|
};
|
|
|
|
struct acpi_gpe_address {
|
|
u8 space_id;
|
|
u64 address;
|
|
};
|
|
|
|
struct acpi_gpe_register_info {
|
|
struct acpi_gpe_address status_address;
|
|
struct acpi_gpe_address enable_address;
|
|
u16 base_gpe_number;
|
|
u8 enable_for_wake;
|
|
u8 enable_for_run;
|
|
u8 mask_for_run;
|
|
u8 enable_mask;
|
|
};
|
|
|
|
struct acpi_gpe_handler_info;
|
|
|
|
struct acpi_gpe_notify_info;
|
|
|
|
union acpi_gpe_dispatch_info {
|
|
struct acpi_namespace_node *method_node;
|
|
struct acpi_gpe_handler_info *handler;
|
|
struct acpi_gpe_notify_info *notify_list;
|
|
};
|
|
|
|
struct acpi_gpe_event_info {
|
|
union acpi_gpe_dispatch_info dispatch;
|
|
struct acpi_gpe_register_info *register_info;
|
|
u8 flags;
|
|
u8 gpe_number;
|
|
u8 runtime_count;
|
|
u8 disable_for_dispatch;
|
|
};
|
|
|
|
typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *);
|
|
|
|
struct acpi_gpe_handler_info {
|
|
acpi_gpe_handler address;
|
|
void *context;
|
|
struct acpi_namespace_node *method_node;
|
|
u8 original_flags;
|
|
u8 originally_enabled;
|
|
};
|
|
|
|
struct acpi_gpe_notify_info {
|
|
struct acpi_namespace_node *device_node;
|
|
struct acpi_gpe_notify_info *next;
|
|
};
|
|
|
|
struct acpi_common_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
};
|
|
|
|
struct acpi_control_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
u16 opcode;
|
|
union acpi_parse_object *predicate_op;
|
|
u8 *aml_predicate_start;
|
|
u8 *package_end;
|
|
u64 loop_timeout;
|
|
};
|
|
|
|
struct acpi_update_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
union acpi_operand_object *object;
|
|
};
|
|
|
|
struct acpi_scope_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
struct acpi_namespace_node *node;
|
|
};
|
|
|
|
struct acpi_pscope_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
u32 arg_count;
|
|
union acpi_parse_object *op;
|
|
u8 *arg_end;
|
|
u8 *pkg_end;
|
|
u32 arg_list;
|
|
};
|
|
|
|
struct acpi_pkg_state {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
u32 index;
|
|
union acpi_operand_object *source_object;
|
|
union acpi_operand_object *dest_object;
|
|
struct acpi_walk_state *walk_state;
|
|
void *this_target_obj;
|
|
u32 num_packages;
|
|
};
|
|
|
|
struct acpi_result_values {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
union acpi_operand_object *obj_desc[8];
|
|
};
|
|
|
|
struct acpi_global_notify_handler;
|
|
|
|
struct acpi_notify_info {
|
|
void *next;
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 value;
|
|
u16 state;
|
|
u8 handler_list_id;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_operand_object *handler_list_head;
|
|
struct acpi_global_notify_handler *global;
|
|
};
|
|
|
|
union acpi_generic_state {
|
|
struct acpi_common_state common;
|
|
struct acpi_control_state control;
|
|
struct acpi_update_state update;
|
|
struct acpi_scope_state scope;
|
|
struct acpi_pscope_state parse_scope;
|
|
struct acpi_pkg_state pkg;
|
|
struct acpi_thread_state thread;
|
|
struct acpi_result_values results;
|
|
struct acpi_notify_info notify;
|
|
};
|
|
|
|
struct acpi_global_notify_handler {
|
|
acpi_notify_handler handler;
|
|
void *context;
|
|
};
|
|
|
|
struct acpi_opcode_info {
|
|
u32 parse_args;
|
|
u32 runtime_args;
|
|
u16 flags;
|
|
u8 object_type;
|
|
u8 class;
|
|
u8 type;
|
|
};
|
|
|
|
typedef u8 acpi_adr_space_type;
|
|
|
|
typedef u64 acpi_size;
|
|
|
|
typedef u32 acpi_mutex_handle;
|
|
|
|
typedef u32 acpi_object_type;
|
|
|
|
typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **);
|
|
|
|
struct acpi_gpe_walk_info {
|
|
struct acpi_namespace_node *gpe_device;
|
|
struct acpi_gpe_block_info *gpe_block;
|
|
u16 count;
|
|
acpi_owner_id owner_id;
|
|
u8 execute_by_owner_id;
|
|
};
|
|
|
|
enum {
|
|
ACPI_REFCLASS_LOCAL = 0,
|
|
ACPI_REFCLASS_ARG = 1,
|
|
ACPI_REFCLASS_REFOF = 2,
|
|
ACPI_REFCLASS_INDEX = 3,
|
|
ACPI_REFCLASS_TABLE = 4,
|
|
ACPI_REFCLASS_NAME = 5,
|
|
ACPI_REFCLASS_DEBUG = 6,
|
|
ACPI_REFCLASS_MAX = 6,
|
|
};
|
|
|
|
struct acpi_common_descriptor {
|
|
void *common_pointer;
|
|
u8 descriptor_type;
|
|
};
|
|
|
|
union acpi_descriptor {
|
|
struct acpi_common_descriptor common;
|
|
union acpi_operand_object object;
|
|
struct acpi_namespace_node node;
|
|
union acpi_parse_object op;
|
|
};
|
|
|
|
struct acpi_table_header {
|
|
char signature[4];
|
|
u32 length;
|
|
u8 revision;
|
|
u8 checksum;
|
|
char oem_id[6];
|
|
char oem_table_id[8];
|
|
u32 oem_revision;
|
|
char asl_compiler_id[4];
|
|
u32 asl_compiler_revision;
|
|
};
|
|
|
|
struct acpi_table_desc {
|
|
acpi_physical_address address;
|
|
struct acpi_table_header *pointer;
|
|
u32 length;
|
|
union acpi_name_union signature;
|
|
acpi_owner_id owner_id;
|
|
u8 flags;
|
|
u16 validation_count;
|
|
};
|
|
|
|
struct acpi_table_facs {
|
|
char signature[4];
|
|
u32 length;
|
|
u32 hardware_signature;
|
|
u32 firmware_waking_vector;
|
|
u32 global_lock;
|
|
u32 flags;
|
|
u64 xfirmware_waking_vector;
|
|
u8 version;
|
|
u8 reserved[3];
|
|
u32 ospm_flags;
|
|
u8 reserved1[24];
|
|
};
|
|
|
|
struct acpi_table_rsdp {
|
|
char signature[8];
|
|
u8 checksum;
|
|
char oem_id[6];
|
|
u8 revision;
|
|
u32 rsdt_physical_address;
|
|
u32 length;
|
|
u64 xsdt_physical_address;
|
|
u8 extended_checksum;
|
|
u8 reserved[3];
|
|
} __attribute__((packed));
|
|
|
|
enum uart_pm_state {
|
|
UART_PM_STATE_ON = 0,
|
|
UART_PM_STATE_OFF = 3,
|
|
UART_PM_STATE_UNDEFINED = 4,
|
|
};
|
|
|
|
enum dma_desc_metadata_mode {
|
|
DESC_METADATA_NONE = 0,
|
|
DESC_METADATA_CLIENT = 1,
|
|
DESC_METADATA_ENGINE = 2,
|
|
};
|
|
|
|
enum dmaengine_alignment {
|
|
DMAENGINE_ALIGN_1_BYTE = 0,
|
|
DMAENGINE_ALIGN_2_BYTES = 1,
|
|
DMAENGINE_ALIGN_4_BYTES = 2,
|
|
DMAENGINE_ALIGN_8_BYTES = 3,
|
|
DMAENGINE_ALIGN_16_BYTES = 4,
|
|
DMAENGINE_ALIGN_32_BYTES = 5,
|
|
DMAENGINE_ALIGN_64_BYTES = 6,
|
|
DMAENGINE_ALIGN_128_BYTES = 7,
|
|
DMAENGINE_ALIGN_256_BYTES = 8,
|
|
};
|
|
|
|
enum dma_residue_granularity {
|
|
DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0,
|
|
DMA_RESIDUE_GRANULARITY_SEGMENT = 1,
|
|
DMA_RESIDUE_GRANULARITY_BURST = 2,
|
|
};
|
|
|
|
enum dma_ctrl_flags {
|
|
DMA_PREP_INTERRUPT = 1,
|
|
DMA_CTRL_ACK = 2,
|
|
DMA_PREP_PQ_DISABLE_P = 4,
|
|
DMA_PREP_PQ_DISABLE_Q = 8,
|
|
DMA_PREP_CONTINUE = 16,
|
|
DMA_PREP_FENCE = 32,
|
|
DMA_CTRL_REUSE = 64,
|
|
DMA_PREP_CMD = 128,
|
|
DMA_PREP_REPEAT = 256,
|
|
DMA_PREP_LOAD_EOT = 512,
|
|
};
|
|
|
|
enum dmaengine_tx_result {
|
|
DMA_TRANS_NOERROR = 0,
|
|
DMA_TRANS_READ_FAILED = 1,
|
|
DMA_TRANS_WRITE_FAILED = 2,
|
|
DMA_TRANS_ABORTED = 3,
|
|
};
|
|
|
|
enum sum_check_flags {
|
|
SUM_CHECK_P_RESULT = 1,
|
|
SUM_CHECK_Q_RESULT = 2,
|
|
};
|
|
|
|
enum dma_transfer_direction {
|
|
DMA_MEM_TO_MEM = 0,
|
|
DMA_MEM_TO_DEV = 1,
|
|
DMA_DEV_TO_MEM = 2,
|
|
DMA_DEV_TO_DEV = 3,
|
|
DMA_TRANS_NONE = 4,
|
|
};
|
|
|
|
enum dma_slave_buswidth {
|
|
DMA_SLAVE_BUSWIDTH_UNDEFINED = 0,
|
|
DMA_SLAVE_BUSWIDTH_1_BYTE = 1,
|
|
DMA_SLAVE_BUSWIDTH_2_BYTES = 2,
|
|
DMA_SLAVE_BUSWIDTH_3_BYTES = 3,
|
|
DMA_SLAVE_BUSWIDTH_4_BYTES = 4,
|
|
DMA_SLAVE_BUSWIDTH_8_BYTES = 8,
|
|
DMA_SLAVE_BUSWIDTH_16_BYTES = 16,
|
|
DMA_SLAVE_BUSWIDTH_32_BYTES = 32,
|
|
DMA_SLAVE_BUSWIDTH_64_BYTES = 64,
|
|
DMA_SLAVE_BUSWIDTH_128_BYTES = 128,
|
|
};
|
|
|
|
enum dma_status {
|
|
DMA_COMPLETE = 0,
|
|
DMA_IN_PROGRESS = 1,
|
|
DMA_PAUSED = 2,
|
|
DMA_ERROR = 3,
|
|
DMA_OUT_OF_ORDER = 4,
|
|
};
|
|
|
|
struct serial_icounter_struct {
|
|
int cts;
|
|
int dsr;
|
|
int rng;
|
|
int dcd;
|
|
int rx;
|
|
int tx;
|
|
int frame;
|
|
int overrun;
|
|
int parity;
|
|
int brk;
|
|
int buf_overrun;
|
|
int reserved[9];
|
|
};
|
|
|
|
struct serial_struct {
|
|
int type;
|
|
int line;
|
|
unsigned int port;
|
|
int irq;
|
|
int flags;
|
|
int xmit_fifo_size;
|
|
int custom_divisor;
|
|
int baud_base;
|
|
unsigned short close_delay;
|
|
char io_type;
|
|
char reserved_char[1];
|
|
int hub6;
|
|
unsigned short closing_wait;
|
|
unsigned short closing_wait2;
|
|
unsigned char *iomem_base;
|
|
unsigned short iomem_reg_shift;
|
|
unsigned int port_high;
|
|
unsigned long iomap_base;
|
|
};
|
|
|
|
struct uart_icount {
|
|
__u32 cts;
|
|
__u32 dsr;
|
|
__u32 rng;
|
|
__u32 dcd;
|
|
__u32 rx;
|
|
__u32 tx;
|
|
__u32 frame;
|
|
__u32 overrun;
|
|
__u32 parity;
|
|
__u32 brk;
|
|
__u32 buf_overrun;
|
|
};
|
|
|
|
typedef u64 upf_t;
|
|
|
|
typedef unsigned int upstat_t;
|
|
|
|
struct serial_rs485 {
|
|
__u32 flags;
|
|
__u32 delay_rts_before_send;
|
|
__u32 delay_rts_after_send;
|
|
union {
|
|
__u32 padding[5];
|
|
struct {
|
|
__u8 addr_recv;
|
|
__u8 addr_dest;
|
|
__u8 padding0[2];
|
|
__u32 padding1[4];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct gpio_desc;
|
|
|
|
struct serial_iso7816 {
|
|
__u32 flags;
|
|
__u32 tg;
|
|
__u32 sc_fi;
|
|
__u32 sc_di;
|
|
__u32 clk;
|
|
__u32 reserved[5];
|
|
};
|
|
|
|
struct uart_state;
|
|
|
|
struct console;
|
|
|
|
struct uart_ops;
|
|
|
|
struct uart_port {
|
|
spinlock_t lock;
|
|
unsigned long iobase;
|
|
unsigned char *membase;
|
|
unsigned int (*serial_in)(struct uart_port *, int);
|
|
void (*serial_out)(struct uart_port *, int, int);
|
|
void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
|
|
void (*set_ldisc)(struct uart_port *, struct ktermios *);
|
|
unsigned int (*get_mctrl)(struct uart_port *);
|
|
void (*set_mctrl)(struct uart_port *, unsigned int);
|
|
unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *);
|
|
void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int);
|
|
int (*startup)(struct uart_port *);
|
|
void (*shutdown)(struct uart_port *);
|
|
void (*throttle)(struct uart_port *);
|
|
void (*unthrottle)(struct uart_port *);
|
|
int (*handle_irq)(struct uart_port *);
|
|
void (*pm)(struct uart_port *, unsigned int, unsigned int);
|
|
void (*handle_break)(struct uart_port *);
|
|
int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *);
|
|
int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *);
|
|
unsigned int irq;
|
|
unsigned long irqflags;
|
|
unsigned int uartclk;
|
|
unsigned int fifosize;
|
|
unsigned char x_char;
|
|
unsigned char regshift;
|
|
unsigned char iotype;
|
|
unsigned char quirks;
|
|
unsigned int read_status_mask;
|
|
unsigned int ignore_status_mask;
|
|
struct uart_state *state;
|
|
struct uart_icount icount;
|
|
struct console *cons;
|
|
upf_t flags;
|
|
upstat_t status;
|
|
int hw_stopped;
|
|
unsigned int mctrl;
|
|
unsigned int frame_time;
|
|
unsigned int type;
|
|
const struct uart_ops *ops;
|
|
unsigned int custom_divisor;
|
|
unsigned int line;
|
|
unsigned int minor;
|
|
resource_size_t mapbase;
|
|
resource_size_t mapsize;
|
|
struct device *dev;
|
|
unsigned long sysrq;
|
|
unsigned int sysrq_ch;
|
|
unsigned char has_sysrq;
|
|
unsigned char sysrq_seq;
|
|
unsigned char hub6;
|
|
unsigned char suspended;
|
|
unsigned char console_reinit;
|
|
const char *name;
|
|
struct attribute_group *attr_group;
|
|
const struct attribute_group **tty_groups;
|
|
struct serial_rs485 rs485;
|
|
struct serial_rs485 rs485_supported;
|
|
struct gpio_desc *rs485_term_gpio;
|
|
struct gpio_desc *rs485_rx_during_tx_gpio;
|
|
struct serial_iso7816 iso7816;
|
|
void *private_data;
|
|
};
|
|
|
|
struct mctrl_gpios;
|
|
|
|
struct uart_8250_dma;
|
|
|
|
struct uart_8250_ops;
|
|
|
|
struct uart_8250_em485;
|
|
|
|
struct uart_8250_port {
|
|
struct uart_port port;
|
|
struct timer_list timer;
|
|
struct list_head list;
|
|
u32 capabilities;
|
|
unsigned short bugs;
|
|
bool fifo_bug;
|
|
unsigned int tx_loadsz;
|
|
unsigned char acr;
|
|
unsigned char fcr;
|
|
unsigned char ier;
|
|
unsigned char lcr;
|
|
unsigned char mcr;
|
|
unsigned char cur_iotype;
|
|
unsigned int rpm_tx_active;
|
|
unsigned char canary;
|
|
unsigned char probe;
|
|
struct mctrl_gpios *gpios;
|
|
u16 lsr_saved_flags;
|
|
u16 lsr_save_mask;
|
|
unsigned char msr_saved_flags;
|
|
struct uart_8250_dma *dma;
|
|
const struct uart_8250_ops *ops;
|
|
int (*dl_read)(struct uart_8250_port *);
|
|
void (*dl_write)(struct uart_8250_port *, int);
|
|
struct uart_8250_em485 *em485;
|
|
void (*rs485_start_tx)(struct uart_8250_port *);
|
|
void (*rs485_stop_tx)(struct uart_8250_port *);
|
|
struct delayed_work overrun_backoff;
|
|
u32 overrun_backoff_time_ms;
|
|
};
|
|
|
|
struct circ_buf {
|
|
char *buf;
|
|
int head;
|
|
int tail;
|
|
};
|
|
|
|
struct uart_state {
|
|
struct tty_port port;
|
|
enum uart_pm_state pm_state;
|
|
struct circ_buf xmit;
|
|
atomic_t refcount;
|
|
wait_queue_head_t remove_wait;
|
|
struct uart_port *uart_port;
|
|
};
|
|
|
|
typedef unsigned int uint;
|
|
|
|
struct console {
|
|
char name[16];
|
|
void (*write)(struct console *, const char *, unsigned int);
|
|
int (*read)(struct console *, char *, unsigned int);
|
|
struct tty_driver * (*device)(struct console *, int *);
|
|
void (*unblank)();
|
|
int (*setup)(struct console *, char *);
|
|
int (*exit)(struct console *);
|
|
int (*match)(struct console *, char *, int, char *);
|
|
short flags;
|
|
short index;
|
|
int cflag;
|
|
uint ispeed;
|
|
uint ospeed;
|
|
u64 seq;
|
|
unsigned long dropped;
|
|
void *data;
|
|
struct hlist_node node;
|
|
};
|
|
|
|
struct uart_ops {
|
|
unsigned int (*tx_empty)(struct uart_port *);
|
|
void (*set_mctrl)(struct uart_port *, unsigned int);
|
|
unsigned int (*get_mctrl)(struct uart_port *);
|
|
void (*stop_tx)(struct uart_port *);
|
|
void (*start_tx)(struct uart_port *);
|
|
void (*throttle)(struct uart_port *);
|
|
void (*unthrottle)(struct uart_port *);
|
|
void (*send_xchar)(struct uart_port *, char);
|
|
void (*stop_rx)(struct uart_port *);
|
|
void (*start_rx)(struct uart_port *);
|
|
void (*enable_ms)(struct uart_port *);
|
|
void (*break_ctl)(struct uart_port *, int);
|
|
int (*startup)(struct uart_port *);
|
|
void (*shutdown)(struct uart_port *);
|
|
void (*flush_buffer)(struct uart_port *);
|
|
void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
|
|
void (*set_ldisc)(struct uart_port *, struct ktermios *);
|
|
void (*pm)(struct uart_port *, unsigned int, unsigned int);
|
|
const char * (*type)(struct uart_port *);
|
|
void (*release_port)(struct uart_port *);
|
|
int (*request_port)(struct uart_port *);
|
|
void (*config_port)(struct uart_port *, int);
|
|
int (*verify_port)(struct uart_port *, struct serial_struct *);
|
|
int (*ioctl)(struct uart_port *, unsigned int, unsigned long);
|
|
};
|
|
|
|
struct dma_chan;
|
|
|
|
typedef bool (*dma_filter_fn)(struct dma_chan *, void *);
|
|
|
|
struct dma_slave_config {
|
|
enum dma_transfer_direction direction;
|
|
phys_addr_t src_addr;
|
|
phys_addr_t dst_addr;
|
|
enum dma_slave_buswidth src_addr_width;
|
|
enum dma_slave_buswidth dst_addr_width;
|
|
u32 src_maxburst;
|
|
u32 dst_maxburst;
|
|
u32 src_port_window_size;
|
|
u32 dst_port_window_size;
|
|
bool device_fc;
|
|
void *peripheral_config;
|
|
size_t peripheral_size;
|
|
};
|
|
|
|
typedef s32 dma_cookie_t;
|
|
|
|
struct uart_8250_dma {
|
|
int (*tx_dma)(struct uart_8250_port *);
|
|
int (*rx_dma)(struct uart_8250_port *);
|
|
void (*prepare_tx_dma)(struct uart_8250_port *);
|
|
void (*prepare_rx_dma)(struct uart_8250_port *);
|
|
dma_filter_fn fn;
|
|
void *rx_param;
|
|
void *tx_param;
|
|
struct dma_slave_config rxconf;
|
|
struct dma_slave_config txconf;
|
|
struct dma_chan *rxchan;
|
|
struct dma_chan *txchan;
|
|
phys_addr_t rx_dma_addr;
|
|
phys_addr_t tx_dma_addr;
|
|
dma_addr_t rx_addr;
|
|
dma_addr_t tx_addr;
|
|
dma_cookie_t rx_cookie;
|
|
dma_cookie_t tx_cookie;
|
|
void *rx_buf;
|
|
size_t rx_size;
|
|
size_t tx_size;
|
|
unsigned char tx_running;
|
|
unsigned char tx_err;
|
|
unsigned char rx_running;
|
|
};
|
|
|
|
struct dma_device;
|
|
|
|
struct dma_chan_dev;
|
|
|
|
struct dma_chan_percpu;
|
|
|
|
struct dma_router;
|
|
|
|
struct dma_chan {
|
|
struct dma_device *device;
|
|
struct device *slave;
|
|
dma_cookie_t cookie;
|
|
dma_cookie_t completed_cookie;
|
|
int chan_id;
|
|
struct dma_chan_dev *dev;
|
|
const char *name;
|
|
char *dbg_client_name;
|
|
struct list_head device_node;
|
|
struct dma_chan_percpu __attribute__((btf_type_tag("percpu"))) *local;
|
|
int client_count;
|
|
int table_count;
|
|
struct dma_router *router;
|
|
void *route_data;
|
|
void *private;
|
|
};
|
|
|
|
struct dma_slave_map;
|
|
|
|
struct dma_filter {
|
|
dma_filter_fn fn;
|
|
int mapcnt;
|
|
const struct dma_slave_map *map;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long bits[1];
|
|
} dma_cap_mask_t;
|
|
|
|
struct dma_async_tx_descriptor;
|
|
|
|
struct dma_interleaved_template;
|
|
|
|
struct dma_slave_caps;
|
|
|
|
struct dma_tx_state;
|
|
|
|
struct dma_device {
|
|
struct kref ref;
|
|
unsigned int chancnt;
|
|
unsigned int privatecnt;
|
|
struct list_head channels;
|
|
struct list_head global_node;
|
|
struct dma_filter filter;
|
|
dma_cap_mask_t cap_mask;
|
|
enum dma_desc_metadata_mode desc_metadata_modes;
|
|
unsigned short max_xor;
|
|
unsigned short max_pq;
|
|
enum dmaengine_alignment copy_align;
|
|
enum dmaengine_alignment xor_align;
|
|
enum dmaengine_alignment pq_align;
|
|
enum dmaengine_alignment fill_align;
|
|
int dev_id;
|
|
struct device *dev;
|
|
struct module *owner;
|
|
struct ida chan_ida;
|
|
u32 src_addr_widths;
|
|
u32 dst_addr_widths;
|
|
u32 directions;
|
|
u32 min_burst;
|
|
u32 max_burst;
|
|
u32 max_sg_burst;
|
|
bool descriptor_reuse;
|
|
enum dma_residue_granularity residue_granularity;
|
|
int (*device_alloc_chan_resources)(struct dma_chan *);
|
|
int (*device_router_config)(struct dma_chan *);
|
|
void (*device_free_chan_resources)(struct dma_chan *);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan *, dma_addr_t, dma_addr_t, size_t, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, unsigned long, void *);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, unsigned long);
|
|
struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, unsigned long);
|
|
void (*device_caps)(struct dma_chan *, struct dma_slave_caps *);
|
|
int (*device_config)(struct dma_chan *, struct dma_slave_config *);
|
|
int (*device_pause)(struct dma_chan *);
|
|
int (*device_resume)(struct dma_chan *);
|
|
int (*device_terminate_all)(struct dma_chan *);
|
|
void (*device_synchronize)(struct dma_chan *);
|
|
enum dma_status (*device_tx_status)(struct dma_chan *, dma_cookie_t, struct dma_tx_state *);
|
|
void (*device_issue_pending)(struct dma_chan *);
|
|
void (*device_release)(struct dma_device *);
|
|
void (*dbg_summary_show)(struct seq_file *, struct dma_device *);
|
|
struct dentry *dbg_dev_root;
|
|
};
|
|
|
|
struct dma_slave_map {
|
|
const char *devname;
|
|
const char *slave;
|
|
void *param;
|
|
};
|
|
|
|
typedef void (*dma_async_tx_callback)(void *);
|
|
|
|
struct dmaengine_result;
|
|
|
|
typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *);
|
|
|
|
struct dmaengine_unmap_data;
|
|
|
|
struct dma_descriptor_metadata_ops;
|
|
|
|
struct dma_async_tx_descriptor {
|
|
dma_cookie_t cookie;
|
|
enum dma_ctrl_flags flags;
|
|
dma_addr_t phys;
|
|
struct dma_chan *chan;
|
|
dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *);
|
|
int (*desc_free)(struct dma_async_tx_descriptor *);
|
|
dma_async_tx_callback callback;
|
|
dma_async_tx_callback_result callback_result;
|
|
void *callback_param;
|
|
struct dmaengine_unmap_data *unmap;
|
|
enum dma_desc_metadata_mode desc_metadata_mode;
|
|
struct dma_descriptor_metadata_ops *metadata_ops;
|
|
};
|
|
|
|
struct dmaengine_result {
|
|
enum dmaengine_tx_result result;
|
|
u32 residue;
|
|
};
|
|
|
|
struct dmaengine_unmap_data {
|
|
u8 map_cnt;
|
|
u8 to_cnt;
|
|
u8 from_cnt;
|
|
u8 bidi_cnt;
|
|
struct device *dev;
|
|
struct kref kref;
|
|
size_t len;
|
|
dma_addr_t addr[0];
|
|
};
|
|
|
|
struct dma_descriptor_metadata_ops {
|
|
int (*attach)(struct dma_async_tx_descriptor *, void *, size_t);
|
|
void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *);
|
|
int (*set_len)(struct dma_async_tx_descriptor *, size_t);
|
|
};
|
|
|
|
struct data_chunk {
|
|
size_t size;
|
|
size_t icg;
|
|
size_t dst_icg;
|
|
size_t src_icg;
|
|
};
|
|
|
|
struct dma_interleaved_template {
|
|
dma_addr_t src_start;
|
|
dma_addr_t dst_start;
|
|
enum dma_transfer_direction dir;
|
|
bool src_inc;
|
|
bool dst_inc;
|
|
bool src_sgl;
|
|
bool dst_sgl;
|
|
size_t numf;
|
|
size_t frame_size;
|
|
struct data_chunk sgl[0];
|
|
};
|
|
|
|
struct dma_slave_caps {
|
|
u32 src_addr_widths;
|
|
u32 dst_addr_widths;
|
|
u32 directions;
|
|
u32 min_burst;
|
|
u32 max_burst;
|
|
u32 max_sg_burst;
|
|
bool cmd_pause;
|
|
bool cmd_resume;
|
|
bool cmd_terminate;
|
|
enum dma_residue_granularity residue_granularity;
|
|
bool descriptor_reuse;
|
|
};
|
|
|
|
struct dma_tx_state {
|
|
dma_cookie_t last;
|
|
dma_cookie_t used;
|
|
u32 residue;
|
|
u32 in_flight_bytes;
|
|
};
|
|
|
|
struct dma_chan_dev {
|
|
struct dma_chan *chan;
|
|
struct device device;
|
|
int dev_id;
|
|
bool chan_dma_dev;
|
|
};
|
|
|
|
struct dma_chan_percpu {
|
|
unsigned long memcpy_count;
|
|
unsigned long bytes_transferred;
|
|
};
|
|
|
|
struct dma_router {
|
|
struct device *dev;
|
|
void (*route_free)(struct device *, void *);
|
|
};
|
|
|
|
struct uart_8250_ops {
|
|
int (*setup_irq)(struct uart_8250_port *);
|
|
void (*release_irq)(struct uart_8250_port *);
|
|
void (*setup_timer)(struct uart_8250_port *);
|
|
};
|
|
|
|
struct uart_8250_em485 {
|
|
struct hrtimer start_tx_timer;
|
|
struct hrtimer stop_tx_timer;
|
|
struct hrtimer *active_timer;
|
|
struct uart_8250_port *port;
|
|
unsigned int tx_stopped: 1;
|
|
};
|
|
|
|
struct drm_debugfs_info {
|
|
const char *name;
|
|
int (*show)(struct seq_file *, void *);
|
|
u32 driver_features;
|
|
void *data;
|
|
};
|
|
|
|
enum drm_ioctl_flags {
|
|
DRM_AUTH = 1,
|
|
DRM_MASTER = 2,
|
|
DRM_ROOT_ONLY = 4,
|
|
DRM_UNLOCKED = 16,
|
|
DRM_RENDER_ALLOW = 32,
|
|
};
|
|
|
|
enum drm_mode_status {
|
|
MODE_OK = 0,
|
|
MODE_HSYNC = 1,
|
|
MODE_VSYNC = 2,
|
|
MODE_H_ILLEGAL = 3,
|
|
MODE_V_ILLEGAL = 4,
|
|
MODE_BAD_WIDTH = 5,
|
|
MODE_NOMODE = 6,
|
|
MODE_NO_INTERLACE = 7,
|
|
MODE_NO_DBLESCAN = 8,
|
|
MODE_NO_VSCAN = 9,
|
|
MODE_MEM = 10,
|
|
MODE_VIRTUAL_X = 11,
|
|
MODE_VIRTUAL_Y = 12,
|
|
MODE_MEM_VIRT = 13,
|
|
MODE_NOCLOCK = 14,
|
|
MODE_CLOCK_HIGH = 15,
|
|
MODE_CLOCK_LOW = 16,
|
|
MODE_CLOCK_RANGE = 17,
|
|
MODE_BAD_HVALUE = 18,
|
|
MODE_BAD_VVALUE = 19,
|
|
MODE_BAD_VSCAN = 20,
|
|
MODE_HSYNC_NARROW = 21,
|
|
MODE_HSYNC_WIDE = 22,
|
|
MODE_HBLANK_NARROW = 23,
|
|
MODE_HBLANK_WIDE = 24,
|
|
MODE_VSYNC_NARROW = 25,
|
|
MODE_VSYNC_WIDE = 26,
|
|
MODE_VBLANK_NARROW = 27,
|
|
MODE_VBLANK_WIDE = 28,
|
|
MODE_PANEL = 29,
|
|
MODE_INTERLACE_WIDTH = 30,
|
|
MODE_ONE_WIDTH = 31,
|
|
MODE_ONE_HEIGHT = 32,
|
|
MODE_ONE_SIZE = 33,
|
|
MODE_NO_REDUCED = 34,
|
|
MODE_NO_STEREO = 35,
|
|
MODE_NO_420 = 36,
|
|
MODE_STALE = -3,
|
|
MODE_BAD = -2,
|
|
MODE_ERROR = -1,
|
|
};
|
|
|
|
enum hdmi_picture_aspect {
|
|
HDMI_PICTURE_ASPECT_NONE = 0,
|
|
HDMI_PICTURE_ASPECT_4_3 = 1,
|
|
HDMI_PICTURE_ASPECT_16_9 = 2,
|
|
HDMI_PICTURE_ASPECT_64_27 = 3,
|
|
HDMI_PICTURE_ASPECT_256_135 = 4,
|
|
HDMI_PICTURE_ASPECT_RESERVED = 5,
|
|
};
|
|
|
|
enum drm_color_encoding {
|
|
DRM_COLOR_YCBCR_BT601 = 0,
|
|
DRM_COLOR_YCBCR_BT709 = 1,
|
|
DRM_COLOR_YCBCR_BT2020 = 2,
|
|
DRM_COLOR_ENCODING_MAX = 3,
|
|
};
|
|
|
|
enum drm_color_range {
|
|
DRM_COLOR_YCBCR_LIMITED_RANGE = 0,
|
|
DRM_COLOR_YCBCR_FULL_RANGE = 1,
|
|
DRM_COLOR_RANGE_MAX = 2,
|
|
};
|
|
|
|
enum drm_scaling_filter {
|
|
DRM_SCALING_FILTER_DEFAULT = 0,
|
|
DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1,
|
|
};
|
|
|
|
enum drm_plane_type {
|
|
DRM_PLANE_TYPE_OVERLAY = 0,
|
|
DRM_PLANE_TYPE_PRIMARY = 1,
|
|
DRM_PLANE_TYPE_CURSOR = 2,
|
|
};
|
|
|
|
enum drm_connector_registration_state {
|
|
DRM_CONNECTOR_INITIALIZING = 0,
|
|
DRM_CONNECTOR_REGISTERED = 1,
|
|
DRM_CONNECTOR_UNREGISTERED = 2,
|
|
};
|
|
|
|
enum drm_connector_status {
|
|
connector_status_connected = 1,
|
|
connector_status_disconnected = 2,
|
|
connector_status_unknown = 3,
|
|
};
|
|
|
|
enum subpixel_order {
|
|
SubPixelUnknown = 0,
|
|
SubPixelHorizontalRGB = 1,
|
|
SubPixelHorizontalBGR = 2,
|
|
SubPixelVerticalRGB = 3,
|
|
SubPixelVerticalBGR = 4,
|
|
SubPixelNone = 5,
|
|
};
|
|
|
|
enum drm_link_status {
|
|
DRM_LINK_STATUS_GOOD = 0,
|
|
DRM_LINK_STATUS_BAD = 1,
|
|
};
|
|
|
|
enum drm_mode_subconnector {
|
|
DRM_MODE_SUBCONNECTOR_Automatic = 0,
|
|
DRM_MODE_SUBCONNECTOR_Unknown = 0,
|
|
DRM_MODE_SUBCONNECTOR_VGA = 1,
|
|
DRM_MODE_SUBCONNECTOR_DVID = 3,
|
|
DRM_MODE_SUBCONNECTOR_DVIA = 4,
|
|
DRM_MODE_SUBCONNECTOR_Composite = 5,
|
|
DRM_MODE_SUBCONNECTOR_SVIDEO = 6,
|
|
DRM_MODE_SUBCONNECTOR_Component = 8,
|
|
DRM_MODE_SUBCONNECTOR_SCART = 9,
|
|
DRM_MODE_SUBCONNECTOR_DisplayPort = 10,
|
|
DRM_MODE_SUBCONNECTOR_HDMIA = 11,
|
|
DRM_MODE_SUBCONNECTOR_Native = 15,
|
|
DRM_MODE_SUBCONNECTOR_Wireless = 18,
|
|
};
|
|
|
|
enum drm_privacy_screen_status {
|
|
PRIVACY_SCREEN_DISABLED = 0,
|
|
PRIVACY_SCREEN_ENABLED = 1,
|
|
PRIVACY_SCREEN_DISABLED_LOCKED = 2,
|
|
PRIVACY_SCREEN_ENABLED_LOCKED = 3,
|
|
};
|
|
|
|
enum drm_connector_force {
|
|
DRM_FORCE_UNSPECIFIED = 0,
|
|
DRM_FORCE_OFF = 1,
|
|
DRM_FORCE_ON = 2,
|
|
DRM_FORCE_ON_DIGITAL = 3,
|
|
};
|
|
|
|
enum drm_panel_orientation {
|
|
DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1,
|
|
DRM_MODE_PANEL_ORIENTATION_NORMAL = 0,
|
|
DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1,
|
|
DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2,
|
|
DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3,
|
|
};
|
|
|
|
enum drm_connector_tv_mode {
|
|
DRM_MODE_TV_MODE_NTSC = 0,
|
|
DRM_MODE_TV_MODE_NTSC_443 = 1,
|
|
DRM_MODE_TV_MODE_NTSC_J = 2,
|
|
DRM_MODE_TV_MODE_PAL = 3,
|
|
DRM_MODE_TV_MODE_PAL_M = 4,
|
|
DRM_MODE_TV_MODE_PAL_N = 5,
|
|
DRM_MODE_TV_MODE_SECAM = 6,
|
|
DRM_MODE_TV_MODE_MAX = 7,
|
|
};
|
|
|
|
enum switch_power_state {
|
|
DRM_SWITCH_POWER_ON = 0,
|
|
DRM_SWITCH_POWER_OFF = 1,
|
|
DRM_SWITCH_POWER_CHANGING = 2,
|
|
DRM_SWITCH_POWER_DYNAMIC_OFF = 3,
|
|
};
|
|
|
|
enum drm_debug_category {
|
|
DRM_UT_CORE = 0,
|
|
DRM_UT_DRIVER = 1,
|
|
DRM_UT_KMS = 2,
|
|
DRM_UT_PRIME = 3,
|
|
DRM_UT_ATOMIC = 4,
|
|
DRM_UT_VBL = 5,
|
|
DRM_UT_STATE = 6,
|
|
DRM_UT_LEASE = 7,
|
|
DRM_UT_DP = 8,
|
|
DRM_UT_DRMRES = 9,
|
|
};
|
|
|
|
enum drm_bridge_attach_flags {
|
|
DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1,
|
|
};
|
|
|
|
enum drm_bridge_ops {
|
|
DRM_BRIDGE_OP_DETECT = 1,
|
|
DRM_BRIDGE_OP_EDID = 2,
|
|
DRM_BRIDGE_OP_HPD = 4,
|
|
DRM_BRIDGE_OP_MODES = 8,
|
|
};
|
|
|
|
enum drm_driver_feature {
|
|
DRIVER_GEM = 1,
|
|
DRIVER_MODESET = 2,
|
|
DRIVER_RENDER = 8,
|
|
DRIVER_ATOMIC = 16,
|
|
DRIVER_SYNCOBJ = 32,
|
|
DRIVER_SYNCOBJ_TIMELINE = 64,
|
|
DRIVER_COMPUTE_ACCEL = 128,
|
|
DRIVER_USE_AGP = 33554432,
|
|
DRIVER_LEGACY = 67108864,
|
|
DRIVER_PCI_DMA = 134217728,
|
|
DRIVER_SG = 268435456,
|
|
DRIVER_HAVE_DMA = 536870912,
|
|
DRIVER_HAVE_IRQ = 1073741824,
|
|
};
|
|
|
|
struct drm_crtc;
|
|
|
|
struct drm_pending_vblank_event;
|
|
|
|
struct drm_crtc_commit {
|
|
struct drm_crtc *crtc;
|
|
struct kref ref;
|
|
struct completion flip_done;
|
|
struct completion hw_done;
|
|
struct completion cleanup_done;
|
|
struct list_head commit_entry;
|
|
struct drm_pending_vblank_event *event;
|
|
bool abort_completion;
|
|
};
|
|
|
|
struct ww_acquire_ctx;
|
|
|
|
struct ww_mutex {
|
|
struct mutex base;
|
|
struct ww_acquire_ctx *ctx;
|
|
};
|
|
|
|
struct drm_modeset_lock {
|
|
struct ww_mutex mutex;
|
|
struct list_head head;
|
|
};
|
|
|
|
struct drm_object_properties;
|
|
|
|
struct drm_mode_object {
|
|
uint32_t id;
|
|
uint32_t type;
|
|
struct drm_object_properties *properties;
|
|
struct kref refcount;
|
|
void (*free_cb)(struct kref *);
|
|
};
|
|
|
|
struct drm_display_mode {
|
|
int clock;
|
|
u16 hdisplay;
|
|
u16 hsync_start;
|
|
u16 hsync_end;
|
|
u16 htotal;
|
|
u16 hskew;
|
|
u16 vdisplay;
|
|
u16 vsync_start;
|
|
u16 vsync_end;
|
|
u16 vtotal;
|
|
u16 vscan;
|
|
u32 flags;
|
|
int crtc_clock;
|
|
u16 crtc_hdisplay;
|
|
u16 crtc_hblank_start;
|
|
u16 crtc_hblank_end;
|
|
u16 crtc_hsync_start;
|
|
u16 crtc_hsync_end;
|
|
u16 crtc_htotal;
|
|
u16 crtc_hskew;
|
|
u16 crtc_vdisplay;
|
|
u16 crtc_vblank_start;
|
|
u16 crtc_vblank_end;
|
|
u16 crtc_vsync_start;
|
|
u16 crtc_vsync_end;
|
|
u16 crtc_vtotal;
|
|
u16 width_mm;
|
|
u16 height_mm;
|
|
u8 type;
|
|
bool expose_to_userspace;
|
|
struct list_head head;
|
|
char name[32];
|
|
enum drm_mode_status status;
|
|
enum hdmi_picture_aspect picture_aspect_ratio;
|
|
};
|
|
|
|
typedef u16 uint16_t;
|
|
|
|
struct drm_property;
|
|
|
|
struct drm_object_properties {
|
|
int count;
|
|
struct drm_property *properties[24];
|
|
uint64_t values[24];
|
|
};
|
|
|
|
struct drm_crtc_crc_entry;
|
|
|
|
struct drm_crtc_crc {
|
|
spinlock_t lock;
|
|
const char *source;
|
|
bool opened;
|
|
bool overflow;
|
|
struct drm_crtc_crc_entry *entries;
|
|
int head;
|
|
int tail;
|
|
size_t values_cnt;
|
|
wait_queue_head_t wq;
|
|
};
|
|
|
|
struct drm_device;
|
|
|
|
struct drm_plane;
|
|
|
|
struct drm_crtc_funcs;
|
|
|
|
struct drm_crtc_helper_funcs;
|
|
|
|
struct drm_crtc_state;
|
|
|
|
struct drm_self_refresh_data;
|
|
|
|
struct drm_crtc {
|
|
struct drm_device *dev;
|
|
struct device_node *port;
|
|
struct list_head head;
|
|
char *name;
|
|
struct drm_modeset_lock mutex;
|
|
struct drm_mode_object base;
|
|
struct drm_plane *primary;
|
|
struct drm_plane *cursor;
|
|
unsigned int index;
|
|
int cursor_x;
|
|
int cursor_y;
|
|
bool enabled;
|
|
struct drm_display_mode mode;
|
|
struct drm_display_mode hwmode;
|
|
int x;
|
|
int y;
|
|
const struct drm_crtc_funcs *funcs;
|
|
uint32_t gamma_size;
|
|
uint16_t *gamma_store;
|
|
const struct drm_crtc_helper_funcs *helper_private;
|
|
struct drm_object_properties properties;
|
|
struct drm_property *scaling_filter_property;
|
|
struct drm_crtc_state *state;
|
|
struct list_head commit_list;
|
|
spinlock_t commit_lock;
|
|
struct dentry *debugfs_entry;
|
|
struct drm_crtc_crc crc;
|
|
unsigned int fence_context;
|
|
spinlock_t fence_lock;
|
|
unsigned long fence_seqno;
|
|
char timeline_name[32];
|
|
struct drm_self_refresh_data *self_refresh_data;
|
|
};
|
|
|
|
struct drm_modeset_acquire_ctx;
|
|
|
|
struct drm_mode_config_funcs;
|
|
|
|
struct drm_atomic_state;
|
|
|
|
struct drm_mode_config_helper_funcs;
|
|
|
|
struct drm_mode_config {
|
|
struct mutex mutex;
|
|
struct drm_modeset_lock connection_mutex;
|
|
struct drm_modeset_acquire_ctx *acquire_ctx;
|
|
struct mutex idr_mutex;
|
|
struct idr object_idr;
|
|
struct idr tile_idr;
|
|
struct mutex fb_lock;
|
|
int num_fb;
|
|
struct list_head fb_list;
|
|
spinlock_t connector_list_lock;
|
|
int num_connector;
|
|
struct ida connector_ida;
|
|
struct list_head connector_list;
|
|
struct llist_head connector_free_list;
|
|
struct work_struct connector_free_work;
|
|
int num_encoder;
|
|
struct list_head encoder_list;
|
|
int num_total_plane;
|
|
struct list_head plane_list;
|
|
int num_crtc;
|
|
struct list_head crtc_list;
|
|
struct list_head property_list;
|
|
struct list_head privobj_list;
|
|
int min_width;
|
|
int min_height;
|
|
int max_width;
|
|
int max_height;
|
|
const struct drm_mode_config_funcs *funcs;
|
|
bool poll_enabled;
|
|
bool poll_running;
|
|
bool delayed_event;
|
|
struct delayed_work output_poll_work;
|
|
struct mutex blob_lock;
|
|
struct list_head property_blob_list;
|
|
struct drm_property *edid_property;
|
|
struct drm_property *dpms_property;
|
|
struct drm_property *path_property;
|
|
struct drm_property *tile_property;
|
|
struct drm_property *link_status_property;
|
|
struct drm_property *plane_type_property;
|
|
struct drm_property *prop_src_x;
|
|
struct drm_property *prop_src_y;
|
|
struct drm_property *prop_src_w;
|
|
struct drm_property *prop_src_h;
|
|
struct drm_property *prop_crtc_x;
|
|
struct drm_property *prop_crtc_y;
|
|
struct drm_property *prop_crtc_w;
|
|
struct drm_property *prop_crtc_h;
|
|
struct drm_property *prop_fb_id;
|
|
struct drm_property *prop_in_fence_fd;
|
|
struct drm_property *prop_out_fence_ptr;
|
|
struct drm_property *prop_crtc_id;
|
|
struct drm_property *prop_fb_damage_clips;
|
|
struct drm_property *prop_active;
|
|
struct drm_property *prop_mode_id;
|
|
struct drm_property *prop_vrr_enabled;
|
|
struct drm_property *dvi_i_subconnector_property;
|
|
struct drm_property *dvi_i_select_subconnector_property;
|
|
struct drm_property *dp_subconnector_property;
|
|
struct drm_property *tv_subconnector_property;
|
|
struct drm_property *tv_select_subconnector_property;
|
|
struct drm_property *legacy_tv_mode_property;
|
|
struct drm_property *tv_mode_property;
|
|
struct drm_property *tv_left_margin_property;
|
|
struct drm_property *tv_right_margin_property;
|
|
struct drm_property *tv_top_margin_property;
|
|
struct drm_property *tv_bottom_margin_property;
|
|
struct drm_property *tv_brightness_property;
|
|
struct drm_property *tv_contrast_property;
|
|
struct drm_property *tv_flicker_reduction_property;
|
|
struct drm_property *tv_overscan_property;
|
|
struct drm_property *tv_saturation_property;
|
|
struct drm_property *tv_hue_property;
|
|
struct drm_property *scaling_mode_property;
|
|
struct drm_property *aspect_ratio_property;
|
|
struct drm_property *content_type_property;
|
|
struct drm_property *degamma_lut_property;
|
|
struct drm_property *degamma_lut_size_property;
|
|
struct drm_property *ctm_property;
|
|
struct drm_property *gamma_lut_property;
|
|
struct drm_property *gamma_lut_size_property;
|
|
struct drm_property *suggested_x_property;
|
|
struct drm_property *suggested_y_property;
|
|
struct drm_property *non_desktop_property;
|
|
struct drm_property *panel_orientation_property;
|
|
struct drm_property *writeback_fb_id_property;
|
|
struct drm_property *writeback_pixel_formats_property;
|
|
struct drm_property *writeback_out_fence_ptr_property;
|
|
struct drm_property *hdr_output_metadata_property;
|
|
struct drm_property *content_protection_property;
|
|
struct drm_property *hdcp_content_type_property;
|
|
uint32_t preferred_depth;
|
|
uint32_t prefer_shadow;
|
|
bool prefer_shadow_fbdev;
|
|
bool quirk_addfb_prefer_xbgr_30bpp;
|
|
bool quirk_addfb_prefer_host_byte_order;
|
|
bool async_page_flip;
|
|
bool fb_modifiers_not_supported;
|
|
bool normalize_zpos;
|
|
struct drm_property *modifiers_property;
|
|
uint32_t cursor_width;
|
|
uint32_t cursor_height;
|
|
struct drm_atomic_state *suspend_state;
|
|
const struct drm_mode_config_helper_funcs *helper_private;
|
|
};
|
|
|
|
struct drm_vram_mm;
|
|
|
|
struct drm_driver;
|
|
|
|
struct drm_minor;
|
|
|
|
struct drm_master;
|
|
|
|
struct drm_vblank_crtc;
|
|
|
|
struct drm_vma_offset_manager;
|
|
|
|
struct drm_fb_helper;
|
|
|
|
struct drm_device {
|
|
int if_version;
|
|
struct kref ref;
|
|
struct device *dev;
|
|
struct {
|
|
struct list_head resources;
|
|
void *final_kfree;
|
|
spinlock_t lock;
|
|
} managed;
|
|
const struct drm_driver *driver;
|
|
void *dev_private;
|
|
struct drm_minor *primary;
|
|
struct drm_minor *render;
|
|
struct drm_minor *accel;
|
|
bool registered;
|
|
struct drm_master *master;
|
|
u32 driver_features;
|
|
bool unplugged;
|
|
struct inode *anon_inode;
|
|
char *unique;
|
|
struct mutex struct_mutex;
|
|
struct mutex master_mutex;
|
|
atomic_t open_count;
|
|
struct mutex filelist_mutex;
|
|
struct list_head filelist;
|
|
struct list_head filelist_internal;
|
|
struct mutex clientlist_mutex;
|
|
struct list_head clientlist;
|
|
bool vblank_disable_immediate;
|
|
struct drm_vblank_crtc *vblank;
|
|
spinlock_t vblank_time_lock;
|
|
spinlock_t vbl_lock;
|
|
u32 max_vblank_count;
|
|
struct list_head vblank_event_list;
|
|
spinlock_t event_lock;
|
|
unsigned int num_crtcs;
|
|
struct drm_mode_config mode_config;
|
|
struct mutex object_name_lock;
|
|
struct idr object_name_idr;
|
|
struct drm_vma_offset_manager *vma_offset_manager;
|
|
struct drm_vram_mm *vram_mm;
|
|
enum switch_power_state switch_power_state;
|
|
struct drm_fb_helper *fb_helper;
|
|
struct mutex debugfs_mutex;
|
|
struct list_head debugfs_list;
|
|
};
|
|
|
|
struct drm_file;
|
|
|
|
struct drm_gem_object;
|
|
|
|
struct dma_buf;
|
|
|
|
struct dma_buf_attachment;
|
|
|
|
struct drm_mode_create_dumb;
|
|
|
|
struct drm_ioctl_desc;
|
|
|
|
struct drm_driver {
|
|
int (*load)(struct drm_device *, unsigned long);
|
|
int (*open)(struct drm_device *, struct drm_file *);
|
|
void (*postclose)(struct drm_device *, struct drm_file *);
|
|
void (*lastclose)(struct drm_device *);
|
|
void (*unload)(struct drm_device *);
|
|
void (*release)(struct drm_device *);
|
|
void (*master_set)(struct drm_device *, struct drm_file *, bool);
|
|
void (*master_drop)(struct drm_device *, struct drm_file *);
|
|
void (*debugfs_init)(struct drm_minor *);
|
|
struct drm_gem_object * (*gem_create_object)(struct drm_device *, size_t);
|
|
int (*prime_handle_to_fd)(struct drm_device *, struct drm_file *, uint32_t, uint32_t, int *);
|
|
int (*prime_fd_to_handle)(struct drm_device *, struct drm_file *, int, uint32_t *);
|
|
struct drm_gem_object * (*gem_prime_import)(struct drm_device *, struct dma_buf *);
|
|
struct drm_gem_object * (*gem_prime_import_sg_table)(struct drm_device *, struct dma_buf_attachment *, struct sg_table *);
|
|
int (*gem_prime_mmap)(struct drm_gem_object *, struct vm_area_struct *);
|
|
int (*dumb_create)(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *);
|
|
int (*dumb_map_offset)(struct drm_file *, struct drm_device *, uint32_t, uint64_t *);
|
|
int (*dumb_destroy)(struct drm_file *, struct drm_device *, uint32_t);
|
|
int major;
|
|
int minor;
|
|
int patchlevel;
|
|
char *name;
|
|
char *desc;
|
|
char *date;
|
|
u32 driver_features;
|
|
const struct drm_ioctl_desc *ioctls;
|
|
int num_ioctls;
|
|
const struct file_operations *fops;
|
|
};
|
|
|
|
typedef unsigned int drm_magic_t;
|
|
|
|
struct drm_prime_file_private {
|
|
struct mutex lock;
|
|
struct rb_root dmabufs;
|
|
struct rb_root handles;
|
|
};
|
|
|
|
struct drm_file {
|
|
bool authenticated;
|
|
bool stereo_allowed;
|
|
bool universal_planes;
|
|
bool atomic;
|
|
bool aspect_ratio_allowed;
|
|
bool writeback_connectors;
|
|
bool was_master;
|
|
bool is_master;
|
|
struct drm_master *master;
|
|
spinlock_t master_lookup_lock;
|
|
struct pid *pid;
|
|
drm_magic_t magic;
|
|
struct list_head lhead;
|
|
struct drm_minor *minor;
|
|
struct idr object_idr;
|
|
spinlock_t table_lock;
|
|
struct idr syncobj_idr;
|
|
spinlock_t syncobj_table_lock;
|
|
struct file *filp;
|
|
void *driver_priv;
|
|
struct list_head fbs;
|
|
struct mutex fbs_lock;
|
|
struct list_head blobs;
|
|
wait_queue_head_t event_wait;
|
|
struct list_head pending_event_list;
|
|
struct list_head event_list;
|
|
int event_space;
|
|
struct mutex event_read_lock;
|
|
struct drm_prime_file_private prime;
|
|
};
|
|
|
|
struct drm_master {
|
|
struct kref refcount;
|
|
struct drm_device *dev;
|
|
char *unique;
|
|
int unique_len;
|
|
struct idr magic_map;
|
|
void *driver_priv;
|
|
struct drm_master *lessor;
|
|
int lessee_id;
|
|
struct list_head lessee_list;
|
|
struct list_head lessees;
|
|
struct idr leases;
|
|
struct idr lessee_idr;
|
|
};
|
|
|
|
struct drm_minor {
|
|
int index;
|
|
int type;
|
|
struct device *kdev;
|
|
struct drm_device *dev;
|
|
struct dentry *debugfs_root;
|
|
struct list_head debugfs_list;
|
|
struct mutex debugfs_lock;
|
|
};
|
|
|
|
struct sg_table {
|
|
struct scatterlist *sgl;
|
|
unsigned int nents;
|
|
unsigned int orig_nents;
|
|
};
|
|
|
|
struct drm_mode_create_dumb {
|
|
__u32 height;
|
|
__u32 width;
|
|
__u32 bpp;
|
|
__u32 flags;
|
|
__u32 handle;
|
|
__u32 pitch;
|
|
__u64 size;
|
|
};
|
|
|
|
typedef int drm_ioctl_t(struct drm_device *, void *, struct drm_file *);
|
|
|
|
struct drm_ioctl_desc {
|
|
unsigned int cmd;
|
|
enum drm_ioctl_flags flags;
|
|
drm_ioctl_t *func;
|
|
const char *name;
|
|
};
|
|
|
|
struct kthread_worker;
|
|
|
|
struct drm_vblank_crtc {
|
|
struct drm_device *dev;
|
|
wait_queue_head_t queue;
|
|
struct timer_list disable_timer;
|
|
seqlock_t seqlock;
|
|
atomic64_t count;
|
|
ktime_t time;
|
|
atomic_t refcount;
|
|
u32 last;
|
|
u32 max_vblank_count;
|
|
unsigned int inmodeset;
|
|
unsigned int pipe;
|
|
int framedur_ns;
|
|
int linedur_ns;
|
|
struct drm_display_mode hwmode;
|
|
bool enabled;
|
|
struct kthread_worker *worker;
|
|
struct list_head pending_work;
|
|
wait_queue_head_t work_wait_queue;
|
|
};
|
|
|
|
struct kthread_work;
|
|
|
|
struct kthread_worker {
|
|
unsigned int flags;
|
|
raw_spinlock_t lock;
|
|
struct list_head work_list;
|
|
struct list_head delayed_work_list;
|
|
struct task_struct *task;
|
|
struct kthread_work *current_work;
|
|
};
|
|
|
|
typedef void (*kthread_work_func_t)(struct kthread_work *);
|
|
|
|
struct kthread_work {
|
|
struct list_head node;
|
|
kthread_work_func_t func;
|
|
struct kthread_worker *worker;
|
|
int canceling;
|
|
};
|
|
|
|
struct ww_acquire_ctx {
|
|
struct task_struct *task;
|
|
unsigned long stamp;
|
|
unsigned int acquired;
|
|
unsigned short wounded;
|
|
unsigned short is_wait_die;
|
|
};
|
|
|
|
typedef u32 depot_stack_handle_t;
|
|
|
|
struct drm_modeset_acquire_ctx {
|
|
struct ww_acquire_ctx ww_ctx;
|
|
struct drm_modeset_lock *contended;
|
|
depot_stack_handle_t stack_depot;
|
|
struct list_head locked;
|
|
bool trylock_only;
|
|
bool interruptible;
|
|
};
|
|
|
|
struct drm_framebuffer;
|
|
|
|
struct drm_mode_fb_cmd2;
|
|
|
|
struct drm_format_info;
|
|
|
|
struct drm_mode_config_funcs {
|
|
struct drm_framebuffer * (*fb_create)(struct drm_device *, struct drm_file *, const struct drm_mode_fb_cmd2 *);
|
|
const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *);
|
|
void (*output_poll_changed)(struct drm_device *);
|
|
enum drm_mode_status (*mode_valid)(struct drm_device *, const struct drm_display_mode *);
|
|
int (*atomic_check)(struct drm_device *, struct drm_atomic_state *);
|
|
int (*atomic_commit)(struct drm_device *, struct drm_atomic_state *, bool);
|
|
struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device *);
|
|
void (*atomic_state_clear)(struct drm_atomic_state *);
|
|
void (*atomic_state_free)(struct drm_atomic_state *);
|
|
};
|
|
|
|
struct drm_framebuffer_funcs;
|
|
|
|
struct drm_framebuffer {
|
|
struct drm_device *dev;
|
|
struct list_head head;
|
|
struct drm_mode_object base;
|
|
char comm[16];
|
|
const struct drm_format_info *format;
|
|
const struct drm_framebuffer_funcs *funcs;
|
|
unsigned int pitches[4];
|
|
unsigned int offsets[4];
|
|
uint64_t modifier;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
int flags;
|
|
int hot_x;
|
|
int hot_y;
|
|
struct list_head filp_head;
|
|
struct drm_gem_object *obj[4];
|
|
};
|
|
|
|
struct drm_property {
|
|
struct list_head head;
|
|
struct drm_mode_object base;
|
|
uint32_t flags;
|
|
char name[32];
|
|
uint32_t num_values;
|
|
uint64_t *values;
|
|
struct drm_device *dev;
|
|
struct list_head enum_list;
|
|
};
|
|
|
|
struct drm_format_info {
|
|
u32 format;
|
|
u8 depth;
|
|
u8 num_planes;
|
|
union {
|
|
u8 cpp[4];
|
|
u8 char_per_block[4];
|
|
};
|
|
u8 block_w[4];
|
|
u8 block_h[4];
|
|
u8 hsub;
|
|
u8 vsub;
|
|
bool has_alpha;
|
|
bool is_yuv;
|
|
bool is_color_indexed;
|
|
};
|
|
|
|
struct drm_clip_rect;
|
|
|
|
struct drm_framebuffer_funcs {
|
|
void (*destroy)(struct drm_framebuffer *);
|
|
int (*create_handle)(struct drm_framebuffer *, struct drm_file *, unsigned int *);
|
|
int (*dirty)(struct drm_framebuffer *, struct drm_file *, unsigned int, unsigned int, struct drm_clip_rect *, unsigned int);
|
|
};
|
|
|
|
struct drm_clip_rect {
|
|
unsigned short x1;
|
|
unsigned short y1;
|
|
unsigned short x2;
|
|
unsigned short y2;
|
|
};
|
|
|
|
struct drm_mode_fb_cmd2 {
|
|
__u32 fb_id;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 pixel_format;
|
|
__u32 flags;
|
|
__u32 handles[4];
|
|
__u32 pitches[4];
|
|
__u32 offsets[4];
|
|
__u64 modifier[4];
|
|
};
|
|
|
|
struct __drm_planes_state;
|
|
|
|
struct __drm_crtcs_state;
|
|
|
|
struct __drm_connnectors_state;
|
|
|
|
struct __drm_private_objs_state;
|
|
|
|
struct drm_atomic_state {
|
|
struct kref ref;
|
|
struct drm_device *dev;
|
|
bool allow_modeset: 1;
|
|
bool legacy_cursor_update: 1;
|
|
bool async_update: 1;
|
|
bool duplicated: 1;
|
|
struct __drm_planes_state *planes;
|
|
struct __drm_crtcs_state *crtcs;
|
|
int num_connector;
|
|
struct __drm_connnectors_state *connectors;
|
|
int num_private_objs;
|
|
struct __drm_private_objs_state *private_objs;
|
|
struct drm_modeset_acquire_ctx *acquire_ctx;
|
|
struct drm_crtc_commit *fake_commit;
|
|
struct work_struct commit_work;
|
|
};
|
|
|
|
struct drm_plane_state;
|
|
|
|
struct __drm_planes_state {
|
|
struct drm_plane *ptr;
|
|
struct drm_plane_state *state;
|
|
struct drm_plane_state *old_state;
|
|
struct drm_plane_state *new_state;
|
|
};
|
|
|
|
struct drm_plane_funcs;
|
|
|
|
struct drm_plane_helper_funcs;
|
|
|
|
struct drm_plane {
|
|
struct drm_device *dev;
|
|
struct list_head head;
|
|
char *name;
|
|
struct drm_modeset_lock mutex;
|
|
struct drm_mode_object base;
|
|
uint32_t possible_crtcs;
|
|
uint32_t *format_types;
|
|
unsigned int format_count;
|
|
bool format_default;
|
|
uint64_t *modifiers;
|
|
unsigned int modifier_count;
|
|
struct drm_crtc *crtc;
|
|
struct drm_framebuffer *fb;
|
|
struct drm_framebuffer *old_fb;
|
|
const struct drm_plane_funcs *funcs;
|
|
struct drm_object_properties properties;
|
|
enum drm_plane_type type;
|
|
unsigned int index;
|
|
const struct drm_plane_helper_funcs *helper_private;
|
|
struct drm_plane_state *state;
|
|
struct drm_property *alpha_property;
|
|
struct drm_property *zpos_property;
|
|
struct drm_property *rotation_property;
|
|
struct drm_property *blend_mode_property;
|
|
struct drm_property *color_encoding_property;
|
|
struct drm_property *color_range_property;
|
|
struct drm_property *scaling_filter_property;
|
|
};
|
|
|
|
struct drm_printer;
|
|
|
|
struct drm_plane_funcs {
|
|
int (*update_plane)(struct drm_plane *, struct drm_crtc *, struct drm_framebuffer *, int, int, unsigned int, unsigned int, uint32_t, uint32_t, uint32_t, uint32_t, struct drm_modeset_acquire_ctx *);
|
|
int (*disable_plane)(struct drm_plane *, struct drm_modeset_acquire_ctx *);
|
|
void (*destroy)(struct drm_plane *);
|
|
void (*reset)(struct drm_plane *);
|
|
int (*set_property)(struct drm_plane *, struct drm_property *, uint64_t);
|
|
struct drm_plane_state * (*atomic_duplicate_state)(struct drm_plane *);
|
|
void (*atomic_destroy_state)(struct drm_plane *, struct drm_plane_state *);
|
|
int (*atomic_set_property)(struct drm_plane *, struct drm_plane_state *, struct drm_property *, uint64_t);
|
|
int (*atomic_get_property)(struct drm_plane *, const struct drm_plane_state *, struct drm_property *, uint64_t *);
|
|
int (*late_register)(struct drm_plane *);
|
|
void (*early_unregister)(struct drm_plane *);
|
|
void (*atomic_print_state)(struct drm_printer *, const struct drm_plane_state *);
|
|
bool (*format_mod_supported)(struct drm_plane *, uint32_t, uint64_t);
|
|
};
|
|
|
|
struct drm_rect {
|
|
int x1;
|
|
int y1;
|
|
int x2;
|
|
int y2;
|
|
};
|
|
|
|
struct dma_fence;
|
|
|
|
struct drm_property_blob;
|
|
|
|
struct drm_plane_state {
|
|
struct drm_plane *plane;
|
|
struct drm_crtc *crtc;
|
|
struct drm_framebuffer *fb;
|
|
struct dma_fence *fence;
|
|
int32_t crtc_x;
|
|
int32_t crtc_y;
|
|
uint32_t crtc_w;
|
|
uint32_t crtc_h;
|
|
uint32_t src_x;
|
|
uint32_t src_y;
|
|
uint32_t src_h;
|
|
uint32_t src_w;
|
|
u16 alpha;
|
|
uint16_t pixel_blend_mode;
|
|
unsigned int rotation;
|
|
unsigned int zpos;
|
|
unsigned int normalized_zpos;
|
|
enum drm_color_encoding color_encoding;
|
|
enum drm_color_range color_range;
|
|
struct drm_property_blob *fb_damage_clips;
|
|
struct drm_rect src;
|
|
struct drm_rect dst;
|
|
bool visible;
|
|
enum drm_scaling_filter scaling_filter;
|
|
struct drm_crtc_commit *commit;
|
|
struct drm_atomic_state *state;
|
|
};
|
|
|
|
struct dma_fence_ops;
|
|
|
|
struct dma_fence {
|
|
spinlock_t *lock;
|
|
const struct dma_fence_ops *ops;
|
|
union {
|
|
struct list_head cb_list;
|
|
ktime_t timestamp;
|
|
struct callback_head rcu;
|
|
};
|
|
u64 context;
|
|
u64 seqno;
|
|
unsigned long flags;
|
|
struct kref refcount;
|
|
int error;
|
|
};
|
|
|
|
struct dma_fence_ops {
|
|
bool use_64bit_seqno;
|
|
const char * (*get_driver_name)(struct dma_fence *);
|
|
const char * (*get_timeline_name)(struct dma_fence *);
|
|
bool (*enable_signaling)(struct dma_fence *);
|
|
bool (*signaled)(struct dma_fence *);
|
|
long (*wait)(struct dma_fence *, bool, long);
|
|
void (*release)(struct dma_fence *);
|
|
void (*fence_value_str)(struct dma_fence *, char *, int);
|
|
void (*timeline_value_str)(struct dma_fence *, char *, int);
|
|
};
|
|
|
|
struct drm_property_blob {
|
|
struct drm_mode_object base;
|
|
struct drm_device *dev;
|
|
struct list_head head_global;
|
|
struct list_head head_file;
|
|
size_t length;
|
|
void *data;
|
|
};
|
|
|
|
struct drm_printer {
|
|
void (*printfn)(struct drm_printer *, struct va_format *);
|
|
void (*puts)(struct drm_printer *, const char *);
|
|
void *arg;
|
|
const char *prefix;
|
|
};
|
|
|
|
struct drm_plane_helper_funcs {
|
|
int (*prepare_fb)(struct drm_plane *, struct drm_plane_state *);
|
|
void (*cleanup_fb)(struct drm_plane *, struct drm_plane_state *);
|
|
int (*begin_fb_access)(struct drm_plane *, struct drm_plane_state *);
|
|
void (*end_fb_access)(struct drm_plane *, struct drm_plane_state *);
|
|
int (*atomic_check)(struct drm_plane *, struct drm_atomic_state *);
|
|
void (*atomic_update)(struct drm_plane *, struct drm_atomic_state *);
|
|
void (*atomic_disable)(struct drm_plane *, struct drm_atomic_state *);
|
|
int (*atomic_async_check)(struct drm_plane *, struct drm_atomic_state *);
|
|
void (*atomic_async_update)(struct drm_plane *, struct drm_atomic_state *);
|
|
};
|
|
|
|
struct __drm_crtcs_state {
|
|
struct drm_crtc *ptr;
|
|
struct drm_crtc_state *state;
|
|
struct drm_crtc_state *old_state;
|
|
struct drm_crtc_state *new_state;
|
|
struct drm_crtc_commit *commit;
|
|
s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr;
|
|
u64 last_vblank_count;
|
|
};
|
|
|
|
struct drm_crtc_state {
|
|
struct drm_crtc *crtc;
|
|
bool enable;
|
|
bool active;
|
|
bool planes_changed: 1;
|
|
bool mode_changed: 1;
|
|
bool active_changed: 1;
|
|
bool connectors_changed: 1;
|
|
bool zpos_changed: 1;
|
|
bool color_mgmt_changed: 1;
|
|
bool no_vblank: 1;
|
|
u32 plane_mask;
|
|
u32 connector_mask;
|
|
u32 encoder_mask;
|
|
struct drm_display_mode adjusted_mode;
|
|
struct drm_display_mode mode;
|
|
struct drm_property_blob *mode_blob;
|
|
struct drm_property_blob *degamma_lut;
|
|
struct drm_property_blob *ctm;
|
|
struct drm_property_blob *gamma_lut;
|
|
u32 target_vblank;
|
|
bool async_flip;
|
|
bool vrr_enabled;
|
|
bool self_refresh_active;
|
|
enum drm_scaling_filter scaling_filter;
|
|
struct drm_pending_vblank_event *event;
|
|
struct drm_crtc_commit *commit;
|
|
struct drm_atomic_state *state;
|
|
};
|
|
|
|
struct drm_event {
|
|
__u32 type;
|
|
__u32 length;
|
|
};
|
|
|
|
struct drm_event_vblank {
|
|
struct drm_event base;
|
|
__u64 user_data;
|
|
__u32 tv_sec;
|
|
__u32 tv_usec;
|
|
__u32 sequence;
|
|
__u32 crtc_id;
|
|
};
|
|
|
|
struct drm_event_crtc_sequence {
|
|
struct drm_event base;
|
|
__u64 user_data;
|
|
__s64 time_ns;
|
|
__u64 sequence;
|
|
};
|
|
|
|
struct drm_pending_event {
|
|
struct completion *completion;
|
|
void (*completion_release)(struct completion *);
|
|
struct drm_event *event;
|
|
struct dma_fence *fence;
|
|
struct drm_file *file_priv;
|
|
struct list_head link;
|
|
struct list_head pending_link;
|
|
};
|
|
|
|
struct drm_pending_vblank_event {
|
|
struct drm_pending_event base;
|
|
unsigned int pipe;
|
|
u64 sequence;
|
|
union {
|
|
struct drm_event base;
|
|
struct drm_event_vblank vbl;
|
|
struct drm_event_crtc_sequence seq;
|
|
} event;
|
|
};
|
|
|
|
struct drm_connector;
|
|
|
|
struct drm_connector_state;
|
|
|
|
struct __drm_connnectors_state {
|
|
struct drm_connector *ptr;
|
|
struct drm_connector_state *state;
|
|
struct drm_connector_state *old_state;
|
|
struct drm_connector_state *new_state;
|
|
s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr;
|
|
};
|
|
|
|
struct drm_scrambling {
|
|
bool supported;
|
|
bool low_rates;
|
|
};
|
|
|
|
struct drm_scdc {
|
|
bool supported;
|
|
bool read_request;
|
|
struct drm_scrambling scrambling;
|
|
};
|
|
|
|
struct drm_hdmi_dsc_cap {
|
|
bool v_1p2;
|
|
bool native_420;
|
|
bool all_bpp;
|
|
u8 bpc_supported;
|
|
u8 max_slices;
|
|
int clk_per_slice;
|
|
u8 max_lanes;
|
|
u8 max_frl_rate_per_lane;
|
|
u8 total_chunk_kbytes;
|
|
};
|
|
|
|
struct drm_hdmi_info {
|
|
struct drm_scdc scdc;
|
|
unsigned long y420_vdb_modes[4];
|
|
unsigned long y420_cmdb_modes[4];
|
|
u8 y420_dc_modes;
|
|
u8 max_frl_rate_per_lane;
|
|
u8 max_lanes;
|
|
struct drm_hdmi_dsc_cap dsc_cap;
|
|
};
|
|
|
|
struct drm_monitor_range_info {
|
|
u16 min_vfreq;
|
|
u16 max_vfreq;
|
|
};
|
|
|
|
struct drm_luminance_range_info {
|
|
u32 min_luminance;
|
|
u32 max_luminance;
|
|
};
|
|
|
|
struct drm_display_info {
|
|
unsigned int width_mm;
|
|
unsigned int height_mm;
|
|
unsigned int bpc;
|
|
enum subpixel_order subpixel_order;
|
|
int panel_orientation;
|
|
u32 color_formats;
|
|
const u32 *bus_formats;
|
|
unsigned int num_bus_formats;
|
|
u32 bus_flags;
|
|
int max_tmds_clock;
|
|
bool dvi_dual;
|
|
bool is_hdmi;
|
|
bool has_hdmi_infoframe;
|
|
bool rgb_quant_range_selectable;
|
|
u8 edid_hdmi_rgb444_dc_modes;
|
|
u8 edid_hdmi_ycbcr444_dc_modes;
|
|
u8 cea_rev;
|
|
struct drm_hdmi_info hdmi;
|
|
bool non_desktop;
|
|
struct drm_monitor_range_info monitor_range;
|
|
struct drm_luminance_range_info luminance_range;
|
|
u8 mso_stream_count;
|
|
u8 mso_pixel_overlap;
|
|
u32 max_dsc_bpp;
|
|
u8 *vics;
|
|
int vics_len;
|
|
u32 quirks;
|
|
};
|
|
|
|
struct drm_privacy_screen;
|
|
|
|
struct drm_connector_tv_margins {
|
|
unsigned int bottom;
|
|
unsigned int left;
|
|
unsigned int right;
|
|
unsigned int top;
|
|
};
|
|
|
|
struct drm_cmdline_mode {
|
|
char name[32];
|
|
bool specified;
|
|
bool refresh_specified;
|
|
bool bpp_specified;
|
|
unsigned int pixel_clock;
|
|
int xres;
|
|
int yres;
|
|
int bpp;
|
|
int refresh;
|
|
bool rb;
|
|
bool interlace;
|
|
bool cvt;
|
|
bool margins;
|
|
enum drm_connector_force force;
|
|
unsigned int rotation_reflection;
|
|
enum drm_panel_orientation panel_orientation;
|
|
struct drm_connector_tv_margins tv_margins;
|
|
enum drm_connector_tv_mode tv_mode;
|
|
bool tv_mode_specified;
|
|
};
|
|
|
|
struct hdr_static_metadata {
|
|
__u8 eotf;
|
|
__u8 metadata_type;
|
|
__u16 max_cll;
|
|
__u16 max_fall;
|
|
__u16 min_cll;
|
|
};
|
|
|
|
struct hdr_sink_metadata {
|
|
__u32 metadata_type;
|
|
union {
|
|
struct hdr_static_metadata hdmi_type1;
|
|
};
|
|
};
|
|
|
|
struct drm_connector_funcs;
|
|
|
|
struct drm_connector_helper_funcs;
|
|
|
|
struct drm_edid;
|
|
|
|
struct drm_encoder;
|
|
|
|
struct i2c_adapter;
|
|
|
|
struct drm_tile_group;
|
|
|
|
struct drm_connector {
|
|
struct drm_device *dev;
|
|
struct device *kdev;
|
|
struct device_attribute *attr;
|
|
struct fwnode_handle *fwnode;
|
|
struct list_head head;
|
|
struct list_head global_connector_list_entry;
|
|
struct drm_mode_object base;
|
|
char *name;
|
|
struct mutex mutex;
|
|
unsigned int index;
|
|
int connector_type;
|
|
int connector_type_id;
|
|
bool interlace_allowed;
|
|
bool doublescan_allowed;
|
|
bool stereo_allowed;
|
|
bool ycbcr_420_allowed;
|
|
enum drm_connector_registration_state registration_state;
|
|
struct list_head modes;
|
|
enum drm_connector_status status;
|
|
struct list_head probed_modes;
|
|
struct drm_display_info display_info;
|
|
const struct drm_connector_funcs *funcs;
|
|
struct drm_property_blob *edid_blob_ptr;
|
|
struct drm_object_properties properties;
|
|
struct drm_property *scaling_mode_property;
|
|
struct drm_property *vrr_capable_property;
|
|
struct drm_property *colorspace_property;
|
|
struct drm_property_blob *path_blob_ptr;
|
|
struct drm_property *max_bpc_property;
|
|
struct drm_privacy_screen *privacy_screen;
|
|
struct notifier_block privacy_screen_notifier;
|
|
struct drm_property *privacy_screen_sw_state_property;
|
|
struct drm_property *privacy_screen_hw_state_property;
|
|
uint8_t polled;
|
|
int dpms;
|
|
const struct drm_connector_helper_funcs *helper_private;
|
|
struct drm_cmdline_mode cmdline_mode;
|
|
enum drm_connector_force force;
|
|
const struct drm_edid *edid_override;
|
|
struct mutex edid_override_mutex;
|
|
u64 epoch_counter;
|
|
u32 possible_encoders;
|
|
struct drm_encoder *encoder;
|
|
uint8_t eld[128];
|
|
bool latency_present[2];
|
|
int video_latency[2];
|
|
int audio_latency[2];
|
|
struct i2c_adapter *ddc;
|
|
int null_edid_counter;
|
|
unsigned int bad_edid_counter;
|
|
bool edid_corrupt;
|
|
u8 real_edid_checksum;
|
|
struct dentry *debugfs_entry;
|
|
struct drm_connector_state *state;
|
|
struct drm_property_blob *tile_blob_ptr;
|
|
bool has_tile;
|
|
struct drm_tile_group *tile_group;
|
|
bool tile_is_single_monitor;
|
|
uint8_t num_h_tile;
|
|
uint8_t num_v_tile;
|
|
uint8_t tile_h_loc;
|
|
uint8_t tile_v_loc;
|
|
uint16_t tile_h_size;
|
|
uint16_t tile_v_size;
|
|
struct llist_node free_node;
|
|
struct hdr_sink_metadata hdr_sink_metadata;
|
|
};
|
|
|
|
struct drm_connector_funcs {
|
|
int (*dpms)(struct drm_connector *, int);
|
|
void (*reset)(struct drm_connector *);
|
|
enum drm_connector_status (*detect)(struct drm_connector *, bool);
|
|
void (*force)(struct drm_connector *);
|
|
int (*fill_modes)(struct drm_connector *, uint32_t, uint32_t);
|
|
int (*set_property)(struct drm_connector *, struct drm_property *, uint64_t);
|
|
int (*late_register)(struct drm_connector *);
|
|
void (*early_unregister)(struct drm_connector *);
|
|
void (*destroy)(struct drm_connector *);
|
|
struct drm_connector_state * (*atomic_duplicate_state)(struct drm_connector *);
|
|
void (*atomic_destroy_state)(struct drm_connector *, struct drm_connector_state *);
|
|
int (*atomic_set_property)(struct drm_connector *, struct drm_connector_state *, struct drm_property *, uint64_t);
|
|
int (*atomic_get_property)(struct drm_connector *, const struct drm_connector_state *, struct drm_property *, uint64_t *);
|
|
void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state *);
|
|
void (*oob_hotplug_event)(struct drm_connector *);
|
|
void (*debugfs_init)(struct drm_connector *, struct dentry *);
|
|
};
|
|
|
|
struct drm_tv_connector_state {
|
|
enum drm_mode_subconnector select_subconnector;
|
|
enum drm_mode_subconnector subconnector;
|
|
struct drm_connector_tv_margins margins;
|
|
unsigned int legacy_mode;
|
|
unsigned int mode;
|
|
unsigned int brightness;
|
|
unsigned int contrast;
|
|
unsigned int flicker_reduction;
|
|
unsigned int overscan;
|
|
unsigned int saturation;
|
|
unsigned int hue;
|
|
};
|
|
|
|
struct drm_writeback_job;
|
|
|
|
struct drm_connector_state {
|
|
struct drm_connector *connector;
|
|
struct drm_crtc *crtc;
|
|
struct drm_encoder *best_encoder;
|
|
enum drm_link_status link_status;
|
|
struct drm_atomic_state *state;
|
|
struct drm_crtc_commit *commit;
|
|
struct drm_tv_connector_state tv;
|
|
bool self_refresh_aware;
|
|
enum hdmi_picture_aspect picture_aspect_ratio;
|
|
unsigned int content_type;
|
|
unsigned int hdcp_content_type;
|
|
unsigned int scaling_mode;
|
|
unsigned int content_protection;
|
|
u32 colorspace;
|
|
struct drm_writeback_job *writeback_job;
|
|
u8 max_requested_bpc;
|
|
u8 max_bpc;
|
|
enum drm_privacy_screen_status privacy_screen_sw_state;
|
|
struct drm_property_blob *hdr_output_metadata;
|
|
};
|
|
|
|
struct drm_encoder_funcs;
|
|
|
|
struct drm_encoder_helper_funcs;
|
|
|
|
struct drm_encoder {
|
|
struct drm_device *dev;
|
|
struct list_head head;
|
|
struct drm_mode_object base;
|
|
char *name;
|
|
int encoder_type;
|
|
unsigned int index;
|
|
uint32_t possible_crtcs;
|
|
uint32_t possible_clones;
|
|
struct drm_crtc *crtc;
|
|
struct list_head bridge_chain;
|
|
const struct drm_encoder_funcs *funcs;
|
|
const struct drm_encoder_helper_funcs *helper_private;
|
|
};
|
|
|
|
struct drm_encoder_funcs {
|
|
void (*reset)(struct drm_encoder *);
|
|
void (*destroy)(struct drm_encoder *);
|
|
int (*late_register)(struct drm_encoder *);
|
|
void (*early_unregister)(struct drm_encoder *);
|
|
};
|
|
|
|
struct drm_encoder_helper_funcs {
|
|
void (*dpms)(struct drm_encoder *, int);
|
|
enum drm_mode_status (*mode_valid)(struct drm_encoder *, const struct drm_display_mode *);
|
|
bool (*mode_fixup)(struct drm_encoder *, const struct drm_display_mode *, struct drm_display_mode *);
|
|
void (*prepare)(struct drm_encoder *);
|
|
void (*commit)(struct drm_encoder *);
|
|
void (*mode_set)(struct drm_encoder *, struct drm_display_mode *, struct drm_display_mode *);
|
|
void (*atomic_mode_set)(struct drm_encoder *, struct drm_crtc_state *, struct drm_connector_state *);
|
|
enum drm_connector_status (*detect)(struct drm_encoder *, struct drm_connector *);
|
|
void (*atomic_disable)(struct drm_encoder *, struct drm_atomic_state *);
|
|
void (*atomic_enable)(struct drm_encoder *, struct drm_atomic_state *);
|
|
void (*disable)(struct drm_encoder *);
|
|
void (*enable)(struct drm_encoder *);
|
|
int (*atomic_check)(struct drm_encoder *, struct drm_crtc_state *, struct drm_connector_state *);
|
|
};
|
|
|
|
struct drm_writeback_connector;
|
|
|
|
struct drm_writeback_job {
|
|
struct drm_writeback_connector *connector;
|
|
bool prepared;
|
|
struct work_struct cleanup_work;
|
|
struct list_head list_entry;
|
|
struct drm_framebuffer *fb;
|
|
struct dma_fence *out_fence;
|
|
void *priv;
|
|
};
|
|
|
|
struct drm_writeback_connector {
|
|
struct drm_connector base;
|
|
struct drm_encoder encoder;
|
|
struct drm_property_blob *pixel_formats_blob_ptr;
|
|
spinlock_t job_lock;
|
|
struct list_head job_queue;
|
|
unsigned int fence_context;
|
|
spinlock_t fence_lock;
|
|
unsigned long fence_seqno;
|
|
char timeline_name[32];
|
|
};
|
|
|
|
struct drm_connector_helper_funcs {
|
|
int (*get_modes)(struct drm_connector *);
|
|
int (*detect_ctx)(struct drm_connector *, struct drm_modeset_acquire_ctx *, bool);
|
|
enum drm_mode_status (*mode_valid)(struct drm_connector *, struct drm_display_mode *);
|
|
int (*mode_valid_ctx)(struct drm_connector *, struct drm_display_mode *, struct drm_modeset_acquire_ctx *, enum drm_mode_status *);
|
|
struct drm_encoder * (*best_encoder)(struct drm_connector *);
|
|
struct drm_encoder * (*atomic_best_encoder)(struct drm_connector *, struct drm_atomic_state *);
|
|
int (*atomic_check)(struct drm_connector *, struct drm_atomic_state *);
|
|
void (*atomic_commit)(struct drm_connector *, struct drm_atomic_state *);
|
|
int (*prepare_writeback_job)(struct drm_writeback_connector *, struct drm_writeback_job *);
|
|
void (*cleanup_writeback_job)(struct drm_writeback_connector *, struct drm_writeback_job *);
|
|
void (*enable_hpd)(struct drm_connector *);
|
|
void (*disable_hpd)(struct drm_connector *);
|
|
};
|
|
|
|
struct edid;
|
|
|
|
struct drm_edid {
|
|
size_t size;
|
|
const struct edid *edid;
|
|
};
|
|
|
|
struct drm_tile_group {
|
|
struct kref refcount;
|
|
struct drm_device *dev;
|
|
int id;
|
|
u8 group_data[8];
|
|
};
|
|
|
|
struct drm_private_obj;
|
|
|
|
struct drm_private_state;
|
|
|
|
struct __drm_private_objs_state {
|
|
struct drm_private_obj *ptr;
|
|
struct drm_private_state *state;
|
|
struct drm_private_state *old_state;
|
|
struct drm_private_state *new_state;
|
|
};
|
|
|
|
struct drm_private_state_funcs;
|
|
|
|
struct drm_private_obj {
|
|
struct list_head head;
|
|
struct drm_modeset_lock lock;
|
|
struct drm_private_state *state;
|
|
const struct drm_private_state_funcs *funcs;
|
|
};
|
|
|
|
struct drm_private_state {
|
|
struct drm_atomic_state *state;
|
|
struct drm_private_obj *obj;
|
|
};
|
|
|
|
struct drm_private_state_funcs {
|
|
struct drm_private_state * (*atomic_duplicate_state)(struct drm_private_obj *);
|
|
void (*atomic_destroy_state)(struct drm_private_obj *, struct drm_private_state *);
|
|
void (*atomic_print_state)(struct drm_printer *, const struct drm_private_state *);
|
|
};
|
|
|
|
struct drm_mode_config_helper_funcs {
|
|
void (*atomic_commit_tail)(struct drm_atomic_state *);
|
|
int (*atomic_commit_setup)(struct drm_atomic_state *);
|
|
};
|
|
|
|
struct drm_mode_set;
|
|
|
|
struct drm_crtc_funcs {
|
|
void (*reset)(struct drm_crtc *);
|
|
int (*cursor_set)(struct drm_crtc *, struct drm_file *, uint32_t, uint32_t, uint32_t);
|
|
int (*cursor_set2)(struct drm_crtc *, struct drm_file *, uint32_t, uint32_t, uint32_t, int32_t, int32_t);
|
|
int (*cursor_move)(struct drm_crtc *, int, int);
|
|
int (*gamma_set)(struct drm_crtc *, u16 *, u16 *, u16 *, uint32_t, struct drm_modeset_acquire_ctx *);
|
|
void (*destroy)(struct drm_crtc *);
|
|
int (*set_config)(struct drm_mode_set *, struct drm_modeset_acquire_ctx *);
|
|
int (*page_flip)(struct drm_crtc *, struct drm_framebuffer *, struct drm_pending_vblank_event *, uint32_t, struct drm_modeset_acquire_ctx *);
|
|
int (*page_flip_target)(struct drm_crtc *, struct drm_framebuffer *, struct drm_pending_vblank_event *, uint32_t, uint32_t, struct drm_modeset_acquire_ctx *);
|
|
int (*set_property)(struct drm_crtc *, struct drm_property *, uint64_t);
|
|
struct drm_crtc_state * (*atomic_duplicate_state)(struct drm_crtc *);
|
|
void (*atomic_destroy_state)(struct drm_crtc *, struct drm_crtc_state *);
|
|
int (*atomic_set_property)(struct drm_crtc *, struct drm_crtc_state *, struct drm_property *, uint64_t);
|
|
int (*atomic_get_property)(struct drm_crtc *, const struct drm_crtc_state *, struct drm_property *, uint64_t *);
|
|
int (*late_register)(struct drm_crtc *);
|
|
void (*early_unregister)(struct drm_crtc *);
|
|
int (*set_crc_source)(struct drm_crtc *, const char *);
|
|
int (*verify_crc_source)(struct drm_crtc *, const char *, size_t *);
|
|
const char * const * (*get_crc_sources)(struct drm_crtc *, size_t *);
|
|
void (*atomic_print_state)(struct drm_printer *, const struct drm_crtc_state *);
|
|
u32 (*get_vblank_counter)(struct drm_crtc *);
|
|
int (*enable_vblank)(struct drm_crtc *);
|
|
void (*disable_vblank)(struct drm_crtc *);
|
|
bool (*get_vblank_timestamp)(struct drm_crtc *, int *, ktime_t *, bool);
|
|
};
|
|
|
|
struct drm_mode_set {
|
|
struct drm_framebuffer *fb;
|
|
struct drm_crtc *crtc;
|
|
struct drm_display_mode *mode;
|
|
uint32_t x;
|
|
uint32_t y;
|
|
struct drm_connector **connectors;
|
|
size_t num_connectors;
|
|
};
|
|
|
|
enum mode_set_atomic {
|
|
LEAVE_ATOMIC_MODE_SET = 0,
|
|
ENTER_ATOMIC_MODE_SET = 1,
|
|
};
|
|
|
|
struct drm_crtc_helper_funcs {
|
|
void (*dpms)(struct drm_crtc *, int);
|
|
void (*prepare)(struct drm_crtc *);
|
|
void (*commit)(struct drm_crtc *);
|
|
enum drm_mode_status (*mode_valid)(struct drm_crtc *, const struct drm_display_mode *);
|
|
bool (*mode_fixup)(struct drm_crtc *, const struct drm_display_mode *, struct drm_display_mode *);
|
|
int (*mode_set)(struct drm_crtc *, struct drm_display_mode *, struct drm_display_mode *, int, int, struct drm_framebuffer *);
|
|
void (*mode_set_nofb)(struct drm_crtc *);
|
|
int (*mode_set_base)(struct drm_crtc *, int, int, struct drm_framebuffer *);
|
|
int (*mode_set_base_atomic)(struct drm_crtc *, struct drm_framebuffer *, int, int, enum mode_set_atomic);
|
|
void (*disable)(struct drm_crtc *);
|
|
int (*atomic_check)(struct drm_crtc *, struct drm_atomic_state *);
|
|
void (*atomic_begin)(struct drm_crtc *, struct drm_atomic_state *);
|
|
void (*atomic_flush)(struct drm_crtc *, struct drm_atomic_state *);
|
|
void (*atomic_enable)(struct drm_crtc *, struct drm_atomic_state *);
|
|
void (*atomic_disable)(struct drm_crtc *, struct drm_atomic_state *);
|
|
bool (*get_scanout_position)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *);
|
|
};
|
|
|
|
struct drm_crtc_crc_entry {
|
|
bool has_frame_counter;
|
|
uint32_t frame;
|
|
uint32_t crcs[10];
|
|
};
|
|
|
|
struct drm_bridge_timings;
|
|
|
|
struct drm_bridge_funcs;
|
|
|
|
struct drm_bridge {
|
|
struct drm_private_obj base;
|
|
struct drm_device *dev;
|
|
struct drm_encoder *encoder;
|
|
struct list_head chain_node;
|
|
struct list_head list;
|
|
const struct drm_bridge_timings *timings;
|
|
const struct drm_bridge_funcs *funcs;
|
|
void *driver_private;
|
|
enum drm_bridge_ops ops;
|
|
int type;
|
|
bool interlace_allowed;
|
|
bool pre_enable_prev_first;
|
|
struct i2c_adapter *ddc;
|
|
struct mutex hpd_mutex;
|
|
void (*hpd_cb)(void *, enum drm_connector_status);
|
|
void *hpd_data;
|
|
};
|
|
|
|
struct drm_bridge_timings {
|
|
u32 input_bus_flags;
|
|
u32 setup_time_ps;
|
|
u32 hold_time_ps;
|
|
bool dual_link;
|
|
};
|
|
|
|
struct drm_bridge_state;
|
|
|
|
struct drm_bridge_funcs {
|
|
int (*attach)(struct drm_bridge *, enum drm_bridge_attach_flags);
|
|
void (*detach)(struct drm_bridge *);
|
|
enum drm_mode_status (*mode_valid)(struct drm_bridge *, const struct drm_display_info *, const struct drm_display_mode *);
|
|
bool (*mode_fixup)(struct drm_bridge *, const struct drm_display_mode *, struct drm_display_mode *);
|
|
void (*disable)(struct drm_bridge *);
|
|
void (*post_disable)(struct drm_bridge *);
|
|
void (*mode_set)(struct drm_bridge *, const struct drm_display_mode *, const struct drm_display_mode *);
|
|
void (*pre_enable)(struct drm_bridge *);
|
|
void (*enable)(struct drm_bridge *);
|
|
void (*atomic_pre_enable)(struct drm_bridge *, struct drm_bridge_state *);
|
|
void (*atomic_enable)(struct drm_bridge *, struct drm_bridge_state *);
|
|
void (*atomic_disable)(struct drm_bridge *, struct drm_bridge_state *);
|
|
void (*atomic_post_disable)(struct drm_bridge *, struct drm_bridge_state *);
|
|
struct drm_bridge_state * (*atomic_duplicate_state)(struct drm_bridge *);
|
|
void (*atomic_destroy_state)(struct drm_bridge *, struct drm_bridge_state *);
|
|
u32 * (*atomic_get_output_bus_fmts)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *);
|
|
u32 * (*atomic_get_input_bus_fmts)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, u32, unsigned int *);
|
|
int (*atomic_check)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *);
|
|
struct drm_bridge_state * (*atomic_reset)(struct drm_bridge *);
|
|
enum drm_connector_status (*detect)(struct drm_bridge *);
|
|
int (*get_modes)(struct drm_bridge *, struct drm_connector *);
|
|
struct edid * (*get_edid)(struct drm_bridge *, struct drm_connector *);
|
|
void (*hpd_notify)(struct drm_bridge *, enum drm_connector_status);
|
|
void (*hpd_enable)(struct drm_bridge *);
|
|
void (*hpd_disable)(struct drm_bridge *);
|
|
void (*debugfs_init)(struct drm_bridge *, struct dentry *);
|
|
};
|
|
|
|
struct drm_bus_cfg {
|
|
u32 format;
|
|
u32 flags;
|
|
};
|
|
|
|
struct drm_bridge_state {
|
|
struct drm_private_state base;
|
|
struct drm_bridge *bridge;
|
|
struct drm_bus_cfg input_bus_cfg;
|
|
struct drm_bus_cfg output_bus_cfg;
|
|
};
|
|
|
|
struct static_key_true {
|
|
struct static_key key;
|
|
};
|
|
|
|
struct static_key_false {
|
|
struct static_key key;
|
|
};
|
|
|
|
struct _ddebug {
|
|
const char *modname;
|
|
const char *function;
|
|
const char *filename;
|
|
const char *format;
|
|
unsigned int lineno: 18;
|
|
unsigned int class_id: 6;
|
|
unsigned int flags: 8;
|
|
union {
|
|
struct static_key_true dd_key_true;
|
|
struct static_key_false dd_key_false;
|
|
} key;
|
|
};
|
|
|
|
struct drm_connector_list_iter {
|
|
struct drm_device *dev;
|
|
struct drm_connector *conn;
|
|
};
|
|
|
|
struct drm_mode_rect {
|
|
__s32 x1;
|
|
__s32 y1;
|
|
__s32 x2;
|
|
__s32 y2;
|
|
};
|
|
|
|
struct drm_debugfs_entry {
|
|
struct drm_device *dev;
|
|
struct drm_debugfs_info file;
|
|
struct list_head list;
|
|
};
|
|
|
|
typedef int drm_ioctl_compat_t(struct file *, unsigned int, unsigned long);
|
|
|
|
enum drm_stat_type {
|
|
_DRM_STAT_LOCK = 0,
|
|
_DRM_STAT_OPENS = 1,
|
|
_DRM_STAT_CLOSES = 2,
|
|
_DRM_STAT_IOCTLS = 3,
|
|
_DRM_STAT_LOCKS = 4,
|
|
_DRM_STAT_UNLOCKS = 5,
|
|
_DRM_STAT_VALUE = 6,
|
|
_DRM_STAT_BYTE = 7,
|
|
_DRM_STAT_COUNT = 8,
|
|
_DRM_STAT_IRQ = 9,
|
|
_DRM_STAT_PRIMARY = 10,
|
|
_DRM_STAT_SECONDARY = 11,
|
|
_DRM_STAT_DMA = 12,
|
|
_DRM_STAT_SPECIAL = 13,
|
|
_DRM_STAT_MISSED = 14,
|
|
};
|
|
|
|
enum drm_vblank_seq_type {
|
|
_DRM_VBLANK_ABSOLUTE = 0,
|
|
_DRM_VBLANK_RELATIVE = 1,
|
|
_DRM_VBLANK_HIGH_CRTC_MASK = 62,
|
|
_DRM_VBLANK_EVENT = 67108864,
|
|
_DRM_VBLANK_FLIP = 134217728,
|
|
_DRM_VBLANK_NEXTONMISS = 268435456,
|
|
_DRM_VBLANK_SECONDARY = 536870912,
|
|
_DRM_VBLANK_SIGNAL = 1073741824,
|
|
};
|
|
|
|
struct drm_version_32 {
|
|
int version_major;
|
|
int version_minor;
|
|
int version_patchlevel;
|
|
u32 name_len;
|
|
u32 name;
|
|
u32 date_len;
|
|
u32 date;
|
|
u32 desc_len;
|
|
u32 desc;
|
|
};
|
|
|
|
typedef struct drm_version_32 drm_version32_t;
|
|
|
|
struct drm_version {
|
|
int version_major;
|
|
int version_minor;
|
|
int version_patchlevel;
|
|
__kernel_size_t name_len;
|
|
char __attribute__((btf_type_tag("user"))) *name;
|
|
__kernel_size_t date_len;
|
|
char __attribute__((btf_type_tag("user"))) *date;
|
|
__kernel_size_t desc_len;
|
|
char __attribute__((btf_type_tag("user"))) *desc;
|
|
};
|
|
|
|
struct drm_unique32 {
|
|
u32 unique_len;
|
|
u32 unique;
|
|
};
|
|
|
|
typedef struct drm_unique32 drm_unique32_t;
|
|
|
|
struct drm_unique {
|
|
__kernel_size_t unique_len;
|
|
char __attribute__((btf_type_tag("user"))) *unique;
|
|
};
|
|
|
|
struct drm_client32 {
|
|
int idx;
|
|
int auth;
|
|
u32 pid;
|
|
u32 uid;
|
|
u32 magic;
|
|
u32 iocs;
|
|
};
|
|
|
|
typedef struct drm_client32 drm_client32_t;
|
|
|
|
struct drm_client {
|
|
int idx;
|
|
int auth;
|
|
unsigned long pid;
|
|
unsigned long uid;
|
|
unsigned long magic;
|
|
unsigned long iocs;
|
|
};
|
|
|
|
struct drm_stats32 {
|
|
u32 count;
|
|
struct {
|
|
u32 value;
|
|
enum drm_stat_type type;
|
|
} data[15];
|
|
};
|
|
|
|
typedef struct drm_stats32 drm_stats32_t;
|
|
|
|
struct drm_wait_vblank_request32 {
|
|
enum drm_vblank_seq_type type;
|
|
unsigned int sequence;
|
|
u32 signal;
|
|
};
|
|
|
|
struct drm_wait_vblank_reply32 {
|
|
enum drm_vblank_seq_type type;
|
|
unsigned int sequence;
|
|
s32 tval_sec;
|
|
s32 tval_usec;
|
|
};
|
|
|
|
union drm_wait_vblank32 {
|
|
struct drm_wait_vblank_request32 request;
|
|
struct drm_wait_vblank_reply32 reply;
|
|
};
|
|
|
|
typedef union drm_wait_vblank32 drm_wait_vblank32_t;
|
|
|
|
struct drm_wait_vblank_request {
|
|
enum drm_vblank_seq_type type;
|
|
unsigned int sequence;
|
|
unsigned long signal;
|
|
};
|
|
|
|
struct drm_wait_vblank_reply {
|
|
enum drm_vblank_seq_type type;
|
|
unsigned int sequence;
|
|
long tval_sec;
|
|
long tval_usec;
|
|
};
|
|
|
|
union drm_wait_vblank {
|
|
struct drm_wait_vblank_request request;
|
|
struct drm_wait_vblank_reply reply;
|
|
};
|
|
|
|
struct drm_mode_fb_cmd232 {
|
|
u32 fb_id;
|
|
u32 width;
|
|
u32 height;
|
|
u32 pixel_format;
|
|
u32 flags;
|
|
u32 handles[4];
|
|
u32 pitches[4];
|
|
u32 offsets[4];
|
|
u64 modifier[4];
|
|
} __attribute__((packed));
|
|
|
|
enum mipi_dsi_pixel_format {
|
|
MIPI_DSI_FMT_RGB888 = 0,
|
|
MIPI_DSI_FMT_RGB666 = 1,
|
|
MIPI_DSI_FMT_RGB666_PACKED = 2,
|
|
MIPI_DSI_FMT_RGB565 = 3,
|
|
};
|
|
|
|
enum {
|
|
MIPI_DSI_V_SYNC_START = 1,
|
|
MIPI_DSI_V_SYNC_END = 17,
|
|
MIPI_DSI_H_SYNC_START = 33,
|
|
MIPI_DSI_H_SYNC_END = 49,
|
|
MIPI_DSI_COMPRESSION_MODE = 7,
|
|
MIPI_DSI_END_OF_TRANSMISSION = 8,
|
|
MIPI_DSI_COLOR_MODE_OFF = 2,
|
|
MIPI_DSI_COLOR_MODE_ON = 18,
|
|
MIPI_DSI_SHUTDOWN_PERIPHERAL = 34,
|
|
MIPI_DSI_TURN_ON_PERIPHERAL = 50,
|
|
MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM = 3,
|
|
MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM = 19,
|
|
MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM = 35,
|
|
MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM = 4,
|
|
MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM = 20,
|
|
MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM = 36,
|
|
MIPI_DSI_DCS_SHORT_WRITE = 5,
|
|
MIPI_DSI_DCS_SHORT_WRITE_PARAM = 21,
|
|
MIPI_DSI_DCS_READ = 6,
|
|
MIPI_DSI_EXECUTE_QUEUE = 22,
|
|
MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE = 55,
|
|
MIPI_DSI_NULL_PACKET = 9,
|
|
MIPI_DSI_BLANKING_PACKET = 25,
|
|
MIPI_DSI_GENERIC_LONG_WRITE = 41,
|
|
MIPI_DSI_DCS_LONG_WRITE = 57,
|
|
MIPI_DSI_PICTURE_PARAMETER_SET = 10,
|
|
MIPI_DSI_COMPRESSED_PIXEL_STREAM = 11,
|
|
MIPI_DSI_LOOSELY_PACKED_PIXEL_STREAM_YCBCR20 = 12,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR24 = 28,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR16 = 44,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_30 = 13,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_36 = 29,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR12 = 61,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_16 = 14,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_18 = 30,
|
|
MIPI_DSI_PIXEL_STREAM_3BYTE_18 = 46,
|
|
MIPI_DSI_PACKED_PIXEL_STREAM_24 = 62,
|
|
};
|
|
|
|
enum {
|
|
MIPI_DCS_NOP = 0,
|
|
MIPI_DCS_SOFT_RESET = 1,
|
|
MIPI_DCS_GET_COMPRESSION_MODE = 3,
|
|
MIPI_DCS_GET_DISPLAY_ID = 4,
|
|
MIPI_DCS_GET_ERROR_COUNT_ON_DSI = 5,
|
|
MIPI_DCS_GET_RED_CHANNEL = 6,
|
|
MIPI_DCS_GET_GREEN_CHANNEL = 7,
|
|
MIPI_DCS_GET_BLUE_CHANNEL = 8,
|
|
MIPI_DCS_GET_DISPLAY_STATUS = 9,
|
|
MIPI_DCS_GET_POWER_MODE = 10,
|
|
MIPI_DCS_GET_ADDRESS_MODE = 11,
|
|
MIPI_DCS_GET_PIXEL_FORMAT = 12,
|
|
MIPI_DCS_GET_DISPLAY_MODE = 13,
|
|
MIPI_DCS_GET_SIGNAL_MODE = 14,
|
|
MIPI_DCS_GET_DIAGNOSTIC_RESULT = 15,
|
|
MIPI_DCS_ENTER_SLEEP_MODE = 16,
|
|
MIPI_DCS_EXIT_SLEEP_MODE = 17,
|
|
MIPI_DCS_ENTER_PARTIAL_MODE = 18,
|
|
MIPI_DCS_ENTER_NORMAL_MODE = 19,
|
|
MIPI_DCS_GET_IMAGE_CHECKSUM_RGB = 20,
|
|
MIPI_DCS_GET_IMAGE_CHECKSUM_CT = 21,
|
|
MIPI_DCS_EXIT_INVERT_MODE = 32,
|
|
MIPI_DCS_ENTER_INVERT_MODE = 33,
|
|
MIPI_DCS_SET_GAMMA_CURVE = 38,
|
|
MIPI_DCS_SET_DISPLAY_OFF = 40,
|
|
MIPI_DCS_SET_DISPLAY_ON = 41,
|
|
MIPI_DCS_SET_COLUMN_ADDRESS = 42,
|
|
MIPI_DCS_SET_PAGE_ADDRESS = 43,
|
|
MIPI_DCS_WRITE_MEMORY_START = 44,
|
|
MIPI_DCS_WRITE_LUT = 45,
|
|
MIPI_DCS_READ_MEMORY_START = 46,
|
|
MIPI_DCS_SET_PARTIAL_ROWS = 48,
|
|
MIPI_DCS_SET_PARTIAL_COLUMNS = 49,
|
|
MIPI_DCS_SET_SCROLL_AREA = 51,
|
|
MIPI_DCS_SET_TEAR_OFF = 52,
|
|
MIPI_DCS_SET_TEAR_ON = 53,
|
|
MIPI_DCS_SET_ADDRESS_MODE = 54,
|
|
MIPI_DCS_SET_SCROLL_START = 55,
|
|
MIPI_DCS_EXIT_IDLE_MODE = 56,
|
|
MIPI_DCS_ENTER_IDLE_MODE = 57,
|
|
MIPI_DCS_SET_PIXEL_FORMAT = 58,
|
|
MIPI_DCS_WRITE_MEMORY_CONTINUE = 60,
|
|
MIPI_DCS_SET_3D_CONTROL = 61,
|
|
MIPI_DCS_READ_MEMORY_CONTINUE = 62,
|
|
MIPI_DCS_GET_3D_CONTROL = 63,
|
|
MIPI_DCS_SET_VSYNC_TIMING = 64,
|
|
MIPI_DCS_SET_TEAR_SCANLINE = 68,
|
|
MIPI_DCS_GET_SCANLINE = 69,
|
|
MIPI_DCS_SET_DISPLAY_BRIGHTNESS = 81,
|
|
MIPI_DCS_GET_DISPLAY_BRIGHTNESS = 82,
|
|
MIPI_DCS_WRITE_CONTROL_DISPLAY = 83,
|
|
MIPI_DCS_GET_CONTROL_DISPLAY = 84,
|
|
MIPI_DCS_WRITE_POWER_SAVE = 85,
|
|
MIPI_DCS_GET_POWER_SAVE = 86,
|
|
MIPI_DCS_SET_CABC_MIN_BRIGHTNESS = 94,
|
|
MIPI_DCS_GET_CABC_MIN_BRIGHTNESS = 95,
|
|
MIPI_DCS_READ_DDB_START = 161,
|
|
MIPI_DCS_READ_PPS_START = 162,
|
|
MIPI_DCS_READ_DDB_CONTINUE = 168,
|
|
MIPI_DCS_READ_PPS_CONTINUE = 169,
|
|
};
|
|
|
|
enum mipi_dsi_dcs_tear_mode {
|
|
MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0,
|
|
MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1,
|
|
};
|
|
|
|
struct mipi_dsi_host;
|
|
|
|
struct drm_dsc_config;
|
|
|
|
struct mipi_dsi_device {
|
|
struct mipi_dsi_host *host;
|
|
struct device dev;
|
|
char name[20];
|
|
unsigned int channel;
|
|
unsigned int lanes;
|
|
enum mipi_dsi_pixel_format format;
|
|
unsigned long mode_flags;
|
|
unsigned long hs_rate;
|
|
unsigned long lp_rate;
|
|
struct drm_dsc_config *dsc;
|
|
};
|
|
|
|
struct mipi_dsi_host_ops;
|
|
|
|
struct mipi_dsi_host {
|
|
struct device *dev;
|
|
const struct mipi_dsi_host_ops *ops;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct mipi_dsi_msg;
|
|
|
|
struct mipi_dsi_host_ops {
|
|
int (*attach)(struct mipi_dsi_host *, struct mipi_dsi_device *);
|
|
int (*detach)(struct mipi_dsi_host *, struct mipi_dsi_device *);
|
|
ssize_t (*transfer)(struct mipi_dsi_host *, const struct mipi_dsi_msg *);
|
|
};
|
|
|
|
struct mipi_dsi_msg {
|
|
u8 channel;
|
|
u8 type;
|
|
u16 flags;
|
|
size_t tx_len;
|
|
const void *tx_buf;
|
|
size_t rx_len;
|
|
void *rx_buf;
|
|
};
|
|
|
|
struct drm_dsc_rc_range_parameters {
|
|
u8 range_min_qp;
|
|
u8 range_max_qp;
|
|
u8 range_bpg_offset;
|
|
};
|
|
|
|
struct drm_dsc_config {
|
|
u8 line_buf_depth;
|
|
u8 bits_per_component;
|
|
bool convert_rgb;
|
|
u8 slice_count;
|
|
u16 slice_width;
|
|
u16 slice_height;
|
|
bool simple_422;
|
|
u16 pic_width;
|
|
u16 pic_height;
|
|
u8 rc_tgt_offset_high;
|
|
u8 rc_tgt_offset_low;
|
|
u16 bits_per_pixel;
|
|
u8 rc_edge_factor;
|
|
u8 rc_quant_incr_limit1;
|
|
u8 rc_quant_incr_limit0;
|
|
u16 initial_xmit_delay;
|
|
u16 initial_dec_delay;
|
|
bool block_pred_enable;
|
|
u8 first_line_bpg_offset;
|
|
u16 initial_offset;
|
|
u16 rc_buf_thresh[14];
|
|
struct drm_dsc_rc_range_parameters rc_range_params[15];
|
|
u16 rc_model_size;
|
|
u8 flatness_min_qp;
|
|
u8 flatness_max_qp;
|
|
u8 initial_scale_value;
|
|
u16 scale_decrement_interval;
|
|
u16 scale_increment_interval;
|
|
u16 nfl_bpg_offset;
|
|
u16 slice_bpg_offset;
|
|
u16 final_offset;
|
|
bool vbr_enable;
|
|
u8 mux_word_size;
|
|
u16 slice_chunk_size;
|
|
u16 rc_bits;
|
|
u8 dsc_version_minor;
|
|
u8 dsc_version_major;
|
|
bool native_422;
|
|
bool native_420;
|
|
u8 second_line_bpg_offset;
|
|
u16 nsl_bpg_offset;
|
|
u16 second_line_offset_adj;
|
|
};
|
|
|
|
struct mipi_dsi_driver {
|
|
struct device_driver driver;
|
|
int (*probe)(struct mipi_dsi_device *);
|
|
void (*remove)(struct mipi_dsi_device *);
|
|
void (*shutdown)(struct mipi_dsi_device *);
|
|
};
|
|
|
|
struct mipi_dsi_device_info {
|
|
char type[20];
|
|
u32 channel;
|
|
struct device_node *node;
|
|
};
|
|
|
|
struct mipi_dsi_packet {
|
|
size_t size;
|
|
u8 header[4];
|
|
size_t payload_length;
|
|
const u8 *payload;
|
|
};
|
|
|
|
struct drm_dsc_picture_parameter_set {
|
|
u8 dsc_version;
|
|
u8 pps_identifier;
|
|
u8 pps_reserved;
|
|
u8 pps_3;
|
|
u8 pps_4;
|
|
u8 bits_per_pixel_low;
|
|
__be16 pic_height;
|
|
__be16 pic_width;
|
|
__be16 slice_height;
|
|
__be16 slice_width;
|
|
__be16 chunk_size;
|
|
u8 initial_xmit_delay_high;
|
|
u8 initial_xmit_delay_low;
|
|
__be16 initial_dec_delay;
|
|
u8 pps20_reserved;
|
|
u8 initial_scale_value;
|
|
__be16 scale_increment_interval;
|
|
u8 scale_decrement_interval_high;
|
|
u8 scale_decrement_interval_low;
|
|
u8 pps26_reserved;
|
|
u8 first_line_bpg_offset;
|
|
__be16 nfl_bpg_offset;
|
|
__be16 slice_bpg_offset;
|
|
__be16 initial_offset;
|
|
__be16 final_offset;
|
|
u8 flatness_min_qp;
|
|
u8 flatness_max_qp;
|
|
__be16 rc_model_size;
|
|
u8 rc_edge_factor;
|
|
u8 rc_quant_incr_limit0;
|
|
u8 rc_quant_incr_limit1;
|
|
u8 rc_tgt_offset;
|
|
u8 rc_buf_thresh[14];
|
|
__be16 rc_range_parameters[15];
|
|
u8 native_422_420;
|
|
u8 second_line_bpg_offset;
|
|
__be16 nsl_bpg_offset;
|
|
__be16 second_line_offset_adj;
|
|
u32 pps_long_94_reserved;
|
|
u32 pps_long_98_reserved;
|
|
u32 pps_long_102_reserved;
|
|
u32 pps_long_106_reserved;
|
|
u32 pps_long_110_reserved;
|
|
u32 pps_long_114_reserved;
|
|
u32 pps_long_118_reserved;
|
|
u32 pps_long_122_reserved;
|
|
__be16 pps_short_126_reserved;
|
|
} __attribute__((packed));
|
|
|
|
struct plist_head {
|
|
struct list_head node_list;
|
|
};
|
|
|
|
enum pm_qos_type {
|
|
PM_QOS_UNITIALIZED = 0,
|
|
PM_QOS_MAX = 1,
|
|
PM_QOS_MIN = 2,
|
|
};
|
|
|
|
struct pm_qos_constraints {
|
|
struct plist_head list;
|
|
s32 target_value;
|
|
s32 default_value;
|
|
s32 no_constraint_value;
|
|
enum pm_qos_type type;
|
|
struct blocking_notifier_head *notifiers;
|
|
};
|
|
|
|
struct freq_constraints {
|
|
struct pm_qos_constraints min_freq;
|
|
struct blocking_notifier_head min_freq_notifiers;
|
|
struct pm_qos_constraints max_freq;
|
|
struct blocking_notifier_head max_freq_notifiers;
|
|
};
|
|
|
|
struct pm_qos_flags {
|
|
struct list_head list;
|
|
s32 effective_flags;
|
|
};
|
|
|
|
struct dev_pm_qos_request;
|
|
|
|
struct dev_pm_qos {
|
|
struct pm_qos_constraints resume_latency;
|
|
struct pm_qos_constraints latency_tolerance;
|
|
struct freq_constraints freq;
|
|
struct pm_qos_flags flags;
|
|
struct dev_pm_qos_request *resume_latency_req;
|
|
struct dev_pm_qos_request *latency_tolerance_req;
|
|
struct dev_pm_qos_request *flags_req;
|
|
};
|
|
|
|
struct pm_qos_flags_request {
|
|
struct list_head node;
|
|
s32 flags;
|
|
};
|
|
|
|
enum freq_qos_req_type {
|
|
FREQ_QOS_MIN = 1,
|
|
FREQ_QOS_MAX = 2,
|
|
};
|
|
|
|
struct freq_qos_request {
|
|
enum freq_qos_req_type type;
|
|
struct plist_node pnode;
|
|
struct freq_constraints *qos;
|
|
};
|
|
|
|
enum dev_pm_qos_req_type {
|
|
DEV_PM_QOS_RESUME_LATENCY = 1,
|
|
DEV_PM_QOS_LATENCY_TOLERANCE = 2,
|
|
DEV_PM_QOS_MIN_FREQUENCY = 3,
|
|
DEV_PM_QOS_MAX_FREQUENCY = 4,
|
|
DEV_PM_QOS_FLAGS = 5,
|
|
};
|
|
|
|
struct dev_pm_qos_request {
|
|
enum dev_pm_qos_req_type type;
|
|
union {
|
|
struct plist_node pnode;
|
|
struct pm_qos_flags_request flr;
|
|
struct freq_qos_request freq;
|
|
} data;
|
|
struct device *dev;
|
|
};
|
|
|
|
enum intel_platform {
|
|
INTEL_PLATFORM_UNINITIALIZED = 0,
|
|
INTEL_I830 = 1,
|
|
INTEL_I845G = 2,
|
|
INTEL_I85X = 3,
|
|
INTEL_I865G = 4,
|
|
INTEL_I915G = 5,
|
|
INTEL_I915GM = 6,
|
|
INTEL_I945G = 7,
|
|
INTEL_I945GM = 8,
|
|
INTEL_G33 = 9,
|
|
INTEL_PINEVIEW = 10,
|
|
INTEL_I965G = 11,
|
|
INTEL_I965GM = 12,
|
|
INTEL_G45 = 13,
|
|
INTEL_GM45 = 14,
|
|
INTEL_IRONLAKE = 15,
|
|
INTEL_SANDYBRIDGE = 16,
|
|
INTEL_IVYBRIDGE = 17,
|
|
INTEL_VALLEYVIEW = 18,
|
|
INTEL_HASWELL = 19,
|
|
INTEL_BROADWELL = 20,
|
|
INTEL_CHERRYVIEW = 21,
|
|
INTEL_SKYLAKE = 22,
|
|
INTEL_BROXTON = 23,
|
|
INTEL_KABYLAKE = 24,
|
|
INTEL_GEMINILAKE = 25,
|
|
INTEL_COFFEELAKE = 26,
|
|
INTEL_COMETLAKE = 27,
|
|
INTEL_ICELAKE = 28,
|
|
INTEL_ELKHARTLAKE = 29,
|
|
INTEL_JASPERLAKE = 30,
|
|
INTEL_TIGERLAKE = 31,
|
|
INTEL_ROCKETLAKE = 32,
|
|
INTEL_DG1 = 33,
|
|
INTEL_ALDERLAKE_S = 34,
|
|
INTEL_ALDERLAKE_P = 35,
|
|
INTEL_XEHPSDV = 36,
|
|
INTEL_DG2 = 37,
|
|
INTEL_PONTEVECCHIO = 38,
|
|
INTEL_METEORLAKE = 39,
|
|
INTEL_MAX_PLATFORMS = 40,
|
|
};
|
|
|
|
struct intel_ip_version {
|
|
u8 ver;
|
|
u8 rel;
|
|
u8 step;
|
|
};
|
|
|
|
typedef u32 intel_engine_mask_t;
|
|
|
|
struct intel_step_info {
|
|
u8 graphics_step;
|
|
u8 display_step;
|
|
u8 media_step;
|
|
u8 basedie_step;
|
|
};
|
|
|
|
enum intel_ppgtt_type {
|
|
INTEL_PPGTT_NONE = 0,
|
|
INTEL_PPGTT_ALIASING = 1,
|
|
INTEL_PPGTT_FULL = 2,
|
|
};
|
|
|
|
struct intel_runtime_info {
|
|
struct {
|
|
struct intel_ip_version ip;
|
|
} graphics;
|
|
struct {
|
|
struct intel_ip_version ip;
|
|
} media;
|
|
struct {
|
|
struct intel_ip_version ip;
|
|
} display;
|
|
u32 platform_mask[2];
|
|
u16 device_id;
|
|
intel_engine_mask_t platform_engine_mask;
|
|
u32 rawclk_freq;
|
|
struct intel_step_info step;
|
|
unsigned int page_sizes;
|
|
enum intel_ppgtt_type ppgtt_type;
|
|
unsigned int ppgtt_size;
|
|
u32 memory_regions;
|
|
bool has_pooled_eu;
|
|
struct {
|
|
u8 pipe_mask;
|
|
u8 cpu_transcoder_mask;
|
|
u8 num_sprites[4];
|
|
u8 num_scalers[4];
|
|
u8 fbc_mask;
|
|
bool has_hdcp;
|
|
bool has_dmc;
|
|
bool has_dsc;
|
|
};
|
|
};
|
|
|
|
struct intel_gt_definition;
|
|
|
|
struct intel_device_info {
|
|
enum intel_platform platform;
|
|
unsigned int dma_mask_size;
|
|
const struct intel_gt_definition *extra_gt_list;
|
|
u8 gt;
|
|
u8 is_mobile: 1;
|
|
u8 is_lp: 1;
|
|
u8 require_force_probe: 1;
|
|
u8 is_dgfx: 1;
|
|
u8 has_64bit_reloc: 1;
|
|
u8 has_64k_pages: 1;
|
|
u8 gpu_reset_clobbers_display: 1;
|
|
u8 has_reset_engine: 1;
|
|
u8 has_3d_pipeline: 1;
|
|
u8 has_4tile: 1;
|
|
u8 has_flat_ccs: 1;
|
|
u8 has_global_mocs: 1;
|
|
u8 has_gmd_id: 1;
|
|
u8 has_gt_uc: 1;
|
|
u8 has_heci_pxp: 1;
|
|
u8 has_heci_gscfi: 1;
|
|
u8 has_guc_deprivilege: 1;
|
|
u8 has_l3_ccs_read: 1;
|
|
u8 has_l3_dpf: 1;
|
|
u8 has_llc: 1;
|
|
u8 has_logical_ring_contexts: 1;
|
|
u8 has_logical_ring_elsq: 1;
|
|
u8 has_media_ratio_mode: 1;
|
|
u8 has_mslice_steering: 1;
|
|
u8 has_oa_bpc_reporting: 1;
|
|
u8 has_oa_slice_contrib_limits: 1;
|
|
u8 has_one_eu_per_fuse_bit: 1;
|
|
u8 has_pxp: 1;
|
|
u8 has_rc6: 1;
|
|
u8 has_rc6p: 1;
|
|
u8 has_rps: 1;
|
|
u8 has_runtime_pm: 1;
|
|
u8 has_snoop: 1;
|
|
u8 has_coherent_ggtt: 1;
|
|
u8 tuning_thread_rr_after_dep: 1;
|
|
u8 unfenced_needs_alignment: 1;
|
|
u8 hws_needs_physical: 1;
|
|
struct {
|
|
u8 abox_mask;
|
|
struct {
|
|
u16 size;
|
|
u8 slice_mask;
|
|
} dbuf;
|
|
u8 cursor_needs_physical: 1;
|
|
u8 has_cdclk_crawl: 1;
|
|
u8 has_cdclk_squash: 1;
|
|
u8 has_ddi: 1;
|
|
u8 has_dp_mst: 1;
|
|
u8 has_dsb: 1;
|
|
u8 has_fpga_dbg: 1;
|
|
u8 has_gmch: 1;
|
|
u8 has_hotplug: 1;
|
|
u8 has_hti: 1;
|
|
u8 has_ipc: 1;
|
|
u8 has_modular_fia: 1;
|
|
u8 has_overlay: 1;
|
|
u8 has_psr: 1;
|
|
u8 has_psr_hw_tracking: 1;
|
|
u8 overlay_needs_physical: 1;
|
|
u8 supports_tv: 1;
|
|
u32 mmio_offset;
|
|
u32 pipe_offsets[7];
|
|
u32 trans_offsets[7];
|
|
u32 cursor_offsets[4];
|
|
struct {
|
|
u32 degamma_lut_size;
|
|
u32 gamma_lut_size;
|
|
u32 degamma_lut_tests;
|
|
u32 gamma_lut_tests;
|
|
} color;
|
|
} display;
|
|
const struct intel_runtime_info __runtime;
|
|
};
|
|
|
|
enum intel_gt_type {
|
|
GT_PRIMARY = 0,
|
|
GT_TILE = 1,
|
|
GT_MEDIA = 2,
|
|
};
|
|
|
|
struct intel_gt_definition {
|
|
enum intel_gt_type type;
|
|
char *name;
|
|
u32 mapping_base;
|
|
u32 gsi_offset;
|
|
intel_engine_mask_t engine_mask;
|
|
};
|
|
|
|
struct intel_global_state;
|
|
|
|
struct intel_global_state_funcs;
|
|
|
|
struct intel_global_obj {
|
|
struct list_head head;
|
|
struct intel_global_state *state;
|
|
const struct intel_global_state_funcs *funcs;
|
|
};
|
|
|
|
struct intel_bw_info {
|
|
unsigned int deratedbw[8];
|
|
unsigned int psf_bw[3];
|
|
u8 num_qgv_points;
|
|
u8 num_psf_gv_points;
|
|
u8 num_planes;
|
|
};
|
|
|
|
struct intel_cdclk_config {
|
|
unsigned int cdclk;
|
|
unsigned int vco;
|
|
unsigned int ref;
|
|
unsigned int bypass;
|
|
u8 voltage_level;
|
|
};
|
|
|
|
struct intel_fbdev;
|
|
|
|
typedef depot_stack_handle_t intel_wakeref_t;
|
|
|
|
struct intel_power_domain_mask {
|
|
unsigned long bits[2];
|
|
};
|
|
|
|
struct i915_power_well;
|
|
|
|
struct i915_power_domains {
|
|
bool initializing;
|
|
bool display_core_suspended;
|
|
int power_well_count;
|
|
intel_wakeref_t init_wakeref;
|
|
intel_wakeref_t disable_wakeref;
|
|
struct mutex lock;
|
|
int domain_use_count[77];
|
|
struct delayed_work async_put_work;
|
|
intel_wakeref_t async_put_wakeref;
|
|
struct intel_power_domain_mask async_put_domains[2];
|
|
struct i915_power_well *power_wells;
|
|
};
|
|
|
|
struct intel_atomic_helper {
|
|
struct llist_head free_list;
|
|
struct work_struct free_work;
|
|
};
|
|
|
|
struct intel_encoder;
|
|
|
|
struct intel_audio_state {
|
|
struct intel_encoder *encoder;
|
|
u8 eld[128];
|
|
};
|
|
|
|
struct i915_audio_component;
|
|
|
|
struct platform_device;
|
|
|
|
struct intel_audio {
|
|
struct i915_audio_component *component;
|
|
bool component_registered;
|
|
struct mutex mutex;
|
|
int power_refcount;
|
|
u32 freq_cntrl;
|
|
struct intel_audio_state state[4];
|
|
struct {
|
|
struct platform_device *platdev;
|
|
int irq;
|
|
} lpe;
|
|
};
|
|
|
|
typedef struct {
|
|
u32 reg;
|
|
} i915_reg_t;
|
|
|
|
struct dmc_fw_info {
|
|
u32 mmio_count;
|
|
i915_reg_t mmioaddr[20];
|
|
u32 mmiodata[20];
|
|
u32 dmc_offset;
|
|
u32 start_mmioaddr;
|
|
u32 dmc_fw_size;
|
|
u32 *payload;
|
|
bool present;
|
|
};
|
|
|
|
struct intel_dmc {
|
|
struct work_struct work;
|
|
const char *fw_path;
|
|
u32 max_fw_size;
|
|
u32 version;
|
|
struct dmc_fw_info dmc_info[5];
|
|
u32 dc_state;
|
|
u32 target_dc_state;
|
|
u32 allowed_dc_mask;
|
|
intel_wakeref_t wakeref;
|
|
};
|
|
|
|
struct intel_dpll_hw_state {
|
|
u32 dpll;
|
|
u32 dpll_md;
|
|
u32 fp0;
|
|
u32 fp1;
|
|
u32 wrpll;
|
|
u32 spll;
|
|
u32 ctrl1;
|
|
u32 cfgcr1;
|
|
u32 cfgcr2;
|
|
u32 cfgcr0;
|
|
u32 div0;
|
|
u32 ebb0;
|
|
u32 ebb4;
|
|
u32 pll0;
|
|
u32 pll1;
|
|
u32 pll2;
|
|
u32 pll3;
|
|
u32 pll6;
|
|
u32 pll8;
|
|
u32 pll9;
|
|
u32 pll10;
|
|
u32 pcsdw12;
|
|
u32 mg_refclkin_ctl;
|
|
u32 mg_clktop2_coreclkctl1;
|
|
u32 mg_clktop2_hsclkctl;
|
|
u32 mg_pll_div0;
|
|
u32 mg_pll_div1;
|
|
u32 mg_pll_lf;
|
|
u32 mg_pll_frac_lock;
|
|
u32 mg_pll_ssc;
|
|
u32 mg_pll_bias;
|
|
u32 mg_pll_tdc_coldst_bias;
|
|
u32 mg_pll_bias_mask;
|
|
u32 mg_pll_tdc_coldst_bias_mask;
|
|
};
|
|
|
|
struct intel_shared_dpll_state {
|
|
u8 pipe_mask;
|
|
struct intel_dpll_hw_state hw_state;
|
|
};
|
|
|
|
struct dpll_info;
|
|
|
|
struct intel_shared_dpll {
|
|
struct intel_shared_dpll_state state;
|
|
u8 active_mask;
|
|
bool on;
|
|
const struct dpll_info *info;
|
|
intel_wakeref_t wakeref;
|
|
};
|
|
|
|
struct intel_dpll_mgr;
|
|
|
|
struct intel_dpll {
|
|
struct mutex lock;
|
|
int num_shared_dpll;
|
|
struct intel_shared_dpll shared_dplls[9];
|
|
const struct intel_dpll_mgr *mgr;
|
|
struct {
|
|
int nssc;
|
|
int ssc;
|
|
} ref_clks;
|
|
u8 pch_ssc_use;
|
|
};
|
|
|
|
struct intel_frontbuffer_tracking {
|
|
spinlock_t lock;
|
|
unsigned int busy_bits;
|
|
unsigned int flip_bits;
|
|
};
|
|
|
|
struct intel_hotplug {
|
|
struct delayed_work hotplug_work;
|
|
const u32 *hpd;
|
|
const u32 *pch_hpd;
|
|
struct {
|
|
unsigned long last_jiffies;
|
|
int count;
|
|
enum {
|
|
HPD_ENABLED = 0,
|
|
HPD_DISABLED = 1,
|
|
HPD_MARK_DISABLED = 2,
|
|
} state;
|
|
} stats[15];
|
|
u32 event_bits;
|
|
u32 retry_bits;
|
|
struct delayed_work reenable_work;
|
|
u32 long_port_mask;
|
|
u32 short_port_mask;
|
|
struct work_struct dig_port_work;
|
|
struct work_struct poll_init_work;
|
|
bool poll_enabled;
|
|
unsigned int hpd_storm_threshold;
|
|
u8 hpd_short_storm_enabled;
|
|
struct workqueue_struct *dp_wq;
|
|
};
|
|
|
|
struct opregion_header;
|
|
|
|
struct opregion_acpi;
|
|
|
|
struct opregion_swsci;
|
|
|
|
struct opregion_asle;
|
|
|
|
struct opregion_asle_ext;
|
|
|
|
struct intel_opregion {
|
|
struct opregion_header *header;
|
|
struct opregion_acpi *acpi;
|
|
struct opregion_swsci *swsci;
|
|
u32 swsci_gbda_sub_functions;
|
|
u32 swsci_sbcb_sub_functions;
|
|
struct opregion_asle *asle;
|
|
struct opregion_asle_ext *asle_ext;
|
|
void *rvda;
|
|
void *vbt_firmware;
|
|
const void *vbt;
|
|
u32 vbt_size;
|
|
u32 *lid_state;
|
|
struct work_struct asle_work;
|
|
struct notifier_block acpi_notifier;
|
|
};
|
|
|
|
struct sdvo_device_mapping {
|
|
u8 initialized;
|
|
u8 dvo_port;
|
|
u8 slave_addr;
|
|
u8 dvo_wiring;
|
|
u8 i2c_pin;
|
|
u8 ddc_pin;
|
|
};
|
|
|
|
struct intel_bios_encoder_data;
|
|
|
|
struct intel_vbt_data {
|
|
u16 version;
|
|
unsigned int int_tv_support: 1;
|
|
unsigned int int_crt_support: 1;
|
|
unsigned int lvds_use_ssc: 1;
|
|
unsigned int int_lvds_support: 1;
|
|
unsigned int display_clock_mode: 1;
|
|
unsigned int fdi_rx_polarity_inverted: 1;
|
|
int lvds_ssc_freq;
|
|
enum drm_panel_orientation orientation;
|
|
bool override_afc_startup;
|
|
u8 override_afc_startup_val;
|
|
int crt_ddc_pin;
|
|
struct list_head display_devices;
|
|
struct list_head bdb_blocks;
|
|
struct intel_bios_encoder_data *ports[9];
|
|
struct sdvo_device_mapping sdvo_mappings[2];
|
|
};
|
|
|
|
enum intel_ddb_partitioning {
|
|
INTEL_DDB_PART_1_2 = 0,
|
|
INTEL_DDB_PART_5_6 = 1,
|
|
};
|
|
|
|
struct ilk_wm_values {
|
|
u32 wm_pipe[3];
|
|
u32 wm_lp[3];
|
|
u32 wm_lp_spr[3];
|
|
bool enable_fbc_wm;
|
|
enum intel_ddb_partitioning partitioning;
|
|
};
|
|
|
|
struct g4x_pipe_wm {
|
|
u16 plane[8];
|
|
u16 fbc;
|
|
};
|
|
|
|
struct g4x_sr_wm {
|
|
u16 plane;
|
|
u16 cursor;
|
|
u16 fbc;
|
|
};
|
|
|
|
struct vlv_wm_ddl_values {
|
|
u8 plane[8];
|
|
};
|
|
|
|
struct vlv_wm_values {
|
|
struct g4x_pipe_wm pipe[3];
|
|
struct g4x_sr_wm sr;
|
|
struct vlv_wm_ddl_values ddl[3];
|
|
u8 level;
|
|
bool cxsr;
|
|
};
|
|
|
|
struct g4x_wm_values {
|
|
struct g4x_pipe_wm pipe[2];
|
|
struct g4x_sr_wm sr;
|
|
struct g4x_sr_wm hpll;
|
|
bool cxsr;
|
|
bool hpll_en;
|
|
bool fbc_en;
|
|
};
|
|
|
|
struct intel_wm {
|
|
u16 pri_latency[5];
|
|
u16 spr_latency[5];
|
|
u16 cur_latency[5];
|
|
u16 skl_latency[8];
|
|
union {
|
|
struct ilk_wm_values hw;
|
|
struct vlv_wm_values vlv;
|
|
struct g4x_wm_values g4x;
|
|
};
|
|
u8 max_level;
|
|
struct mutex wm_mutex;
|
|
bool ipc_enabled;
|
|
};
|
|
|
|
struct intel_display_funcs;
|
|
|
|
struct intel_cdclk_funcs;
|
|
|
|
struct intel_dpll_funcs;
|
|
|
|
struct intel_hotplug_funcs;
|
|
|
|
struct intel_wm_funcs;
|
|
|
|
struct intel_fdi_funcs;
|
|
|
|
struct intel_color_funcs;
|
|
|
|
struct intel_audio_funcs;
|
|
|
|
struct intel_cdclk_vals;
|
|
|
|
struct drm_property_blob___2;
|
|
|
|
struct intel_gmbus;
|
|
|
|
struct i915_hdcp_comp_master;
|
|
|
|
struct drm_property___2;
|
|
|
|
struct intel_fbc;
|
|
|
|
struct intel_overlay;
|
|
|
|
struct intel_display {
|
|
struct {
|
|
const struct intel_display_funcs *display;
|
|
const struct intel_cdclk_funcs *cdclk;
|
|
const struct intel_dpll_funcs *dpll;
|
|
const struct intel_hotplug_funcs *hotplug;
|
|
const struct intel_wm_funcs *wm;
|
|
const struct intel_fdi_funcs *fdi;
|
|
const struct intel_color_funcs *color;
|
|
const struct intel_audio_funcs *audio;
|
|
} funcs;
|
|
struct intel_atomic_helper atomic_helper;
|
|
struct {
|
|
struct mutex lock;
|
|
} backlight;
|
|
struct {
|
|
struct intel_global_obj obj;
|
|
struct intel_bw_info max[6];
|
|
} bw;
|
|
struct {
|
|
struct intel_cdclk_config hw;
|
|
const struct intel_cdclk_vals *table;
|
|
struct intel_global_obj obj;
|
|
unsigned int max_cdclk_freq;
|
|
} cdclk;
|
|
struct {
|
|
struct drm_property_blob___2 *glk_linear_degamma_lut;
|
|
} color;
|
|
struct {
|
|
u8 enabled_slices;
|
|
struct intel_global_obj obj;
|
|
} dbuf;
|
|
struct {
|
|
spinlock_t phy_lock;
|
|
} dkl;
|
|
struct {
|
|
u32 mmio_base;
|
|
} dsi;
|
|
struct {
|
|
struct intel_fbdev *fbdev;
|
|
struct work_struct suspend_work;
|
|
} fbdev;
|
|
struct {
|
|
unsigned int pll_freq;
|
|
u32 rx_config;
|
|
} fdi;
|
|
struct {
|
|
struct list_head obj_list;
|
|
} global;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
struct intel_gmbus *bus[15];
|
|
wait_queue_head_t wait_queue;
|
|
} gmbus;
|
|
struct {
|
|
struct i915_hdcp_comp_master *master;
|
|
bool comp_added;
|
|
struct mutex comp_mutex;
|
|
} hdcp;
|
|
struct {
|
|
u32 state;
|
|
} hti;
|
|
struct {
|
|
struct i915_power_domains domains;
|
|
u32 chv_phy_control;
|
|
bool chv_phy_assert[2];
|
|
} power;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
} pps;
|
|
struct {
|
|
struct drm_property___2 *broadcast_rgb;
|
|
struct drm_property___2 *force_audio;
|
|
} properties;
|
|
struct {
|
|
unsigned long mask;
|
|
} quirks;
|
|
struct {
|
|
struct drm_atomic_state *modeset_state;
|
|
struct drm_modeset_acquire_ctx reset_ctx;
|
|
} restore;
|
|
struct {
|
|
enum {
|
|
I915_SAGV_UNKNOWN = 0,
|
|
I915_SAGV_DISABLED = 1,
|
|
I915_SAGV_ENABLED = 2,
|
|
I915_SAGV_NOT_CONTROLLED = 3,
|
|
} status;
|
|
u32 block_time_us;
|
|
} sagv;
|
|
struct {
|
|
u8 phy_failed_calibration;
|
|
} snps;
|
|
struct {
|
|
u32 chv_dpll_md[4];
|
|
u32 bxt_phy_grc;
|
|
} state;
|
|
struct {
|
|
struct workqueue_struct *modeset;
|
|
struct workqueue_struct *flip;
|
|
} wq;
|
|
struct intel_audio audio;
|
|
struct intel_dmc dmc;
|
|
struct intel_dpll dpll;
|
|
struct intel_fbc *fbc[2];
|
|
struct intel_frontbuffer_tracking fb_tracking;
|
|
struct intel_hotplug hotplug;
|
|
struct intel_opregion opregion;
|
|
struct intel_overlay *overlay;
|
|
struct intel_vbt_data vbt;
|
|
struct intel_wm wm;
|
|
};
|
|
|
|
struct intel_crtc;
|
|
|
|
struct intel_crtc_state;
|
|
|
|
struct intel_initial_plane_config;
|
|
|
|
struct intel_atomic_state;
|
|
|
|
struct intel_display_funcs {
|
|
bool (*get_pipe_config)(struct intel_crtc *, struct intel_crtc_state *);
|
|
void (*get_initial_plane_config)(struct intel_crtc *, struct intel_initial_plane_config *);
|
|
void (*crtc_enable)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*crtc_disable)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*commit_modeset_enables)(struct intel_atomic_state *);
|
|
};
|
|
|
|
enum pipe {
|
|
INVALID_PIPE = -1,
|
|
PIPE_A = 0,
|
|
PIPE_B = 1,
|
|
PIPE_C = 2,
|
|
PIPE_D = 3,
|
|
_PIPE_EDP = 4,
|
|
I915_MAX_PIPES = 4,
|
|
};
|
|
|
|
struct drm_i915_private;
|
|
|
|
struct intel_cdclk_state;
|
|
|
|
struct intel_cdclk_funcs {
|
|
void (*get_cdclk)(struct drm_i915_private *, struct intel_cdclk_config *);
|
|
void (*set_cdclk)(struct drm_i915_private *, const struct intel_cdclk_config *, enum pipe);
|
|
int (*modeset_calc_cdclk)(struct intel_cdclk_state *);
|
|
u8 (*calc_voltage_level)(int);
|
|
};
|
|
|
|
struct intel_dpll_funcs {
|
|
int (*crtc_compute_clock)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*crtc_get_shared_dpll)(struct intel_atomic_state *, struct intel_crtc *);
|
|
};
|
|
|
|
struct drm_i915_private___2;
|
|
|
|
struct intel_hotplug_funcs {
|
|
void (*hpd_irq_setup)(struct drm_i915_private___2 *);
|
|
};
|
|
|
|
struct drm_i915_private___3;
|
|
|
|
struct intel_wm_funcs {
|
|
void (*update_wm)(struct drm_i915_private___3 *);
|
|
int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_global_watermarks)(struct intel_atomic_state *);
|
|
};
|
|
|
|
struct i915_gem_contexts {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct drm_mode_config_funcs___2;
|
|
|
|
struct drm_mode_config___2 {
|
|
struct mutex mutex;
|
|
struct drm_modeset_lock connection_mutex;
|
|
struct drm_modeset_acquire_ctx *acquire_ctx;
|
|
struct mutex idr_mutex;
|
|
struct idr object_idr;
|
|
struct idr tile_idr;
|
|
struct mutex fb_lock;
|
|
int num_fb;
|
|
struct list_head fb_list;
|
|
spinlock_t connector_list_lock;
|
|
int num_connector;
|
|
struct ida connector_ida;
|
|
struct list_head connector_list;
|
|
struct llist_head connector_free_list;
|
|
struct work_struct connector_free_work;
|
|
int num_encoder;
|
|
struct list_head encoder_list;
|
|
int num_total_plane;
|
|
struct list_head plane_list;
|
|
int num_crtc;
|
|
struct list_head crtc_list;
|
|
struct list_head property_list;
|
|
struct list_head privobj_list;
|
|
int min_width;
|
|
int min_height;
|
|
int max_width;
|
|
int max_height;
|
|
const struct drm_mode_config_funcs___2 *funcs;
|
|
bool poll_enabled;
|
|
bool poll_running;
|
|
bool delayed_event;
|
|
struct delayed_work output_poll_work;
|
|
struct mutex blob_lock;
|
|
struct list_head property_blob_list;
|
|
struct drm_property___2 *edid_property;
|
|
struct drm_property___2 *dpms_property;
|
|
struct drm_property___2 *path_property;
|
|
struct drm_property___2 *tile_property;
|
|
struct drm_property___2 *link_status_property;
|
|
struct drm_property___2 *plane_type_property;
|
|
struct drm_property___2 *prop_src_x;
|
|
struct drm_property___2 *prop_src_y;
|
|
struct drm_property___2 *prop_src_w;
|
|
struct drm_property___2 *prop_src_h;
|
|
struct drm_property___2 *prop_crtc_x;
|
|
struct drm_property___2 *prop_crtc_y;
|
|
struct drm_property___2 *prop_crtc_w;
|
|
struct drm_property___2 *prop_crtc_h;
|
|
struct drm_property___2 *prop_fb_id;
|
|
struct drm_property___2 *prop_in_fence_fd;
|
|
struct drm_property___2 *prop_out_fence_ptr;
|
|
struct drm_property___2 *prop_crtc_id;
|
|
struct drm_property___2 *prop_fb_damage_clips;
|
|
struct drm_property___2 *prop_active;
|
|
struct drm_property___2 *prop_mode_id;
|
|
struct drm_property___2 *prop_vrr_enabled;
|
|
struct drm_property___2 *dvi_i_subconnector_property;
|
|
struct drm_property___2 *dvi_i_select_subconnector_property;
|
|
struct drm_property___2 *dp_subconnector_property;
|
|
struct drm_property___2 *tv_subconnector_property;
|
|
struct drm_property___2 *tv_select_subconnector_property;
|
|
struct drm_property___2 *legacy_tv_mode_property;
|
|
struct drm_property___2 *tv_mode_property;
|
|
struct drm_property___2 *tv_left_margin_property;
|
|
struct drm_property___2 *tv_right_margin_property;
|
|
struct drm_property___2 *tv_top_margin_property;
|
|
struct drm_property___2 *tv_bottom_margin_property;
|
|
struct drm_property___2 *tv_brightness_property;
|
|
struct drm_property___2 *tv_contrast_property;
|
|
struct drm_property___2 *tv_flicker_reduction_property;
|
|
struct drm_property___2 *tv_overscan_property;
|
|
struct drm_property___2 *tv_saturation_property;
|
|
struct drm_property___2 *tv_hue_property;
|
|
struct drm_property___2 *scaling_mode_property;
|
|
struct drm_property___2 *aspect_ratio_property;
|
|
struct drm_property___2 *content_type_property;
|
|
struct drm_property___2 *degamma_lut_property;
|
|
struct drm_property___2 *degamma_lut_size_property;
|
|
struct drm_property___2 *ctm_property;
|
|
struct drm_property___2 *gamma_lut_property;
|
|
struct drm_property___2 *gamma_lut_size_property;
|
|
struct drm_property___2 *suggested_x_property;
|
|
struct drm_property___2 *suggested_y_property;
|
|
struct drm_property___2 *non_desktop_property;
|
|
struct drm_property___2 *panel_orientation_property;
|
|
struct drm_property___2 *writeback_fb_id_property;
|
|
struct drm_property___2 *writeback_pixel_formats_property;
|
|
struct drm_property___2 *writeback_out_fence_ptr_property;
|
|
struct drm_property___2 *hdr_output_metadata_property;
|
|
struct drm_property___2 *content_protection_property;
|
|
struct drm_property___2 *hdcp_content_type_property;
|
|
uint32_t preferred_depth;
|
|
uint32_t prefer_shadow;
|
|
bool prefer_shadow_fbdev;
|
|
bool quirk_addfb_prefer_xbgr_30bpp;
|
|
bool quirk_addfb_prefer_host_byte_order;
|
|
bool async_page_flip;
|
|
bool fb_modifiers_not_supported;
|
|
bool normalize_zpos;
|
|
struct drm_property___2 *modifiers_property;
|
|
uint32_t cursor_width;
|
|
uint32_t cursor_height;
|
|
struct drm_atomic_state *suspend_state;
|
|
const struct drm_mode_config_helper_funcs *helper_private;
|
|
};
|
|
|
|
struct drm_driver___2;
|
|
|
|
struct drm_minor___2;
|
|
|
|
struct drm_master___2;
|
|
|
|
struct drm_device___2 {
|
|
int if_version;
|
|
struct kref ref;
|
|
struct device *dev;
|
|
struct {
|
|
struct list_head resources;
|
|
void *final_kfree;
|
|
spinlock_t lock;
|
|
} managed;
|
|
const struct drm_driver___2 *driver;
|
|
void *dev_private;
|
|
struct drm_minor___2 *primary;
|
|
struct drm_minor___2 *render;
|
|
struct drm_minor___2 *accel;
|
|
bool registered;
|
|
struct drm_master___2 *master;
|
|
u32 driver_features;
|
|
bool unplugged;
|
|
struct inode *anon_inode;
|
|
char *unique;
|
|
struct mutex struct_mutex;
|
|
struct mutex master_mutex;
|
|
atomic_t open_count;
|
|
struct mutex filelist_mutex;
|
|
struct list_head filelist;
|
|
struct list_head filelist_internal;
|
|
struct mutex clientlist_mutex;
|
|
struct list_head clientlist;
|
|
bool vblank_disable_immediate;
|
|
struct drm_vblank_crtc *vblank;
|
|
spinlock_t vblank_time_lock;
|
|
spinlock_t vbl_lock;
|
|
u32 max_vblank_count;
|
|
struct list_head vblank_event_list;
|
|
spinlock_t event_lock;
|
|
unsigned int num_crtcs;
|
|
struct drm_mode_config___2 mode_config;
|
|
struct mutex object_name_lock;
|
|
struct idr object_name_idr;
|
|
struct drm_vma_offset_manager *vma_offset_manager;
|
|
struct drm_vram_mm *vram_mm;
|
|
enum switch_power_state switch_power_state;
|
|
struct drm_fb_helper *fb_helper;
|
|
struct mutex debugfs_mutex;
|
|
struct list_head debugfs_list;
|
|
};
|
|
|
|
struct i915_params {
|
|
char *vbt_firmware;
|
|
int modeset;
|
|
int lvds_channel_mode;
|
|
int panel_use_ssc;
|
|
int vbt_sdvo_panel_type;
|
|
int enable_dc;
|
|
int enable_fbc;
|
|
int enable_psr;
|
|
bool psr_safest_params;
|
|
bool enable_psr2_sel_fetch;
|
|
int disable_power_well;
|
|
int enable_ips;
|
|
int invert_brightness;
|
|
int enable_guc;
|
|
int guc_log_level;
|
|
char *guc_firmware_path;
|
|
char *huc_firmware_path;
|
|
char *dmc_firmware_path;
|
|
char *gsc_firmware_path;
|
|
bool memtest;
|
|
int mmio_debug;
|
|
int edp_vswing;
|
|
unsigned int reset;
|
|
unsigned int inject_probe_failure;
|
|
int fastboot;
|
|
int enable_dpcd_backlight;
|
|
char *force_probe;
|
|
unsigned int request_timeout_ms;
|
|
unsigned int lmem_size;
|
|
unsigned int lmem_bar_size;
|
|
bool enable_hangcheck;
|
|
bool load_detect_test;
|
|
bool force_reset_modeset_test;
|
|
bool error_capture;
|
|
bool disable_display;
|
|
bool verbose_state_checks;
|
|
bool nuclear_pageflip;
|
|
bool enable_dp_mst;
|
|
bool enable_gvt;
|
|
};
|
|
|
|
struct intel_driver_caps {
|
|
unsigned int scheduler;
|
|
bool has_logical_contexts: 1;
|
|
};
|
|
|
|
struct i915_dsm {
|
|
struct resource stolen;
|
|
struct resource reserved;
|
|
resource_size_t usable_size;
|
|
};
|
|
|
|
enum forcewake_domains {
|
|
FORCEWAKE_RENDER = 1,
|
|
FORCEWAKE_GT = 2,
|
|
FORCEWAKE_MEDIA = 4,
|
|
FORCEWAKE_MEDIA_VDBOX0 = 8,
|
|
FORCEWAKE_MEDIA_VDBOX1 = 16,
|
|
FORCEWAKE_MEDIA_VDBOX2 = 32,
|
|
FORCEWAKE_MEDIA_VDBOX3 = 64,
|
|
FORCEWAKE_MEDIA_VDBOX4 = 128,
|
|
FORCEWAKE_MEDIA_VDBOX5 = 256,
|
|
FORCEWAKE_MEDIA_VDBOX6 = 512,
|
|
FORCEWAKE_MEDIA_VDBOX7 = 1024,
|
|
FORCEWAKE_MEDIA_VEBOX0 = 2048,
|
|
FORCEWAKE_MEDIA_VEBOX1 = 4096,
|
|
FORCEWAKE_MEDIA_VEBOX2 = 8192,
|
|
FORCEWAKE_MEDIA_VEBOX3 = 16384,
|
|
FORCEWAKE_GSC = 32768,
|
|
FORCEWAKE_ALL = 65535,
|
|
};
|
|
|
|
struct intel_uncore;
|
|
|
|
struct intel_uncore_funcs {
|
|
enum forcewake_domains (*read_fw_domains)(struct intel_uncore *, i915_reg_t);
|
|
enum forcewake_domains (*write_fw_domains)(struct intel_uncore *, i915_reg_t);
|
|
u8 (*mmio_readb)(struct intel_uncore *, i915_reg_t, bool);
|
|
u16 (*mmio_readw)(struct intel_uncore *, i915_reg_t, bool);
|
|
u32 (*mmio_readl)(struct intel_uncore *, i915_reg_t, bool);
|
|
u64 (*mmio_readq)(struct intel_uncore *, i915_reg_t, bool);
|
|
void (*mmio_writeb)(struct intel_uncore *, i915_reg_t, u8, bool);
|
|
void (*mmio_writew)(struct intel_uncore *, i915_reg_t, u16, bool);
|
|
void (*mmio_writel)(struct intel_uncore *, i915_reg_t, u32, bool);
|
|
};
|
|
|
|
struct intel_gt;
|
|
|
|
struct intel_runtime_pm;
|
|
|
|
struct intel_forcewake_range;
|
|
|
|
struct i915_range;
|
|
|
|
struct intel_uncore_fw_get;
|
|
|
|
struct intel_uncore_forcewake_domain;
|
|
|
|
struct intel_uncore_mmio_debug;
|
|
|
|
struct intel_uncore {
|
|
void *regs;
|
|
struct drm_i915_private___3 *i915;
|
|
struct intel_gt *gt;
|
|
struct intel_runtime_pm *rpm;
|
|
spinlock_t lock;
|
|
u32 gsi_offset;
|
|
unsigned int flags;
|
|
const struct intel_forcewake_range *fw_domains_table;
|
|
unsigned int fw_domains_table_entries;
|
|
const struct i915_range *shadowed_reg_table;
|
|
unsigned int shadowed_reg_table_entries;
|
|
struct notifier_block pmic_bus_access_nb;
|
|
const struct intel_uncore_fw_get *fw_get_funcs;
|
|
struct intel_uncore_funcs funcs;
|
|
unsigned int fifo_count;
|
|
enum forcewake_domains fw_domains;
|
|
enum forcewake_domains fw_domains_active;
|
|
enum forcewake_domains fw_domains_timer;
|
|
enum forcewake_domains fw_domains_saved;
|
|
struct intel_uncore_forcewake_domain *fw_domain[16];
|
|
unsigned int user_forcewake_count;
|
|
struct intel_uncore_mmio_debug *debug;
|
|
};
|
|
|
|
struct intel_uncore_mmio_debug {
|
|
spinlock_t lock;
|
|
int unclaimed_mmio_check;
|
|
int saved_mmio_check;
|
|
u32 suspend_count;
|
|
};
|
|
|
|
struct i915_virtual_gpu {
|
|
struct mutex lock;
|
|
bool active;
|
|
u32 caps;
|
|
u32 *initial_mmio;
|
|
u8 *initial_cfg_space;
|
|
struct list_head entry;
|
|
};
|
|
|
|
struct intel_gvt;
|
|
|
|
struct pm_qos_request {
|
|
struct plist_node node;
|
|
struct pm_qos_constraints *qos;
|
|
};
|
|
|
|
enum intel_pch {
|
|
PCH_NOP = -1,
|
|
PCH_NONE = 0,
|
|
PCH_IBX = 1,
|
|
PCH_CPT = 2,
|
|
PCH_LPT = 3,
|
|
PCH_SPT = 4,
|
|
PCH_CNP = 5,
|
|
PCH_ICP = 6,
|
|
PCH_TGP = 7,
|
|
PCH_ADP = 8,
|
|
PCH_MTP = 9,
|
|
PCH_DG1 = 1024,
|
|
PCH_DG2 = 1025,
|
|
};
|
|
|
|
struct drm_mm;
|
|
|
|
struct drm_mm_node {
|
|
unsigned long color;
|
|
u64 start;
|
|
u64 size;
|
|
struct drm_mm *mm;
|
|
struct list_head node_list;
|
|
struct list_head hole_stack;
|
|
struct rb_node rb;
|
|
struct rb_node rb_hole_size;
|
|
struct rb_node rb_hole_addr;
|
|
u64 __subtree_last;
|
|
u64 hole_size;
|
|
u64 subtree_max_hole;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct drm_mm {
|
|
void (*color_adjust)(const struct drm_mm_node *, unsigned long, u64 *, u64 *);
|
|
struct list_head hole_stack;
|
|
struct drm_mm_node head_node;
|
|
struct rb_root_cached interval_tree;
|
|
struct rb_root_cached holes_size;
|
|
struct rb_root holes_addr;
|
|
unsigned long scan_active;
|
|
};
|
|
|
|
struct intel_memory_region;
|
|
|
|
struct i915_gem_mm {
|
|
struct intel_memory_region *stolen_region;
|
|
struct drm_mm stolen;
|
|
struct mutex stolen_lock;
|
|
spinlock_t obj_lock;
|
|
struct list_head purge_list;
|
|
struct list_head shrink_list;
|
|
struct llist_head free_list;
|
|
struct work_struct free_work;
|
|
atomic_t free_count;
|
|
struct vfsmount *gemfs;
|
|
struct intel_memory_region *regions[7];
|
|
struct notifier_block oom_notifier;
|
|
struct notifier_block vmap_notifier;
|
|
struct shrinker shrinker;
|
|
rwlock_t notifier_lock;
|
|
u64 shrink_memory;
|
|
u32 shrink_count;
|
|
};
|
|
|
|
struct intel_l3_parity {
|
|
u32 *remap_info[2];
|
|
struct work_struct error_work;
|
|
int which_slice;
|
|
};
|
|
|
|
struct i915_gpu_coredump;
|
|
|
|
struct i915_gpu_error {
|
|
spinlock_t lock;
|
|
struct i915_gpu_coredump *first_error;
|
|
atomic_t pending_fb_pin;
|
|
atomic_t reset_count;
|
|
atomic_t reset_engine_count[27];
|
|
};
|
|
|
|
struct i915_suspend_saved_registers {
|
|
u32 saveDSPARB;
|
|
u32 saveSWF0[16];
|
|
u32 saveSWF1[16];
|
|
u32 saveSWF3[3];
|
|
u16 saveGCDGMBUS;
|
|
};
|
|
|
|
enum intel_dram_type {
|
|
INTEL_DRAM_UNKNOWN = 0,
|
|
INTEL_DRAM_DDR3 = 1,
|
|
INTEL_DRAM_DDR4 = 2,
|
|
INTEL_DRAM_LPDDR3 = 3,
|
|
INTEL_DRAM_LPDDR4 = 4,
|
|
INTEL_DRAM_DDR5 = 5,
|
|
INTEL_DRAM_LPDDR5 = 6,
|
|
};
|
|
|
|
struct dram_info {
|
|
bool wm_lv_0_adjust_needed;
|
|
u8 num_channels;
|
|
bool symmetric_memory;
|
|
enum intel_dram_type type;
|
|
u8 num_qgv_points;
|
|
u8 num_psf_gv_points;
|
|
};
|
|
|
|
struct intel_wakeref_auto {
|
|
struct intel_runtime_pm *rpm;
|
|
struct timer_list timer;
|
|
intel_wakeref_t wakeref;
|
|
spinlock_t lock;
|
|
refcount_t count;
|
|
};
|
|
|
|
struct intel_runtime_pm {
|
|
atomic_t wakeref_count;
|
|
struct device *kdev;
|
|
bool available;
|
|
bool suspended;
|
|
bool irqs_enabled;
|
|
bool no_wakeref_tracking;
|
|
spinlock_t lmem_userfault_lock;
|
|
struct list_head lmem_userfault_list;
|
|
struct intel_wakeref_auto userfault_wakeref;
|
|
};
|
|
|
|
struct i915_perf;
|
|
|
|
struct i915_perf_stream;
|
|
|
|
struct i915_active;
|
|
|
|
struct i915_oa_ops {
|
|
bool (*is_valid_b_counter_reg)(struct i915_perf *, u32);
|
|
bool (*is_valid_mux_reg)(struct i915_perf *, u32);
|
|
bool (*is_valid_flex_reg)(struct i915_perf *, u32);
|
|
int (*enable_metric_set)(struct i915_perf_stream *, struct i915_active *);
|
|
void (*disable_metric_set)(struct i915_perf_stream *);
|
|
void (*oa_enable)(struct i915_perf_stream *);
|
|
void (*oa_disable)(struct i915_perf_stream *);
|
|
int (*read)(struct i915_perf_stream *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
u32 (*oa_hw_tail_read)(struct i915_perf_stream *);
|
|
};
|
|
|
|
struct i915_oa_format;
|
|
|
|
struct i915_perf {
|
|
struct drm_i915_private___3 *i915;
|
|
struct kobject *metrics_kobj;
|
|
struct mutex metrics_lock;
|
|
struct idr metrics_idr;
|
|
struct ratelimit_state spurious_report_rs;
|
|
struct ratelimit_state tail_pointer_race;
|
|
u32 gen7_latched_oastatus1;
|
|
u32 ctx_oactxctrl_offset;
|
|
u32 ctx_flexeu0_offset;
|
|
u32 gen8_valid_ctx_bit;
|
|
struct i915_oa_ops ops;
|
|
const struct i915_oa_format *oa_formats;
|
|
unsigned long format_mask[1];
|
|
atomic64_t noa_programming_delay;
|
|
};
|
|
|
|
enum intel_uc_fw_type {
|
|
INTEL_UC_FW_TYPE_GUC = 0,
|
|
INTEL_UC_FW_TYPE_HUC = 1,
|
|
INTEL_UC_FW_TYPE_GSC = 2,
|
|
};
|
|
|
|
enum intel_uc_fw_status {
|
|
INTEL_UC_FIRMWARE_NOT_SUPPORTED = -1,
|
|
INTEL_UC_FIRMWARE_UNINITIALIZED = 0,
|
|
INTEL_UC_FIRMWARE_DISABLED = 1,
|
|
INTEL_UC_FIRMWARE_SELECTED = 2,
|
|
INTEL_UC_FIRMWARE_MISSING = 3,
|
|
INTEL_UC_FIRMWARE_ERROR = 4,
|
|
INTEL_UC_FIRMWARE_AVAILABLE = 5,
|
|
INTEL_UC_FIRMWARE_INIT_FAIL = 6,
|
|
INTEL_UC_FIRMWARE_LOADABLE = 7,
|
|
INTEL_UC_FIRMWARE_LOAD_FAIL = 8,
|
|
INTEL_UC_FIRMWARE_TRANSFERRED = 9,
|
|
INTEL_UC_FIRMWARE_RUNNING = 10,
|
|
};
|
|
|
|
struct intel_uc_fw_ver {
|
|
u32 major;
|
|
u32 minor;
|
|
u32 patch;
|
|
};
|
|
|
|
struct intel_uc_fw_file {
|
|
const char *path;
|
|
struct intel_uc_fw_ver ver;
|
|
};
|
|
|
|
enum i915_sw_fence_notify {
|
|
FENCE_COMPLETE = 0,
|
|
FENCE_FREE = 1,
|
|
};
|
|
|
|
struct i915_sw_fence;
|
|
|
|
typedef int (*i915_sw_fence_notify_t)(struct i915_sw_fence *, enum i915_sw_fence_notify);
|
|
|
|
struct i915_sw_fence {
|
|
wait_queue_head_t wait;
|
|
i915_sw_fence_notify_t fn;
|
|
atomic_t pending;
|
|
int error;
|
|
};
|
|
|
|
struct i915_page_sizes {
|
|
unsigned int phys;
|
|
unsigned int sg;
|
|
};
|
|
|
|
struct i915_refct_sgt;
|
|
|
|
struct i915_vma_bindinfo {
|
|
struct sg_table *pages;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_refct_sgt *pages_rsgt;
|
|
bool readonly: 1;
|
|
bool lmem: 1;
|
|
};
|
|
|
|
struct i915_address_space;
|
|
|
|
struct i915_vma_ops;
|
|
|
|
struct i915_vma_resource {
|
|
struct dma_fence unbind_fence;
|
|
spinlock_t lock;
|
|
refcount_t hold_count;
|
|
struct work_struct work;
|
|
struct i915_sw_fence chain;
|
|
struct rb_node rb;
|
|
u64 __subtree_last;
|
|
struct i915_address_space *vm;
|
|
intel_wakeref_t wakeref;
|
|
struct i915_vma_bindinfo bi;
|
|
struct intel_memory_region *mr;
|
|
const struct i915_vma_ops *ops;
|
|
void *private;
|
|
u64 start;
|
|
u64 node_size;
|
|
u64 vma_size;
|
|
u32 guard;
|
|
u32 page_sizes_gtt;
|
|
u32 bound_flags;
|
|
bool allocated: 1;
|
|
bool immediate_unbind: 1;
|
|
bool needs_wakeref: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u32 *tlb;
|
|
};
|
|
|
|
struct drm_i915_gem_object;
|
|
|
|
struct i915_vma;
|
|
|
|
struct intel_uc_fw {
|
|
enum intel_uc_fw_type type;
|
|
union {
|
|
const enum intel_uc_fw_status status;
|
|
enum intel_uc_fw_status __status;
|
|
};
|
|
struct intel_uc_fw_file file_wanted;
|
|
struct intel_uc_fw_file file_selected;
|
|
bool user_overridden;
|
|
size_t size;
|
|
struct drm_i915_gem_object *obj;
|
|
struct i915_vma_resource dummy;
|
|
struct i915_vma *rsa_data;
|
|
u32 rsa_size;
|
|
u32 ucode_size;
|
|
u32 private_data_size;
|
|
bool loaded_via_gsc;
|
|
};
|
|
|
|
struct intel_context;
|
|
|
|
struct intel_gsc_uc {
|
|
struct intel_uc_fw fw;
|
|
struct i915_vma *local;
|
|
struct intel_context *ce;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct intel_guc_log {
|
|
u32 level;
|
|
struct {
|
|
s32 bytes;
|
|
s32 units;
|
|
s32 count;
|
|
u32 flag;
|
|
} sizes[3];
|
|
bool sizes_initialised;
|
|
struct i915_vma *vma;
|
|
void *buf_addr;
|
|
struct {
|
|
bool buf_in_use;
|
|
bool started;
|
|
struct work_struct flush_work;
|
|
struct rchan *channel;
|
|
struct mutex lock;
|
|
u32 full_count;
|
|
} relay;
|
|
struct {
|
|
u32 sampled_overflow;
|
|
u32 overflow;
|
|
u32 flush;
|
|
} stats[3];
|
|
};
|
|
|
|
struct guc_ct_buffer_desc;
|
|
|
|
struct intel_guc_ct_buffer {
|
|
spinlock_t lock;
|
|
struct guc_ct_buffer_desc *desc;
|
|
u32 *cmds;
|
|
u32 size;
|
|
u32 resv_space;
|
|
u32 tail;
|
|
u32 head;
|
|
atomic_t space;
|
|
bool broken;
|
|
};
|
|
|
|
struct tasklet_struct {
|
|
struct tasklet_struct *next;
|
|
unsigned long state;
|
|
atomic_t count;
|
|
bool use_callback;
|
|
union {
|
|
void (*func)(unsigned long);
|
|
void (*callback)(struct tasklet_struct *);
|
|
};
|
|
unsigned long data;
|
|
};
|
|
|
|
struct intel_guc_ct {
|
|
struct i915_vma *vma;
|
|
bool enabled;
|
|
struct {
|
|
struct intel_guc_ct_buffer send;
|
|
struct intel_guc_ct_buffer recv;
|
|
} ctbs;
|
|
struct tasklet_struct receive_tasklet;
|
|
wait_queue_head_t wq;
|
|
struct {
|
|
u16 last_fence;
|
|
spinlock_t lock;
|
|
struct list_head pending;
|
|
struct list_head incoming;
|
|
struct work_struct worker;
|
|
} requests;
|
|
ktime_t stall_time;
|
|
};
|
|
|
|
struct slpc_shared_data;
|
|
|
|
struct intel_guc_slpc {
|
|
struct i915_vma *vma;
|
|
struct slpc_shared_data *vaddr;
|
|
bool supported;
|
|
bool selected;
|
|
bool min_is_rpmax;
|
|
u32 min_freq;
|
|
u32 rp0_freq;
|
|
u32 rp1_freq;
|
|
u32 boost_freq;
|
|
u32 min_freq_softlimit;
|
|
u32 max_freq_softlimit;
|
|
u32 media_ratio_mode;
|
|
struct mutex lock;
|
|
struct work_struct boost_work;
|
|
atomic_t num_waiters;
|
|
u32 num_boosts;
|
|
};
|
|
|
|
struct iosys_map {
|
|
union {
|
|
void *vaddr_iomem;
|
|
void *vaddr;
|
|
};
|
|
bool is_iomem;
|
|
};
|
|
|
|
struct intel_guc_state_capture;
|
|
|
|
struct i915_sched_engine;
|
|
|
|
struct i915_request;
|
|
|
|
struct guc_mmio_reg;
|
|
|
|
struct intel_guc {
|
|
struct intel_uc_fw fw;
|
|
struct intel_guc_log log;
|
|
struct intel_guc_ct ct;
|
|
struct intel_guc_slpc slpc;
|
|
struct intel_guc_state_capture *capture;
|
|
struct i915_sched_engine *sched_engine;
|
|
struct i915_request *stalled_request;
|
|
enum {
|
|
STALL_NONE = 0,
|
|
STALL_REGISTER_CONTEXT = 1,
|
|
STALL_MOVE_LRC_TAIL = 2,
|
|
STALL_ADD_REQUEST = 3,
|
|
} submission_stall_reason;
|
|
spinlock_t irq_lock;
|
|
unsigned int msg_enabled_mask;
|
|
atomic_t outstanding_submission_g2h;
|
|
struct {
|
|
bool enabled;
|
|
void (*reset)(struct intel_guc *);
|
|
void (*enable)(struct intel_guc *);
|
|
void (*disable)(struct intel_guc *);
|
|
} interrupts;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct ida guc_ids;
|
|
int num_guc_ids;
|
|
unsigned long *guc_ids_bitmap;
|
|
struct list_head guc_id_list;
|
|
unsigned int guc_ids_in_use;
|
|
struct list_head destroyed_contexts;
|
|
struct work_struct destroyed_worker;
|
|
struct work_struct reset_fail_worker;
|
|
intel_engine_mask_t reset_fail_mask;
|
|
unsigned int sched_disable_delay_ms;
|
|
unsigned int sched_disable_gucid_threshold;
|
|
} submission_state;
|
|
bool submission_supported;
|
|
bool submission_selected;
|
|
bool submission_initialized;
|
|
struct intel_uc_fw_ver submission_version;
|
|
bool rc_supported;
|
|
bool rc_selected;
|
|
struct i915_vma *ads_vma;
|
|
struct iosys_map ads_map;
|
|
u32 ads_regset_size;
|
|
u32 ads_regset_count[27];
|
|
struct guc_mmio_reg *ads_regset;
|
|
u32 ads_golden_ctxt_size;
|
|
u32 ads_capture_size;
|
|
u32 ads_engine_usage_size;
|
|
struct i915_vma *lrc_desc_pool_v69;
|
|
void *lrc_desc_pool_vaddr_v69;
|
|
struct xarray context_lookup;
|
|
u32 params[14];
|
|
struct {
|
|
u32 base;
|
|
unsigned int count;
|
|
enum forcewake_domains fw_domains;
|
|
} send_regs;
|
|
i915_reg_t notify_reg;
|
|
u32 mmio_msg;
|
|
struct mutex send_mutex;
|
|
struct {
|
|
spinlock_t lock;
|
|
u64 gt_stamp;
|
|
unsigned long ping_delay;
|
|
struct delayed_work work;
|
|
u32 shift;
|
|
unsigned long last_stat_jiffies;
|
|
} timestamp;
|
|
};
|
|
|
|
enum intel_huc_delayed_load_status {
|
|
INTEL_HUC_WAITING_ON_GSC = 0,
|
|
INTEL_HUC_WAITING_ON_PXP = 1,
|
|
INTEL_HUC_DELAYED_LOAD_ERROR = 2,
|
|
};
|
|
|
|
struct intel_huc {
|
|
struct intel_uc_fw fw;
|
|
struct {
|
|
i915_reg_t reg;
|
|
u32 mask;
|
|
u32 value;
|
|
} status;
|
|
struct {
|
|
struct i915_sw_fence fence;
|
|
struct hrtimer timer;
|
|
struct notifier_block nb;
|
|
enum intel_huc_delayed_load_status status;
|
|
} delayed_load;
|
|
};
|
|
|
|
struct intel_uc_ops;
|
|
|
|
struct intel_uc {
|
|
const struct intel_uc_ops *ops;
|
|
struct intel_gsc_uc gsc;
|
|
struct intel_guc guc;
|
|
struct intel_huc huc;
|
|
struct drm_i915_gem_object *load_err_log;
|
|
bool reset_in_progress;
|
|
};
|
|
|
|
struct mei_aux_device;
|
|
|
|
struct intel_gsc_intf {
|
|
struct mei_aux_device *adev;
|
|
struct drm_i915_gem_object *gem_obj;
|
|
int irq;
|
|
unsigned int id;
|
|
};
|
|
|
|
struct intel_gsc {
|
|
struct intel_gsc_intf intf[2];
|
|
};
|
|
|
|
struct intel_wopcm {
|
|
u32 size;
|
|
struct {
|
|
u32 base;
|
|
u32 size;
|
|
} guc;
|
|
};
|
|
|
|
struct seqcount_mutex {
|
|
seqcount_t seqcount;
|
|
};
|
|
|
|
typedef struct seqcount_mutex seqcount_mutex_t;
|
|
|
|
struct i915_wa;
|
|
|
|
struct i915_wa_list {
|
|
struct intel_gt *gt;
|
|
const char *name;
|
|
const char *engine_name;
|
|
struct i915_wa *list;
|
|
unsigned int count;
|
|
unsigned int wa_count;
|
|
};
|
|
|
|
struct intel_gt_timelines {
|
|
spinlock_t lock;
|
|
struct list_head active_list;
|
|
};
|
|
|
|
struct intel_gt_requests {
|
|
struct delayed_work retire_work;
|
|
};
|
|
|
|
struct intel_wakeref_ops;
|
|
|
|
struct intel_wakeref {
|
|
atomic_t count;
|
|
struct mutex mutex;
|
|
intel_wakeref_t wakeref;
|
|
struct intel_runtime_pm *rpm;
|
|
const struct intel_wakeref_ops *ops;
|
|
struct delayed_work work;
|
|
};
|
|
|
|
struct intel_reset {
|
|
unsigned long flags;
|
|
struct mutex mutex;
|
|
wait_queue_head_t queue;
|
|
struct srcu_struct backoff_srcu;
|
|
};
|
|
|
|
struct intel_llc {};
|
|
|
|
struct intel_rc6 {
|
|
i915_reg_t res_reg[4];
|
|
u64 prev_hw_residency[4];
|
|
u64 cur_residency[4];
|
|
u32 ctl_enable;
|
|
struct drm_i915_gem_object *pctx;
|
|
bool supported: 1;
|
|
bool enabled: 1;
|
|
bool manual: 1;
|
|
bool wakeref: 1;
|
|
};
|
|
|
|
struct intel_rps_ei {
|
|
ktime_t ktime;
|
|
u32 render_c0;
|
|
u32 media_c0;
|
|
};
|
|
|
|
struct intel_ips {
|
|
u64 last_count1;
|
|
unsigned long last_time1;
|
|
unsigned long chipset_power;
|
|
u64 last_count2;
|
|
u64 last_time2;
|
|
unsigned long gfx_power;
|
|
u8 corr;
|
|
int c;
|
|
int m;
|
|
};
|
|
|
|
struct intel_rps {
|
|
struct mutex lock;
|
|
struct timer_list timer;
|
|
struct work_struct work;
|
|
unsigned long flags;
|
|
ktime_t pm_timestamp;
|
|
u32 pm_interval;
|
|
u32 pm_iir;
|
|
u32 pm_intrmsk_mbz;
|
|
u32 pm_events;
|
|
u8 cur_freq;
|
|
u8 last_freq;
|
|
u8 min_freq_softlimit;
|
|
u8 max_freq_softlimit;
|
|
u8 max_freq;
|
|
u8 min_freq;
|
|
u8 boost_freq;
|
|
u8 idle_freq;
|
|
u8 efficient_freq;
|
|
u8 rp1_freq;
|
|
u8 rp0_freq;
|
|
u16 gpll_ref_freq;
|
|
int last_adj;
|
|
struct {
|
|
struct mutex mutex;
|
|
enum {
|
|
LOW_POWER = 0,
|
|
BETWEEN = 1,
|
|
HIGH_POWER = 2,
|
|
} mode;
|
|
unsigned int interactive;
|
|
u8 up_threshold;
|
|
u8 down_threshold;
|
|
} power;
|
|
atomic_t num_waiters;
|
|
unsigned int boosts;
|
|
struct intel_rps_ei ei;
|
|
struct intel_ips ips;
|
|
};
|
|
|
|
enum intel_submission_method {
|
|
INTEL_SUBMISSION_RING = 0,
|
|
INTEL_SUBMISSION_ELSP = 1,
|
|
INTEL_SUBMISSION_GUC = 2,
|
|
};
|
|
|
|
struct intel_gt_buffer_pool {
|
|
spinlock_t lock;
|
|
struct list_head cache_list[4];
|
|
struct delayed_work work;
|
|
};
|
|
|
|
struct intel_migrate {
|
|
struct intel_context *context;
|
|
};
|
|
|
|
typedef union {
|
|
u8 hsw[3];
|
|
unsigned long xehp[1];
|
|
} intel_sseu_ss_mask_t;
|
|
|
|
struct sseu_dev_info {
|
|
u8 slice_mask;
|
|
intel_sseu_ss_mask_t subslice_mask;
|
|
intel_sseu_ss_mask_t geometry_subslice_mask;
|
|
intel_sseu_ss_mask_t compute_subslice_mask;
|
|
union {
|
|
u16 hsw[18];
|
|
u16 xehp[64];
|
|
} eu_mask;
|
|
u16 eu_total;
|
|
u8 eu_per_subslice;
|
|
u8 min_eu_in_pool;
|
|
u8 subslice_7eu[3];
|
|
u8 has_slice_pg: 1;
|
|
u8 has_subslice_pg: 1;
|
|
u8 has_eu_pg: 1;
|
|
u8 has_xehp_dss: 1;
|
|
u8 max_slices;
|
|
u8 max_subslices;
|
|
u8 max_eus_per_subslice;
|
|
};
|
|
|
|
struct intel_hwconfig {
|
|
u32 size;
|
|
void *ptr;
|
|
};
|
|
|
|
struct intel_gt_info {
|
|
unsigned int id;
|
|
intel_engine_mask_t engine_mask;
|
|
u32 l3bank_mask;
|
|
u8 num_engines;
|
|
u8 sfc_mask;
|
|
u8 vdbox_sfc_access;
|
|
struct sseu_dev_info sseu;
|
|
unsigned long mslice_mask;
|
|
struct intel_hwconfig hwconfig;
|
|
};
|
|
|
|
struct gt_defaults {
|
|
u32 min_freq;
|
|
u32 max_freq;
|
|
};
|
|
|
|
struct intel_sseu {
|
|
u8 slice_mask;
|
|
u8 subslice_mask;
|
|
u8 min_eus_per_subslice;
|
|
u8 max_eus_per_subslice;
|
|
};
|
|
|
|
struct i915_perf_gt {
|
|
struct mutex lock;
|
|
struct intel_sseu sseu;
|
|
struct i915_perf_stream *exclusive_stream;
|
|
};
|
|
|
|
struct i915_ggtt;
|
|
|
|
struct intel_engine_cs;
|
|
|
|
struct intel_mmio_range;
|
|
|
|
struct intel_gt {
|
|
struct drm_i915_private___3 *i915;
|
|
const char *name;
|
|
enum intel_gt_type type;
|
|
struct intel_uncore *uncore;
|
|
struct i915_ggtt *ggtt;
|
|
struct intel_uc uc;
|
|
struct intel_gsc gsc;
|
|
struct intel_wopcm wopcm;
|
|
struct {
|
|
struct mutex invalidate_lock;
|
|
seqcount_mutex_t seqno;
|
|
} tlb;
|
|
struct i915_wa_list wa_list;
|
|
struct intel_gt_timelines timelines;
|
|
struct intel_gt_requests requests;
|
|
struct {
|
|
struct llist_head list;
|
|
struct work_struct work;
|
|
} watchdog;
|
|
struct intel_wakeref wakeref;
|
|
atomic_t user_wakeref;
|
|
struct list_head closed_vma;
|
|
spinlock_t closed_lock;
|
|
ktime_t last_init_time;
|
|
struct intel_reset reset;
|
|
intel_wakeref_t awake;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
struct intel_llc llc;
|
|
struct intel_rc6 rc6;
|
|
struct intel_rps rps;
|
|
spinlock_t *irq_lock;
|
|
u32 gt_imr;
|
|
u32 pm_ier;
|
|
u32 pm_imr;
|
|
u32 pm_guc_events;
|
|
struct {
|
|
bool active;
|
|
seqcount_mutex_t lock;
|
|
ktime_t total;
|
|
ktime_t start;
|
|
} stats;
|
|
struct intel_engine_cs *engine[27];
|
|
struct intel_engine_cs *engine_class[54];
|
|
enum intel_submission_method submission_method;
|
|
struct i915_address_space *vm;
|
|
struct intel_gt_buffer_pool buffer_pool;
|
|
struct i915_vma *scratch;
|
|
struct intel_migrate migrate;
|
|
const struct intel_mmio_range *steering_table[7];
|
|
struct {
|
|
u8 groupid;
|
|
u8 instanceid;
|
|
} default_steering;
|
|
spinlock_t mcr_lock;
|
|
phys_addr_t phys_addr;
|
|
struct intel_gt_info info;
|
|
struct {
|
|
u8 uc_index;
|
|
u8 wb_index;
|
|
} mocs;
|
|
struct kobject sysfs_gt;
|
|
struct gt_defaults defaults;
|
|
struct kobject *sysfs_defaults;
|
|
struct i915_perf_gt perf;
|
|
struct list_head ggtt_link;
|
|
};
|
|
|
|
struct i915_pmu_sample {
|
|
u64 cur;
|
|
};
|
|
|
|
struct i915_pmu {
|
|
struct {
|
|
struct hlist_node node;
|
|
unsigned int cpu;
|
|
} cpuhp;
|
|
struct pmu base;
|
|
bool closed;
|
|
const char *name;
|
|
spinlock_t lock;
|
|
struct hrtimer timer;
|
|
u32 enable;
|
|
ktime_t timer_last;
|
|
unsigned int enable_count[6];
|
|
bool timer_enabled;
|
|
struct i915_pmu_sample sample[4];
|
|
ktime_t sleep_last;
|
|
unsigned long irq_count;
|
|
struct attribute_group events_attr_group;
|
|
void *i915_attr;
|
|
void *pmu_attr;
|
|
};
|
|
|
|
struct i915_drm_clients {
|
|
struct drm_i915_private___3 *i915;
|
|
struct xarray xarray;
|
|
u32 next_id;
|
|
};
|
|
|
|
struct ttm_device;
|
|
|
|
struct ttm_resource_manager_func;
|
|
|
|
struct ttm_resource_manager {
|
|
bool use_type;
|
|
bool use_tt;
|
|
struct ttm_device *bdev;
|
|
uint64_t size;
|
|
const struct ttm_resource_manager_func *func;
|
|
spinlock_t move_lock;
|
|
struct dma_fence *move;
|
|
struct list_head lru[4];
|
|
uint64_t usage;
|
|
};
|
|
|
|
enum ttm_caching {
|
|
ttm_uncached = 0,
|
|
ttm_write_combined = 1,
|
|
ttm_cached = 2,
|
|
};
|
|
|
|
struct ttm_pool;
|
|
|
|
struct ttm_pool_type {
|
|
struct ttm_pool *pool;
|
|
unsigned int order;
|
|
enum ttm_caching caching;
|
|
struct list_head shrinker_list;
|
|
spinlock_t lock;
|
|
struct list_head pages;
|
|
};
|
|
|
|
struct ttm_pool {
|
|
struct device *dev;
|
|
bool use_dma_alloc;
|
|
bool use_dma32;
|
|
struct {
|
|
struct ttm_pool_type orders[11];
|
|
} caching[3];
|
|
};
|
|
|
|
struct ttm_device_funcs;
|
|
|
|
struct ttm_device {
|
|
struct list_head device_list;
|
|
struct ttm_device_funcs *funcs;
|
|
struct ttm_resource_manager sysman;
|
|
struct ttm_resource_manager *man_drv[8];
|
|
struct drm_vma_offset_manager *vma_manager;
|
|
struct ttm_pool pool;
|
|
spinlock_t lru_lock;
|
|
struct list_head pinned;
|
|
struct address_space *dev_mapping;
|
|
struct workqueue_struct *wq;
|
|
};
|
|
|
|
struct drm_i915_clock_gating_funcs;
|
|
|
|
struct vlv_s0ix_state;
|
|
|
|
struct i915_hwmon;
|
|
|
|
struct intel_pxp;
|
|
|
|
struct drm_i915_private___3 {
|
|
struct drm_device___2 drm;
|
|
struct intel_display display;
|
|
bool do_release;
|
|
struct i915_params params;
|
|
const struct intel_device_info __info;
|
|
struct intel_runtime_info __runtime;
|
|
struct intel_driver_caps caps;
|
|
struct i915_dsm dsm;
|
|
struct intel_uncore uncore;
|
|
struct intel_uncore_mmio_debug mmio_debug;
|
|
struct i915_virtual_gpu vgpu;
|
|
struct intel_gvt *gvt;
|
|
struct {
|
|
struct pci_dev *pdev;
|
|
struct resource mch_res;
|
|
bool mchbar_need_disable;
|
|
} gmch;
|
|
struct rb_root uabi_engines;
|
|
unsigned int engine_uabi_class_count[5];
|
|
spinlock_t irq_lock;
|
|
bool display_irqs_enabled;
|
|
struct mutex sb_lock;
|
|
struct pm_qos_request sb_qos;
|
|
union {
|
|
u32 irq_mask;
|
|
u32 de_irq_mask[4];
|
|
};
|
|
u32 pipestat_irq_mask[4];
|
|
bool preserve_bios_swizzle;
|
|
unsigned int fsb_freq;
|
|
unsigned int mem_freq;
|
|
unsigned int is_ddr3;
|
|
unsigned int skl_preferred_vco_freq;
|
|
unsigned int max_dotclk_freq;
|
|
unsigned int hpll_freq;
|
|
unsigned int czclk_freq;
|
|
struct workqueue_struct *wq;
|
|
const struct drm_i915_clock_gating_funcs *clock_gating_funcs;
|
|
enum intel_pch pch_type;
|
|
unsigned short pch_id;
|
|
unsigned long gem_quirks;
|
|
struct i915_gem_mm mm;
|
|
struct intel_l3_parity l3_parity;
|
|
u32 edram_size_mb;
|
|
struct i915_gpu_error gpu_error;
|
|
u32 suspend_count;
|
|
struct i915_suspend_saved_registers regfile;
|
|
struct vlv_s0ix_state *vlv_s0ix_state;
|
|
struct dram_info dram_info;
|
|
struct intel_runtime_pm runtime_pm;
|
|
struct i915_perf perf;
|
|
struct i915_hwmon *hwmon;
|
|
struct intel_gt gt0;
|
|
struct intel_gt *gt[4];
|
|
struct kobject *sysfs_gt;
|
|
struct intel_gt *media_gt;
|
|
struct {
|
|
struct i915_gem_contexts contexts;
|
|
struct file *mmap_singleton;
|
|
} gem;
|
|
struct intel_pxp *pxp;
|
|
u8 vblank_enabled;
|
|
bool irq_enabled;
|
|
struct i915_pmu pmu;
|
|
struct i915_drm_clients clients;
|
|
struct ttm_device bdev;
|
|
};
|
|
|
|
struct drm_file___2;
|
|
|
|
struct drm_gem_object___2;
|
|
|
|
struct drm_driver___2 {
|
|
int (*load)(struct drm_device___2 *, unsigned long);
|
|
int (*open)(struct drm_device___2 *, struct drm_file___2 *);
|
|
void (*postclose)(struct drm_device___2 *, struct drm_file___2 *);
|
|
void (*lastclose)(struct drm_device___2 *);
|
|
void (*unload)(struct drm_device___2 *);
|
|
void (*release)(struct drm_device___2 *);
|
|
void (*master_set)(struct drm_device___2 *, struct drm_file___2 *, bool);
|
|
void (*master_drop)(struct drm_device___2 *, struct drm_file___2 *);
|
|
void (*debugfs_init)(struct drm_minor___2 *);
|
|
struct drm_gem_object___2 * (*gem_create_object)(struct drm_device___2 *, size_t);
|
|
int (*prime_handle_to_fd)(struct drm_device___2 *, struct drm_file___2 *, uint32_t, uint32_t, int *);
|
|
int (*prime_fd_to_handle)(struct drm_device___2 *, struct drm_file___2 *, int, uint32_t *);
|
|
struct drm_gem_object___2 * (*gem_prime_import)(struct drm_device___2 *, struct dma_buf *);
|
|
struct drm_gem_object___2 * (*gem_prime_import_sg_table)(struct drm_device___2 *, struct dma_buf_attachment *, struct sg_table *);
|
|
int (*gem_prime_mmap)(struct drm_gem_object___2 *, struct vm_area_struct *);
|
|
int (*dumb_create)(struct drm_file___2 *, struct drm_device___2 *, struct drm_mode_create_dumb *);
|
|
int (*dumb_map_offset)(struct drm_file___2 *, struct drm_device___2 *, uint32_t, uint64_t *);
|
|
int (*dumb_destroy)(struct drm_file___2 *, struct drm_device___2 *, uint32_t);
|
|
int major;
|
|
int minor;
|
|
int patchlevel;
|
|
char *name;
|
|
char *desc;
|
|
char *date;
|
|
u32 driver_features;
|
|
const struct drm_ioctl_desc *ioctls;
|
|
int num_ioctls;
|
|
const struct file_operations *fops;
|
|
};
|
|
|
|
struct drm_file___2 {
|
|
bool authenticated;
|
|
bool stereo_allowed;
|
|
bool universal_planes;
|
|
bool atomic;
|
|
bool aspect_ratio_allowed;
|
|
bool writeback_connectors;
|
|
bool was_master;
|
|
bool is_master;
|
|
struct drm_master___2 *master;
|
|
spinlock_t master_lookup_lock;
|
|
struct pid *pid;
|
|
drm_magic_t magic;
|
|
struct list_head lhead;
|
|
struct drm_minor___2 *minor;
|
|
struct idr object_idr;
|
|
spinlock_t table_lock;
|
|
struct idr syncobj_idr;
|
|
spinlock_t syncobj_table_lock;
|
|
struct file *filp;
|
|
void *driver_priv;
|
|
struct list_head fbs;
|
|
struct mutex fbs_lock;
|
|
struct list_head blobs;
|
|
wait_queue_head_t event_wait;
|
|
struct list_head pending_event_list;
|
|
struct list_head event_list;
|
|
int event_space;
|
|
struct mutex event_read_lock;
|
|
struct drm_prime_file_private prime;
|
|
};
|
|
|
|
struct drm_master___2 {
|
|
struct kref refcount;
|
|
struct drm_device___2 *dev;
|
|
char *unique;
|
|
int unique_len;
|
|
struct idr magic_map;
|
|
void *driver_priv;
|
|
struct drm_master___2 *lessor;
|
|
int lessee_id;
|
|
struct list_head lessee_list;
|
|
struct list_head lessees;
|
|
struct idr leases;
|
|
struct idr lessee_idr;
|
|
};
|
|
|
|
struct drm_minor___2 {
|
|
int index;
|
|
int type;
|
|
struct device *kdev;
|
|
struct drm_device___2 *dev;
|
|
struct dentry *debugfs_root;
|
|
struct list_head debugfs_list;
|
|
struct mutex debugfs_lock;
|
|
};
|
|
|
|
struct drm_vma_offset_node {
|
|
rwlock_t vm_lock;
|
|
struct drm_mm_node vm_node;
|
|
struct rb_root vm_files;
|
|
void *driver_private;
|
|
};
|
|
|
|
struct dma_resv_list;
|
|
|
|
struct dma_resv {
|
|
struct ww_mutex lock;
|
|
struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences;
|
|
};
|
|
|
|
struct drm_gem_object_funcs;
|
|
|
|
struct drm_gem_lru;
|
|
|
|
struct drm_gem_object___2 {
|
|
struct kref refcount;
|
|
unsigned int handle_count;
|
|
struct drm_device___2 *dev;
|
|
struct file *filp;
|
|
struct drm_vma_offset_node vma_node;
|
|
size_t size;
|
|
int name;
|
|
struct dma_buf *dma_buf;
|
|
struct dma_buf_attachment *import_attach;
|
|
struct dma_resv *resv;
|
|
struct dma_resv _resv;
|
|
const struct drm_gem_object_funcs *funcs;
|
|
struct list_head lru_node;
|
|
struct drm_gem_lru *lru;
|
|
};
|
|
|
|
struct dma_resv_list {
|
|
struct callback_head rcu;
|
|
u32 num_fences;
|
|
u32 max_fences;
|
|
struct dma_fence __attribute__((btf_type_tag("rcu"))) *table[0];
|
|
};
|
|
|
|
struct drm_gem_object_funcs {
|
|
void (*free)(struct drm_gem_object___2 *);
|
|
int (*open)(struct drm_gem_object___2 *, struct drm_file___2 *);
|
|
void (*close)(struct drm_gem_object___2 *, struct drm_file___2 *);
|
|
void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object___2 *);
|
|
struct dma_buf * (*export)(struct drm_gem_object___2 *, int);
|
|
int (*pin)(struct drm_gem_object___2 *);
|
|
void (*unpin)(struct drm_gem_object___2 *);
|
|
struct sg_table * (*get_sg_table)(struct drm_gem_object___2 *);
|
|
int (*vmap)(struct drm_gem_object___2 *, struct iosys_map *);
|
|
void (*vunmap)(struct drm_gem_object___2 *, struct iosys_map *);
|
|
int (*mmap)(struct drm_gem_object___2 *, struct vm_area_struct *);
|
|
const struct vm_operations_struct *vm_ops;
|
|
};
|
|
|
|
struct drm_gem_lru {
|
|
struct mutex *lock;
|
|
long count;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum drm_mode_status;
|
|
|
|
struct drm_display_mode;
|
|
|
|
struct drm_mode_config_funcs___2 {
|
|
struct drm_framebuffer * (*fb_create)(struct drm_device___2 *, struct drm_file___2 *, const struct drm_mode_fb_cmd2 *);
|
|
const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *);
|
|
void (*output_poll_changed)(struct drm_device___2 *);
|
|
enum drm_mode_status (*mode_valid)(struct drm_device___2 *, const struct drm_display_mode *);
|
|
int (*atomic_check)(struct drm_device___2 *, struct drm_atomic_state *);
|
|
int (*atomic_commit)(struct drm_device___2 *, struct drm_atomic_state *, bool);
|
|
struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___2 *);
|
|
void (*atomic_state_clear)(struct drm_atomic_state *);
|
|
void (*atomic_state_free)(struct drm_atomic_state *);
|
|
};
|
|
|
|
struct drm_object_properties___2;
|
|
|
|
struct drm_mode_object___2 {
|
|
uint32_t id;
|
|
uint32_t type;
|
|
struct drm_object_properties___2 *properties;
|
|
struct kref refcount;
|
|
void (*free_cb)(struct kref *);
|
|
};
|
|
|
|
struct drm_property___2 {
|
|
struct list_head head;
|
|
struct drm_mode_object___2 base;
|
|
uint32_t flags;
|
|
char name[32];
|
|
uint32_t num_values;
|
|
uint64_t *values;
|
|
struct drm_device___2 *dev;
|
|
struct list_head enum_list;
|
|
};
|
|
|
|
struct drm_object_properties___2 {
|
|
int count;
|
|
struct drm_property___2 *properties[24];
|
|
uint64_t values[24];
|
|
};
|
|
|
|
struct drm_vma_offset_manager {
|
|
rwlock_t vm_lock;
|
|
struct drm_mm vm_addr_space_mm;
|
|
};
|
|
|
|
enum i915_cache_level {
|
|
I915_CACHE_NONE = 0,
|
|
I915_CACHE_LLC = 1,
|
|
I915_CACHE_L3_LLC = 2,
|
|
I915_CACHE_WT = 3,
|
|
};
|
|
|
|
struct i915_vm_pt_stash;
|
|
|
|
struct i915_vma_ops {
|
|
void (*bind_vma)(struct i915_address_space *, struct i915_vm_pt_stash *, struct i915_vma_resource *, enum i915_cache_level, u32);
|
|
void (*unbind_vma)(struct i915_address_space *, struct i915_vma_resource *);
|
|
};
|
|
|
|
struct i915_page_table;
|
|
|
|
struct i915_address_space {
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct drm_mm mm;
|
|
struct intel_gt *gt;
|
|
struct drm_i915_private___3 *i915;
|
|
struct device *dma;
|
|
u64 total;
|
|
u64 reserved;
|
|
u64 min_alignment[4];
|
|
unsigned int bind_async_flags;
|
|
struct mutex mutex;
|
|
struct kref resv_ref;
|
|
struct dma_resv _resv;
|
|
struct drm_i915_gem_object *scratch[4];
|
|
struct list_head bound_list;
|
|
struct list_head unbound_list;
|
|
bool is_ggtt: 1;
|
|
bool is_dpt: 1;
|
|
bool has_read_only: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u8 top;
|
|
u8 pd_shift;
|
|
u8 scratch_order;
|
|
unsigned long lmem_pt_obj_flags;
|
|
struct rb_root_cached pending_unbind;
|
|
struct drm_i915_gem_object * (*alloc_pt_dma)(struct i915_address_space *, int);
|
|
struct drm_i915_gem_object * (*alloc_scratch_dma)(struct i915_address_space *, int);
|
|
u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32);
|
|
void (*allocate_va_range)(struct i915_address_space *, struct i915_vm_pt_stash *, u64, u64);
|
|
void (*clear_range)(struct i915_address_space *, u64, u64);
|
|
void (*insert_page)(struct i915_address_space *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*insert_entries)(struct i915_address_space *, struct i915_vma_resource *, enum i915_cache_level, u32);
|
|
void (*raw_insert_page)(struct i915_address_space *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*raw_insert_entries)(struct i915_address_space *, struct i915_vma_resource *, enum i915_cache_level, u32);
|
|
void (*cleanup)(struct i915_address_space *);
|
|
void (*foreach)(struct i915_address_space *, u64, u64, void (*)(struct i915_address_space *, struct i915_page_table *, void *), void *);
|
|
struct i915_vma_ops vma_ops;
|
|
};
|
|
|
|
struct io_mapping {
|
|
resource_size_t base;
|
|
unsigned long size;
|
|
pgprot_t prot;
|
|
void *iomem;
|
|
};
|
|
|
|
struct i915_ppgtt;
|
|
|
|
struct i915_fence_reg;
|
|
|
|
struct i915_ggtt {
|
|
struct i915_address_space vm;
|
|
struct io_mapping iomap;
|
|
struct resource gmadr;
|
|
resource_size_t mappable_end;
|
|
void *gsm;
|
|
void (*invalidate)(struct i915_ggtt *);
|
|
struct i915_ppgtt *alias;
|
|
bool do_idle_maps;
|
|
int mtrr;
|
|
u32 bit_6_swizzle_x;
|
|
u32 bit_6_swizzle_y;
|
|
u32 pin_bias;
|
|
unsigned int num_fences;
|
|
struct i915_fence_reg *fence_regs;
|
|
struct list_head fence_list;
|
|
struct list_head userfault_list;
|
|
struct mutex error_mutex;
|
|
struct drm_mm_node error_capture;
|
|
struct drm_mm_node uc_fw;
|
|
struct list_head gt_list;
|
|
};
|
|
|
|
enum ttm_bo_type {
|
|
ttm_bo_type_device = 0,
|
|
ttm_bo_type_kernel = 1,
|
|
ttm_bo_type_sg = 2,
|
|
};
|
|
|
|
struct ttm_resource;
|
|
|
|
struct ttm_tt;
|
|
|
|
struct ttm_lru_bulk_move;
|
|
|
|
struct ttm_buffer_object {
|
|
struct drm_gem_object___2 base;
|
|
struct ttm_device *bdev;
|
|
enum ttm_bo_type type;
|
|
uint32_t page_alignment;
|
|
void (*destroy)(struct ttm_buffer_object *);
|
|
struct kref kref;
|
|
struct ttm_resource *resource;
|
|
struct ttm_tt *ttm;
|
|
bool deleted;
|
|
struct ttm_lru_bulk_move *bulk_move;
|
|
unsigned int priority;
|
|
unsigned int pin_count;
|
|
struct work_struct delayed_delete;
|
|
struct sg_table *sg;
|
|
};
|
|
|
|
struct i915_gem_object_page_iter {
|
|
struct scatterlist *sg_pos;
|
|
unsigned int sg_idx;
|
|
struct xarray radix;
|
|
struct mutex lock;
|
|
};
|
|
|
|
struct interval_tree_node {
|
|
struct rb_node rb;
|
|
unsigned long start;
|
|
unsigned long last;
|
|
unsigned long __subtree_last;
|
|
};
|
|
|
|
struct mmu_interval_notifier_ops;
|
|
|
|
struct mmu_interval_notifier {
|
|
struct interval_tree_node interval_tree;
|
|
const struct mmu_interval_notifier_ops *ops;
|
|
struct mm_struct *mm;
|
|
struct hlist_node deferred_item;
|
|
unsigned long invalidate_seq;
|
|
};
|
|
|
|
struct i915_gem_userptr {
|
|
uintptr_t ptr;
|
|
unsigned long notifier_seq;
|
|
struct mmu_interval_notifier notifier;
|
|
struct page **pvec;
|
|
int page_ref;
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops;
|
|
|
|
struct intel_frontbuffer;
|
|
|
|
struct drm_i915_gem_object {
|
|
union {
|
|
struct drm_gem_object___2 base;
|
|
struct ttm_buffer_object __do_not_access;
|
|
};
|
|
const struct drm_i915_gem_object_ops *ops;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
struct rb_root tree;
|
|
} vma;
|
|
struct list_head lut_list;
|
|
spinlock_t lut_lock;
|
|
struct list_head obj_link;
|
|
struct i915_address_space *shares_resv_from;
|
|
union {
|
|
struct callback_head rcu;
|
|
struct llist_node freed;
|
|
};
|
|
unsigned int userfault_count;
|
|
struct list_head userfault_link;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct rb_root offsets;
|
|
} mmo;
|
|
unsigned long flags;
|
|
unsigned int mem_flags;
|
|
unsigned int cache_level: 3;
|
|
unsigned int cache_coherent: 2;
|
|
unsigned int cache_dirty: 1;
|
|
u16 read_domains;
|
|
u16 write_domain;
|
|
struct intel_frontbuffer __attribute__((btf_type_tag("rcu"))) *frontbuffer;
|
|
unsigned int tiling_and_stride;
|
|
struct {
|
|
atomic_t pages_pin_count;
|
|
atomic_t shrink_pin;
|
|
bool ttm_shrinkable;
|
|
bool unknown_state;
|
|
struct intel_memory_region **placements;
|
|
int n_placements;
|
|
struct intel_memory_region *region;
|
|
struct ttm_resource *res;
|
|
struct list_head region_link;
|
|
struct i915_refct_sgt *rsgt;
|
|
struct sg_table *pages;
|
|
void *mapping;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_gem_object_page_iter get_page;
|
|
struct i915_gem_object_page_iter get_dma_page;
|
|
struct list_head link;
|
|
unsigned int madv: 2;
|
|
bool dirty: 1;
|
|
u32 tlb;
|
|
} mm;
|
|
struct {
|
|
struct i915_refct_sgt *cached_io_rsgt;
|
|
struct i915_gem_object_page_iter get_io_page;
|
|
struct drm_i915_gem_object *backup;
|
|
bool created: 1;
|
|
} ttm;
|
|
u32 pxp_key_instance;
|
|
unsigned long *bit_17;
|
|
union {
|
|
struct i915_gem_userptr userptr;
|
|
struct drm_mm_node *stolen;
|
|
resource_size_t bo_offset;
|
|
unsigned long scratch;
|
|
u64 encode;
|
|
void *gvt_info;
|
|
};
|
|
};
|
|
|
|
struct ttm_operation_ctx;
|
|
|
|
struct ttm_place;
|
|
|
|
struct ttm_placement;
|
|
|
|
struct ttm_device_funcs {
|
|
struct ttm_tt * (*ttm_tt_create)(struct ttm_buffer_object *, uint32_t);
|
|
int (*ttm_tt_populate)(struct ttm_device *, struct ttm_tt *, struct ttm_operation_ctx *);
|
|
void (*ttm_tt_unpopulate)(struct ttm_device *, struct ttm_tt *);
|
|
void (*ttm_tt_destroy)(struct ttm_device *, struct ttm_tt *);
|
|
bool (*eviction_valuable)(struct ttm_buffer_object *, const struct ttm_place *);
|
|
void (*evict_flags)(struct ttm_buffer_object *, struct ttm_placement *);
|
|
int (*move)(struct ttm_buffer_object *, bool, struct ttm_operation_ctx *, struct ttm_resource *, struct ttm_place *);
|
|
void (*delete_mem_notify)(struct ttm_buffer_object *);
|
|
void (*swap_notify)(struct ttm_buffer_object *);
|
|
int (*io_mem_reserve)(struct ttm_device *, struct ttm_resource *);
|
|
void (*io_mem_free)(struct ttm_device *, struct ttm_resource *);
|
|
unsigned long (*io_mem_pfn)(struct ttm_buffer_object *, unsigned long);
|
|
int (*access_memory)(struct ttm_buffer_object *, unsigned long, void *, int, int);
|
|
void (*release_notify)(struct ttm_buffer_object *);
|
|
};
|
|
|
|
struct ttm_operation_ctx {
|
|
bool interruptible;
|
|
bool no_wait_gpu;
|
|
bool gfp_retry_mayfail;
|
|
bool allow_res_evict;
|
|
bool force_alloc;
|
|
struct dma_resv *resv;
|
|
uint64_t bytes_moved;
|
|
};
|
|
|
|
struct ttm_place {
|
|
unsigned int fpfn;
|
|
unsigned int lpfn;
|
|
uint32_t mem_type;
|
|
uint32_t flags;
|
|
};
|
|
|
|
struct ttm_bus_placement {
|
|
void *addr;
|
|
phys_addr_t offset;
|
|
bool is_iomem;
|
|
enum ttm_caching caching;
|
|
};
|
|
|
|
struct ttm_resource {
|
|
unsigned long start;
|
|
size_t size;
|
|
uint32_t mem_type;
|
|
uint32_t placement;
|
|
struct ttm_bus_placement bus;
|
|
struct ttm_buffer_object *bo;
|
|
struct list_head lru;
|
|
};
|
|
|
|
struct ttm_resource_manager_func {
|
|
int (*alloc)(struct ttm_resource_manager *, struct ttm_buffer_object *, const struct ttm_place *, struct ttm_resource **);
|
|
void (*free)(struct ttm_resource_manager *, struct ttm_resource *);
|
|
bool (*intersects)(struct ttm_resource_manager *, struct ttm_resource *, const struct ttm_place *, size_t);
|
|
bool (*compatible)(struct ttm_resource_manager *, struct ttm_resource *, const struct ttm_place *, size_t);
|
|
void (*debug)(struct ttm_resource_manager *, struct drm_printer *);
|
|
};
|
|
|
|
struct ttm_lru_bulk_move_pos {
|
|
struct ttm_resource *first;
|
|
struct ttm_resource *last;
|
|
};
|
|
|
|
struct ttm_lru_bulk_move {
|
|
struct ttm_lru_bulk_move_pos pos[32];
|
|
};
|
|
|
|
struct drm_i915_gem_pread;
|
|
|
|
struct drm_i915_gem_pwrite;
|
|
|
|
struct drm_i915_gem_object_ops {
|
|
unsigned int flags;
|
|
int (*get_pages)(struct drm_i915_gem_object *);
|
|
void (*put_pages)(struct drm_i915_gem_object *, struct sg_table *);
|
|
int (*truncate)(struct drm_i915_gem_object *);
|
|
int (*shrink)(struct drm_i915_gem_object *, unsigned int);
|
|
int (*pread)(struct drm_i915_gem_object *, const struct drm_i915_gem_pread *);
|
|
int (*pwrite)(struct drm_i915_gem_object *, const struct drm_i915_gem_pwrite *);
|
|
u64 (*mmap_offset)(struct drm_i915_gem_object *);
|
|
void (*unmap_virtual)(struct drm_i915_gem_object *);
|
|
int (*dmabuf_export)(struct drm_i915_gem_object *);
|
|
void (*adjust_lru)(struct drm_i915_gem_object *);
|
|
void (*delayed_free)(struct drm_i915_gem_object *);
|
|
int (*migrate)(struct drm_i915_gem_object *, struct intel_memory_region *, unsigned int);
|
|
void (*release)(struct drm_i915_gem_object *);
|
|
const struct vm_operations_struct *mmap_ops;
|
|
const char *name;
|
|
};
|
|
|
|
struct drm_i915_gem_pread {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
__u64 offset;
|
|
__u64 size;
|
|
__u64 data_ptr;
|
|
};
|
|
|
|
struct drm_i915_gem_pwrite {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
__u64 offset;
|
|
__u64 size;
|
|
__u64 data_ptr;
|
|
};
|
|
|
|
enum intel_region_id {
|
|
INTEL_REGION_SMEM = 0,
|
|
INTEL_REGION_LMEM_0 = 1,
|
|
INTEL_REGION_LMEM_1 = 2,
|
|
INTEL_REGION_LMEM_2 = 3,
|
|
INTEL_REGION_LMEM_3 = 4,
|
|
INTEL_REGION_STOLEN_SMEM = 5,
|
|
INTEL_REGION_STOLEN_LMEM = 6,
|
|
INTEL_REGION_UNKNOWN = 7,
|
|
};
|
|
|
|
struct intel_memory_region_ops;
|
|
|
|
struct intel_memory_region {
|
|
struct drm_i915_private___3 *i915;
|
|
const struct intel_memory_region_ops *ops;
|
|
struct io_mapping iomap;
|
|
struct resource region;
|
|
resource_size_t io_start;
|
|
resource_size_t io_size;
|
|
resource_size_t min_page_size;
|
|
resource_size_t total;
|
|
u16 type;
|
|
u16 instance;
|
|
enum intel_region_id id;
|
|
char name[16];
|
|
bool private;
|
|
struct {
|
|
struct mutex lock;
|
|
struct list_head list;
|
|
} objects;
|
|
bool is_range_manager;
|
|
void *region_private;
|
|
};
|
|
|
|
struct intel_memory_region_ops {
|
|
unsigned int flags;
|
|
int (*init)(struct intel_memory_region *);
|
|
int (*release)(struct intel_memory_region *);
|
|
int (*init_object)(struct intel_memory_region *, struct drm_i915_gem_object *, resource_size_t, resource_size_t, resource_size_t, unsigned int);
|
|
};
|
|
|
|
struct dma_fence_cb;
|
|
|
|
typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *);
|
|
|
|
struct dma_fence_cb {
|
|
struct list_head node;
|
|
dma_fence_func_t func;
|
|
};
|
|
|
|
struct i915_active_fence {
|
|
struct dma_fence __attribute__((btf_type_tag("rcu"))) *fence;
|
|
struct dma_fence_cb cb;
|
|
};
|
|
|
|
struct active_node;
|
|
|
|
struct i915_active {
|
|
atomic_t count;
|
|
struct mutex mutex;
|
|
spinlock_t tree_lock;
|
|
struct active_node *cache;
|
|
struct rb_root tree;
|
|
struct i915_active_fence excl;
|
|
unsigned long flags;
|
|
int (*active)(struct i915_active *);
|
|
void (*retire)(struct i915_active *);
|
|
struct work_struct work;
|
|
struct llist_head preallocated_barriers;
|
|
};
|
|
|
|
struct intel_frontbuffer {
|
|
struct kref ref;
|
|
atomic_t bits;
|
|
struct i915_active write;
|
|
struct drm_i915_gem_object *obj;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_refct_sgt_ops;
|
|
|
|
struct i915_refct_sgt {
|
|
struct kref kref;
|
|
struct sg_table table;
|
|
size_t size;
|
|
const struct i915_refct_sgt_ops *ops;
|
|
};
|
|
|
|
struct i915_refct_sgt_ops {
|
|
void (*release)(struct kref *);
|
|
};
|
|
|
|
struct mmu_notifier_range;
|
|
|
|
struct mmu_interval_notifier_ops {
|
|
bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, unsigned long);
|
|
};
|
|
|
|
enum mmu_notifier_event {
|
|
MMU_NOTIFY_UNMAP = 0,
|
|
MMU_NOTIFY_CLEAR = 1,
|
|
MMU_NOTIFY_PROTECTION_VMA = 2,
|
|
MMU_NOTIFY_PROTECTION_PAGE = 3,
|
|
MMU_NOTIFY_SOFT_DIRTY = 4,
|
|
MMU_NOTIFY_RELEASE = 5,
|
|
MMU_NOTIFY_MIGRATE = 6,
|
|
MMU_NOTIFY_EXCLUSIVE = 7,
|
|
};
|
|
|
|
struct mmu_notifier_range {
|
|
struct mm_struct *mm;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
unsigned int flags;
|
|
enum mmu_notifier_event event;
|
|
void *owner;
|
|
};
|
|
|
|
struct i915_vm_pt_stash {
|
|
struct i915_page_table *pt[2];
|
|
int pt_sz;
|
|
};
|
|
|
|
struct i915_page_table {
|
|
struct drm_i915_gem_object *base;
|
|
union {
|
|
atomic_t used;
|
|
struct i915_page_table *stash;
|
|
};
|
|
bool is_compact;
|
|
};
|
|
|
|
struct i915_page_directory;
|
|
|
|
struct i915_ppgtt {
|
|
struct i915_address_space vm;
|
|
struct i915_page_directory *pd;
|
|
};
|
|
|
|
struct i915_page_directory {
|
|
struct i915_page_table pt;
|
|
spinlock_t lock;
|
|
void **entry;
|
|
};
|
|
|
|
struct i915_fence_reg {
|
|
struct list_head link;
|
|
struct i915_ggtt *ggtt;
|
|
struct i915_vma *vma;
|
|
atomic_t pin_count;
|
|
struct i915_active active;
|
|
int id;
|
|
bool dirty;
|
|
u32 start;
|
|
u32 size;
|
|
u32 tiling;
|
|
u32 stride;
|
|
};
|
|
|
|
enum i915_gtt_view_type {
|
|
I915_GTT_VIEW_NORMAL = 0,
|
|
I915_GTT_VIEW_ROTATED = 24,
|
|
I915_GTT_VIEW_PARTIAL = 12,
|
|
I915_GTT_VIEW_REMAPPED = 52,
|
|
};
|
|
|
|
struct intel_partial_info {
|
|
u64 offset;
|
|
unsigned int size;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_remapped_plane_info {
|
|
u32 offset: 31;
|
|
u32 linear: 1;
|
|
union {
|
|
struct {
|
|
u16 width;
|
|
u16 height;
|
|
u16 src_stride;
|
|
u16 dst_stride;
|
|
};
|
|
u32 size;
|
|
};
|
|
};
|
|
|
|
struct intel_rotation_info {
|
|
struct intel_remapped_plane_info plane[2];
|
|
};
|
|
|
|
struct intel_remapped_info {
|
|
struct intel_remapped_plane_info plane[4];
|
|
u32 plane_alignment;
|
|
};
|
|
|
|
struct i915_gtt_view {
|
|
enum i915_gtt_view_type type;
|
|
union {
|
|
struct intel_partial_info partial;
|
|
struct intel_rotation_info rotated;
|
|
struct intel_remapped_info remapped;
|
|
};
|
|
} __attribute__((packed));
|
|
|
|
struct i915_mmap_offset;
|
|
|
|
struct i915_vma {
|
|
struct drm_mm_node node;
|
|
struct i915_address_space *vm;
|
|
const struct i915_vma_ops *ops;
|
|
struct drm_i915_gem_object *obj;
|
|
struct sg_table *pages;
|
|
void *iomap;
|
|
void *private;
|
|
struct i915_fence_reg *fence;
|
|
u64 size;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_mmap_offset *mmo;
|
|
u32 guard;
|
|
u32 fence_size;
|
|
u32 fence_alignment;
|
|
u32 display_alignment;
|
|
atomic_t open_count;
|
|
atomic_t flags;
|
|
struct i915_active active;
|
|
atomic_t pages_count;
|
|
bool vm_ddestroy;
|
|
struct i915_gtt_view gtt_view;
|
|
struct list_head vm_link;
|
|
struct list_head obj_link;
|
|
struct rb_node obj_node;
|
|
struct hlist_node obj_hash;
|
|
struct list_head evict_link;
|
|
struct list_head closed_link;
|
|
struct i915_vma_resource *resource;
|
|
};
|
|
|
|
enum i915_mmap_type {
|
|
I915_MMAP_TYPE_GTT = 0,
|
|
I915_MMAP_TYPE_WC = 1,
|
|
I915_MMAP_TYPE_WB = 2,
|
|
I915_MMAP_TYPE_UC = 3,
|
|
I915_MMAP_TYPE_FIXED = 4,
|
|
};
|
|
|
|
struct i915_mmap_offset {
|
|
struct drm_vma_offset_node vma_node;
|
|
struct drm_i915_gem_object *obj;
|
|
enum i915_mmap_type mmap_type;
|
|
struct rb_node offset;
|
|
};
|
|
|
|
struct intel_uc_ops {
|
|
int (*sanitize)(struct intel_uc *);
|
|
void (*init_fw)(struct intel_uc *);
|
|
void (*fini_fw)(struct intel_uc *);
|
|
int (*init)(struct intel_uc *);
|
|
void (*fini)(struct intel_uc *);
|
|
int (*init_hw)(struct intel_uc *);
|
|
void (*fini_hw)(struct intel_uc *);
|
|
};
|
|
|
|
struct ewma_runtime {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct intel_context_stats {
|
|
u64 active;
|
|
struct {
|
|
struct ewma_runtime avg;
|
|
u64 total;
|
|
u32 last;
|
|
} runtime;
|
|
};
|
|
|
|
struct i915_gem_context;
|
|
|
|
struct intel_ring;
|
|
|
|
struct intel_timeline;
|
|
|
|
struct intel_context_ops;
|
|
|
|
struct intel_context {
|
|
union {
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
struct intel_engine_cs *engine;
|
|
struct intel_engine_cs *inflight;
|
|
struct i915_address_space *vm;
|
|
struct i915_gem_context __attribute__((btf_type_tag("rcu"))) *gem_context;
|
|
struct list_head signal_link;
|
|
struct list_head signals;
|
|
spinlock_t signal_lock;
|
|
struct i915_vma *state;
|
|
u32 ring_size;
|
|
struct intel_ring *ring;
|
|
struct intel_timeline *timeline;
|
|
unsigned long flags;
|
|
struct {
|
|
u64 timeout_us;
|
|
} watchdog;
|
|
u32 *lrc_reg_state;
|
|
union {
|
|
struct {
|
|
u32 lrca;
|
|
u32 ccid;
|
|
};
|
|
u64 desc;
|
|
} lrc;
|
|
u32 tag;
|
|
struct intel_context_stats stats;
|
|
unsigned int active_count;
|
|
atomic_t pin_count;
|
|
struct mutex pin_mutex;
|
|
struct i915_active active;
|
|
const struct intel_context_ops *ops;
|
|
struct intel_sseu sseu;
|
|
struct list_head pinned_contexts_link;
|
|
u8 wa_bb_page;
|
|
struct {
|
|
spinlock_t lock;
|
|
u32 sched_state;
|
|
struct list_head fences;
|
|
struct i915_sw_fence blocked;
|
|
struct list_head requests;
|
|
u8 prio;
|
|
u32 prio_count[4];
|
|
struct delayed_work sched_disable_delay_work;
|
|
} guc_state;
|
|
struct {
|
|
u16 id;
|
|
atomic_t ref;
|
|
struct list_head link;
|
|
} guc_id;
|
|
struct list_head destroyed_link;
|
|
struct {
|
|
union {
|
|
struct list_head child_list;
|
|
struct list_head child_link;
|
|
};
|
|
struct intel_context *parent;
|
|
struct i915_request *last_rq;
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
u8 number_children;
|
|
u8 child_index;
|
|
struct {
|
|
u16 wqi_head;
|
|
u16 wqi_tail;
|
|
u32 *wq_head;
|
|
u32 *wq_tail;
|
|
u32 *wq_status;
|
|
u8 parent_page;
|
|
} guc;
|
|
} parallel;
|
|
};
|
|
|
|
struct intel_engine_execlists_stats {
|
|
unsigned int active;
|
|
seqcount_t lock;
|
|
ktime_t total;
|
|
ktime_t start;
|
|
};
|
|
|
|
struct intel_engine_guc_stats {
|
|
bool running;
|
|
u32 prev_total;
|
|
u64 total_gt_clks;
|
|
u64 start_gt_clk;
|
|
};
|
|
|
|
enum intel_engine_id {
|
|
RCS0 = 0,
|
|
BCS0 = 1,
|
|
BCS1 = 2,
|
|
BCS2 = 3,
|
|
BCS3 = 4,
|
|
BCS4 = 5,
|
|
BCS5 = 6,
|
|
BCS6 = 7,
|
|
BCS7 = 8,
|
|
BCS8 = 9,
|
|
VCS0 = 10,
|
|
VCS1 = 11,
|
|
VCS2 = 12,
|
|
VCS3 = 13,
|
|
VCS4 = 14,
|
|
VCS5 = 15,
|
|
VCS6 = 16,
|
|
VCS7 = 17,
|
|
VECS0 = 18,
|
|
VECS1 = 19,
|
|
VECS2 = 20,
|
|
VECS3 = 21,
|
|
CCS0 = 22,
|
|
CCS1 = 23,
|
|
CCS2 = 24,
|
|
CCS3 = 25,
|
|
GSC0 = 26,
|
|
I915_NUM_ENGINES = 27,
|
|
};
|
|
|
|
struct ewma__engine_latency {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct intel_engine_pmu {
|
|
u32 enable;
|
|
unsigned int enable_count[3];
|
|
struct i915_pmu_sample sample[3];
|
|
};
|
|
|
|
struct intel_hw_status_page {
|
|
struct list_head timelines;
|
|
struct i915_vma *vma;
|
|
u32 *addr;
|
|
};
|
|
|
|
struct i915_wa_ctx_bb {
|
|
u32 offset;
|
|
u32 size;
|
|
};
|
|
|
|
struct i915_ctx_workarounds {
|
|
struct i915_wa_ctx_bb indirect_ctx;
|
|
struct i915_wa_ctx_bb per_ctx;
|
|
struct i915_vma *vma;
|
|
};
|
|
|
|
struct intel_engine_execlists {
|
|
struct timer_list timer;
|
|
struct timer_list preempt;
|
|
const struct i915_request *preempt_target;
|
|
u32 ccid;
|
|
u32 yield;
|
|
u32 error_interrupt;
|
|
u32 reset_ccid;
|
|
u32 *submit_reg;
|
|
u32 *ctrl_reg;
|
|
struct i915_request * const *active;
|
|
struct i915_request *inflight[3];
|
|
struct i915_request *pending[3];
|
|
unsigned int port_mask;
|
|
struct rb_root_cached virtual;
|
|
u32 *csb_write;
|
|
u64 *csb_status;
|
|
u8 csb_size;
|
|
u8 csb_head;
|
|
};
|
|
|
|
struct atomic_notifier_head {
|
|
spinlock_t lock;
|
|
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
|
|
};
|
|
|
|
struct intel_breadcrumbs;
|
|
|
|
struct drm_i915_reg_table;
|
|
|
|
struct intel_engine_cs {
|
|
struct drm_i915_private___3 *i915;
|
|
struct intel_gt *gt;
|
|
struct intel_uncore *uncore;
|
|
char name[8];
|
|
enum intel_engine_id id;
|
|
enum intel_engine_id legacy_idx;
|
|
unsigned int guc_id;
|
|
intel_engine_mask_t mask;
|
|
u32 reset_domain;
|
|
intel_engine_mask_t logical_mask;
|
|
u8 class;
|
|
u8 instance;
|
|
u16 uabi_class;
|
|
u16 uabi_instance;
|
|
u32 uabi_capabilities;
|
|
u32 context_size;
|
|
u32 mmio_base;
|
|
enum forcewake_domains fw_domain;
|
|
unsigned int fw_active;
|
|
unsigned long context_tag;
|
|
struct rb_node uabi_node;
|
|
struct intel_sseu sseu;
|
|
struct i915_sched_engine *sched_engine;
|
|
struct i915_request *request_pool;
|
|
struct intel_context *hung_ce;
|
|
struct llist_head barrier_tasks;
|
|
struct intel_context *kernel_context;
|
|
struct list_head pinned_contexts_list;
|
|
intel_engine_mask_t saturated;
|
|
struct {
|
|
struct delayed_work work;
|
|
struct i915_request *systole;
|
|
unsigned long blocked;
|
|
} heartbeat;
|
|
unsigned long serial;
|
|
unsigned long wakeref_serial;
|
|
struct intel_wakeref wakeref;
|
|
struct file *default_state;
|
|
struct {
|
|
struct intel_ring *ring;
|
|
struct intel_timeline *timeline;
|
|
} legacy;
|
|
struct ewma__engine_latency latency;
|
|
struct intel_breadcrumbs *breadcrumbs;
|
|
struct intel_engine_pmu pmu;
|
|
struct intel_hw_status_page status_page;
|
|
struct i915_ctx_workarounds wa_ctx;
|
|
struct i915_wa_list ctx_wa_list;
|
|
struct i915_wa_list wa_list;
|
|
struct i915_wa_list whitelist;
|
|
u32 irq_keep_mask;
|
|
u32 irq_enable_mask;
|
|
void (*irq_enable)(struct intel_engine_cs *);
|
|
void (*irq_disable)(struct intel_engine_cs *);
|
|
void (*irq_handler)(struct intel_engine_cs *, u16);
|
|
void (*sanitize)(struct intel_engine_cs *);
|
|
int (*resume)(struct intel_engine_cs *);
|
|
struct {
|
|
void (*prepare)(struct intel_engine_cs *);
|
|
void (*rewind)(struct intel_engine_cs *, bool);
|
|
void (*cancel)(struct intel_engine_cs *);
|
|
void (*finish)(struct intel_engine_cs *);
|
|
} reset;
|
|
void (*park)(struct intel_engine_cs *);
|
|
void (*unpark)(struct intel_engine_cs *);
|
|
void (*bump_serial)(struct intel_engine_cs *);
|
|
void (*set_default_submission)(struct intel_engine_cs *);
|
|
const struct intel_context_ops *cops;
|
|
int (*request_alloc)(struct i915_request *);
|
|
int (*emit_flush)(struct i915_request *, u32);
|
|
int (*emit_bb_start)(struct i915_request *, u64, u32, unsigned int);
|
|
int (*emit_init_breadcrumb)(struct i915_request *);
|
|
u32 * (*emit_fini_breadcrumb)(struct i915_request *, u32 *);
|
|
unsigned int emit_fini_breadcrumb_dw;
|
|
void (*submit_request)(struct i915_request *);
|
|
void (*release)(struct intel_engine_cs *);
|
|
void (*add_active_request)(struct i915_request *);
|
|
void (*remove_active_request)(struct i915_request *);
|
|
ktime_t (*busyness)(struct intel_engine_cs *, ktime_t *);
|
|
struct intel_engine_execlists execlists;
|
|
struct intel_timeline *retire;
|
|
struct work_struct retire_work;
|
|
struct atomic_notifier_head context_status_notifier;
|
|
unsigned int flags;
|
|
struct hlist_head cmd_hash[512];
|
|
const struct drm_i915_reg_table *reg_tables;
|
|
int reg_table_count;
|
|
u32 (*get_cmd_length_mask)(u32);
|
|
struct {
|
|
union {
|
|
struct intel_engine_execlists_stats execlists;
|
|
struct intel_engine_guc_stats guc;
|
|
};
|
|
ktime_t rps;
|
|
} stats;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} props;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} defaults;
|
|
};
|
|
|
|
struct i915_priolist {
|
|
struct list_head requests;
|
|
struct rb_node node;
|
|
int priority;
|
|
};
|
|
|
|
struct i915_sched_attr;
|
|
|
|
struct i915_sched_engine {
|
|
struct kref ref;
|
|
spinlock_t lock;
|
|
struct list_head requests;
|
|
struct list_head hold;
|
|
struct tasklet_struct tasklet;
|
|
struct i915_priolist default_priolist;
|
|
int queue_priority_hint;
|
|
struct rb_root_cached queue;
|
|
bool no_priolist;
|
|
void *private_data;
|
|
void (*destroy)(struct kref *);
|
|
bool (*disabled)(struct i915_sched_engine *);
|
|
void (*kick_backend)(const struct i915_request *, int);
|
|
void (*bump_inflight_request_prio)(struct i915_request *, int);
|
|
void (*retire_inflight_request_prio)(struct i915_request *);
|
|
void (*schedule)(struct i915_request *, const struct i915_sched_attr *);
|
|
};
|
|
|
|
struct pin_cookie {};
|
|
|
|
struct i915_sw_dma_fence_cb {
|
|
struct dma_fence_cb base;
|
|
struct i915_sw_fence *fence;
|
|
};
|
|
|
|
struct i915_request_duration_cb {
|
|
struct dma_fence_cb cb;
|
|
ktime_t emitted;
|
|
};
|
|
|
|
struct i915_sched_attr {
|
|
int priority;
|
|
};
|
|
|
|
struct i915_sched_node {
|
|
struct list_head signalers_list;
|
|
struct list_head waiters_list;
|
|
struct list_head link;
|
|
struct i915_sched_attr attr;
|
|
unsigned int flags;
|
|
intel_engine_mask_t semaphores;
|
|
};
|
|
|
|
struct i915_dependency {
|
|
struct i915_sched_node *signaler;
|
|
struct i915_sched_node *waiter;
|
|
struct list_head signal_link;
|
|
struct list_head wait_link;
|
|
struct list_head dfs_link;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct i915_request_watchdog {
|
|
struct llist_node link;
|
|
struct hrtimer timer;
|
|
};
|
|
|
|
struct i915_capture_list;
|
|
|
|
struct i915_request {
|
|
struct dma_fence fence;
|
|
spinlock_t lock;
|
|
struct drm_i915_private___3 *i915;
|
|
struct intel_engine_cs *engine;
|
|
struct intel_context *context;
|
|
struct intel_ring *ring;
|
|
struct intel_timeline __attribute__((btf_type_tag("rcu"))) *timeline;
|
|
struct list_head signal_link;
|
|
struct llist_node signal_node;
|
|
unsigned long rcustate;
|
|
struct pin_cookie cookie;
|
|
struct i915_sw_fence submit;
|
|
union {
|
|
wait_queue_entry_t submitq;
|
|
struct i915_sw_dma_fence_cb dmaq;
|
|
struct i915_request_duration_cb duration;
|
|
};
|
|
struct llist_head execute_cb;
|
|
struct i915_sw_fence semaphore;
|
|
struct irq_work submit_work;
|
|
struct i915_sched_node sched;
|
|
struct i915_dependency dep;
|
|
intel_engine_mask_t execution_mask;
|
|
const u32 *hwsp_seqno;
|
|
u32 head;
|
|
u32 infix;
|
|
u32 postfix;
|
|
u32 tail;
|
|
u32 wa_tail;
|
|
u32 reserved_space;
|
|
struct i915_vma_resource *batch_res;
|
|
struct i915_capture_list *capture_list;
|
|
unsigned long emitted_jiffies;
|
|
struct list_head link;
|
|
struct i915_request_watchdog watchdog;
|
|
struct list_head guc_fence_link;
|
|
u8 guc_prio;
|
|
wait_queue_entry_t hucq;
|
|
};
|
|
|
|
struct i915_syncmap;
|
|
|
|
struct intel_timeline {
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
struct mutex mutex;
|
|
atomic_t pin_count;
|
|
atomic_t active_count;
|
|
void *hwsp_map;
|
|
const u32 *hwsp_seqno;
|
|
struct i915_vma *hwsp_ggtt;
|
|
u32 hwsp_offset;
|
|
bool has_initial_breadcrumb;
|
|
struct list_head requests;
|
|
struct i915_active_fence last_request;
|
|
struct i915_active active;
|
|
struct intel_timeline *retire;
|
|
struct i915_syncmap *sync;
|
|
struct list_head link;
|
|
struct intel_gt *gt;
|
|
struct list_head engine_link;
|
|
struct kref kref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_capture_list {
|
|
struct i915_vma_resource *vma_res;
|
|
struct i915_capture_list *next;
|
|
};
|
|
|
|
struct intel_wakeref_ops {
|
|
int (*get)(struct intel_wakeref *);
|
|
int (*put)(struct intel_wakeref *);
|
|
};
|
|
|
|
typedef struct {
|
|
u32 reg;
|
|
} i915_mcr_reg_t;
|
|
|
|
struct i915_wa {
|
|
union {
|
|
i915_reg_t reg;
|
|
i915_mcr_reg_t mcr_reg;
|
|
};
|
|
u32 clr;
|
|
u32 set;
|
|
u32 read;
|
|
u32 masked_reg: 1;
|
|
u32 is_mcr: 1;
|
|
};
|
|
|
|
struct i915_gem_ww_ctx;
|
|
|
|
struct intel_context_ops {
|
|
unsigned long flags;
|
|
int (*alloc)(struct intel_context *);
|
|
void (*revoke)(struct intel_context *, struct i915_request *, unsigned int);
|
|
void (*close)(struct intel_context *);
|
|
int (*pre_pin)(struct intel_context *, struct i915_gem_ww_ctx *, void **);
|
|
int (*pin)(struct intel_context *, void *);
|
|
void (*unpin)(struct intel_context *);
|
|
void (*post_unpin)(struct intel_context *);
|
|
void (*cancel_request)(struct intel_context *, struct i915_request *);
|
|
void (*enter)(struct intel_context *);
|
|
void (*exit)(struct intel_context *);
|
|
void (*sched_disable)(struct intel_context *);
|
|
void (*reset)(struct intel_context *);
|
|
void (*destroy)(struct kref *);
|
|
struct intel_context * (*create_virtual)(struct intel_engine_cs **, unsigned int, unsigned long);
|
|
struct intel_context * (*create_parallel)(struct intel_engine_cs **, unsigned int, unsigned int);
|
|
struct intel_engine_cs * (*get_sibling)(struct intel_engine_cs *, unsigned int);
|
|
};
|
|
|
|
struct i915_gem_ww_ctx {
|
|
struct ww_acquire_ctx ctx;
|
|
struct list_head obj_list;
|
|
struct drm_i915_gem_object *contended;
|
|
bool intr;
|
|
};
|
|
|
|
struct drm_i915_reg_descriptor;
|
|
|
|
struct drm_i915_reg_table {
|
|
const struct drm_i915_reg_descriptor *regs;
|
|
int num_regs;
|
|
};
|
|
|
|
struct drm_i915_file_private;
|
|
|
|
struct i915_gem_engines;
|
|
|
|
struct drm_syncobj;
|
|
|
|
struct i915_drm_client;
|
|
|
|
struct i915_gem_context {
|
|
struct drm_i915_private___3 *i915;
|
|
struct drm_i915_file_private *file_priv;
|
|
struct i915_gem_engines __attribute__((btf_type_tag("rcu"))) *engines;
|
|
struct mutex engines_mutex;
|
|
struct drm_syncobj *syncobj;
|
|
struct i915_address_space *vm;
|
|
struct pid *pid;
|
|
struct list_head link;
|
|
struct i915_drm_client *client;
|
|
struct list_head client_link;
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct callback_head rcu;
|
|
unsigned long user_flags;
|
|
unsigned long flags;
|
|
bool uses_protected_content;
|
|
intel_wakeref_t pxp_wakeref;
|
|
struct mutex mutex;
|
|
struct i915_sched_attr sched;
|
|
atomic_t guilty_count;
|
|
atomic_t active_count;
|
|
unsigned long hang_timestamp[2];
|
|
u8 remap_slice;
|
|
struct xarray handles_vma;
|
|
struct mutex lut_mutex;
|
|
char name[24];
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head engines;
|
|
} stale;
|
|
};
|
|
|
|
struct i915_gem_engines {
|
|
union {
|
|
struct list_head link;
|
|
struct callback_head rcu;
|
|
};
|
|
struct i915_sw_fence fence;
|
|
struct i915_gem_context *ctx;
|
|
unsigned int num_engines;
|
|
struct intel_context *engines[0];
|
|
};
|
|
|
|
struct i915_drm_client {
|
|
struct kref kref;
|
|
unsigned int id;
|
|
spinlock_t ctx_lock;
|
|
struct list_head ctx_list;
|
|
struct i915_drm_clients *clients;
|
|
atomic64_t past_runtime[5];
|
|
};
|
|
|
|
struct guc_ct_buffer_desc {
|
|
u32 head;
|
|
u32 tail;
|
|
u32 status;
|
|
u32 reserved[13];
|
|
};
|
|
|
|
struct slpc_shared_data_header {
|
|
u32 size;
|
|
u32 global_state;
|
|
u32 display_data_addr;
|
|
};
|
|
|
|
struct slpc_task_state_data {
|
|
union {
|
|
u32 task_status_padding;
|
|
struct {
|
|
u32 status;
|
|
};
|
|
};
|
|
union {
|
|
u32 freq_padding;
|
|
struct {
|
|
u32 freq;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct slpc_override_params {
|
|
u32 bits[8];
|
|
u32 values[256];
|
|
};
|
|
|
|
struct slpc_shared_data {
|
|
struct slpc_shared_data_header header;
|
|
u8 shared_data_header_pad[52];
|
|
u8 platform_info_pad[64];
|
|
struct slpc_task_state_data task_state_data;
|
|
u8 task_state_data_pad[56];
|
|
struct slpc_override_params override_params;
|
|
u8 override_params_pad[32];
|
|
u8 shared_data_pad[2816];
|
|
u8 reserved_mode_definition[4096];
|
|
};
|
|
|
|
struct guc_mmio_reg {
|
|
u32 offset;
|
|
u32 value;
|
|
u32 flags;
|
|
u32 mask;
|
|
};
|
|
|
|
struct intel_mmio_range {
|
|
u32 start;
|
|
u32 end;
|
|
};
|
|
|
|
struct i915_perf_stream_ops;
|
|
|
|
struct i915_oa_config;
|
|
|
|
struct i915_perf_stream {
|
|
struct i915_perf *perf;
|
|
struct intel_uncore *uncore;
|
|
struct intel_engine_cs *engine;
|
|
struct mutex lock;
|
|
u32 sample_flags;
|
|
int sample_size;
|
|
struct i915_gem_context *ctx;
|
|
bool enabled;
|
|
bool hold_preemption;
|
|
const struct i915_perf_stream_ops *ops;
|
|
struct i915_oa_config *oa_config;
|
|
struct llist_head oa_config_bos;
|
|
struct intel_context *pinned_ctx;
|
|
u32 specific_ctx_id;
|
|
u32 specific_ctx_id_mask;
|
|
struct hrtimer poll_check_timer;
|
|
wait_queue_head_t poll_wq;
|
|
bool pollin;
|
|
bool periodic;
|
|
int period_exponent;
|
|
struct {
|
|
const struct i915_oa_format *format;
|
|
struct i915_vma *vma;
|
|
u8 *vaddr;
|
|
u32 last_ctx_id;
|
|
int size_exponent;
|
|
spinlock_t ptr_lock;
|
|
u32 aging_tail;
|
|
u64 aging_timestamp;
|
|
u32 head;
|
|
u32 tail;
|
|
} oa_buffer;
|
|
struct i915_vma *noa_wait;
|
|
u64 poll_oa_period;
|
|
};
|
|
|
|
struct i915_oa_format {
|
|
u32 format;
|
|
int size;
|
|
};
|
|
|
|
typedef struct poll_table_struct poll_table;
|
|
|
|
struct i915_perf_stream_ops {
|
|
void (*enable)(struct i915_perf_stream *);
|
|
void (*disable)(struct i915_perf_stream *);
|
|
void (*poll_wait)(struct i915_perf_stream *, struct file *, poll_table *);
|
|
int (*wait_unlocked)(struct i915_perf_stream *);
|
|
int (*read)(struct i915_perf_stream *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
void (*destroy)(struct i915_perf_stream *);
|
|
};
|
|
|
|
struct kobj_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *);
|
|
ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t);
|
|
};
|
|
|
|
struct i915_oa_reg;
|
|
|
|
struct i915_oa_config {
|
|
struct i915_perf *perf;
|
|
char uuid[37];
|
|
int id;
|
|
const struct i915_oa_reg *mux_regs;
|
|
u32 mux_regs_len;
|
|
const struct i915_oa_reg *b_counter_regs;
|
|
u32 b_counter_regs_len;
|
|
const struct i915_oa_reg *flex_regs;
|
|
u32 flex_regs_len;
|
|
struct attribute_group sysfs_metric;
|
|
struct attribute *attrs[2];
|
|
struct kobj_attribute sysfs_metric_id;
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_oa_reg {
|
|
i915_reg_t addr;
|
|
u32 value;
|
|
};
|
|
|
|
struct intel_forcewake_range {
|
|
u32 start;
|
|
u32 end;
|
|
enum forcewake_domains domains;
|
|
};
|
|
|
|
struct i915_range {
|
|
u32 start;
|
|
u32 end;
|
|
};
|
|
|
|
struct intel_uncore_fw_get {
|
|
void (*force_wake_get)(struct intel_uncore *, enum forcewake_domains);
|
|
};
|
|
|
|
enum forcewake_domain_id {
|
|
FW_DOMAIN_ID_RENDER = 0,
|
|
FW_DOMAIN_ID_GT = 1,
|
|
FW_DOMAIN_ID_MEDIA = 2,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX0 = 3,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX1 = 4,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX2 = 5,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX3 = 6,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX4 = 7,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX5 = 8,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX6 = 9,
|
|
FW_DOMAIN_ID_MEDIA_VDBOX7 = 10,
|
|
FW_DOMAIN_ID_MEDIA_VEBOX0 = 11,
|
|
FW_DOMAIN_ID_MEDIA_VEBOX1 = 12,
|
|
FW_DOMAIN_ID_MEDIA_VEBOX2 = 13,
|
|
FW_DOMAIN_ID_MEDIA_VEBOX3 = 14,
|
|
FW_DOMAIN_ID_GSC = 15,
|
|
FW_DOMAIN_ID_COUNT = 16,
|
|
};
|
|
|
|
struct intel_uncore_forcewake_domain {
|
|
struct intel_uncore *uncore;
|
|
enum forcewake_domain_id id;
|
|
enum forcewake_domains mask;
|
|
unsigned int wake_count;
|
|
bool active;
|
|
struct hrtimer timer;
|
|
u32 *reg_set;
|
|
u32 *reg_ack;
|
|
};
|
|
|
|
struct drm_i915_clock_gating_funcs {
|
|
void (*init_clock_gating)(struct drm_i915_private *);
|
|
};
|
|
|
|
struct intel_gt_coredump;
|
|
|
|
struct intel_overlay_error_state;
|
|
|
|
struct i915_gpu_coredump {
|
|
struct kref ref;
|
|
ktime_t time;
|
|
ktime_t boottime;
|
|
ktime_t uptime;
|
|
unsigned long capture;
|
|
struct drm_i915_private___3 *i915;
|
|
struct intel_gt_coredump *gt;
|
|
char error_msg[128];
|
|
bool simulated;
|
|
bool wakelock;
|
|
bool suspended;
|
|
int iommu;
|
|
u32 reset_count;
|
|
u32 suspend_count;
|
|
struct intel_device_info device_info;
|
|
struct intel_runtime_info runtime_info;
|
|
struct intel_driver_caps driver_caps;
|
|
struct i915_params params;
|
|
struct intel_overlay_error_state *overlay;
|
|
struct scatterlist *sgl;
|
|
struct scatterlist *fit;
|
|
};
|
|
|
|
struct intel_engine_coredump;
|
|
|
|
struct intel_uc_coredump;
|
|
|
|
struct intel_gt_coredump {
|
|
const struct intel_gt *_gt;
|
|
bool awake;
|
|
bool simulated;
|
|
struct intel_gt_info info;
|
|
u32 eir;
|
|
u32 pgtbl_er;
|
|
u32 ier;
|
|
u32 gtier[6];
|
|
u32 ngtier;
|
|
u32 forcewake;
|
|
u32 error;
|
|
u32 err_int;
|
|
u32 fault_data0;
|
|
u32 fault_data1;
|
|
u32 done_reg;
|
|
u32 gac_eco;
|
|
u32 gam_ecochk;
|
|
u32 gab_ctl;
|
|
u32 gfx_mode;
|
|
u32 gtt_cache;
|
|
u32 aux_err;
|
|
u32 gam_done;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
u32 derrmr;
|
|
u32 sfc_done[4];
|
|
u32 nfence;
|
|
u64 fence[32];
|
|
struct intel_engine_coredump *engine;
|
|
struct intel_uc_coredump *uc;
|
|
struct intel_gt_coredump *next;
|
|
};
|
|
|
|
struct intel_instdone {
|
|
u32 instdone;
|
|
u32 slice_common;
|
|
u32 slice_common_extra[2];
|
|
u32 sampler[128];
|
|
u32 row[128];
|
|
u32 geom_svg[128];
|
|
};
|
|
|
|
struct i915_gem_context_coredump {
|
|
char comm[16];
|
|
u64 total_runtime;
|
|
u64 avg_runtime;
|
|
pid_t pid;
|
|
int active;
|
|
int guilty;
|
|
struct i915_sched_attr sched_attr;
|
|
};
|
|
|
|
struct i915_request_coredump {
|
|
unsigned long flags;
|
|
pid_t pid;
|
|
u32 context;
|
|
u32 seqno;
|
|
u32 head;
|
|
u32 tail;
|
|
struct i915_sched_attr sched_attr;
|
|
};
|
|
|
|
struct __guc_capture_parsed_output;
|
|
|
|
struct i915_vma_coredump;
|
|
|
|
struct intel_engine_coredump {
|
|
const struct intel_engine_cs *engine;
|
|
bool hung;
|
|
bool simulated;
|
|
u32 reset_count;
|
|
u32 rq_head;
|
|
u32 rq_post;
|
|
u32 rq_tail;
|
|
u32 ccid;
|
|
u32 start;
|
|
u32 tail;
|
|
u32 head;
|
|
u32 ctl;
|
|
u32 mode;
|
|
u32 hws;
|
|
u32 ipeir;
|
|
u32 ipehr;
|
|
u32 esr;
|
|
u32 bbstate;
|
|
u32 instpm;
|
|
u32 instps;
|
|
u64 bbaddr;
|
|
u64 acthd;
|
|
u32 fault_reg;
|
|
u64 faddr;
|
|
u32 rc_psmi;
|
|
u32 nopid;
|
|
u32 excc;
|
|
u32 cmd_cctl;
|
|
u32 cscmdop;
|
|
u32 ctx_sr_ctl;
|
|
u32 dma_faddr_hi;
|
|
u32 dma_faddr_lo;
|
|
struct intel_instdone instdone;
|
|
struct intel_guc_state_capture *guc_capture;
|
|
struct __guc_capture_parsed_output *guc_capture_node;
|
|
struct i915_gem_context_coredump context;
|
|
struct i915_vma_coredump *vma;
|
|
struct i915_request_coredump execlist[2];
|
|
unsigned int num_ports;
|
|
struct {
|
|
u32 gfx_mode;
|
|
union {
|
|
u64 pdp[4];
|
|
u32 pp_dir_base;
|
|
};
|
|
} vm_info;
|
|
struct intel_engine_coredump *next;
|
|
};
|
|
|
|
struct i915_vma_coredump {
|
|
struct i915_vma_coredump *next;
|
|
char name[20];
|
|
u64 gtt_offset;
|
|
u64 gtt_size;
|
|
u32 gtt_page_sizes;
|
|
int unused;
|
|
struct list_head page_list;
|
|
};
|
|
|
|
struct intel_ctb_coredump {
|
|
u32 raw_head;
|
|
u32 head;
|
|
u32 raw_tail;
|
|
u32 tail;
|
|
u32 raw_status;
|
|
u32 desc_offset;
|
|
u32 cmds_offset;
|
|
u32 size;
|
|
};
|
|
|
|
struct guc_info {
|
|
struct intel_ctb_coredump ctb[2];
|
|
struct i915_vma_coredump *vma_ctb;
|
|
struct i915_vma_coredump *vma_log;
|
|
u32 timestamp;
|
|
u16 last_fence;
|
|
bool is_guc_capture;
|
|
};
|
|
|
|
struct intel_uc_coredump {
|
|
struct intel_uc_fw guc_fw;
|
|
struct intel_uc_fw huc_fw;
|
|
struct guc_info guc;
|
|
};
|
|
|
|
struct intel_fdi_funcs {
|
|
void (*fdi_link_train)(struct intel_crtc *, const struct intel_crtc_state *);
|
|
};
|
|
|
|
struct intel_color_funcs {
|
|
int (*color_check)(struct intel_crtc_state *);
|
|
void (*color_commit_noarm)(const struct intel_crtc_state *);
|
|
void (*color_commit_arm)(const struct intel_crtc_state *);
|
|
void (*load_luts)(const struct intel_crtc_state *);
|
|
void (*read_luts)(struct intel_crtc_state *);
|
|
bool (*lut_equal)(const struct intel_crtc_state *, const struct drm_property_blob *, const struct drm_property_blob *, bool);
|
|
};
|
|
|
|
struct intel_audio_funcs {
|
|
void (*audio_codec_enable)(struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*audio_codec_disable)(struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*audio_codec_get_config)(struct intel_encoder *, struct intel_crtc_state *);
|
|
};
|
|
|
|
struct intel_global_state {
|
|
struct intel_global_obj *obj;
|
|
struct intel_atomic_state *state;
|
|
struct kref ref;
|
|
bool changed;
|
|
};
|
|
|
|
struct intel_global_state_funcs {
|
|
struct intel_global_state * (*atomic_duplicate_state)(struct intel_global_obj *);
|
|
void (*atomic_destroy_state)(struct intel_global_obj *, struct intel_global_state *);
|
|
};
|
|
|
|
struct intel_cdclk_vals {
|
|
u32 cdclk;
|
|
u16 refclk;
|
|
u16 waveform;
|
|
u8 divider;
|
|
u8 ratio;
|
|
};
|
|
|
|
struct drm_property_blob___2 {
|
|
struct drm_mode_object___2 base;
|
|
struct drm_device___2 *dev;
|
|
struct list_head head_global;
|
|
struct list_head head_file;
|
|
size_t length;
|
|
void *data;
|
|
};
|
|
|
|
enum intel_dpll_id {
|
|
DPLL_ID_PRIVATE = -1,
|
|
DPLL_ID_PCH_PLL_A = 0,
|
|
DPLL_ID_PCH_PLL_B = 1,
|
|
DPLL_ID_WRPLL1 = 0,
|
|
DPLL_ID_WRPLL2 = 1,
|
|
DPLL_ID_SPLL = 2,
|
|
DPLL_ID_LCPLL_810 = 3,
|
|
DPLL_ID_LCPLL_1350 = 4,
|
|
DPLL_ID_LCPLL_2700 = 5,
|
|
DPLL_ID_SKL_DPLL0 = 0,
|
|
DPLL_ID_SKL_DPLL1 = 1,
|
|
DPLL_ID_SKL_DPLL2 = 2,
|
|
DPLL_ID_SKL_DPLL3 = 3,
|
|
DPLL_ID_ICL_DPLL0 = 0,
|
|
DPLL_ID_ICL_DPLL1 = 1,
|
|
DPLL_ID_EHL_DPLL4 = 2,
|
|
DPLL_ID_ICL_TBTPLL = 2,
|
|
DPLL_ID_ICL_MGPLL1 = 3,
|
|
DPLL_ID_ICL_MGPLL2 = 4,
|
|
DPLL_ID_ICL_MGPLL3 = 5,
|
|
DPLL_ID_ICL_MGPLL4 = 6,
|
|
DPLL_ID_TGL_MGPLL5 = 7,
|
|
DPLL_ID_TGL_MGPLL6 = 8,
|
|
DPLL_ID_DG1_DPLL0 = 0,
|
|
DPLL_ID_DG1_DPLL1 = 1,
|
|
DPLL_ID_DG1_DPLL2 = 2,
|
|
DPLL_ID_DG1_DPLL3 = 3,
|
|
};
|
|
|
|
struct intel_shared_dpll_funcs;
|
|
|
|
struct dpll_info {
|
|
const char *name;
|
|
const struct intel_shared_dpll_funcs *funcs;
|
|
enum intel_dpll_id id;
|
|
u32 flags;
|
|
};
|
|
|
|
struct intel_shared_dpll_funcs {
|
|
void (*enable)(struct drm_i915_private *, struct intel_shared_dpll *);
|
|
void (*disable)(struct drm_i915_private *, struct intel_shared_dpll *);
|
|
bool (*get_hw_state)(struct drm_i915_private *, struct intel_shared_dpll *, struct intel_dpll_hw_state *);
|
|
int (*get_freq)(struct drm_i915_private *, const struct intel_shared_dpll *, const struct intel_dpll_hw_state *);
|
|
};
|
|
|
|
struct intel_dpll_mgr {
|
|
const struct dpll_info *dpll_info;
|
|
int (*compute_dplls)(struct intel_atomic_state *, struct intel_crtc *, struct intel_encoder *);
|
|
int (*get_dplls)(struct intel_atomic_state *, struct intel_crtc *, struct intel_encoder *);
|
|
void (*put_dplls)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*update_active_dpll)(struct intel_atomic_state *, struct intel_crtc *, struct intel_encoder *);
|
|
void (*update_ref_clks)(struct drm_i915_private *);
|
|
void (*dump_hw_state)(struct drm_i915_private *, const struct intel_dpll_hw_state *);
|
|
};
|
|
|
|
struct intel_gt_debugfs_file {
|
|
const char *name;
|
|
const struct file_operations *fops;
|
|
bool (*eval)(void *);
|
|
};
|
|
|
|
enum {
|
|
VLV_IOSF_SB_BUNIT = 0,
|
|
VLV_IOSF_SB_CCK = 1,
|
|
VLV_IOSF_SB_CCU = 2,
|
|
VLV_IOSF_SB_DPIO = 3,
|
|
VLV_IOSF_SB_FLISDSI = 4,
|
|
VLV_IOSF_SB_GPIO = 5,
|
|
VLV_IOSF_SB_NC = 6,
|
|
VLV_IOSF_SB_PUNIT = 7,
|
|
};
|
|
|
|
enum intel_rc6_res_type {
|
|
INTEL_RC6_RES_RC6_LOCKED = 0,
|
|
INTEL_RC6_RES_RC6 = 1,
|
|
INTEL_RC6_RES_RC6p = 2,
|
|
INTEL_RC6_RES_RC6pp = 3,
|
|
INTEL_RC6_RES_MAX = 4,
|
|
INTEL_RC6_RES_VLV_MEDIA = 2,
|
|
};
|
|
|
|
enum {
|
|
INTEL_RPS_ENABLED = 0,
|
|
INTEL_RPS_ACTIVE = 1,
|
|
INTEL_RPS_INTERRUPTS = 2,
|
|
INTEL_RPS_TIMER = 3,
|
|
};
|
|
|
|
struct dma_buf_ops {
|
|
bool cache_sgt_mapping;
|
|
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
|
|
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
|
|
int (*pin)(struct dma_buf_attachment *);
|
|
void (*unpin)(struct dma_buf_attachment *);
|
|
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
|
|
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
|
|
void (*release)(struct dma_buf *);
|
|
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
|
|
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
|
|
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
|
|
int (*vmap)(struct dma_buf *, struct iosys_map *);
|
|
void (*vunmap)(struct dma_buf *, struct iosys_map *);
|
|
};
|
|
|
|
struct dma_buf_poll_cb_t {
|
|
struct dma_fence_cb cb;
|
|
wait_queue_head_t *poll;
|
|
__poll_t active;
|
|
};
|
|
|
|
struct dma_buf {
|
|
size_t size;
|
|
struct file *file;
|
|
struct list_head attachments;
|
|
const struct dma_buf_ops *ops;
|
|
unsigned int vmapping_counter;
|
|
struct iosys_map vmap_ptr;
|
|
const char *exp_name;
|
|
const char *name;
|
|
spinlock_t name_lock;
|
|
struct module *owner;
|
|
struct list_head list_node;
|
|
void *priv;
|
|
struct dma_resv *resv;
|
|
wait_queue_head_t poll;
|
|
struct dma_buf_poll_cb_t cb_in;
|
|
struct dma_buf_poll_cb_t cb_out;
|
|
};
|
|
|
|
struct dma_buf_attach_ops;
|
|
|
|
struct dma_buf_attachment {
|
|
struct dma_buf *dmabuf;
|
|
struct device *dev;
|
|
struct list_head node;
|
|
struct sg_table *sgt;
|
|
enum dma_data_direction dir;
|
|
bool peer2peer;
|
|
const struct dma_buf_attach_ops *importer_ops;
|
|
void *importer_priv;
|
|
void *priv;
|
|
};
|
|
|
|
struct dma_buf_attach_ops {
|
|
bool allow_peer2peer;
|
|
void (*move_notify)(struct dma_buf_attachment *);
|
|
};
|
|
|
|
enum i915_map_type {
|
|
I915_MAP_WB = 0,
|
|
I915_MAP_WC = 1,
|
|
I915_MAP_FORCE_WB = 2147483648,
|
|
I915_MAP_FORCE_WC = 2147483649,
|
|
};
|
|
|
|
struct dma_buf_export_info {
|
|
const char *exp_name;
|
|
struct module *owner;
|
|
const struct dma_buf_ops *ops;
|
|
size_t size;
|
|
int flags;
|
|
struct dma_resv *resv;
|
|
void *priv;
|
|
};
|
|
|
|
struct intel_ring {
|
|
struct kref ref;
|
|
struct i915_vma *vma;
|
|
void *vaddr;
|
|
atomic_t pin_count;
|
|
u32 head;
|
|
u32 tail;
|
|
u32 emit;
|
|
u32 space;
|
|
u32 size;
|
|
u32 wrap;
|
|
u32 effective_size;
|
|
};
|
|
|
|
struct drm_i915_file_private {
|
|
struct drm_i915_private___3 *dev_priv;
|
|
union {
|
|
struct drm_file___2 *file;
|
|
struct callback_head rcu;
|
|
};
|
|
struct mutex proto_context_lock;
|
|
struct xarray proto_context_xa;
|
|
struct xarray context_xa;
|
|
struct xarray vm_xa;
|
|
unsigned int bsd_engine;
|
|
atomic_t ban_score;
|
|
unsigned long hang_timestamp;
|
|
struct i915_drm_client *client;
|
|
};
|
|
|
|
enum drm_mm_insert_mode {
|
|
DRM_MM_INSERT_BEST = 0,
|
|
DRM_MM_INSERT_LOW = 1,
|
|
DRM_MM_INSERT_HIGH = 2,
|
|
DRM_MM_INSERT_EVICT = 3,
|
|
DRM_MM_INSERT_ONCE = 2147483648,
|
|
DRM_MM_INSERT_HIGHEST = 2147483650,
|
|
DRM_MM_INSERT_LOWEST = 2147483649,
|
|
};
|
|
|
|
enum fb_op_origin {
|
|
ORIGIN_CPU = 0,
|
|
ORIGIN_CS = 1,
|
|
ORIGIN_FLIP = 2,
|
|
ORIGIN_DIRTYFB = 3,
|
|
ORIGIN_CURSOR_UPDATE = 4,
|
|
};
|
|
|
|
struct drm_i915_gem_get_aperture {
|
|
__u64 aper_size;
|
|
__u64 aper_available_size;
|
|
};
|
|
|
|
struct drm_i915_gem_sw_finish {
|
|
__u32 handle;
|
|
};
|
|
|
|
struct drm_i915_gem_madvise {
|
|
__u32 handle;
|
|
__u32 madv;
|
|
__u32 retained;
|
|
};
|
|
|
|
struct intel_sa_info {
|
|
u16 displayrtids;
|
|
u8 deburst;
|
|
u8 deprogbwlimit;
|
|
u8 derating;
|
|
};
|
|
|
|
struct __intel_global_objs_state;
|
|
|
|
struct intel_atomic_state {
|
|
struct drm_atomic_state base;
|
|
intel_wakeref_t wakeref;
|
|
struct __intel_global_objs_state *global_objs;
|
|
int num_global_objs;
|
|
bool dpll_set;
|
|
bool modeset;
|
|
struct intel_shared_dpll_state shared_dpll[9];
|
|
bool skip_intermediate_wm;
|
|
bool rps_interactive;
|
|
struct i915_sw_fence commit_ready;
|
|
struct llist_node freed;
|
|
};
|
|
|
|
struct drm_gem_object_funcs___2;
|
|
|
|
struct drm_gem_object {
|
|
struct kref refcount;
|
|
unsigned int handle_count;
|
|
struct drm_device *dev;
|
|
struct file *filp;
|
|
struct drm_vma_offset_node vma_node;
|
|
size_t size;
|
|
int name;
|
|
struct dma_buf *dma_buf;
|
|
struct dma_buf_attachment *import_attach;
|
|
struct dma_resv *resv;
|
|
struct dma_resv _resv;
|
|
const struct drm_gem_object_funcs___2 *funcs;
|
|
struct list_head lru_node;
|
|
struct drm_gem_lru *lru;
|
|
};
|
|
|
|
struct drm_gem_object_funcs___2 {
|
|
void (*free)(struct drm_gem_object *);
|
|
int (*open)(struct drm_gem_object *, struct drm_file *);
|
|
void (*close)(struct drm_gem_object *, struct drm_file *);
|
|
void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object *);
|
|
struct dma_buf * (*export)(struct drm_gem_object *, int);
|
|
int (*pin)(struct drm_gem_object *);
|
|
void (*unpin)(struct drm_gem_object *);
|
|
struct sg_table * (*get_sg_table)(struct drm_gem_object *);
|
|
int (*vmap)(struct drm_gem_object *, struct iosys_map *);
|
|
void (*vunmap)(struct drm_gem_object *, struct iosys_map *);
|
|
int (*mmap)(struct drm_gem_object *, struct vm_area_struct *);
|
|
const struct vm_operations_struct *vm_ops;
|
|
};
|
|
|
|
struct rt_mutex_base {
|
|
raw_spinlock_t wait_lock;
|
|
struct rb_root_cached waiters;
|
|
struct task_struct *owner;
|
|
};
|
|
|
|
struct rt_mutex {
|
|
struct rt_mutex_base rtmutex;
|
|
};
|
|
|
|
struct regulator;
|
|
|
|
struct i2c_algorithm;
|
|
|
|
struct i2c_lock_operations;
|
|
|
|
struct i2c_bus_recovery_info;
|
|
|
|
struct i2c_adapter_quirks;
|
|
|
|
struct i2c_adapter {
|
|
struct module *owner;
|
|
unsigned int class;
|
|
const struct i2c_algorithm *algo;
|
|
void *algo_data;
|
|
const struct i2c_lock_operations *lock_ops;
|
|
struct rt_mutex bus_lock;
|
|
struct rt_mutex mux_lock;
|
|
int timeout;
|
|
int retries;
|
|
struct device dev;
|
|
unsigned long locked_flags;
|
|
int nr;
|
|
char name[48];
|
|
struct completion dev_released;
|
|
struct mutex userspace_clients_lock;
|
|
struct list_head userspace_clients;
|
|
struct i2c_bus_recovery_info *bus_recovery_info;
|
|
const struct i2c_adapter_quirks *quirks;
|
|
struct irq_domain *host_notify_domain;
|
|
struct regulator *bus_regulator;
|
|
};
|
|
|
|
struct i2c_msg;
|
|
|
|
union i2c_smbus_data;
|
|
|
|
struct i2c_algorithm {
|
|
int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int);
|
|
int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int);
|
|
int (*smbus_xfer)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *);
|
|
int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *);
|
|
u32 (*functionality)(struct i2c_adapter *);
|
|
};
|
|
|
|
struct i2c_msg {
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u16 len;
|
|
__u8 *buf;
|
|
};
|
|
|
|
union i2c_smbus_data {
|
|
__u8 byte;
|
|
__u16 word;
|
|
__u8 block[34];
|
|
};
|
|
|
|
struct i2c_lock_operations {
|
|
void (*lock_bus)(struct i2c_adapter *, unsigned int);
|
|
int (*trylock_bus)(struct i2c_adapter *, unsigned int);
|
|
void (*unlock_bus)(struct i2c_adapter *, unsigned int);
|
|
};
|
|
|
|
struct pinctrl;
|
|
|
|
struct pinctrl_state;
|
|
|
|
struct i2c_bus_recovery_info {
|
|
int (*recover_bus)(struct i2c_adapter *);
|
|
int (*get_scl)(struct i2c_adapter *);
|
|
void (*set_scl)(struct i2c_adapter *, int);
|
|
int (*get_sda)(struct i2c_adapter *);
|
|
void (*set_sda)(struct i2c_adapter *, int);
|
|
int (*get_bus_free)(struct i2c_adapter *);
|
|
void (*prepare_recovery)(struct i2c_adapter *);
|
|
void (*unprepare_recovery)(struct i2c_adapter *);
|
|
struct gpio_desc *scl_gpiod;
|
|
struct gpio_desc *sda_gpiod;
|
|
struct pinctrl *pinctrl;
|
|
struct pinctrl_state *pins_default;
|
|
struct pinctrl_state *pins_gpio;
|
|
};
|
|
|
|
struct i2c_adapter_quirks {
|
|
u64 flags;
|
|
int max_num_msgs;
|
|
u16 max_write_len;
|
|
u16 max_read_len;
|
|
u16 max_comb_1st_msg_len;
|
|
u16 max_comb_2nd_msg_len;
|
|
};
|
|
|
|
struct __intel_global_objs_state {
|
|
struct intel_global_obj *ptr;
|
|
struct intel_global_state *state;
|
|
struct intel_global_state *old_state;
|
|
struct intel_global_state *new_state;
|
|
};
|
|
|
|
enum transcoder {
|
|
INVALID_TRANSCODER = -1,
|
|
TRANSCODER_A = 0,
|
|
TRANSCODER_B = 1,
|
|
TRANSCODER_C = 2,
|
|
TRANSCODER_D = 3,
|
|
TRANSCODER_EDP = 4,
|
|
TRANSCODER_DSI_0 = 5,
|
|
TRANSCODER_DSI_1 = 6,
|
|
TRANSCODER_DSI_A = 5,
|
|
TRANSCODER_DSI_C = 6,
|
|
I915_MAX_TRANSCODERS = 7,
|
|
};
|
|
|
|
enum dp_pixelformat {
|
|
DP_PIXELFORMAT_RGB = 0,
|
|
DP_PIXELFORMAT_YUV444 = 1,
|
|
DP_PIXELFORMAT_YUV422 = 2,
|
|
DP_PIXELFORMAT_YUV420 = 3,
|
|
DP_PIXELFORMAT_Y_ONLY = 4,
|
|
DP_PIXELFORMAT_RAW = 5,
|
|
DP_PIXELFORMAT_RESERVED = 6,
|
|
};
|
|
|
|
enum dp_colorimetry {
|
|
DP_COLORIMETRY_DEFAULT = 0,
|
|
DP_COLORIMETRY_RGB_WIDE_FIXED = 1,
|
|
DP_COLORIMETRY_BT709_YCC = 1,
|
|
DP_COLORIMETRY_RGB_WIDE_FLOAT = 2,
|
|
DP_COLORIMETRY_XVYCC_601 = 2,
|
|
DP_COLORIMETRY_OPRGB = 3,
|
|
DP_COLORIMETRY_XVYCC_709 = 3,
|
|
DP_COLORIMETRY_DCI_P3_RGB = 4,
|
|
DP_COLORIMETRY_SYCC_601 = 4,
|
|
DP_COLORIMETRY_RGB_CUSTOM = 5,
|
|
DP_COLORIMETRY_OPYCC_601 = 5,
|
|
DP_COLORIMETRY_BT2020_RGB = 6,
|
|
DP_COLORIMETRY_BT2020_CYCC = 6,
|
|
DP_COLORIMETRY_BT2020_YCC = 7,
|
|
};
|
|
|
|
enum dp_dynamic_range {
|
|
DP_DYNAMIC_RANGE_VESA = 0,
|
|
DP_DYNAMIC_RANGE_CTA = 1,
|
|
};
|
|
|
|
enum dp_content_type {
|
|
DP_CONTENT_TYPE_NOT_DEFINED = 0,
|
|
DP_CONTENT_TYPE_GRAPHICS = 1,
|
|
DP_CONTENT_TYPE_PHOTO = 2,
|
|
DP_CONTENT_TYPE_VIDEO = 3,
|
|
DP_CONTENT_TYPE_GAME = 4,
|
|
};
|
|
|
|
enum hdmi_infoframe_type {
|
|
HDMI_INFOFRAME_TYPE_VENDOR = 129,
|
|
HDMI_INFOFRAME_TYPE_AVI = 130,
|
|
HDMI_INFOFRAME_TYPE_SPD = 131,
|
|
HDMI_INFOFRAME_TYPE_AUDIO = 132,
|
|
HDMI_INFOFRAME_TYPE_DRM = 135,
|
|
};
|
|
|
|
enum hdmi_colorspace {
|
|
HDMI_COLORSPACE_RGB = 0,
|
|
HDMI_COLORSPACE_YUV422 = 1,
|
|
HDMI_COLORSPACE_YUV444 = 2,
|
|
HDMI_COLORSPACE_YUV420 = 3,
|
|
HDMI_COLORSPACE_RESERVED4 = 4,
|
|
HDMI_COLORSPACE_RESERVED5 = 5,
|
|
HDMI_COLORSPACE_RESERVED6 = 6,
|
|
HDMI_COLORSPACE_IDO_DEFINED = 7,
|
|
};
|
|
|
|
enum hdmi_scan_mode {
|
|
HDMI_SCAN_MODE_NONE = 0,
|
|
HDMI_SCAN_MODE_OVERSCAN = 1,
|
|
HDMI_SCAN_MODE_UNDERSCAN = 2,
|
|
HDMI_SCAN_MODE_RESERVED = 3,
|
|
};
|
|
|
|
enum hdmi_colorimetry {
|
|
HDMI_COLORIMETRY_NONE = 0,
|
|
HDMI_COLORIMETRY_ITU_601 = 1,
|
|
HDMI_COLORIMETRY_ITU_709 = 2,
|
|
HDMI_COLORIMETRY_EXTENDED = 3,
|
|
};
|
|
|
|
enum hdmi_active_aspect {
|
|
HDMI_ACTIVE_ASPECT_16_9_TOP = 2,
|
|
HDMI_ACTIVE_ASPECT_14_9_TOP = 3,
|
|
HDMI_ACTIVE_ASPECT_16_9_CENTER = 4,
|
|
HDMI_ACTIVE_ASPECT_PICTURE = 8,
|
|
HDMI_ACTIVE_ASPECT_4_3 = 9,
|
|
HDMI_ACTIVE_ASPECT_16_9 = 10,
|
|
HDMI_ACTIVE_ASPECT_14_9 = 11,
|
|
HDMI_ACTIVE_ASPECT_4_3_SP_14_9 = 13,
|
|
HDMI_ACTIVE_ASPECT_16_9_SP_14_9 = 14,
|
|
HDMI_ACTIVE_ASPECT_16_9_SP_4_3 = 15,
|
|
};
|
|
|
|
enum hdmi_extended_colorimetry {
|
|
HDMI_EXTENDED_COLORIMETRY_XV_YCC_601 = 0,
|
|
HDMI_EXTENDED_COLORIMETRY_XV_YCC_709 = 1,
|
|
HDMI_EXTENDED_COLORIMETRY_S_YCC_601 = 2,
|
|
HDMI_EXTENDED_COLORIMETRY_OPYCC_601 = 3,
|
|
HDMI_EXTENDED_COLORIMETRY_OPRGB = 4,
|
|
HDMI_EXTENDED_COLORIMETRY_BT2020_CONST_LUM = 5,
|
|
HDMI_EXTENDED_COLORIMETRY_BT2020 = 6,
|
|
HDMI_EXTENDED_COLORIMETRY_RESERVED = 7,
|
|
};
|
|
|
|
enum hdmi_quantization_range {
|
|
HDMI_QUANTIZATION_RANGE_DEFAULT = 0,
|
|
HDMI_QUANTIZATION_RANGE_LIMITED = 1,
|
|
HDMI_QUANTIZATION_RANGE_FULL = 2,
|
|
HDMI_QUANTIZATION_RANGE_RESERVED = 3,
|
|
};
|
|
|
|
enum hdmi_nups {
|
|
HDMI_NUPS_UNKNOWN = 0,
|
|
HDMI_NUPS_HORIZONTAL = 1,
|
|
HDMI_NUPS_VERTICAL = 2,
|
|
HDMI_NUPS_BOTH = 3,
|
|
};
|
|
|
|
enum hdmi_ycc_quantization_range {
|
|
HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0,
|
|
HDMI_YCC_QUANTIZATION_RANGE_FULL = 1,
|
|
};
|
|
|
|
enum hdmi_content_type {
|
|
HDMI_CONTENT_TYPE_GRAPHICS = 0,
|
|
HDMI_CONTENT_TYPE_PHOTO = 1,
|
|
HDMI_CONTENT_TYPE_CINEMA = 2,
|
|
HDMI_CONTENT_TYPE_GAME = 3,
|
|
};
|
|
|
|
enum hdmi_spd_sdi {
|
|
HDMI_SPD_SDI_UNKNOWN = 0,
|
|
HDMI_SPD_SDI_DSTB = 1,
|
|
HDMI_SPD_SDI_DVDP = 2,
|
|
HDMI_SPD_SDI_DVHS = 3,
|
|
HDMI_SPD_SDI_HDDVR = 4,
|
|
HDMI_SPD_SDI_DVC = 5,
|
|
HDMI_SPD_SDI_DSC = 6,
|
|
HDMI_SPD_SDI_VCD = 7,
|
|
HDMI_SPD_SDI_GAME = 8,
|
|
HDMI_SPD_SDI_PC = 9,
|
|
HDMI_SPD_SDI_BD = 10,
|
|
HDMI_SPD_SDI_SACD = 11,
|
|
HDMI_SPD_SDI_HDDVD = 12,
|
|
HDMI_SPD_SDI_PMP = 13,
|
|
};
|
|
|
|
enum hdmi_3d_structure {
|
|
HDMI_3D_STRUCTURE_INVALID = -1,
|
|
HDMI_3D_STRUCTURE_FRAME_PACKING = 0,
|
|
HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE = 1,
|
|
HDMI_3D_STRUCTURE_LINE_ALTERNATIVE = 2,
|
|
HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL = 3,
|
|
HDMI_3D_STRUCTURE_L_DEPTH = 4,
|
|
HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH = 5,
|
|
HDMI_3D_STRUCTURE_TOP_AND_BOTTOM = 6,
|
|
HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8,
|
|
};
|
|
|
|
enum hdmi_audio_coding_type {
|
|
HDMI_AUDIO_CODING_TYPE_STREAM = 0,
|
|
HDMI_AUDIO_CODING_TYPE_PCM = 1,
|
|
HDMI_AUDIO_CODING_TYPE_AC3 = 2,
|
|
HDMI_AUDIO_CODING_TYPE_MPEG1 = 3,
|
|
HDMI_AUDIO_CODING_TYPE_MP3 = 4,
|
|
HDMI_AUDIO_CODING_TYPE_MPEG2 = 5,
|
|
HDMI_AUDIO_CODING_TYPE_AAC_LC = 6,
|
|
HDMI_AUDIO_CODING_TYPE_DTS = 7,
|
|
HDMI_AUDIO_CODING_TYPE_ATRAC = 8,
|
|
HDMI_AUDIO_CODING_TYPE_DSD = 9,
|
|
HDMI_AUDIO_CODING_TYPE_EAC3 = 10,
|
|
HDMI_AUDIO_CODING_TYPE_DTS_HD = 11,
|
|
HDMI_AUDIO_CODING_TYPE_MLP = 12,
|
|
HDMI_AUDIO_CODING_TYPE_DST = 13,
|
|
HDMI_AUDIO_CODING_TYPE_WMA_PRO = 14,
|
|
HDMI_AUDIO_CODING_TYPE_CXT = 15,
|
|
};
|
|
|
|
enum hdmi_audio_sample_size {
|
|
HDMI_AUDIO_SAMPLE_SIZE_STREAM = 0,
|
|
HDMI_AUDIO_SAMPLE_SIZE_16 = 1,
|
|
HDMI_AUDIO_SAMPLE_SIZE_20 = 2,
|
|
HDMI_AUDIO_SAMPLE_SIZE_24 = 3,
|
|
};
|
|
|
|
enum hdmi_audio_sample_frequency {
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM = 0,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_32000 = 1,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_44100 = 2,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_48000 = 3,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_88200 = 4,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_96000 = 5,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_176400 = 6,
|
|
HDMI_AUDIO_SAMPLE_FREQUENCY_192000 = 7,
|
|
};
|
|
|
|
enum hdmi_audio_coding_type_ext {
|
|
HDMI_AUDIO_CODING_TYPE_EXT_CT = 0,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC = 1,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC_V2 = 2,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_MPEG_SURROUND = 3,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC = 4,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_V2 = 5,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC = 6,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_DRA = 7,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_SURROUND = 8,
|
|
HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC_SURROUND = 10,
|
|
};
|
|
|
|
enum hdmi_eotf {
|
|
HDMI_EOTF_TRADITIONAL_GAMMA_SDR = 0,
|
|
HDMI_EOTF_TRADITIONAL_GAMMA_HDR = 1,
|
|
HDMI_EOTF_SMPTE_ST2084 = 2,
|
|
HDMI_EOTF_BT_2100_HLG = 3,
|
|
};
|
|
|
|
enum hdmi_metadata_type {
|
|
HDMI_STATIC_METADATA_TYPE1 = 0,
|
|
};
|
|
|
|
enum intel_output_format {
|
|
INTEL_OUTPUT_FORMAT_RGB = 0,
|
|
INTEL_OUTPUT_FORMAT_YCBCR420 = 1,
|
|
INTEL_OUTPUT_FORMAT_YCBCR444 = 2,
|
|
};
|
|
|
|
enum drrs_refresh_rate {
|
|
DRRS_REFRESH_RATE_HIGH = 0,
|
|
DRRS_REFRESH_RATE_LOW = 1,
|
|
};
|
|
|
|
enum intel_pipe_crc_source {
|
|
INTEL_PIPE_CRC_SOURCE_NONE = 0,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE1 = 1,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE2 = 2,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE3 = 3,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE4 = 4,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE5 = 5,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE6 = 6,
|
|
INTEL_PIPE_CRC_SOURCE_PLANE7 = 7,
|
|
INTEL_PIPE_CRC_SOURCE_PIPE = 8,
|
|
INTEL_PIPE_CRC_SOURCE_TV = 9,
|
|
INTEL_PIPE_CRC_SOURCE_DP_B = 10,
|
|
INTEL_PIPE_CRC_SOURCE_DP_C = 11,
|
|
INTEL_PIPE_CRC_SOURCE_DP_D = 12,
|
|
INTEL_PIPE_CRC_SOURCE_AUTO = 13,
|
|
INTEL_PIPE_CRC_SOURCE_MAX = 14,
|
|
};
|
|
|
|
struct i915_address_space___2;
|
|
|
|
struct intel_memory_region___2;
|
|
|
|
struct i915_vma_ops___2;
|
|
|
|
struct i915_vma_resource___2 {
|
|
struct dma_fence unbind_fence;
|
|
spinlock_t lock;
|
|
refcount_t hold_count;
|
|
struct work_struct work;
|
|
struct i915_sw_fence chain;
|
|
struct rb_node rb;
|
|
u64 __subtree_last;
|
|
struct i915_address_space___2 *vm;
|
|
intel_wakeref_t wakeref;
|
|
struct i915_vma_bindinfo bi;
|
|
struct intel_memory_region___2 *mr;
|
|
const struct i915_vma_ops___2 *ops;
|
|
void *private;
|
|
u64 start;
|
|
u64 node_size;
|
|
u64 vma_size;
|
|
u32 guard;
|
|
u32 page_sizes_gtt;
|
|
u32 bound_flags;
|
|
bool allocated: 1;
|
|
bool immediate_unbind: 1;
|
|
bool needs_wakeref: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u32 *tlb;
|
|
};
|
|
|
|
struct drm_i915_gem_object___2;
|
|
|
|
struct i915_vma___2;
|
|
|
|
struct intel_uc_fw___2 {
|
|
enum intel_uc_fw_type type;
|
|
union {
|
|
const enum intel_uc_fw_status status;
|
|
enum intel_uc_fw_status __status;
|
|
};
|
|
struct intel_uc_fw_file file_wanted;
|
|
struct intel_uc_fw_file file_selected;
|
|
bool user_overridden;
|
|
size_t size;
|
|
struct drm_i915_gem_object___2 *obj;
|
|
struct i915_vma_resource___2 dummy;
|
|
struct i915_vma___2 *rsa_data;
|
|
u32 rsa_size;
|
|
u32 ucode_size;
|
|
u32 private_data_size;
|
|
bool loaded_via_gsc;
|
|
};
|
|
|
|
struct intel_guc_log___2 {
|
|
u32 level;
|
|
struct {
|
|
s32 bytes;
|
|
s32 units;
|
|
s32 count;
|
|
u32 flag;
|
|
} sizes[3];
|
|
bool sizes_initialised;
|
|
struct i915_vma___2 *vma;
|
|
void *buf_addr;
|
|
struct {
|
|
bool buf_in_use;
|
|
bool started;
|
|
struct work_struct flush_work;
|
|
struct rchan *channel;
|
|
struct mutex lock;
|
|
u32 full_count;
|
|
} relay;
|
|
struct {
|
|
u32 sampled_overflow;
|
|
u32 overflow;
|
|
u32 flush;
|
|
} stats[3];
|
|
};
|
|
|
|
struct intel_guc_ct___2 {
|
|
struct i915_vma___2 *vma;
|
|
bool enabled;
|
|
struct {
|
|
struct intel_guc_ct_buffer send;
|
|
struct intel_guc_ct_buffer recv;
|
|
} ctbs;
|
|
struct tasklet_struct receive_tasklet;
|
|
wait_queue_head_t wq;
|
|
struct {
|
|
u16 last_fence;
|
|
spinlock_t lock;
|
|
struct list_head pending;
|
|
struct list_head incoming;
|
|
struct work_struct worker;
|
|
} requests;
|
|
ktime_t stall_time;
|
|
};
|
|
|
|
struct intel_guc_slpc___2 {
|
|
struct i915_vma___2 *vma;
|
|
struct slpc_shared_data *vaddr;
|
|
bool supported;
|
|
bool selected;
|
|
bool min_is_rpmax;
|
|
u32 min_freq;
|
|
u32 rp0_freq;
|
|
u32 rp1_freq;
|
|
u32 boost_freq;
|
|
u32 min_freq_softlimit;
|
|
u32 max_freq_softlimit;
|
|
u32 media_ratio_mode;
|
|
struct mutex lock;
|
|
struct work_struct boost_work;
|
|
atomic_t num_waiters;
|
|
u32 num_boosts;
|
|
};
|
|
|
|
struct i915_sched_engine___2;
|
|
|
|
struct i915_request___2;
|
|
|
|
struct intel_guc___2 {
|
|
struct intel_uc_fw___2 fw;
|
|
struct intel_guc_log___2 log;
|
|
struct intel_guc_ct___2 ct;
|
|
struct intel_guc_slpc___2 slpc;
|
|
struct intel_guc_state_capture *capture;
|
|
struct i915_sched_engine___2 *sched_engine;
|
|
struct i915_request___2 *stalled_request;
|
|
enum {
|
|
STALL_NONE___2 = 0,
|
|
STALL_REGISTER_CONTEXT___2 = 1,
|
|
STALL_MOVE_LRC_TAIL___2 = 2,
|
|
STALL_ADD_REQUEST___2 = 3,
|
|
} submission_stall_reason;
|
|
spinlock_t irq_lock;
|
|
unsigned int msg_enabled_mask;
|
|
atomic_t outstanding_submission_g2h;
|
|
struct {
|
|
bool enabled;
|
|
void (*reset)(struct intel_guc___2 *);
|
|
void (*enable)(struct intel_guc___2 *);
|
|
void (*disable)(struct intel_guc___2 *);
|
|
} interrupts;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct ida guc_ids;
|
|
int num_guc_ids;
|
|
unsigned long *guc_ids_bitmap;
|
|
struct list_head guc_id_list;
|
|
unsigned int guc_ids_in_use;
|
|
struct list_head destroyed_contexts;
|
|
struct work_struct destroyed_worker;
|
|
struct work_struct reset_fail_worker;
|
|
intel_engine_mask_t reset_fail_mask;
|
|
unsigned int sched_disable_delay_ms;
|
|
unsigned int sched_disable_gucid_threshold;
|
|
} submission_state;
|
|
bool submission_supported;
|
|
bool submission_selected;
|
|
bool submission_initialized;
|
|
struct intel_uc_fw_ver submission_version;
|
|
bool rc_supported;
|
|
bool rc_selected;
|
|
struct i915_vma___2 *ads_vma;
|
|
struct iosys_map ads_map;
|
|
u32 ads_regset_size;
|
|
u32 ads_regset_count[27];
|
|
struct guc_mmio_reg *ads_regset;
|
|
u32 ads_golden_ctxt_size;
|
|
u32 ads_capture_size;
|
|
u32 ads_engine_usage_size;
|
|
struct i915_vma___2 *lrc_desc_pool_v69;
|
|
void *lrc_desc_pool_vaddr_v69;
|
|
struct xarray context_lookup;
|
|
u32 params[14];
|
|
struct {
|
|
u32 base;
|
|
unsigned int count;
|
|
enum forcewake_domains fw_domains;
|
|
} send_regs;
|
|
i915_reg_t notify_reg;
|
|
u32 mmio_msg;
|
|
struct mutex send_mutex;
|
|
struct {
|
|
spinlock_t lock;
|
|
u64 gt_stamp;
|
|
unsigned long ping_delay;
|
|
struct delayed_work work;
|
|
u32 shift;
|
|
unsigned long last_stat_jiffies;
|
|
} timestamp;
|
|
};
|
|
|
|
struct ttm_device___2;
|
|
|
|
struct ttm_resource___2;
|
|
|
|
struct ttm_lru_bulk_move___2;
|
|
|
|
struct ttm_buffer_object___2 {
|
|
struct drm_gem_object base;
|
|
struct ttm_device___2 *bdev;
|
|
enum ttm_bo_type type;
|
|
uint32_t page_alignment;
|
|
void (*destroy)(struct ttm_buffer_object___2 *);
|
|
struct kref kref;
|
|
struct ttm_resource___2 *resource;
|
|
struct ttm_tt *ttm;
|
|
bool deleted;
|
|
struct ttm_lru_bulk_move___2 *bulk_move;
|
|
unsigned int priority;
|
|
unsigned int pin_count;
|
|
struct work_struct delayed_delete;
|
|
struct sg_table *sg;
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops___2;
|
|
|
|
struct intel_frontbuffer___2;
|
|
|
|
struct drm_i915_gem_object___2 {
|
|
union {
|
|
struct drm_gem_object base;
|
|
struct ttm_buffer_object___2 __do_not_access;
|
|
};
|
|
const struct drm_i915_gem_object_ops___2 *ops;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
struct rb_root tree;
|
|
} vma;
|
|
struct list_head lut_list;
|
|
spinlock_t lut_lock;
|
|
struct list_head obj_link;
|
|
struct i915_address_space___2 *shares_resv_from;
|
|
union {
|
|
struct callback_head rcu;
|
|
struct llist_node freed;
|
|
};
|
|
unsigned int userfault_count;
|
|
struct list_head userfault_link;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct rb_root offsets;
|
|
} mmo;
|
|
unsigned long flags;
|
|
unsigned int mem_flags;
|
|
unsigned int cache_level: 3;
|
|
unsigned int cache_coherent: 2;
|
|
unsigned int cache_dirty: 1;
|
|
u16 read_domains;
|
|
u16 write_domain;
|
|
struct intel_frontbuffer___2 __attribute__((btf_type_tag("rcu"))) *frontbuffer;
|
|
unsigned int tiling_and_stride;
|
|
struct {
|
|
atomic_t pages_pin_count;
|
|
atomic_t shrink_pin;
|
|
bool ttm_shrinkable;
|
|
bool unknown_state;
|
|
struct intel_memory_region___2 **placements;
|
|
int n_placements;
|
|
struct intel_memory_region___2 *region;
|
|
struct ttm_resource___2 *res;
|
|
struct list_head region_link;
|
|
struct i915_refct_sgt *rsgt;
|
|
struct sg_table *pages;
|
|
void *mapping;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_gem_object_page_iter get_page;
|
|
struct i915_gem_object_page_iter get_dma_page;
|
|
struct list_head link;
|
|
unsigned int madv: 2;
|
|
bool dirty: 1;
|
|
u32 tlb;
|
|
} mm;
|
|
struct {
|
|
struct i915_refct_sgt *cached_io_rsgt;
|
|
struct i915_gem_object_page_iter get_io_page;
|
|
struct drm_i915_gem_object___2 *backup;
|
|
bool created: 1;
|
|
} ttm;
|
|
u32 pxp_key_instance;
|
|
unsigned long *bit_17;
|
|
union {
|
|
struct i915_gem_userptr userptr;
|
|
struct drm_mm_node *stolen;
|
|
resource_size_t bo_offset;
|
|
unsigned long scratch;
|
|
u64 encode;
|
|
void *gvt_info;
|
|
};
|
|
};
|
|
|
|
struct ttm_resource_manager_func___2;
|
|
|
|
struct ttm_resource_manager___2 {
|
|
bool use_type;
|
|
bool use_tt;
|
|
struct ttm_device___2 *bdev;
|
|
uint64_t size;
|
|
const struct ttm_resource_manager_func___2 *func;
|
|
spinlock_t move_lock;
|
|
struct dma_fence *move;
|
|
struct list_head lru[4];
|
|
uint64_t usage;
|
|
};
|
|
|
|
struct ttm_device_funcs___2;
|
|
|
|
struct ttm_device___2 {
|
|
struct list_head device_list;
|
|
struct ttm_device_funcs___2 *funcs;
|
|
struct ttm_resource_manager___2 sysman;
|
|
struct ttm_resource_manager___2 *man_drv[8];
|
|
struct drm_vma_offset_manager *vma_manager;
|
|
struct ttm_pool pool;
|
|
spinlock_t lru_lock;
|
|
struct list_head pinned;
|
|
struct address_space *dev_mapping;
|
|
struct workqueue_struct *wq;
|
|
};
|
|
|
|
struct ttm_device_funcs___2 {
|
|
struct ttm_tt * (*ttm_tt_create)(struct ttm_buffer_object___2 *, uint32_t);
|
|
int (*ttm_tt_populate)(struct ttm_device___2 *, struct ttm_tt *, struct ttm_operation_ctx *);
|
|
void (*ttm_tt_unpopulate)(struct ttm_device___2 *, struct ttm_tt *);
|
|
void (*ttm_tt_destroy)(struct ttm_device___2 *, struct ttm_tt *);
|
|
bool (*eviction_valuable)(struct ttm_buffer_object___2 *, const struct ttm_place *);
|
|
void (*evict_flags)(struct ttm_buffer_object___2 *, struct ttm_placement *);
|
|
int (*move)(struct ttm_buffer_object___2 *, bool, struct ttm_operation_ctx *, struct ttm_resource___2 *, struct ttm_place *);
|
|
void (*delete_mem_notify)(struct ttm_buffer_object___2 *);
|
|
void (*swap_notify)(struct ttm_buffer_object___2 *);
|
|
int (*io_mem_reserve)(struct ttm_device___2 *, struct ttm_resource___2 *);
|
|
void (*io_mem_free)(struct ttm_device___2 *, struct ttm_resource___2 *);
|
|
unsigned long (*io_mem_pfn)(struct ttm_buffer_object___2 *, unsigned long);
|
|
int (*access_memory)(struct ttm_buffer_object___2 *, unsigned long, void *, int, int);
|
|
void (*release_notify)(struct ttm_buffer_object___2 *);
|
|
};
|
|
|
|
struct ttm_resource___2 {
|
|
unsigned long start;
|
|
size_t size;
|
|
uint32_t mem_type;
|
|
uint32_t placement;
|
|
struct ttm_bus_placement bus;
|
|
struct ttm_buffer_object___2 *bo;
|
|
struct list_head lru;
|
|
};
|
|
|
|
struct ttm_resource_manager_func___2 {
|
|
int (*alloc)(struct ttm_resource_manager___2 *, struct ttm_buffer_object___2 *, const struct ttm_place *, struct ttm_resource___2 **);
|
|
void (*free)(struct ttm_resource_manager___2 *, struct ttm_resource___2 *);
|
|
bool (*intersects)(struct ttm_resource_manager___2 *, struct ttm_resource___2 *, const struct ttm_place *, size_t);
|
|
bool (*compatible)(struct ttm_resource_manager___2 *, struct ttm_resource___2 *, const struct ttm_place *, size_t);
|
|
void (*debug)(struct ttm_resource_manager___2 *, struct drm_printer *);
|
|
};
|
|
|
|
struct ttm_lru_bulk_move_pos___2 {
|
|
struct ttm_resource___2 *first;
|
|
struct ttm_resource___2 *last;
|
|
};
|
|
|
|
struct ttm_lru_bulk_move___2 {
|
|
struct ttm_lru_bulk_move_pos___2 pos[32];
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops___2 {
|
|
unsigned int flags;
|
|
int (*get_pages)(struct drm_i915_gem_object___2 *);
|
|
void (*put_pages)(struct drm_i915_gem_object___2 *, struct sg_table *);
|
|
int (*truncate)(struct drm_i915_gem_object___2 *);
|
|
int (*shrink)(struct drm_i915_gem_object___2 *, unsigned int);
|
|
int (*pread)(struct drm_i915_gem_object___2 *, const struct drm_i915_gem_pread *);
|
|
int (*pwrite)(struct drm_i915_gem_object___2 *, const struct drm_i915_gem_pwrite *);
|
|
u64 (*mmap_offset)(struct drm_i915_gem_object___2 *);
|
|
void (*unmap_virtual)(struct drm_i915_gem_object___2 *);
|
|
int (*dmabuf_export)(struct drm_i915_gem_object___2 *);
|
|
void (*adjust_lru)(struct drm_i915_gem_object___2 *);
|
|
void (*delayed_free)(struct drm_i915_gem_object___2 *);
|
|
int (*migrate)(struct drm_i915_gem_object___2 *, struct intel_memory_region___2 *, unsigned int);
|
|
void (*release)(struct drm_i915_gem_object___2 *);
|
|
const struct vm_operations_struct *mmap_ops;
|
|
const char *name;
|
|
};
|
|
|
|
struct intel_memory_region_ops___2;
|
|
|
|
struct intel_memory_region___2 {
|
|
struct drm_i915_private *i915;
|
|
const struct intel_memory_region_ops___2 *ops;
|
|
struct io_mapping iomap;
|
|
struct resource region;
|
|
resource_size_t io_start;
|
|
resource_size_t io_size;
|
|
resource_size_t min_page_size;
|
|
resource_size_t total;
|
|
u16 type;
|
|
u16 instance;
|
|
enum intel_region_id id;
|
|
char name[16];
|
|
bool private;
|
|
struct {
|
|
struct mutex lock;
|
|
struct list_head list;
|
|
} objects;
|
|
bool is_range_manager;
|
|
void *region_private;
|
|
};
|
|
|
|
struct intel_wm_funcs___2;
|
|
|
|
struct intel_display___2 {
|
|
struct {
|
|
const struct intel_display_funcs *display;
|
|
const struct intel_cdclk_funcs *cdclk;
|
|
const struct intel_dpll_funcs *dpll;
|
|
const struct intel_hotplug_funcs *hotplug;
|
|
const struct intel_wm_funcs___2 *wm;
|
|
const struct intel_fdi_funcs *fdi;
|
|
const struct intel_color_funcs *color;
|
|
const struct intel_audio_funcs *audio;
|
|
} funcs;
|
|
struct intel_atomic_helper atomic_helper;
|
|
struct {
|
|
struct mutex lock;
|
|
} backlight;
|
|
struct {
|
|
struct intel_global_obj obj;
|
|
struct intel_bw_info max[6];
|
|
} bw;
|
|
struct {
|
|
struct intel_cdclk_config hw;
|
|
const struct intel_cdclk_vals *table;
|
|
struct intel_global_obj obj;
|
|
unsigned int max_cdclk_freq;
|
|
} cdclk;
|
|
struct {
|
|
struct drm_property_blob *glk_linear_degamma_lut;
|
|
} color;
|
|
struct {
|
|
u8 enabled_slices;
|
|
struct intel_global_obj obj;
|
|
} dbuf;
|
|
struct {
|
|
spinlock_t phy_lock;
|
|
} dkl;
|
|
struct {
|
|
u32 mmio_base;
|
|
} dsi;
|
|
struct {
|
|
struct intel_fbdev *fbdev;
|
|
struct work_struct suspend_work;
|
|
} fbdev;
|
|
struct {
|
|
unsigned int pll_freq;
|
|
u32 rx_config;
|
|
} fdi;
|
|
struct {
|
|
struct list_head obj_list;
|
|
} global;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
struct intel_gmbus *bus[15];
|
|
wait_queue_head_t wait_queue;
|
|
} gmbus;
|
|
struct {
|
|
struct i915_hdcp_comp_master *master;
|
|
bool comp_added;
|
|
struct mutex comp_mutex;
|
|
} hdcp;
|
|
struct {
|
|
u32 state;
|
|
} hti;
|
|
struct {
|
|
struct i915_power_domains domains;
|
|
u32 chv_phy_control;
|
|
bool chv_phy_assert[2];
|
|
} power;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
} pps;
|
|
struct {
|
|
struct drm_property *broadcast_rgb;
|
|
struct drm_property *force_audio;
|
|
} properties;
|
|
struct {
|
|
unsigned long mask;
|
|
} quirks;
|
|
struct {
|
|
struct drm_atomic_state *modeset_state;
|
|
struct drm_modeset_acquire_ctx reset_ctx;
|
|
} restore;
|
|
struct {
|
|
enum {
|
|
I915_SAGV_UNKNOWN___2 = 0,
|
|
I915_SAGV_DISABLED___2 = 1,
|
|
I915_SAGV_ENABLED___2 = 2,
|
|
I915_SAGV_NOT_CONTROLLED___2 = 3,
|
|
} status;
|
|
u32 block_time_us;
|
|
} sagv;
|
|
struct {
|
|
u8 phy_failed_calibration;
|
|
} snps;
|
|
struct {
|
|
u32 chv_dpll_md[4];
|
|
u32 bxt_phy_grc;
|
|
} state;
|
|
struct {
|
|
struct workqueue_struct *modeset;
|
|
struct workqueue_struct *flip;
|
|
} wq;
|
|
struct intel_audio audio;
|
|
struct intel_dmc dmc;
|
|
struct intel_dpll dpll;
|
|
struct intel_fbc *fbc[2];
|
|
struct intel_frontbuffer_tracking fb_tracking;
|
|
struct intel_hotplug hotplug;
|
|
struct intel_opregion opregion;
|
|
struct intel_overlay *overlay;
|
|
struct intel_vbt_data vbt;
|
|
struct intel_wm wm;
|
|
};
|
|
|
|
struct intel_uncore___2;
|
|
|
|
struct intel_uncore_funcs___2 {
|
|
enum forcewake_domains (*read_fw_domains)(struct intel_uncore___2 *, i915_reg_t);
|
|
enum forcewake_domains (*write_fw_domains)(struct intel_uncore___2 *, i915_reg_t);
|
|
u8 (*mmio_readb)(struct intel_uncore___2 *, i915_reg_t, bool);
|
|
u16 (*mmio_readw)(struct intel_uncore___2 *, i915_reg_t, bool);
|
|
u32 (*mmio_readl)(struct intel_uncore___2 *, i915_reg_t, bool);
|
|
u64 (*mmio_readq)(struct intel_uncore___2 *, i915_reg_t, bool);
|
|
void (*mmio_writeb)(struct intel_uncore___2 *, i915_reg_t, u8, bool);
|
|
void (*mmio_writew)(struct intel_uncore___2 *, i915_reg_t, u16, bool);
|
|
void (*mmio_writel)(struct intel_uncore___2 *, i915_reg_t, u32, bool);
|
|
};
|
|
|
|
struct intel_gt___2;
|
|
|
|
struct intel_uncore_fw_get___2;
|
|
|
|
struct intel_uncore_forcewake_domain___2;
|
|
|
|
struct intel_uncore___2 {
|
|
void *regs;
|
|
struct drm_i915_private *i915;
|
|
struct intel_gt___2 *gt;
|
|
struct intel_runtime_pm *rpm;
|
|
spinlock_t lock;
|
|
u32 gsi_offset;
|
|
unsigned int flags;
|
|
const struct intel_forcewake_range *fw_domains_table;
|
|
unsigned int fw_domains_table_entries;
|
|
const struct i915_range *shadowed_reg_table;
|
|
unsigned int shadowed_reg_table_entries;
|
|
struct notifier_block pmic_bus_access_nb;
|
|
const struct intel_uncore_fw_get___2 *fw_get_funcs;
|
|
struct intel_uncore_funcs___2 funcs;
|
|
unsigned int fifo_count;
|
|
enum forcewake_domains fw_domains;
|
|
enum forcewake_domains fw_domains_active;
|
|
enum forcewake_domains fw_domains_timer;
|
|
enum forcewake_domains fw_domains_saved;
|
|
struct intel_uncore_forcewake_domain___2 *fw_domain[16];
|
|
unsigned int user_forcewake_count;
|
|
struct intel_uncore_mmio_debug *debug;
|
|
};
|
|
|
|
struct i915_gem_mm___2 {
|
|
struct intel_memory_region___2 *stolen_region;
|
|
struct drm_mm stolen;
|
|
struct mutex stolen_lock;
|
|
spinlock_t obj_lock;
|
|
struct list_head purge_list;
|
|
struct list_head shrink_list;
|
|
struct llist_head free_list;
|
|
struct work_struct free_work;
|
|
atomic_t free_count;
|
|
struct vfsmount *gemfs;
|
|
struct intel_memory_region___2 *regions[7];
|
|
struct notifier_block oom_notifier;
|
|
struct notifier_block vmap_notifier;
|
|
struct shrinker shrinker;
|
|
rwlock_t notifier_lock;
|
|
u64 shrink_memory;
|
|
u32 shrink_count;
|
|
};
|
|
|
|
struct i915_gpu_coredump___2;
|
|
|
|
struct i915_gpu_error___2 {
|
|
spinlock_t lock;
|
|
struct i915_gpu_coredump___2 *first_error;
|
|
atomic_t pending_fb_pin;
|
|
atomic_t reset_count;
|
|
atomic_t reset_engine_count[27];
|
|
};
|
|
|
|
struct i915_perf___2;
|
|
|
|
struct i915_perf_stream___2;
|
|
|
|
struct i915_oa_ops___2 {
|
|
bool (*is_valid_b_counter_reg)(struct i915_perf___2 *, u32);
|
|
bool (*is_valid_mux_reg)(struct i915_perf___2 *, u32);
|
|
bool (*is_valid_flex_reg)(struct i915_perf___2 *, u32);
|
|
int (*enable_metric_set)(struct i915_perf_stream___2 *, struct i915_active *);
|
|
void (*disable_metric_set)(struct i915_perf_stream___2 *);
|
|
void (*oa_enable)(struct i915_perf_stream___2 *);
|
|
void (*oa_disable)(struct i915_perf_stream___2 *);
|
|
int (*read)(struct i915_perf_stream___2 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
u32 (*oa_hw_tail_read)(struct i915_perf_stream___2 *);
|
|
};
|
|
|
|
struct i915_perf___2 {
|
|
struct drm_i915_private *i915;
|
|
struct kobject *metrics_kobj;
|
|
struct mutex metrics_lock;
|
|
struct idr metrics_idr;
|
|
struct ratelimit_state spurious_report_rs;
|
|
struct ratelimit_state tail_pointer_race;
|
|
u32 gen7_latched_oastatus1;
|
|
u32 ctx_oactxctrl_offset;
|
|
u32 ctx_flexeu0_offset;
|
|
u32 gen8_valid_ctx_bit;
|
|
struct i915_oa_ops___2 ops;
|
|
const struct i915_oa_format *oa_formats;
|
|
unsigned long format_mask[1];
|
|
atomic64_t noa_programming_delay;
|
|
};
|
|
|
|
struct intel_context___2;
|
|
|
|
struct intel_gsc_uc___2 {
|
|
struct intel_uc_fw___2 fw;
|
|
struct i915_vma___2 *local;
|
|
struct intel_context___2 *ce;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct intel_huc___2 {
|
|
struct intel_uc_fw___2 fw;
|
|
struct {
|
|
i915_reg_t reg;
|
|
u32 mask;
|
|
u32 value;
|
|
} status;
|
|
struct {
|
|
struct i915_sw_fence fence;
|
|
struct hrtimer timer;
|
|
struct notifier_block nb;
|
|
enum intel_huc_delayed_load_status status;
|
|
} delayed_load;
|
|
};
|
|
|
|
struct intel_uc_ops___2;
|
|
|
|
struct intel_uc___2 {
|
|
const struct intel_uc_ops___2 *ops;
|
|
struct intel_gsc_uc___2 gsc;
|
|
struct intel_guc___2 guc;
|
|
struct intel_huc___2 huc;
|
|
struct drm_i915_gem_object___2 *load_err_log;
|
|
bool reset_in_progress;
|
|
};
|
|
|
|
struct intel_gsc_intf___2 {
|
|
struct mei_aux_device *adev;
|
|
struct drm_i915_gem_object___2 *gem_obj;
|
|
int irq;
|
|
unsigned int id;
|
|
};
|
|
|
|
struct intel_gsc___2 {
|
|
struct intel_gsc_intf___2 intf[2];
|
|
};
|
|
|
|
struct i915_wa_list___2 {
|
|
struct intel_gt___2 *gt;
|
|
const char *name;
|
|
const char *engine_name;
|
|
struct i915_wa *list;
|
|
unsigned int count;
|
|
unsigned int wa_count;
|
|
};
|
|
|
|
struct intel_rc6___2 {
|
|
i915_reg_t res_reg[4];
|
|
u64 prev_hw_residency[4];
|
|
u64 cur_residency[4];
|
|
u32 ctl_enable;
|
|
struct drm_i915_gem_object___2 *pctx;
|
|
bool supported: 1;
|
|
bool enabled: 1;
|
|
bool manual: 1;
|
|
bool wakeref: 1;
|
|
};
|
|
|
|
struct intel_migrate___2 {
|
|
struct intel_context___2 *context;
|
|
};
|
|
|
|
struct i915_perf_gt___2 {
|
|
struct mutex lock;
|
|
struct intel_sseu sseu;
|
|
struct i915_perf_stream___2 *exclusive_stream;
|
|
};
|
|
|
|
struct i915_ggtt___2;
|
|
|
|
struct intel_engine_cs___2;
|
|
|
|
struct intel_gt___2 {
|
|
struct drm_i915_private *i915;
|
|
const char *name;
|
|
enum intel_gt_type type;
|
|
struct intel_uncore___2 *uncore;
|
|
struct i915_ggtt___2 *ggtt;
|
|
struct intel_uc___2 uc;
|
|
struct intel_gsc___2 gsc;
|
|
struct intel_wopcm wopcm;
|
|
struct {
|
|
struct mutex invalidate_lock;
|
|
seqcount_mutex_t seqno;
|
|
} tlb;
|
|
struct i915_wa_list___2 wa_list;
|
|
struct intel_gt_timelines timelines;
|
|
struct intel_gt_requests requests;
|
|
struct {
|
|
struct llist_head list;
|
|
struct work_struct work;
|
|
} watchdog;
|
|
struct intel_wakeref wakeref;
|
|
atomic_t user_wakeref;
|
|
struct list_head closed_vma;
|
|
spinlock_t closed_lock;
|
|
ktime_t last_init_time;
|
|
struct intel_reset reset;
|
|
intel_wakeref_t awake;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
struct intel_llc llc;
|
|
struct intel_rc6___2 rc6;
|
|
struct intel_rps rps;
|
|
spinlock_t *irq_lock;
|
|
u32 gt_imr;
|
|
u32 pm_ier;
|
|
u32 pm_imr;
|
|
u32 pm_guc_events;
|
|
struct {
|
|
bool active;
|
|
seqcount_mutex_t lock;
|
|
ktime_t total;
|
|
ktime_t start;
|
|
} stats;
|
|
struct intel_engine_cs___2 *engine[27];
|
|
struct intel_engine_cs___2 *engine_class[54];
|
|
enum intel_submission_method submission_method;
|
|
struct i915_address_space___2 *vm;
|
|
struct intel_gt_buffer_pool buffer_pool;
|
|
struct i915_vma___2 *scratch;
|
|
struct intel_migrate___2 migrate;
|
|
const struct intel_mmio_range *steering_table[7];
|
|
struct {
|
|
u8 groupid;
|
|
u8 instanceid;
|
|
} default_steering;
|
|
spinlock_t mcr_lock;
|
|
phys_addr_t phys_addr;
|
|
struct intel_gt_info info;
|
|
struct {
|
|
u8 uc_index;
|
|
u8 wb_index;
|
|
} mocs;
|
|
struct kobject sysfs_gt;
|
|
struct gt_defaults defaults;
|
|
struct kobject *sysfs_defaults;
|
|
struct i915_perf_gt___2 perf;
|
|
struct list_head ggtt_link;
|
|
};
|
|
|
|
struct i915_drm_clients___2 {
|
|
struct drm_i915_private *i915;
|
|
struct xarray xarray;
|
|
u32 next_id;
|
|
};
|
|
|
|
struct drm_i915_private {
|
|
struct drm_device drm;
|
|
struct intel_display___2 display;
|
|
bool do_release;
|
|
struct i915_params params;
|
|
const struct intel_device_info __info;
|
|
struct intel_runtime_info __runtime;
|
|
struct intel_driver_caps caps;
|
|
struct i915_dsm dsm;
|
|
struct intel_uncore___2 uncore;
|
|
struct intel_uncore_mmio_debug mmio_debug;
|
|
struct i915_virtual_gpu vgpu;
|
|
struct intel_gvt *gvt;
|
|
struct {
|
|
struct pci_dev *pdev;
|
|
struct resource mch_res;
|
|
bool mchbar_need_disable;
|
|
} gmch;
|
|
struct rb_root uabi_engines;
|
|
unsigned int engine_uabi_class_count[5];
|
|
spinlock_t irq_lock;
|
|
bool display_irqs_enabled;
|
|
struct mutex sb_lock;
|
|
struct pm_qos_request sb_qos;
|
|
union {
|
|
u32 irq_mask;
|
|
u32 de_irq_mask[4];
|
|
};
|
|
u32 pipestat_irq_mask[4];
|
|
bool preserve_bios_swizzle;
|
|
unsigned int fsb_freq;
|
|
unsigned int mem_freq;
|
|
unsigned int is_ddr3;
|
|
unsigned int skl_preferred_vco_freq;
|
|
unsigned int max_dotclk_freq;
|
|
unsigned int hpll_freq;
|
|
unsigned int czclk_freq;
|
|
struct workqueue_struct *wq;
|
|
const struct drm_i915_clock_gating_funcs *clock_gating_funcs;
|
|
enum intel_pch pch_type;
|
|
unsigned short pch_id;
|
|
unsigned long gem_quirks;
|
|
struct i915_gem_mm___2 mm;
|
|
struct intel_l3_parity l3_parity;
|
|
u32 edram_size_mb;
|
|
struct i915_gpu_error___2 gpu_error;
|
|
u32 suspend_count;
|
|
struct i915_suspend_saved_registers regfile;
|
|
struct vlv_s0ix_state *vlv_s0ix_state;
|
|
struct dram_info dram_info;
|
|
struct intel_runtime_pm runtime_pm;
|
|
struct i915_perf___2 perf;
|
|
struct i915_hwmon *hwmon;
|
|
struct intel_gt___2 gt0;
|
|
struct intel_gt___2 *gt[4];
|
|
struct kobject *sysfs_gt;
|
|
struct intel_gt___2 *media_gt;
|
|
struct {
|
|
struct i915_gem_contexts contexts;
|
|
struct file *mmap_singleton;
|
|
} gem;
|
|
struct intel_pxp *pxp;
|
|
u8 vblank_enabled;
|
|
bool irq_enabled;
|
|
struct i915_pmu pmu;
|
|
struct i915_drm_clients___2 clients;
|
|
struct ttm_device___2 bdev;
|
|
};
|
|
|
|
struct intel_wm_level {
|
|
bool enable;
|
|
u32 pri_val;
|
|
u32 spr_val;
|
|
u32 cur_val;
|
|
u32 fbc_val;
|
|
};
|
|
|
|
struct intel_pipe_wm {
|
|
struct intel_wm_level wm[5];
|
|
bool fbc_wm_enabled;
|
|
bool pipe_enabled;
|
|
bool sprites_enabled;
|
|
bool sprites_scaled;
|
|
};
|
|
|
|
struct vlv_wm_state {
|
|
struct g4x_pipe_wm wm[3];
|
|
struct g4x_sr_wm sr[3];
|
|
u8 num_levels;
|
|
bool cxsr;
|
|
};
|
|
|
|
struct g4x_wm_state {
|
|
struct g4x_pipe_wm wm;
|
|
struct g4x_sr_wm sr;
|
|
struct g4x_sr_wm hpll;
|
|
bool cxsr;
|
|
bool hpll_en;
|
|
bool fbc_en;
|
|
};
|
|
|
|
struct intel_link_m_n {
|
|
u32 tu;
|
|
u32 data_m;
|
|
u32 data_n;
|
|
u32 link_m;
|
|
u32 link_n;
|
|
};
|
|
|
|
struct intel_display_power_domain_set {
|
|
struct intel_power_domain_mask mask;
|
|
};
|
|
|
|
struct intel_pipe_crc {
|
|
spinlock_t lock;
|
|
int skipped;
|
|
enum intel_pipe_crc_source source;
|
|
};
|
|
|
|
struct intel_crtc {
|
|
struct drm_crtc base;
|
|
enum pipe pipe;
|
|
bool active;
|
|
u8 plane_ids_mask;
|
|
u8 mode_flags;
|
|
u16 vmax_vblank_start;
|
|
struct intel_display_power_domain_set enabled_power_domains;
|
|
struct intel_display_power_domain_set hw_readout_power_domains;
|
|
struct intel_overlay *overlay;
|
|
struct intel_crtc_state *config;
|
|
bool cpu_fifo_underrun_disabled;
|
|
bool pch_fifo_underrun_disabled;
|
|
struct {
|
|
union {
|
|
struct intel_pipe_wm ilk;
|
|
struct vlv_wm_state vlv;
|
|
struct g4x_wm_state g4x;
|
|
} active;
|
|
} wm;
|
|
struct {
|
|
struct mutex mutex;
|
|
struct delayed_work work;
|
|
enum drrs_refresh_rate refresh_rate;
|
|
unsigned int frontbuffer_bits;
|
|
unsigned int busy_frontbuffer_bits;
|
|
enum transcoder cpu_transcoder;
|
|
struct intel_link_m_n m_n;
|
|
struct intel_link_m_n m2_n2;
|
|
} drrs;
|
|
int scanline_offset;
|
|
struct {
|
|
unsigned int start_vbl_count;
|
|
ktime_t start_vbl_time;
|
|
int min_vbl;
|
|
int max_vbl;
|
|
int scanline_start;
|
|
} debug;
|
|
int num_scalers;
|
|
struct pm_qos_request vblank_pm_qos;
|
|
struct intel_pipe_crc pipe_crc;
|
|
};
|
|
|
|
struct intel_mpllb_state {
|
|
u32 clock;
|
|
u32 ref_control;
|
|
u32 mpllb_cp;
|
|
u32 mpllb_div;
|
|
u32 mpllb_div2;
|
|
u32 mpllb_fracn1;
|
|
u32 mpllb_fracn2;
|
|
u32 mpllb_sscen;
|
|
u32 mpllb_sscstep;
|
|
};
|
|
|
|
struct hdmi_any_infoframe {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
};
|
|
|
|
struct hdmi_avi_infoframe {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
enum hdmi_colorspace colorspace;
|
|
enum hdmi_scan_mode scan_mode;
|
|
enum hdmi_colorimetry colorimetry;
|
|
enum hdmi_picture_aspect picture_aspect;
|
|
enum hdmi_active_aspect active_aspect;
|
|
bool itc;
|
|
enum hdmi_extended_colorimetry extended_colorimetry;
|
|
enum hdmi_quantization_range quantization_range;
|
|
enum hdmi_nups nups;
|
|
unsigned char video_code;
|
|
enum hdmi_ycc_quantization_range ycc_quantization_range;
|
|
enum hdmi_content_type content_type;
|
|
unsigned char pixel_repeat;
|
|
unsigned short top_bar;
|
|
unsigned short bottom_bar;
|
|
unsigned short left_bar;
|
|
unsigned short right_bar;
|
|
};
|
|
|
|
struct hdmi_spd_infoframe {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
char vendor[8];
|
|
char product[16];
|
|
enum hdmi_spd_sdi sdi;
|
|
};
|
|
|
|
struct hdmi_vendor_infoframe {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
unsigned int oui;
|
|
u8 vic;
|
|
enum hdmi_3d_structure s3d_struct;
|
|
unsigned int s3d_ext_data;
|
|
};
|
|
|
|
union hdmi_vendor_any_infoframe {
|
|
struct {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
unsigned int oui;
|
|
} any;
|
|
struct hdmi_vendor_infoframe hdmi;
|
|
};
|
|
|
|
struct hdmi_audio_infoframe {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
unsigned char channels;
|
|
enum hdmi_audio_coding_type coding_type;
|
|
enum hdmi_audio_sample_size sample_size;
|
|
enum hdmi_audio_sample_frequency sample_frequency;
|
|
enum hdmi_audio_coding_type_ext coding_type_ext;
|
|
unsigned char channel_allocation;
|
|
unsigned char level_shift_value;
|
|
bool downmix_inhibit;
|
|
};
|
|
|
|
struct hdmi_drm_infoframe {
|
|
enum hdmi_infoframe_type type;
|
|
unsigned char version;
|
|
unsigned char length;
|
|
enum hdmi_eotf eotf;
|
|
enum hdmi_metadata_type metadata_type;
|
|
struct {
|
|
u16 x;
|
|
u16 y;
|
|
} display_primaries[3];
|
|
struct {
|
|
u16 x;
|
|
u16 y;
|
|
} white_point;
|
|
u16 max_display_mastering_luminance;
|
|
u16 min_display_mastering_luminance;
|
|
u16 max_cll;
|
|
u16 max_fall;
|
|
};
|
|
|
|
union hdmi_infoframe {
|
|
struct hdmi_any_infoframe any;
|
|
struct hdmi_avi_infoframe avi;
|
|
struct hdmi_spd_infoframe spd;
|
|
union hdmi_vendor_any_infoframe vendor;
|
|
struct hdmi_audio_infoframe audio;
|
|
struct hdmi_drm_infoframe drm;
|
|
};
|
|
|
|
struct drm_dp_vsc_sdp {
|
|
unsigned char sdp_type;
|
|
unsigned char revision;
|
|
unsigned char length;
|
|
enum dp_pixelformat pixelformat;
|
|
enum dp_colorimetry colorimetry;
|
|
int bpc;
|
|
enum dp_dynamic_range dynamic_range;
|
|
enum dp_content_type content_type;
|
|
};
|
|
|
|
struct dpll {
|
|
int n;
|
|
int m1;
|
|
int m2;
|
|
int p1;
|
|
int p2;
|
|
int dot;
|
|
int vco;
|
|
int m;
|
|
int p;
|
|
};
|
|
|
|
struct icl_port_dpll {
|
|
struct intel_shared_dpll *pll;
|
|
struct intel_dpll_hw_state hw_state;
|
|
};
|
|
|
|
struct intel_scaler {
|
|
int in_use;
|
|
u32 mode;
|
|
};
|
|
|
|
struct intel_crtc_scaler_state {
|
|
struct intel_scaler scalers[2];
|
|
unsigned int scaler_users;
|
|
int scaler_id;
|
|
};
|
|
|
|
struct skl_wm_level {
|
|
u16 min_ddb_alloc;
|
|
u16 blocks;
|
|
u8 lines;
|
|
bool enable;
|
|
bool ignore_lines;
|
|
bool can_sagv;
|
|
};
|
|
|
|
struct skl_plane_wm {
|
|
struct skl_wm_level wm[8];
|
|
struct skl_wm_level uv_wm[8];
|
|
struct skl_wm_level trans_wm;
|
|
struct {
|
|
struct skl_wm_level wm0;
|
|
struct skl_wm_level trans_wm;
|
|
} sagv;
|
|
bool is_planar;
|
|
};
|
|
|
|
struct skl_pipe_wm {
|
|
struct skl_plane_wm planes[8];
|
|
bool use_sagv_wm;
|
|
};
|
|
|
|
struct skl_ddb_entry {
|
|
u16 start;
|
|
u16 end;
|
|
};
|
|
|
|
struct vlv_fifo_state {
|
|
u16 plane[8];
|
|
};
|
|
|
|
struct intel_crtc_wm_state {
|
|
union {
|
|
struct {
|
|
struct intel_pipe_wm intermediate;
|
|
struct intel_pipe_wm optimal;
|
|
} ilk;
|
|
struct {
|
|
struct skl_pipe_wm raw;
|
|
struct skl_pipe_wm optimal;
|
|
struct skl_ddb_entry ddb;
|
|
struct skl_ddb_entry plane_ddb[8];
|
|
struct skl_ddb_entry plane_ddb_y[8];
|
|
} skl;
|
|
struct {
|
|
struct g4x_pipe_wm raw[3];
|
|
struct vlv_wm_state intermediate;
|
|
struct vlv_wm_state optimal;
|
|
struct vlv_fifo_state fifo_state;
|
|
} vlv;
|
|
struct {
|
|
struct g4x_pipe_wm raw[3];
|
|
struct g4x_wm_state intermediate;
|
|
struct g4x_wm_state optimal;
|
|
} g4x;
|
|
};
|
|
bool need_postvbl_update;
|
|
};
|
|
|
|
struct drm_vblank_work {
|
|
struct kthread_work base;
|
|
struct drm_vblank_crtc *vblank;
|
|
u64 count;
|
|
int cancelling;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct intel_dsb;
|
|
|
|
struct intel_crtc_state {
|
|
struct drm_crtc_state uapi;
|
|
struct {
|
|
bool active;
|
|
bool enable;
|
|
struct drm_property_blob *degamma_lut;
|
|
struct drm_property_blob *gamma_lut;
|
|
struct drm_property_blob *ctm;
|
|
struct drm_display_mode mode;
|
|
struct drm_display_mode pipe_mode;
|
|
struct drm_display_mode adjusted_mode;
|
|
enum drm_scaling_filter scaling_filter;
|
|
} hw;
|
|
struct drm_property_blob *pre_csc_lut;
|
|
struct drm_property_blob *post_csc_lut;
|
|
unsigned long quirks;
|
|
unsigned int fb_bits;
|
|
bool update_pipe;
|
|
bool disable_cxsr;
|
|
bool update_wm_pre;
|
|
bool update_wm_post;
|
|
bool fifo_changed;
|
|
bool preload_luts;
|
|
bool inherited;
|
|
bool do_async_flip;
|
|
struct drm_rect pipe_src;
|
|
unsigned int pixel_rate;
|
|
bool has_pch_encoder;
|
|
bool has_infoframe;
|
|
enum transcoder cpu_transcoder;
|
|
bool limited_color_range;
|
|
unsigned int output_types;
|
|
bool has_hdmi_sink;
|
|
bool has_audio;
|
|
bool dither;
|
|
bool dither_force_disable;
|
|
bool clock_set;
|
|
bool sdvo_tv_clock;
|
|
bool bw_constrained;
|
|
struct dpll dpll;
|
|
struct intel_shared_dpll *shared_dpll;
|
|
union {
|
|
struct intel_dpll_hw_state dpll_hw_state;
|
|
struct intel_mpllb_state mpllb_state;
|
|
};
|
|
struct icl_port_dpll icl_port_dplls[2];
|
|
struct {
|
|
u32 ctrl;
|
|
u32 div;
|
|
} dsi_pll;
|
|
int pipe_bpp;
|
|
struct intel_link_m_n dp_m_n;
|
|
struct intel_link_m_n dp_m2_n2;
|
|
bool has_drrs;
|
|
bool seamless_m_n;
|
|
bool has_psr;
|
|
bool has_psr2;
|
|
bool enable_psr2_sel_fetch;
|
|
bool req_psr2_sdp_prior_scanline;
|
|
u32 dc3co_exitline;
|
|
u16 su_y_granularity;
|
|
struct drm_dp_vsc_sdp psr_vsc;
|
|
int port_clock;
|
|
unsigned int pixel_multiplier;
|
|
u8 mode_flags;
|
|
u8 lane_count;
|
|
u8 lane_lat_optim_mask;
|
|
u8 min_voltage_level;
|
|
struct {
|
|
u32 control;
|
|
u32 pgm_ratios;
|
|
u32 lvds_border_bits;
|
|
} gmch_pfit;
|
|
struct {
|
|
struct drm_rect dst;
|
|
bool enabled;
|
|
bool force_thru;
|
|
} pch_pfit;
|
|
int fdi_lanes;
|
|
struct intel_link_m_n fdi_m_n;
|
|
bool ips_enabled;
|
|
bool crc_enabled;
|
|
bool double_wide;
|
|
int pbn;
|
|
struct intel_crtc_scaler_state scaler_state;
|
|
enum pipe hsw_workaround_pipe;
|
|
bool disable_lp_wm;
|
|
struct intel_crtc_wm_state wm;
|
|
int min_cdclk[8];
|
|
u32 data_rate[8];
|
|
u32 data_rate_y[8];
|
|
u64 rel_data_rate[8];
|
|
u64 rel_data_rate_y[8];
|
|
u32 gamma_mode;
|
|
union {
|
|
u32 csc_mode;
|
|
u32 cgm_mode;
|
|
};
|
|
u8 enabled_planes;
|
|
u8 active_planes;
|
|
u8 scaled_planes;
|
|
u8 nv12_planes;
|
|
u8 c8_planes;
|
|
u8 update_planes;
|
|
u8 framestart_delay;
|
|
u8 msa_timing_delay;
|
|
struct {
|
|
u32 enable;
|
|
u32 gcp;
|
|
union hdmi_infoframe avi;
|
|
union hdmi_infoframe spd;
|
|
union hdmi_infoframe hdmi;
|
|
union hdmi_infoframe drm;
|
|
struct drm_dp_vsc_sdp vsc;
|
|
} infoframes;
|
|
u8 eld[128];
|
|
bool hdmi_scrambling;
|
|
bool hdmi_high_tmds_clock_ratio;
|
|
enum intel_output_format output_format;
|
|
bool gamma_enable;
|
|
bool csc_enable;
|
|
u8 bigjoiner_pipes;
|
|
struct {
|
|
bool compression_enable;
|
|
bool dsc_split;
|
|
u16 compressed_bpp;
|
|
u8 slice_count;
|
|
struct drm_dsc_config config;
|
|
} dsc;
|
|
u16 linetime;
|
|
u16 ips_linetime;
|
|
bool fec_enable;
|
|
bool sdp_split_enable;
|
|
enum transcoder master_transcoder;
|
|
u8 sync_mode_slaves_mask;
|
|
enum transcoder mst_master_transcoder;
|
|
struct intel_dsb *dsb;
|
|
u32 psr2_man_track_ctl;
|
|
struct {
|
|
bool enable;
|
|
u8 pipeline_full;
|
|
u16 flipline;
|
|
u16 vmin;
|
|
u16 vmax;
|
|
u16 guardband;
|
|
} vrr;
|
|
struct {
|
|
bool enable;
|
|
u8 link_count;
|
|
u8 pixel_overlap;
|
|
} splitter;
|
|
struct drm_vblank_work vblank_work;
|
|
};
|
|
|
|
struct intel_framebuffer;
|
|
|
|
struct intel_initial_plane_config {
|
|
struct intel_framebuffer *fb;
|
|
struct i915_vma___2 *vma;
|
|
unsigned int tiling;
|
|
int size;
|
|
u32 base;
|
|
u8 rotation;
|
|
};
|
|
|
|
struct i915_color_plane_view {
|
|
u32 offset;
|
|
unsigned int x;
|
|
unsigned int y;
|
|
unsigned int mapping_stride;
|
|
unsigned int scanout_stride;
|
|
};
|
|
|
|
struct intel_fb_view {
|
|
struct i915_gtt_view gtt;
|
|
struct i915_color_plane_view color_plane[4];
|
|
};
|
|
|
|
struct intel_framebuffer {
|
|
struct drm_framebuffer base;
|
|
struct intel_frontbuffer___2 *frontbuffer;
|
|
struct intel_fb_view normal_view;
|
|
union {
|
|
struct intel_fb_view rotated_view;
|
|
struct intel_fb_view remapped_view;
|
|
};
|
|
struct i915_address_space___2 *dpt_vm;
|
|
};
|
|
|
|
struct intel_frontbuffer___2 {
|
|
struct kref ref;
|
|
atomic_t bits;
|
|
struct i915_active write;
|
|
struct drm_i915_gem_object___2 *obj;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_vm_pt_stash___2;
|
|
|
|
struct i915_vma_ops___2 {
|
|
void (*bind_vma)(struct i915_address_space___2 *, struct i915_vm_pt_stash___2 *, struct i915_vma_resource___2 *, enum i915_cache_level, u32);
|
|
void (*unbind_vma)(struct i915_address_space___2 *, struct i915_vma_resource___2 *);
|
|
};
|
|
|
|
struct i915_page_table___2;
|
|
|
|
struct i915_address_space___2 {
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct drm_mm mm;
|
|
struct intel_gt___2 *gt;
|
|
struct drm_i915_private *i915;
|
|
struct device *dma;
|
|
u64 total;
|
|
u64 reserved;
|
|
u64 min_alignment[4];
|
|
unsigned int bind_async_flags;
|
|
struct mutex mutex;
|
|
struct kref resv_ref;
|
|
struct dma_resv _resv;
|
|
struct drm_i915_gem_object___2 *scratch[4];
|
|
struct list_head bound_list;
|
|
struct list_head unbound_list;
|
|
bool is_ggtt: 1;
|
|
bool is_dpt: 1;
|
|
bool has_read_only: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u8 top;
|
|
u8 pd_shift;
|
|
u8 scratch_order;
|
|
unsigned long lmem_pt_obj_flags;
|
|
struct rb_root_cached pending_unbind;
|
|
struct drm_i915_gem_object___2 * (*alloc_pt_dma)(struct i915_address_space___2 *, int);
|
|
struct drm_i915_gem_object___2 * (*alloc_scratch_dma)(struct i915_address_space___2 *, int);
|
|
u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32);
|
|
void (*allocate_va_range)(struct i915_address_space___2 *, struct i915_vm_pt_stash___2 *, u64, u64);
|
|
void (*clear_range)(struct i915_address_space___2 *, u64, u64);
|
|
void (*insert_page)(struct i915_address_space___2 *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*insert_entries)(struct i915_address_space___2 *, struct i915_vma_resource___2 *, enum i915_cache_level, u32);
|
|
void (*raw_insert_page)(struct i915_address_space___2 *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*raw_insert_entries)(struct i915_address_space___2 *, struct i915_vma_resource___2 *, enum i915_cache_level, u32);
|
|
void (*cleanup)(struct i915_address_space___2 *);
|
|
void (*foreach)(struct i915_address_space___2 *, u64, u64, void (*)(struct i915_address_space___2 *, struct i915_page_table___2 *, void *), void *);
|
|
struct i915_vma_ops___2 vma_ops;
|
|
};
|
|
|
|
struct intel_uncore_fw_get___2 {
|
|
void (*force_wake_get)(struct intel_uncore___2 *, enum forcewake_domains);
|
|
};
|
|
|
|
struct intel_uncore_forcewake_domain___2 {
|
|
struct intel_uncore___2 *uncore;
|
|
enum forcewake_domain_id id;
|
|
enum forcewake_domains mask;
|
|
unsigned int wake_count;
|
|
bool active;
|
|
struct hrtimer timer;
|
|
u32 *reg_set;
|
|
u32 *reg_ack;
|
|
};
|
|
|
|
struct i915_ppgtt___2;
|
|
|
|
struct i915_fence_reg___2;
|
|
|
|
struct i915_ggtt___2 {
|
|
struct i915_address_space___2 vm;
|
|
struct io_mapping iomap;
|
|
struct resource gmadr;
|
|
resource_size_t mappable_end;
|
|
void *gsm;
|
|
void (*invalidate)(struct i915_ggtt___2 *);
|
|
struct i915_ppgtt___2 *alias;
|
|
bool do_idle_maps;
|
|
int mtrr;
|
|
u32 bit_6_swizzle_x;
|
|
u32 bit_6_swizzle_y;
|
|
u32 pin_bias;
|
|
unsigned int num_fences;
|
|
struct i915_fence_reg___2 *fence_regs;
|
|
struct list_head fence_list;
|
|
struct list_head userfault_list;
|
|
struct mutex error_mutex;
|
|
struct drm_mm_node error_capture;
|
|
struct drm_mm_node uc_fw;
|
|
struct list_head gt_list;
|
|
};
|
|
|
|
struct i915_page_directory___2;
|
|
|
|
struct i915_ppgtt___2 {
|
|
struct i915_address_space___2 vm;
|
|
struct i915_page_directory___2 *pd;
|
|
};
|
|
|
|
struct i915_page_table___2 {
|
|
struct drm_i915_gem_object___2 *base;
|
|
union {
|
|
atomic_t used;
|
|
struct i915_page_table___2 *stash;
|
|
};
|
|
bool is_compact;
|
|
};
|
|
|
|
struct i915_page_directory___2 {
|
|
struct i915_page_table___2 pt;
|
|
spinlock_t lock;
|
|
void **entry;
|
|
};
|
|
|
|
struct i915_fence_reg___2 {
|
|
struct list_head link;
|
|
struct i915_ggtt___2 *ggtt;
|
|
struct i915_vma___2 *vma;
|
|
atomic_t pin_count;
|
|
struct i915_active active;
|
|
int id;
|
|
bool dirty;
|
|
u32 start;
|
|
u32 size;
|
|
u32 tiling;
|
|
u32 stride;
|
|
};
|
|
|
|
struct i915_mmap_offset___2;
|
|
|
|
struct i915_vma___2 {
|
|
struct drm_mm_node node;
|
|
struct i915_address_space___2 *vm;
|
|
const struct i915_vma_ops___2 *ops;
|
|
struct drm_i915_gem_object___2 *obj;
|
|
struct sg_table *pages;
|
|
void *iomap;
|
|
void *private;
|
|
struct i915_fence_reg___2 *fence;
|
|
u64 size;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_mmap_offset___2 *mmo;
|
|
u32 guard;
|
|
u32 fence_size;
|
|
u32 fence_alignment;
|
|
u32 display_alignment;
|
|
atomic_t open_count;
|
|
atomic_t flags;
|
|
struct i915_active active;
|
|
atomic_t pages_count;
|
|
bool vm_ddestroy;
|
|
struct i915_gtt_view gtt_view;
|
|
struct list_head vm_link;
|
|
struct list_head obj_link;
|
|
struct rb_node obj_node;
|
|
struct hlist_node obj_hash;
|
|
struct list_head evict_link;
|
|
struct list_head closed_link;
|
|
struct i915_vma_resource___2 *resource;
|
|
};
|
|
|
|
struct i915_vm_pt_stash___2 {
|
|
struct i915_page_table___2 *pt[2];
|
|
int pt_sz;
|
|
};
|
|
|
|
struct i915_mmap_offset___2 {
|
|
struct drm_vma_offset_node vma_node;
|
|
struct drm_i915_gem_object___2 *obj;
|
|
enum i915_mmap_type mmap_type;
|
|
struct rb_node offset;
|
|
};
|
|
|
|
struct intel_uc_ops___2 {
|
|
int (*sanitize)(struct intel_uc___2 *);
|
|
void (*init_fw)(struct intel_uc___2 *);
|
|
void (*fini_fw)(struct intel_uc___2 *);
|
|
int (*init)(struct intel_uc___2 *);
|
|
void (*fini)(struct intel_uc___2 *);
|
|
int (*init_hw)(struct intel_uc___2 *);
|
|
void (*fini_hw)(struct intel_uc___2 *);
|
|
};
|
|
|
|
struct i915_gem_context___2;
|
|
|
|
struct intel_timeline___2;
|
|
|
|
struct intel_context_ops___2;
|
|
|
|
struct intel_context___2 {
|
|
union {
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
struct intel_engine_cs___2 *engine;
|
|
struct intel_engine_cs___2 *inflight;
|
|
struct i915_address_space___2 *vm;
|
|
struct i915_gem_context___2 __attribute__((btf_type_tag("rcu"))) *gem_context;
|
|
struct list_head signal_link;
|
|
struct list_head signals;
|
|
spinlock_t signal_lock;
|
|
struct i915_vma___2 *state;
|
|
u32 ring_size;
|
|
struct intel_ring *ring;
|
|
struct intel_timeline___2 *timeline;
|
|
unsigned long flags;
|
|
struct {
|
|
u64 timeout_us;
|
|
} watchdog;
|
|
u32 *lrc_reg_state;
|
|
union {
|
|
struct {
|
|
u32 lrca;
|
|
u32 ccid;
|
|
};
|
|
u64 desc;
|
|
} lrc;
|
|
u32 tag;
|
|
struct intel_context_stats stats;
|
|
unsigned int active_count;
|
|
atomic_t pin_count;
|
|
struct mutex pin_mutex;
|
|
struct i915_active active;
|
|
const struct intel_context_ops___2 *ops;
|
|
struct intel_sseu sseu;
|
|
struct list_head pinned_contexts_link;
|
|
u8 wa_bb_page;
|
|
struct {
|
|
spinlock_t lock;
|
|
u32 sched_state;
|
|
struct list_head fences;
|
|
struct i915_sw_fence blocked;
|
|
struct list_head requests;
|
|
u8 prio;
|
|
u32 prio_count[4];
|
|
struct delayed_work sched_disable_delay_work;
|
|
} guc_state;
|
|
struct {
|
|
u16 id;
|
|
atomic_t ref;
|
|
struct list_head link;
|
|
} guc_id;
|
|
struct list_head destroyed_link;
|
|
struct {
|
|
union {
|
|
struct list_head child_list;
|
|
struct list_head child_link;
|
|
};
|
|
struct intel_context___2 *parent;
|
|
struct i915_request___2 *last_rq;
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
u8 number_children;
|
|
u8 child_index;
|
|
struct {
|
|
u16 wqi_head;
|
|
u16 wqi_tail;
|
|
u32 *wq_head;
|
|
u32 *wq_tail;
|
|
u32 *wq_status;
|
|
u8 parent_page;
|
|
} guc;
|
|
} parallel;
|
|
};
|
|
|
|
struct intel_hw_status_page___2 {
|
|
struct list_head timelines;
|
|
struct i915_vma___2 *vma;
|
|
u32 *addr;
|
|
};
|
|
|
|
struct i915_ctx_workarounds___2 {
|
|
struct i915_wa_ctx_bb indirect_ctx;
|
|
struct i915_wa_ctx_bb per_ctx;
|
|
struct i915_vma___2 *vma;
|
|
};
|
|
|
|
struct intel_engine_execlists___2 {
|
|
struct timer_list timer;
|
|
struct timer_list preempt;
|
|
const struct i915_request___2 *preempt_target;
|
|
u32 ccid;
|
|
u32 yield;
|
|
u32 error_interrupt;
|
|
u32 reset_ccid;
|
|
u32 *submit_reg;
|
|
u32 *ctrl_reg;
|
|
struct i915_request___2 * const *active;
|
|
struct i915_request___2 *inflight[3];
|
|
struct i915_request___2 *pending[3];
|
|
unsigned int port_mask;
|
|
struct rb_root_cached virtual;
|
|
u32 *csb_write;
|
|
u64 *csb_status;
|
|
u8 csb_size;
|
|
u8 csb_head;
|
|
};
|
|
|
|
struct intel_engine_cs___2 {
|
|
struct drm_i915_private *i915;
|
|
struct intel_gt___2 *gt;
|
|
struct intel_uncore___2 *uncore;
|
|
char name[8];
|
|
enum intel_engine_id id;
|
|
enum intel_engine_id legacy_idx;
|
|
unsigned int guc_id;
|
|
intel_engine_mask_t mask;
|
|
u32 reset_domain;
|
|
intel_engine_mask_t logical_mask;
|
|
u8 class;
|
|
u8 instance;
|
|
u16 uabi_class;
|
|
u16 uabi_instance;
|
|
u32 uabi_capabilities;
|
|
u32 context_size;
|
|
u32 mmio_base;
|
|
enum forcewake_domains fw_domain;
|
|
unsigned int fw_active;
|
|
unsigned long context_tag;
|
|
struct rb_node uabi_node;
|
|
struct intel_sseu sseu;
|
|
struct i915_sched_engine___2 *sched_engine;
|
|
struct i915_request___2 *request_pool;
|
|
struct intel_context___2 *hung_ce;
|
|
struct llist_head barrier_tasks;
|
|
struct intel_context___2 *kernel_context;
|
|
struct list_head pinned_contexts_list;
|
|
intel_engine_mask_t saturated;
|
|
struct {
|
|
struct delayed_work work;
|
|
struct i915_request___2 *systole;
|
|
unsigned long blocked;
|
|
} heartbeat;
|
|
unsigned long serial;
|
|
unsigned long wakeref_serial;
|
|
struct intel_wakeref wakeref;
|
|
struct file *default_state;
|
|
struct {
|
|
struct intel_ring *ring;
|
|
struct intel_timeline___2 *timeline;
|
|
} legacy;
|
|
struct ewma__engine_latency latency;
|
|
struct intel_breadcrumbs *breadcrumbs;
|
|
struct intel_engine_pmu pmu;
|
|
struct intel_hw_status_page___2 status_page;
|
|
struct i915_ctx_workarounds___2 wa_ctx;
|
|
struct i915_wa_list___2 ctx_wa_list;
|
|
struct i915_wa_list___2 wa_list;
|
|
struct i915_wa_list___2 whitelist;
|
|
u32 irq_keep_mask;
|
|
u32 irq_enable_mask;
|
|
void (*irq_enable)(struct intel_engine_cs___2 *);
|
|
void (*irq_disable)(struct intel_engine_cs___2 *);
|
|
void (*irq_handler)(struct intel_engine_cs___2 *, u16);
|
|
void (*sanitize)(struct intel_engine_cs___2 *);
|
|
int (*resume)(struct intel_engine_cs___2 *);
|
|
struct {
|
|
void (*prepare)(struct intel_engine_cs___2 *);
|
|
void (*rewind)(struct intel_engine_cs___2 *, bool);
|
|
void (*cancel)(struct intel_engine_cs___2 *);
|
|
void (*finish)(struct intel_engine_cs___2 *);
|
|
} reset;
|
|
void (*park)(struct intel_engine_cs___2 *);
|
|
void (*unpark)(struct intel_engine_cs___2 *);
|
|
void (*bump_serial)(struct intel_engine_cs___2 *);
|
|
void (*set_default_submission)(struct intel_engine_cs___2 *);
|
|
const struct intel_context_ops___2 *cops;
|
|
int (*request_alloc)(struct i915_request___2 *);
|
|
int (*emit_flush)(struct i915_request___2 *, u32);
|
|
int (*emit_bb_start)(struct i915_request___2 *, u64, u32, unsigned int);
|
|
int (*emit_init_breadcrumb)(struct i915_request___2 *);
|
|
u32 * (*emit_fini_breadcrumb)(struct i915_request___2 *, u32 *);
|
|
unsigned int emit_fini_breadcrumb_dw;
|
|
void (*submit_request)(struct i915_request___2 *);
|
|
void (*release)(struct intel_engine_cs___2 *);
|
|
void (*add_active_request)(struct i915_request___2 *);
|
|
void (*remove_active_request)(struct i915_request___2 *);
|
|
ktime_t (*busyness)(struct intel_engine_cs___2 *, ktime_t *);
|
|
struct intel_engine_execlists___2 execlists;
|
|
struct intel_timeline___2 *retire;
|
|
struct work_struct retire_work;
|
|
struct atomic_notifier_head context_status_notifier;
|
|
unsigned int flags;
|
|
struct hlist_head cmd_hash[512];
|
|
const struct drm_i915_reg_table *reg_tables;
|
|
int reg_table_count;
|
|
u32 (*get_cmd_length_mask)(u32);
|
|
struct {
|
|
union {
|
|
struct intel_engine_execlists_stats execlists;
|
|
struct intel_engine_guc_stats guc;
|
|
};
|
|
ktime_t rps;
|
|
} stats;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} props;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} defaults;
|
|
};
|
|
|
|
struct i915_sched_engine___2 {
|
|
struct kref ref;
|
|
spinlock_t lock;
|
|
struct list_head requests;
|
|
struct list_head hold;
|
|
struct tasklet_struct tasklet;
|
|
struct i915_priolist default_priolist;
|
|
int queue_priority_hint;
|
|
struct rb_root_cached queue;
|
|
bool no_priolist;
|
|
void *private_data;
|
|
void (*destroy)(struct kref *);
|
|
bool (*disabled)(struct i915_sched_engine___2 *);
|
|
void (*kick_backend)(const struct i915_request___2 *, int);
|
|
void (*bump_inflight_request_prio)(struct i915_request___2 *, int);
|
|
void (*retire_inflight_request_prio)(struct i915_request___2 *);
|
|
void (*schedule)(struct i915_request___2 *, const struct i915_sched_attr *);
|
|
};
|
|
|
|
struct i915_capture_list___2;
|
|
|
|
struct i915_request___2 {
|
|
struct dma_fence fence;
|
|
spinlock_t lock;
|
|
struct drm_i915_private *i915;
|
|
struct intel_engine_cs___2 *engine;
|
|
struct intel_context___2 *context;
|
|
struct intel_ring *ring;
|
|
struct intel_timeline___2 __attribute__((btf_type_tag("rcu"))) *timeline;
|
|
struct list_head signal_link;
|
|
struct llist_node signal_node;
|
|
unsigned long rcustate;
|
|
struct pin_cookie cookie;
|
|
struct i915_sw_fence submit;
|
|
union {
|
|
wait_queue_entry_t submitq;
|
|
struct i915_sw_dma_fence_cb dmaq;
|
|
struct i915_request_duration_cb duration;
|
|
};
|
|
struct llist_head execute_cb;
|
|
struct i915_sw_fence semaphore;
|
|
struct irq_work submit_work;
|
|
struct i915_sched_node sched;
|
|
struct i915_dependency dep;
|
|
intel_engine_mask_t execution_mask;
|
|
const u32 *hwsp_seqno;
|
|
u32 head;
|
|
u32 infix;
|
|
u32 postfix;
|
|
u32 tail;
|
|
u32 wa_tail;
|
|
u32 reserved_space;
|
|
struct i915_vma_resource___2 *batch_res;
|
|
struct i915_capture_list___2 *capture_list;
|
|
unsigned long emitted_jiffies;
|
|
struct list_head link;
|
|
struct i915_request_watchdog watchdog;
|
|
struct list_head guc_fence_link;
|
|
u8 guc_prio;
|
|
wait_queue_entry_t hucq;
|
|
};
|
|
|
|
struct intel_timeline___2 {
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
struct mutex mutex;
|
|
atomic_t pin_count;
|
|
atomic_t active_count;
|
|
void *hwsp_map;
|
|
const u32 *hwsp_seqno;
|
|
struct i915_vma___2 *hwsp_ggtt;
|
|
u32 hwsp_offset;
|
|
bool has_initial_breadcrumb;
|
|
struct list_head requests;
|
|
struct i915_active_fence last_request;
|
|
struct i915_active active;
|
|
struct intel_timeline___2 *retire;
|
|
struct i915_syncmap *sync;
|
|
struct list_head link;
|
|
struct intel_gt___2 *gt;
|
|
struct list_head engine_link;
|
|
struct kref kref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_capture_list___2 {
|
|
struct i915_vma_resource___2 *vma_res;
|
|
struct i915_capture_list___2 *next;
|
|
};
|
|
|
|
struct i915_gem_ww_ctx___2;
|
|
|
|
struct intel_context_ops___2 {
|
|
unsigned long flags;
|
|
int (*alloc)(struct intel_context___2 *);
|
|
void (*revoke)(struct intel_context___2 *, struct i915_request___2 *, unsigned int);
|
|
void (*close)(struct intel_context___2 *);
|
|
int (*pre_pin)(struct intel_context___2 *, struct i915_gem_ww_ctx___2 *, void **);
|
|
int (*pin)(struct intel_context___2 *, void *);
|
|
void (*unpin)(struct intel_context___2 *);
|
|
void (*post_unpin)(struct intel_context___2 *);
|
|
void (*cancel_request)(struct intel_context___2 *, struct i915_request___2 *);
|
|
void (*enter)(struct intel_context___2 *);
|
|
void (*exit)(struct intel_context___2 *);
|
|
void (*sched_disable)(struct intel_context___2 *);
|
|
void (*reset)(struct intel_context___2 *);
|
|
void (*destroy)(struct kref *);
|
|
struct intel_context___2 * (*create_virtual)(struct intel_engine_cs___2 **, unsigned int, unsigned long);
|
|
struct intel_context___2 * (*create_parallel)(struct intel_engine_cs___2 **, unsigned int, unsigned int);
|
|
struct intel_engine_cs___2 * (*get_sibling)(struct intel_engine_cs___2 *, unsigned int);
|
|
};
|
|
|
|
struct i915_gem_ww_ctx___2 {
|
|
struct ww_acquire_ctx ctx;
|
|
struct list_head obj_list;
|
|
struct drm_i915_gem_object___2 *contended;
|
|
bool intr;
|
|
};
|
|
|
|
struct i915_gem_engines___2;
|
|
|
|
struct i915_drm_client___2;
|
|
|
|
struct i915_gem_context___2 {
|
|
struct drm_i915_private *i915;
|
|
struct drm_i915_file_private *file_priv;
|
|
struct i915_gem_engines___2 __attribute__((btf_type_tag("rcu"))) *engines;
|
|
struct mutex engines_mutex;
|
|
struct drm_syncobj *syncobj;
|
|
struct i915_address_space___2 *vm;
|
|
struct pid *pid;
|
|
struct list_head link;
|
|
struct i915_drm_client___2 *client;
|
|
struct list_head client_link;
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct callback_head rcu;
|
|
unsigned long user_flags;
|
|
unsigned long flags;
|
|
bool uses_protected_content;
|
|
intel_wakeref_t pxp_wakeref;
|
|
struct mutex mutex;
|
|
struct i915_sched_attr sched;
|
|
atomic_t guilty_count;
|
|
atomic_t active_count;
|
|
unsigned long hang_timestamp[2];
|
|
u8 remap_slice;
|
|
struct xarray handles_vma;
|
|
struct mutex lut_mutex;
|
|
char name[24];
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head engines;
|
|
} stale;
|
|
};
|
|
|
|
struct i915_gem_engines___2 {
|
|
union {
|
|
struct list_head link;
|
|
struct callback_head rcu;
|
|
};
|
|
struct i915_sw_fence fence;
|
|
struct i915_gem_context___2 *ctx;
|
|
unsigned int num_engines;
|
|
struct intel_context___2 *engines[0];
|
|
};
|
|
|
|
struct i915_drm_client___2 {
|
|
struct kref kref;
|
|
unsigned int id;
|
|
spinlock_t ctx_lock;
|
|
struct list_head ctx_list;
|
|
struct i915_drm_clients___2 *clients;
|
|
atomic64_t past_runtime[5];
|
|
};
|
|
|
|
struct i915_perf_stream_ops___2;
|
|
|
|
struct i915_oa_config___2;
|
|
|
|
struct i915_perf_stream___2 {
|
|
struct i915_perf___2 *perf;
|
|
struct intel_uncore___2 *uncore;
|
|
struct intel_engine_cs___2 *engine;
|
|
struct mutex lock;
|
|
u32 sample_flags;
|
|
int sample_size;
|
|
struct i915_gem_context___2 *ctx;
|
|
bool enabled;
|
|
bool hold_preemption;
|
|
const struct i915_perf_stream_ops___2 *ops;
|
|
struct i915_oa_config___2 *oa_config;
|
|
struct llist_head oa_config_bos;
|
|
struct intel_context___2 *pinned_ctx;
|
|
u32 specific_ctx_id;
|
|
u32 specific_ctx_id_mask;
|
|
struct hrtimer poll_check_timer;
|
|
wait_queue_head_t poll_wq;
|
|
bool pollin;
|
|
bool periodic;
|
|
int period_exponent;
|
|
struct {
|
|
const struct i915_oa_format *format;
|
|
struct i915_vma___2 *vma;
|
|
u8 *vaddr;
|
|
u32 last_ctx_id;
|
|
int size_exponent;
|
|
spinlock_t ptr_lock;
|
|
u32 aging_tail;
|
|
u64 aging_timestamp;
|
|
u32 head;
|
|
u32 tail;
|
|
} oa_buffer;
|
|
struct i915_vma___2 *noa_wait;
|
|
u64 poll_oa_period;
|
|
};
|
|
|
|
struct i915_perf_stream_ops___2 {
|
|
void (*enable)(struct i915_perf_stream___2 *);
|
|
void (*disable)(struct i915_perf_stream___2 *);
|
|
void (*poll_wait)(struct i915_perf_stream___2 *, struct file *, poll_table *);
|
|
int (*wait_unlocked)(struct i915_perf_stream___2 *);
|
|
int (*read)(struct i915_perf_stream___2 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
void (*destroy)(struct i915_perf_stream___2 *);
|
|
};
|
|
|
|
struct i915_oa_config___2 {
|
|
struct i915_perf___2 *perf;
|
|
char uuid[37];
|
|
int id;
|
|
const struct i915_oa_reg *mux_regs;
|
|
u32 mux_regs_len;
|
|
const struct i915_oa_reg *b_counter_regs;
|
|
u32 b_counter_regs_len;
|
|
const struct i915_oa_reg *flex_regs;
|
|
u32 flex_regs_len;
|
|
struct attribute_group sysfs_metric;
|
|
struct attribute *attrs[2];
|
|
struct kobj_attribute sysfs_metric_id;
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct intel_wm_funcs___2 {
|
|
void (*update_wm)(struct drm_i915_private *);
|
|
int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_global_watermarks)(struct intel_atomic_state *);
|
|
};
|
|
|
|
struct i915_hdcp_component_ops;
|
|
|
|
struct i915_hdcp_comp_master {
|
|
struct device *mei_dev;
|
|
const struct i915_hdcp_component_ops *ops;
|
|
struct mutex mutex;
|
|
};
|
|
|
|
struct hdcp_port_data;
|
|
|
|
struct hdcp2_ake_init;
|
|
|
|
struct hdcp2_ake_send_cert;
|
|
|
|
struct hdcp2_ake_no_stored_km;
|
|
|
|
struct hdcp2_ake_send_hprime;
|
|
|
|
struct hdcp2_ake_send_pairing_info;
|
|
|
|
struct hdcp2_lc_init;
|
|
|
|
struct hdcp2_lc_send_lprime;
|
|
|
|
struct hdcp2_ske_send_eks;
|
|
|
|
struct hdcp2_rep_send_receiverid_list;
|
|
|
|
struct hdcp2_rep_send_ack;
|
|
|
|
struct hdcp2_rep_stream_ready;
|
|
|
|
struct i915_hdcp_component_ops {
|
|
struct module *owner;
|
|
int (*initiate_hdcp2_session)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_init *);
|
|
int (*verify_receiver_cert_prepare_km)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_send_cert *, bool *, struct hdcp2_ake_no_stored_km *, size_t *);
|
|
int (*verify_hprime)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_send_hprime *);
|
|
int (*store_pairing_info)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_send_pairing_info *);
|
|
int (*initiate_locality_check)(struct device *, struct hdcp_port_data *, struct hdcp2_lc_init *);
|
|
int (*verify_lprime)(struct device *, struct hdcp_port_data *, struct hdcp2_lc_send_lprime *);
|
|
int (*get_session_key)(struct device *, struct hdcp_port_data *, struct hdcp2_ske_send_eks *);
|
|
int (*repeater_check_flow_prepare_ack)(struct device *, struct hdcp_port_data *, struct hdcp2_rep_send_receiverid_list *, struct hdcp2_rep_send_ack *);
|
|
int (*verify_mprime)(struct device *, struct hdcp_port_data *, struct hdcp2_rep_stream_ready *);
|
|
int (*enable_hdcp_authentication)(struct device *, struct hdcp_port_data *);
|
|
int (*close_hdcp_session)(struct device *, struct hdcp_port_data *);
|
|
};
|
|
|
|
enum mei_fw_ddi {
|
|
MEI_DDI_INVALID_PORT = 0,
|
|
MEI_DDI_B = 1,
|
|
MEI_DDI_C = 2,
|
|
MEI_DDI_D = 3,
|
|
MEI_DDI_E = 4,
|
|
MEI_DDI_F = 5,
|
|
MEI_DDI_A = 7,
|
|
MEI_DDI_RANGE_END = 7,
|
|
};
|
|
|
|
enum mei_fw_tc {
|
|
MEI_INVALID_TRANSCODER = 0,
|
|
MEI_TRANSCODER_EDP = 1,
|
|
MEI_TRANSCODER_DSI0 = 2,
|
|
MEI_TRANSCODER_DSI1 = 3,
|
|
MEI_TRANSCODER_A = 16,
|
|
MEI_TRANSCODER_B = 17,
|
|
MEI_TRANSCODER_C = 18,
|
|
MEI_TRANSCODER_D = 19,
|
|
};
|
|
|
|
struct hdcp2_streamid_type;
|
|
|
|
struct hdcp_port_data {
|
|
enum mei_fw_ddi fw_ddi;
|
|
enum mei_fw_tc fw_tc;
|
|
u8 port_type;
|
|
u8 protocol;
|
|
u16 k;
|
|
u32 seq_num_m;
|
|
struct hdcp2_streamid_type *streams;
|
|
};
|
|
|
|
struct hdcp2_streamid_type {
|
|
u8 stream_id;
|
|
u8 stream_type;
|
|
};
|
|
|
|
struct hdcp2_tx_caps {
|
|
u8 version;
|
|
u8 tx_cap_mask[2];
|
|
};
|
|
|
|
struct hdcp2_ake_init {
|
|
u8 msg_id;
|
|
u8 r_tx[8];
|
|
struct hdcp2_tx_caps tx_caps;
|
|
};
|
|
|
|
struct hdcp2_cert_rx {
|
|
u8 receiver_id[5];
|
|
u8 kpub_rx[131];
|
|
u8 reserved[2];
|
|
u8 dcp_signature[384];
|
|
};
|
|
|
|
struct hdcp2_ake_send_cert {
|
|
u8 msg_id;
|
|
struct hdcp2_cert_rx cert_rx;
|
|
u8 r_rx[8];
|
|
u8 rx_caps[3];
|
|
};
|
|
|
|
struct hdcp2_ake_no_stored_km {
|
|
u8 msg_id;
|
|
u8 e_kpub_km[128];
|
|
};
|
|
|
|
struct hdcp2_ake_send_hprime {
|
|
u8 msg_id;
|
|
u8 h_prime[32];
|
|
};
|
|
|
|
struct hdcp2_ake_send_pairing_info {
|
|
u8 msg_id;
|
|
u8 e_kh_km[16];
|
|
};
|
|
|
|
struct hdcp2_lc_init {
|
|
u8 msg_id;
|
|
u8 r_n[8];
|
|
};
|
|
|
|
struct hdcp2_lc_send_lprime {
|
|
u8 msg_id;
|
|
u8 l_prime[32];
|
|
};
|
|
|
|
struct hdcp2_ske_send_eks {
|
|
u8 msg_id;
|
|
u8 e_dkey_ks[16];
|
|
u8 riv[8];
|
|
};
|
|
|
|
struct hdcp2_rep_send_receiverid_list {
|
|
u8 msg_id;
|
|
u8 rx_info[2];
|
|
u8 seq_num_v[3];
|
|
u8 v_prime[16];
|
|
u8 receiver_ids[155];
|
|
};
|
|
|
|
struct hdcp2_rep_send_ack {
|
|
u8 msg_id;
|
|
u8 v[16];
|
|
};
|
|
|
|
struct hdcp2_rep_stream_ready {
|
|
u8 msg_id;
|
|
u8 m_prime[32];
|
|
};
|
|
|
|
enum intel_output_type {
|
|
INTEL_OUTPUT_UNUSED = 0,
|
|
INTEL_OUTPUT_ANALOG = 1,
|
|
INTEL_OUTPUT_DVO = 2,
|
|
INTEL_OUTPUT_SDVO = 3,
|
|
INTEL_OUTPUT_LVDS = 4,
|
|
INTEL_OUTPUT_TVOUT = 5,
|
|
INTEL_OUTPUT_HDMI = 6,
|
|
INTEL_OUTPUT_DP = 7,
|
|
INTEL_OUTPUT_EDP = 8,
|
|
INTEL_OUTPUT_DSI = 9,
|
|
INTEL_OUTPUT_DDI = 10,
|
|
INTEL_OUTPUT_DP_MST = 11,
|
|
};
|
|
|
|
enum port {
|
|
PORT_NONE = -1,
|
|
PORT_A = 0,
|
|
PORT_B = 1,
|
|
PORT_C = 2,
|
|
PORT_D = 3,
|
|
PORT_E = 4,
|
|
PORT_F = 5,
|
|
PORT_G = 6,
|
|
PORT_H = 7,
|
|
PORT_I = 8,
|
|
PORT_TC1 = 3,
|
|
PORT_TC2 = 4,
|
|
PORT_TC3 = 5,
|
|
PORT_TC4 = 6,
|
|
PORT_TC5 = 7,
|
|
PORT_TC6 = 8,
|
|
PORT_D_XELPD = 7,
|
|
PORT_E_XELPD = 8,
|
|
I915_MAX_PORTS = 9,
|
|
};
|
|
|
|
enum intel_hotplug_state {
|
|
INTEL_HOTPLUG_UNCHANGED = 0,
|
|
INTEL_HOTPLUG_CHANGED = 1,
|
|
INTEL_HOTPLUG_RETRY = 2,
|
|
};
|
|
|
|
enum hpd_pin {
|
|
HPD_NONE = 0,
|
|
HPD_TV = 0,
|
|
HPD_CRT = 1,
|
|
HPD_SDVO_B = 2,
|
|
HPD_SDVO_C = 3,
|
|
HPD_PORT_A = 4,
|
|
HPD_PORT_B = 5,
|
|
HPD_PORT_C = 6,
|
|
HPD_PORT_D = 7,
|
|
HPD_PORT_E = 8,
|
|
HPD_PORT_TC1 = 9,
|
|
HPD_PORT_TC2 = 10,
|
|
HPD_PORT_TC3 = 11,
|
|
HPD_PORT_TC4 = 12,
|
|
HPD_PORT_TC5 = 13,
|
|
HPD_PORT_TC6 = 14,
|
|
HPD_NUM_PINS = 15,
|
|
};
|
|
|
|
enum intel_display_power_domain {
|
|
POWER_DOMAIN_DISPLAY_CORE = 0,
|
|
POWER_DOMAIN_PIPE_A = 1,
|
|
POWER_DOMAIN_PIPE_B = 2,
|
|
POWER_DOMAIN_PIPE_C = 3,
|
|
POWER_DOMAIN_PIPE_D = 4,
|
|
POWER_DOMAIN_PIPE_PANEL_FITTER_A = 5,
|
|
POWER_DOMAIN_PIPE_PANEL_FITTER_B = 6,
|
|
POWER_DOMAIN_PIPE_PANEL_FITTER_C = 7,
|
|
POWER_DOMAIN_PIPE_PANEL_FITTER_D = 8,
|
|
POWER_DOMAIN_TRANSCODER_A = 9,
|
|
POWER_DOMAIN_TRANSCODER_B = 10,
|
|
POWER_DOMAIN_TRANSCODER_C = 11,
|
|
POWER_DOMAIN_TRANSCODER_D = 12,
|
|
POWER_DOMAIN_TRANSCODER_EDP = 13,
|
|
POWER_DOMAIN_TRANSCODER_DSI_A = 14,
|
|
POWER_DOMAIN_TRANSCODER_DSI_C = 15,
|
|
POWER_DOMAIN_TRANSCODER_VDSC_PW2 = 16,
|
|
POWER_DOMAIN_PORT_DDI_LANES_A = 17,
|
|
POWER_DOMAIN_PORT_DDI_LANES_B = 18,
|
|
POWER_DOMAIN_PORT_DDI_LANES_C = 19,
|
|
POWER_DOMAIN_PORT_DDI_LANES_D = 20,
|
|
POWER_DOMAIN_PORT_DDI_LANES_E = 21,
|
|
POWER_DOMAIN_PORT_DDI_LANES_F = 22,
|
|
POWER_DOMAIN_PORT_DDI_LANES_TC1 = 23,
|
|
POWER_DOMAIN_PORT_DDI_LANES_TC2 = 24,
|
|
POWER_DOMAIN_PORT_DDI_LANES_TC3 = 25,
|
|
POWER_DOMAIN_PORT_DDI_LANES_TC4 = 26,
|
|
POWER_DOMAIN_PORT_DDI_LANES_TC5 = 27,
|
|
POWER_DOMAIN_PORT_DDI_LANES_TC6 = 28,
|
|
POWER_DOMAIN_PORT_DDI_IO_A = 29,
|
|
POWER_DOMAIN_PORT_DDI_IO_B = 30,
|
|
POWER_DOMAIN_PORT_DDI_IO_C = 31,
|
|
POWER_DOMAIN_PORT_DDI_IO_D = 32,
|
|
POWER_DOMAIN_PORT_DDI_IO_E = 33,
|
|
POWER_DOMAIN_PORT_DDI_IO_F = 34,
|
|
POWER_DOMAIN_PORT_DDI_IO_TC1 = 35,
|
|
POWER_DOMAIN_PORT_DDI_IO_TC2 = 36,
|
|
POWER_DOMAIN_PORT_DDI_IO_TC3 = 37,
|
|
POWER_DOMAIN_PORT_DDI_IO_TC4 = 38,
|
|
POWER_DOMAIN_PORT_DDI_IO_TC5 = 39,
|
|
POWER_DOMAIN_PORT_DDI_IO_TC6 = 40,
|
|
POWER_DOMAIN_PORT_DSI = 41,
|
|
POWER_DOMAIN_PORT_CRT = 42,
|
|
POWER_DOMAIN_PORT_OTHER = 43,
|
|
POWER_DOMAIN_VGA = 44,
|
|
POWER_DOMAIN_AUDIO_MMIO = 45,
|
|
POWER_DOMAIN_AUDIO_PLAYBACK = 46,
|
|
POWER_DOMAIN_AUX_IO_A = 47,
|
|
POWER_DOMAIN_AUX_IO_B = 48,
|
|
POWER_DOMAIN_AUX_IO_C = 49,
|
|
POWER_DOMAIN_AUX_IO_D = 50,
|
|
POWER_DOMAIN_AUX_IO_E = 51,
|
|
POWER_DOMAIN_AUX_IO_F = 52,
|
|
POWER_DOMAIN_AUX_A = 53,
|
|
POWER_DOMAIN_AUX_B = 54,
|
|
POWER_DOMAIN_AUX_C = 55,
|
|
POWER_DOMAIN_AUX_D = 56,
|
|
POWER_DOMAIN_AUX_E = 57,
|
|
POWER_DOMAIN_AUX_F = 58,
|
|
POWER_DOMAIN_AUX_USBC1 = 59,
|
|
POWER_DOMAIN_AUX_USBC2 = 60,
|
|
POWER_DOMAIN_AUX_USBC3 = 61,
|
|
POWER_DOMAIN_AUX_USBC4 = 62,
|
|
POWER_DOMAIN_AUX_USBC5 = 63,
|
|
POWER_DOMAIN_AUX_USBC6 = 64,
|
|
POWER_DOMAIN_AUX_TBT1 = 65,
|
|
POWER_DOMAIN_AUX_TBT2 = 66,
|
|
POWER_DOMAIN_AUX_TBT3 = 67,
|
|
POWER_DOMAIN_AUX_TBT4 = 68,
|
|
POWER_DOMAIN_AUX_TBT5 = 69,
|
|
POWER_DOMAIN_AUX_TBT6 = 70,
|
|
POWER_DOMAIN_GMBUS = 71,
|
|
POWER_DOMAIN_MODESET = 72,
|
|
POWER_DOMAIN_GT_IRQ = 73,
|
|
POWER_DOMAIN_DC_OFF = 74,
|
|
POWER_DOMAIN_TC_COLD_OFF = 75,
|
|
POWER_DOMAIN_INIT = 76,
|
|
POWER_DOMAIN_NUM = 77,
|
|
POWER_DOMAIN_INVALID = 77,
|
|
};
|
|
|
|
struct intel_connector;
|
|
|
|
struct intel_ddi_buf_trans;
|
|
|
|
struct intel_encoder {
|
|
struct drm_encoder base;
|
|
enum intel_output_type type;
|
|
enum port port;
|
|
u16 cloneable;
|
|
u8 pipe_mask;
|
|
enum intel_hotplug_state (*hotplug)(struct intel_encoder *, struct intel_connector *);
|
|
enum intel_output_type (*compute_output_type)(struct intel_encoder *, struct intel_crtc_state *, struct drm_connector_state *);
|
|
int (*compute_config)(struct intel_encoder *, struct intel_crtc_state *, struct drm_connector_state *);
|
|
int (*compute_config_late)(struct intel_encoder *, struct intel_crtc_state *, struct drm_connector_state *);
|
|
void (*update_prepare)(struct intel_atomic_state *, struct intel_encoder *, struct intel_crtc *);
|
|
void (*pre_pll_enable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*pre_enable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*enable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*update_complete)(struct intel_atomic_state *, struct intel_encoder *, struct intel_crtc *);
|
|
void (*disable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*post_disable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*post_pll_disable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
void (*update_pipe)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
bool (*get_hw_state)(struct intel_encoder *, enum pipe *);
|
|
void (*get_config)(struct intel_encoder *, struct intel_crtc_state *);
|
|
void (*sync_state)(struct intel_encoder *, const struct intel_crtc_state *);
|
|
bool (*initial_fastset_check)(struct intel_encoder *, struct intel_crtc_state *);
|
|
void (*get_power_domains)(struct intel_encoder *, struct intel_crtc_state *);
|
|
void (*suspend)(struct intel_encoder *);
|
|
void (*shutdown)(struct intel_encoder *);
|
|
void (*enable_clock)(struct intel_encoder *, const struct intel_crtc_state *);
|
|
void (*disable_clock)(struct intel_encoder *);
|
|
bool (*is_clock_enabled)(struct intel_encoder *);
|
|
const struct intel_ddi_buf_trans * (*get_buf_trans)(struct intel_encoder *, const struct intel_crtc_state *, int *);
|
|
void (*set_signal_levels)(struct intel_encoder *, const struct intel_crtc_state *);
|
|
enum hpd_pin hpd_pin;
|
|
enum intel_display_power_domain power_domain;
|
|
const struct intel_bios_encoder_data *devdata;
|
|
};
|
|
|
|
enum pwm_polarity {
|
|
PWM_POLARITY_NORMAL = 0,
|
|
PWM_POLARITY_INVERSED = 1,
|
|
};
|
|
|
|
struct pwm_state {
|
|
u64 period;
|
|
u64 duty_cycle;
|
|
enum pwm_polarity polarity;
|
|
bool enabled;
|
|
bool usage_power;
|
|
};
|
|
|
|
struct drm_edp_backlight_info {
|
|
u8 pwmgen_bit_count;
|
|
u8 pwm_freq_pre_divider;
|
|
u16 max;
|
|
bool lsb_reg_used: 1;
|
|
bool aux_enable: 1;
|
|
bool aux_set: 1;
|
|
};
|
|
|
|
enum drrs_type {
|
|
DRRS_TYPE_NONE = 0,
|
|
DRRS_TYPE_STATIC = 1,
|
|
DRRS_TYPE_SEAMLESS = 2,
|
|
};
|
|
|
|
struct edp_power_seq {
|
|
u16 t1_t3;
|
|
u16 t8;
|
|
u16 t9;
|
|
u16 t10;
|
|
u16 t11_t12;
|
|
};
|
|
|
|
enum intel_backlight_type {
|
|
INTEL_BACKLIGHT_PMIC = 0,
|
|
INTEL_BACKLIGHT_LPSS = 1,
|
|
INTEL_BACKLIGHT_DISPLAY_DDI = 2,
|
|
INTEL_BACKLIGHT_DSI_DCS = 3,
|
|
INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE = 4,
|
|
INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE = 5,
|
|
};
|
|
|
|
struct mipi_config;
|
|
|
|
struct mipi_pps_data;
|
|
|
|
struct intel_vbt_panel_data {
|
|
struct drm_display_mode *lfp_lvds_vbt_mode;
|
|
struct drm_display_mode *sdvo_lvds_vbt_mode;
|
|
int panel_type;
|
|
unsigned int lvds_dither: 1;
|
|
unsigned int bios_lvds_val;
|
|
bool vrr;
|
|
u8 seamless_drrs_min_refresh_rate;
|
|
enum drrs_type drrs_type;
|
|
struct {
|
|
int max_link_rate;
|
|
int rate;
|
|
int lanes;
|
|
int preemphasis;
|
|
int vswing;
|
|
int bpp;
|
|
struct edp_power_seq pps;
|
|
u8 drrs_msa_timing_delay;
|
|
bool low_vswing;
|
|
bool initialized;
|
|
bool hobl;
|
|
} edp;
|
|
struct {
|
|
bool enable;
|
|
bool full_link;
|
|
bool require_aux_wakeup;
|
|
int idle_frames;
|
|
int tp1_wakeup_time_us;
|
|
int tp2_tp3_wakeup_time_us;
|
|
int psr2_tp2_tp3_wakeup_time_us;
|
|
} psr;
|
|
struct {
|
|
u16 pwm_freq_hz;
|
|
u16 brightness_precision_bits;
|
|
bool present;
|
|
bool active_low_pwm;
|
|
u8 min_brightness;
|
|
s8 controller;
|
|
enum intel_backlight_type type;
|
|
} backlight;
|
|
struct {
|
|
u16 panel_id;
|
|
struct mipi_config *config;
|
|
struct mipi_pps_data *pps;
|
|
u16 bl_ports;
|
|
u16 cabc_ports;
|
|
u8 seq_version;
|
|
u32 size;
|
|
u8 *data;
|
|
const u8 *sequence[12];
|
|
u8 *deassert_seq;
|
|
enum drm_panel_orientation orientation;
|
|
} dsi;
|
|
};
|
|
|
|
struct pwm_device;
|
|
|
|
struct backlight_device;
|
|
|
|
struct intel_panel_bl_funcs;
|
|
|
|
struct intel_panel {
|
|
const struct drm_edid *fixed_edid;
|
|
struct list_head fixed_modes;
|
|
struct {
|
|
bool present;
|
|
u32 level;
|
|
u32 min;
|
|
u32 max;
|
|
bool enabled;
|
|
bool combination_mode;
|
|
bool active_low_pwm;
|
|
bool alternate_pwm_increment;
|
|
u32 pwm_level_min;
|
|
u32 pwm_level_max;
|
|
bool pwm_enabled;
|
|
bool util_pin_active_low;
|
|
u8 controller;
|
|
struct pwm_device *pwm;
|
|
struct pwm_state pwm_state;
|
|
union {
|
|
struct {
|
|
struct drm_edp_backlight_info info;
|
|
} vesa;
|
|
struct {
|
|
bool sdr_uses_aux;
|
|
} intel;
|
|
} edp;
|
|
struct backlight_device *device;
|
|
const struct intel_panel_bl_funcs *funcs;
|
|
const struct intel_panel_bl_funcs *pwm_funcs;
|
|
void (*power)(struct intel_connector *, bool);
|
|
} backlight;
|
|
struct intel_vbt_panel_data vbt;
|
|
};
|
|
|
|
struct intel_hdcp_shim;
|
|
|
|
struct intel_hdcp {
|
|
const struct intel_hdcp_shim *shim;
|
|
struct mutex mutex;
|
|
u64 value;
|
|
struct delayed_work check_work;
|
|
struct work_struct prop_work;
|
|
bool hdcp_encrypted;
|
|
bool hdcp2_supported;
|
|
bool hdcp2_encrypted;
|
|
u8 content_type;
|
|
bool is_paired;
|
|
bool is_repeater;
|
|
u32 seq_num_v;
|
|
u32 seq_num_m;
|
|
wait_queue_head_t cp_irq_queue;
|
|
atomic_t cp_irq_count;
|
|
int cp_irq_count_cached;
|
|
enum transcoder cpu_transcoder;
|
|
enum transcoder stream_transcoder;
|
|
};
|
|
|
|
struct drm_dp_mst_port;
|
|
|
|
struct intel_dp;
|
|
|
|
struct intel_connector {
|
|
struct drm_connector base;
|
|
struct intel_encoder *encoder;
|
|
u32 acpi_device_id;
|
|
bool (*get_hw_state)(struct intel_connector *);
|
|
struct intel_panel panel;
|
|
const struct drm_edid *detect_edid;
|
|
int hotplug_retries;
|
|
u8 polled;
|
|
struct drm_dp_mst_port *port;
|
|
struct intel_dp *mst_port;
|
|
struct work_struct modeset_retry_work;
|
|
struct intel_hdcp hdcp;
|
|
};
|
|
|
|
struct pwm_args {
|
|
u64 period;
|
|
enum pwm_polarity polarity;
|
|
};
|
|
|
|
struct pwm_chip;
|
|
|
|
struct pwm_device {
|
|
const char *label;
|
|
unsigned long flags;
|
|
unsigned int hwpwm;
|
|
unsigned int pwm;
|
|
struct pwm_chip *chip;
|
|
void *chip_data;
|
|
struct pwm_args args;
|
|
struct pwm_state state;
|
|
struct pwm_state last;
|
|
};
|
|
|
|
struct pwm_ops;
|
|
|
|
struct pwm_chip {
|
|
struct device *dev;
|
|
const struct pwm_ops *ops;
|
|
int base;
|
|
unsigned int npwm;
|
|
struct pwm_device * (*of_xlate)(struct pwm_chip *, const struct of_phandle_args *);
|
|
unsigned int of_pwm_n_cells;
|
|
struct list_head list;
|
|
struct pwm_device *pwms;
|
|
};
|
|
|
|
struct pwm_capture;
|
|
|
|
struct pwm_ops {
|
|
int (*request)(struct pwm_chip *, struct pwm_device *);
|
|
void (*free)(struct pwm_chip *, struct pwm_device *);
|
|
int (*capture)(struct pwm_chip *, struct pwm_device *, struct pwm_capture *, unsigned long);
|
|
int (*apply)(struct pwm_chip *, struct pwm_device *, const struct pwm_state *);
|
|
int (*get_state)(struct pwm_chip *, struct pwm_device *, struct pwm_state *);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct pwm_capture {
|
|
unsigned int period;
|
|
unsigned int duty_cycle;
|
|
};
|
|
|
|
struct of_phandle_args {
|
|
struct device_node *np;
|
|
int args_count;
|
|
uint32_t args[16];
|
|
};
|
|
|
|
struct intel_panel_bl_funcs {
|
|
int (*setup)(struct intel_connector *, enum pipe);
|
|
u32 (*get)(struct intel_connector *, enum pipe);
|
|
void (*set)(const struct drm_connector_state *, u32);
|
|
void (*disable)(const struct drm_connector_state *, u32);
|
|
void (*enable)(const struct intel_crtc_state *, const struct drm_connector_state *, u32);
|
|
u32 (*hz_to_pwm)(struct intel_connector *, u32);
|
|
};
|
|
|
|
struct mipi_config {
|
|
u16 panel_id;
|
|
u32 enable_dithering: 1;
|
|
u32 rsvd1: 1;
|
|
u32 is_bridge: 1;
|
|
u32 panel_arch_type: 2;
|
|
u32 is_cmd_mode: 1;
|
|
u32 video_transfer_mode: 2;
|
|
u32 cabc_supported: 1;
|
|
u32 pwm_blc: 1;
|
|
u32 videomode_color_format: 4;
|
|
u32 rotation: 2;
|
|
u32 bta_enabled: 1;
|
|
u32 rsvd2: 15;
|
|
u16 dual_link: 2;
|
|
u16 lane_cnt: 2;
|
|
u16 pixel_overlap: 3;
|
|
u16 rgb_flip: 1;
|
|
u16 dl_dcs_cabc_ports: 2;
|
|
u16 dl_dcs_backlight_ports: 2;
|
|
u16 rsvd3: 4;
|
|
u16 rsvd4;
|
|
u8 rsvd5;
|
|
u32 target_burst_mode_freq;
|
|
u32 dsi_ddr_clk;
|
|
u32 bridge_ref_clk;
|
|
u8 byte_clk_sel: 2;
|
|
u8 rsvd6: 6;
|
|
u16 dphy_param_valid: 1;
|
|
u16 eot_pkt_disabled: 1;
|
|
u16 enable_clk_stop: 1;
|
|
u16 rsvd7: 13;
|
|
u32 hs_tx_timeout;
|
|
u32 lp_rx_timeout;
|
|
u32 turn_around_timeout;
|
|
u32 device_reset_timer;
|
|
u32 master_init_timer;
|
|
u32 dbi_bw_timer;
|
|
u32 lp_byte_clk_val;
|
|
u32 prepare_cnt: 6;
|
|
u32 rsvd8: 2;
|
|
u32 clk_zero_cnt: 8;
|
|
u32 trail_cnt: 5;
|
|
u32 rsvd9: 3;
|
|
u32 exit_zero_cnt: 6;
|
|
u32 rsvd10: 2;
|
|
u32 clk_lane_switch_cnt;
|
|
u32 hl_switch_cnt;
|
|
u32 rsvd11[6];
|
|
u8 tclk_miss;
|
|
u8 tclk_post;
|
|
u8 rsvd12;
|
|
u8 tclk_pre;
|
|
u8 tclk_prepare;
|
|
u8 tclk_settle;
|
|
u8 tclk_term_enable;
|
|
u8 tclk_trail;
|
|
u16 tclk_prepare_clkzero;
|
|
u8 rsvd13;
|
|
u8 td_term_enable;
|
|
u8 teot;
|
|
u8 ths_exit;
|
|
u8 ths_prepare;
|
|
u16 ths_prepare_hszero;
|
|
u8 rsvd14;
|
|
u8 ths_settle;
|
|
u8 ths_skip;
|
|
u8 ths_trail;
|
|
u8 tinit;
|
|
u8 tlpx;
|
|
u8 rsvd15[3];
|
|
u8 panel_enable;
|
|
u8 bl_enable;
|
|
u8 pwm_enable;
|
|
u8 reset_r_n;
|
|
u8 pwr_down_r;
|
|
u8 stdby_r_n;
|
|
} __attribute__((packed));
|
|
|
|
struct mipi_pps_data {
|
|
u16 panel_on_delay;
|
|
u16 bl_enable_delay;
|
|
u16 bl_disable_delay;
|
|
u16 panel_off_delay;
|
|
u16 panel_power_cycle_delay;
|
|
};
|
|
|
|
struct cec_adapter;
|
|
|
|
struct drm_dp_aux_cec {
|
|
struct mutex lock;
|
|
struct cec_adapter *adap;
|
|
struct drm_connector *connector;
|
|
struct delayed_work unregister_work;
|
|
};
|
|
|
|
struct drm_dp_aux_msg;
|
|
|
|
struct drm_dp_aux {
|
|
const char *name;
|
|
struct i2c_adapter ddc;
|
|
struct device *dev;
|
|
struct drm_device *drm_dev;
|
|
struct drm_crtc *crtc;
|
|
struct mutex hw_mutex;
|
|
struct work_struct crc_work;
|
|
u8 crc_count;
|
|
ssize_t (*transfer)(struct drm_dp_aux *, struct drm_dp_aux_msg *);
|
|
int (*wait_hpd_asserted)(struct drm_dp_aux *, unsigned long);
|
|
unsigned int i2c_nack_count;
|
|
unsigned int i2c_defer_count;
|
|
struct drm_dp_aux_cec cec;
|
|
bool is_remote;
|
|
};
|
|
|
|
struct drm_dp_mst_branch;
|
|
|
|
struct drm_dp_mst_topology_mgr;
|
|
|
|
struct drm_dp_mst_port {
|
|
struct kref topology_kref;
|
|
struct kref malloc_kref;
|
|
u8 port_num;
|
|
bool input;
|
|
bool mcs;
|
|
bool ddps;
|
|
u8 pdt;
|
|
bool ldps;
|
|
u8 dpcd_rev;
|
|
u8 num_sdp_streams;
|
|
u8 num_sdp_stream_sinks;
|
|
uint16_t full_pbn;
|
|
struct list_head next;
|
|
struct drm_dp_mst_branch *mstb;
|
|
struct drm_dp_aux aux;
|
|
struct drm_dp_aux *passthrough_aux;
|
|
struct drm_dp_mst_branch *parent;
|
|
struct drm_connector *connector;
|
|
struct drm_dp_mst_topology_mgr *mgr;
|
|
struct edid *cached_edid;
|
|
bool has_audio;
|
|
bool fec_capable;
|
|
};
|
|
|
|
struct drm_dp_mst_branch {
|
|
struct kref topology_kref;
|
|
struct kref malloc_kref;
|
|
struct list_head destroy_next;
|
|
u8 rad[8];
|
|
u8 lct;
|
|
int num_ports;
|
|
struct list_head ports;
|
|
struct drm_dp_mst_port *port_parent;
|
|
struct drm_dp_mst_topology_mgr *mgr;
|
|
bool link_address_sent;
|
|
u8 guid[16];
|
|
};
|
|
|
|
struct drm_dp_sideband_msg_hdr {
|
|
u8 lct;
|
|
u8 lcr;
|
|
u8 rad[8];
|
|
bool broadcast;
|
|
bool path_msg;
|
|
u8 msg_len;
|
|
bool somt;
|
|
bool eomt;
|
|
bool seqno;
|
|
};
|
|
|
|
struct drm_dp_sideband_msg_rx {
|
|
u8 chunk[48];
|
|
u8 msg[256];
|
|
u8 curchunk_len;
|
|
u8 curchunk_idx;
|
|
u8 curchunk_hdrlen;
|
|
u8 curlen;
|
|
bool have_somt;
|
|
bool have_eomt;
|
|
struct drm_dp_sideband_msg_hdr initial_hdr;
|
|
};
|
|
|
|
struct drm_dp_mst_topology_cbs;
|
|
|
|
struct drm_dp_mst_topology_mgr {
|
|
struct drm_private_obj base;
|
|
struct drm_device *dev;
|
|
const struct drm_dp_mst_topology_cbs *cbs;
|
|
int max_dpcd_transaction_bytes;
|
|
struct drm_dp_aux *aux;
|
|
int max_payloads;
|
|
int conn_base_id;
|
|
struct drm_dp_sideband_msg_rx up_req_recv;
|
|
struct drm_dp_sideband_msg_rx down_rep_recv;
|
|
struct mutex lock;
|
|
struct mutex probe_lock;
|
|
bool mst_state: 1;
|
|
bool payload_id_table_cleared: 1;
|
|
u8 payload_count;
|
|
u8 next_start_slot;
|
|
struct drm_dp_mst_branch *mst_primary;
|
|
u8 dpcd[15];
|
|
u8 sink_count;
|
|
const struct drm_private_state_funcs *funcs;
|
|
struct mutex qlock;
|
|
struct list_head tx_msg_downq;
|
|
wait_queue_head_t tx_waitq;
|
|
struct work_struct work;
|
|
struct work_struct tx_work;
|
|
struct list_head destroy_port_list;
|
|
struct list_head destroy_branch_device_list;
|
|
struct mutex delayed_destroy_lock;
|
|
struct workqueue_struct *delayed_destroy_wq;
|
|
struct work_struct delayed_destroy_work;
|
|
struct list_head up_req_list;
|
|
struct mutex up_req_lock;
|
|
struct work_struct up_req_work;
|
|
};
|
|
|
|
struct drm_dp_mst_topology_cbs {
|
|
struct drm_connector * (*add_connector)(struct drm_dp_mst_topology_mgr *, struct drm_dp_mst_port *, const char *);
|
|
void (*poll_hpd_irq)(struct drm_dp_mst_topology_mgr *);
|
|
};
|
|
|
|
struct drm_dp_aux_msg {
|
|
unsigned int address;
|
|
u8 request;
|
|
u8 reply;
|
|
void *buffer;
|
|
size_t size;
|
|
};
|
|
|
|
struct cec_devnode {
|
|
struct device dev;
|
|
struct cdev cdev;
|
|
int minor;
|
|
struct mutex lock;
|
|
bool registered;
|
|
bool unregistered;
|
|
struct mutex lock_fhs;
|
|
struct list_head fhs;
|
|
};
|
|
|
|
struct cec_log_addrs {
|
|
__u8 log_addr[4];
|
|
__u16 log_addr_mask;
|
|
__u8 cec_version;
|
|
__u8 num_log_addrs;
|
|
__u32 vendor_id;
|
|
__u32 flags;
|
|
char osd_name[15];
|
|
__u8 primary_device_type[4];
|
|
__u8 log_addr_type[4];
|
|
__u8 all_device_types[4];
|
|
__u8 features[48];
|
|
};
|
|
|
|
struct cec_drm_connector_info {
|
|
__u32 card_no;
|
|
__u32 connector_id;
|
|
};
|
|
|
|
struct cec_connector_info {
|
|
__u32 type;
|
|
union {
|
|
struct cec_drm_connector_info drm;
|
|
__u32 raw[16];
|
|
};
|
|
};
|
|
|
|
struct rc_dev;
|
|
|
|
struct cec_data;
|
|
|
|
struct cec_adap_ops;
|
|
|
|
struct cec_fh;
|
|
|
|
struct cec_adapter {
|
|
struct module *owner;
|
|
char name[32];
|
|
struct cec_devnode devnode;
|
|
struct mutex lock;
|
|
struct rc_dev *rc;
|
|
struct list_head transmit_queue;
|
|
unsigned int transmit_queue_sz;
|
|
struct list_head wait_queue;
|
|
struct cec_data *transmitting;
|
|
bool transmit_in_progress;
|
|
bool transmit_in_progress_aborted;
|
|
unsigned int xfer_timeout_ms;
|
|
struct task_struct *kthread_config;
|
|
struct completion config_completion;
|
|
struct task_struct *kthread;
|
|
wait_queue_head_t kthread_waitq;
|
|
const struct cec_adap_ops *ops;
|
|
void *priv;
|
|
u32 capabilities;
|
|
u8 available_log_addrs;
|
|
u16 phys_addr;
|
|
bool needs_hpd;
|
|
bool is_enabled;
|
|
bool is_configuring;
|
|
bool must_reconfigure;
|
|
bool is_configured;
|
|
bool cec_pin_is_high;
|
|
bool adap_controls_phys_addr;
|
|
u8 last_initiator;
|
|
u32 monitor_all_cnt;
|
|
u32 monitor_pin_cnt;
|
|
u32 follower_cnt;
|
|
struct cec_fh *cec_follower;
|
|
struct cec_fh *cec_initiator;
|
|
bool passthrough;
|
|
struct cec_log_addrs log_addrs;
|
|
struct cec_connector_info conn_info;
|
|
u32 tx_timeouts;
|
|
struct dentry *cec_dir;
|
|
u32 sequence;
|
|
char input_phys[32];
|
|
};
|
|
|
|
struct input_id {
|
|
__u16 bustype;
|
|
__u16 vendor;
|
|
__u16 product;
|
|
__u16 version;
|
|
};
|
|
|
|
enum rc_proto {
|
|
RC_PROTO_UNKNOWN = 0,
|
|
RC_PROTO_OTHER = 1,
|
|
RC_PROTO_RC5 = 2,
|
|
RC_PROTO_RC5X_20 = 3,
|
|
RC_PROTO_RC5_SZ = 4,
|
|
RC_PROTO_JVC = 5,
|
|
RC_PROTO_SONY12 = 6,
|
|
RC_PROTO_SONY15 = 7,
|
|
RC_PROTO_SONY20 = 8,
|
|
RC_PROTO_NEC = 9,
|
|
RC_PROTO_NECX = 10,
|
|
RC_PROTO_NEC32 = 11,
|
|
RC_PROTO_SANYO = 12,
|
|
RC_PROTO_MCIR2_KBD = 13,
|
|
RC_PROTO_MCIR2_MSE = 14,
|
|
RC_PROTO_RC6_0 = 15,
|
|
RC_PROTO_RC6_6A_20 = 16,
|
|
RC_PROTO_RC6_6A_24 = 17,
|
|
RC_PROTO_RC6_6A_32 = 18,
|
|
RC_PROTO_RC6_MCE = 19,
|
|
RC_PROTO_SHARP = 20,
|
|
RC_PROTO_XMP = 21,
|
|
RC_PROTO_CEC = 22,
|
|
RC_PROTO_IMON = 23,
|
|
RC_PROTO_RCMM12 = 24,
|
|
RC_PROTO_RCMM24 = 25,
|
|
RC_PROTO_RCMM32 = 26,
|
|
RC_PROTO_XBOX_DVD = 27,
|
|
RC_PROTO_MAX = 27,
|
|
};
|
|
|
|
struct rc_map_table;
|
|
|
|
struct rc_map {
|
|
struct rc_map_table *scan;
|
|
unsigned int size;
|
|
unsigned int len;
|
|
unsigned int alloc;
|
|
enum rc_proto rc_proto;
|
|
const char *name;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
enum rc_driver_type {
|
|
RC_DRIVER_SCANCODE = 0,
|
|
RC_DRIVER_IR_RAW = 1,
|
|
RC_DRIVER_IR_RAW_TX = 2,
|
|
};
|
|
|
|
struct rc_scancode_filter {
|
|
u32 data;
|
|
u32 mask;
|
|
};
|
|
|
|
struct ir_raw_event_ctrl;
|
|
|
|
struct input_dev;
|
|
|
|
struct rc_dev {
|
|
struct device dev;
|
|
bool managed_alloc;
|
|
const struct attribute_group *sysfs_groups[5];
|
|
const char *device_name;
|
|
const char *input_phys;
|
|
struct input_id input_id;
|
|
const char *driver_name;
|
|
const char *map_name;
|
|
struct rc_map rc_map;
|
|
struct mutex lock;
|
|
unsigned int minor;
|
|
struct ir_raw_event_ctrl *raw;
|
|
struct input_dev *input_dev;
|
|
enum rc_driver_type driver_type;
|
|
bool idle;
|
|
bool encode_wakeup;
|
|
u64 allowed_protocols;
|
|
u64 enabled_protocols;
|
|
u64 allowed_wakeup_protocols;
|
|
enum rc_proto wakeup_protocol;
|
|
struct rc_scancode_filter scancode_filter;
|
|
struct rc_scancode_filter scancode_wakeup_filter;
|
|
u32 scancode_mask;
|
|
u32 users;
|
|
void *priv;
|
|
spinlock_t keylock;
|
|
bool keypressed;
|
|
unsigned long keyup_jiffies;
|
|
struct timer_list timer_keyup;
|
|
struct timer_list timer_repeat;
|
|
u32 last_keycode;
|
|
enum rc_proto last_protocol;
|
|
u64 last_scancode;
|
|
u8 last_toggle;
|
|
u32 timeout;
|
|
u32 min_timeout;
|
|
u32 max_timeout;
|
|
u32 rx_resolution;
|
|
u32 tx_resolution;
|
|
struct device lirc_dev;
|
|
struct cdev lirc_cdev;
|
|
ktime_t gap_start;
|
|
spinlock_t lirc_fh_lock;
|
|
struct list_head lirc_fh;
|
|
bool registered;
|
|
int (*change_protocol)(struct rc_dev *, u64 *);
|
|
int (*open)(struct rc_dev *);
|
|
void (*close)(struct rc_dev *);
|
|
int (*s_tx_mask)(struct rc_dev *, u32);
|
|
int (*s_tx_carrier)(struct rc_dev *, u32);
|
|
int (*s_tx_duty_cycle)(struct rc_dev *, u32);
|
|
int (*s_rx_carrier_range)(struct rc_dev *, u32, u32);
|
|
int (*tx_ir)(struct rc_dev *, unsigned int *, unsigned int);
|
|
void (*s_idle)(struct rc_dev *, bool);
|
|
int (*s_wideband_receiver)(struct rc_dev *, int);
|
|
int (*s_carrier_report)(struct rc_dev *, int);
|
|
int (*s_filter)(struct rc_dev *, struct rc_scancode_filter *);
|
|
int (*s_wakeup_filter)(struct rc_dev *, struct rc_scancode_filter *);
|
|
int (*s_timeout)(struct rc_dev *, unsigned int);
|
|
};
|
|
|
|
struct rc_map_table {
|
|
u64 scancode;
|
|
u32 keycode;
|
|
};
|
|
|
|
struct input_keymap_entry;
|
|
|
|
struct ff_device;
|
|
|
|
struct input_dev_poller;
|
|
|
|
struct input_mt;
|
|
|
|
struct input_absinfo;
|
|
|
|
struct input_handle;
|
|
|
|
struct input_value;
|
|
|
|
struct input_dev {
|
|
const char *name;
|
|
const char *phys;
|
|
const char *uniq;
|
|
struct input_id id;
|
|
unsigned long propbit[1];
|
|
unsigned long evbit[1];
|
|
unsigned long keybit[12];
|
|
unsigned long relbit[1];
|
|
unsigned long absbit[1];
|
|
unsigned long mscbit[1];
|
|
unsigned long ledbit[1];
|
|
unsigned long sndbit[1];
|
|
unsigned long ffbit[2];
|
|
unsigned long swbit[1];
|
|
unsigned int hint_events_per_packet;
|
|
unsigned int keycodemax;
|
|
unsigned int keycodesize;
|
|
void *keycode;
|
|
int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *);
|
|
int (*getkeycode)(struct input_dev *, struct input_keymap_entry *);
|
|
struct ff_device *ff;
|
|
struct input_dev_poller *poller;
|
|
unsigned int repeat_key;
|
|
struct timer_list timer;
|
|
int rep[2];
|
|
struct input_mt *mt;
|
|
struct input_absinfo *absinfo;
|
|
unsigned long key[12];
|
|
unsigned long led[1];
|
|
unsigned long snd[1];
|
|
unsigned long sw[1];
|
|
int (*open)(struct input_dev *);
|
|
void (*close)(struct input_dev *);
|
|
int (*flush)(struct input_dev *, struct file *);
|
|
int (*event)(struct input_dev *, unsigned int, unsigned int, int);
|
|
struct input_handle __attribute__((btf_type_tag("rcu"))) *grab;
|
|
spinlock_t event_lock;
|
|
struct mutex mutex;
|
|
unsigned int users;
|
|
bool going_away;
|
|
struct device dev;
|
|
struct list_head h_list;
|
|
struct list_head node;
|
|
unsigned int num_vals;
|
|
unsigned int max_vals;
|
|
struct input_value *vals;
|
|
bool devres_managed;
|
|
ktime_t timestamp[3];
|
|
bool inhibited;
|
|
};
|
|
|
|
struct input_keymap_entry {
|
|
__u8 flags;
|
|
__u8 len;
|
|
__u16 index;
|
|
__u32 keycode;
|
|
__u8 scancode[32];
|
|
};
|
|
|
|
struct ff_effect;
|
|
|
|
struct ff_device {
|
|
int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *);
|
|
int (*erase)(struct input_dev *, int);
|
|
int (*playback)(struct input_dev *, int, int);
|
|
void (*set_gain)(struct input_dev *, u16);
|
|
void (*set_autocenter)(struct input_dev *, u16);
|
|
void (*destroy)(struct ff_device *);
|
|
void *private;
|
|
unsigned long ffbit[2];
|
|
struct mutex mutex;
|
|
int max_effects;
|
|
struct ff_effect *effects;
|
|
struct file *effect_owners[0];
|
|
};
|
|
|
|
struct ff_envelope {
|
|
__u16 attack_length;
|
|
__u16 attack_level;
|
|
__u16 fade_length;
|
|
__u16 fade_level;
|
|
};
|
|
|
|
struct ff_constant_effect {
|
|
__s16 level;
|
|
struct ff_envelope envelope;
|
|
};
|
|
|
|
struct ff_ramp_effect {
|
|
__s16 start_level;
|
|
__s16 end_level;
|
|
struct ff_envelope envelope;
|
|
};
|
|
|
|
struct ff_periodic_effect {
|
|
__u16 waveform;
|
|
__u16 period;
|
|
__s16 magnitude;
|
|
__s16 offset;
|
|
__u16 phase;
|
|
struct ff_envelope envelope;
|
|
__u32 custom_len;
|
|
__s16 __attribute__((btf_type_tag("user"))) *custom_data;
|
|
};
|
|
|
|
struct ff_condition_effect {
|
|
__u16 right_saturation;
|
|
__u16 left_saturation;
|
|
__s16 right_coeff;
|
|
__s16 left_coeff;
|
|
__u16 deadband;
|
|
__s16 center;
|
|
};
|
|
|
|
struct ff_rumble_effect {
|
|
__u16 strong_magnitude;
|
|
__u16 weak_magnitude;
|
|
};
|
|
|
|
struct ff_trigger {
|
|
__u16 button;
|
|
__u16 interval;
|
|
};
|
|
|
|
struct ff_replay {
|
|
__u16 length;
|
|
__u16 delay;
|
|
};
|
|
|
|
struct ff_effect {
|
|
__u16 type;
|
|
__s16 id;
|
|
__u16 direction;
|
|
struct ff_trigger trigger;
|
|
struct ff_replay replay;
|
|
union {
|
|
struct ff_constant_effect constant;
|
|
struct ff_ramp_effect ramp;
|
|
struct ff_periodic_effect periodic;
|
|
struct ff_condition_effect condition[2];
|
|
struct ff_rumble_effect rumble;
|
|
} u;
|
|
};
|
|
|
|
struct input_absinfo {
|
|
__s32 value;
|
|
__s32 minimum;
|
|
__s32 maximum;
|
|
__s32 fuzz;
|
|
__s32 flat;
|
|
__s32 resolution;
|
|
};
|
|
|
|
struct input_handler;
|
|
|
|
struct input_handle {
|
|
void *private;
|
|
int open;
|
|
const char *name;
|
|
struct input_dev *dev;
|
|
struct input_handler *handler;
|
|
struct list_head d_node;
|
|
struct list_head h_node;
|
|
};
|
|
|
|
struct input_device_id;
|
|
|
|
struct input_handler {
|
|
void *private;
|
|
void (*event)(struct input_handle *, unsigned int, unsigned int, int);
|
|
void (*events)(struct input_handle *, const struct input_value *, unsigned int);
|
|
bool (*filter)(struct input_handle *, unsigned int, unsigned int, int);
|
|
bool (*match)(struct input_handler *, struct input_dev *);
|
|
int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *);
|
|
void (*disconnect)(struct input_handle *);
|
|
void (*start)(struct input_handle *);
|
|
bool legacy_minors;
|
|
int minor;
|
|
const char *name;
|
|
const struct input_device_id *id_table;
|
|
struct list_head h_list;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct input_value {
|
|
__u16 type;
|
|
__u16 code;
|
|
__s32 value;
|
|
};
|
|
|
|
struct input_device_id {
|
|
kernel_ulong_t flags;
|
|
__u16 bustype;
|
|
__u16 vendor;
|
|
__u16 product;
|
|
__u16 version;
|
|
kernel_ulong_t evbit[1];
|
|
kernel_ulong_t keybit[12];
|
|
kernel_ulong_t relbit[1];
|
|
kernel_ulong_t absbit[1];
|
|
kernel_ulong_t mscbit[1];
|
|
kernel_ulong_t ledbit[1];
|
|
kernel_ulong_t sndbit[1];
|
|
kernel_ulong_t ffbit[2];
|
|
kernel_ulong_t swbit[1];
|
|
kernel_ulong_t propbit[1];
|
|
kernel_ulong_t driver_info;
|
|
};
|
|
|
|
struct cec_msg {
|
|
__u64 tx_ts;
|
|
__u64 rx_ts;
|
|
__u32 len;
|
|
__u32 timeout;
|
|
__u32 sequence;
|
|
__u32 flags;
|
|
__u8 msg[16];
|
|
__u8 reply;
|
|
__u8 rx_status;
|
|
__u8 tx_status;
|
|
__u8 tx_arb_lost_cnt;
|
|
__u8 tx_nack_cnt;
|
|
__u8 tx_low_drive_cnt;
|
|
__u8 tx_error_cnt;
|
|
};
|
|
|
|
struct cec_data {
|
|
struct list_head list;
|
|
struct list_head xfer_list;
|
|
struct cec_adapter *adap;
|
|
struct cec_msg msg;
|
|
struct cec_fh *fh;
|
|
struct delayed_work work;
|
|
struct completion c;
|
|
u8 attempts;
|
|
bool blocking;
|
|
bool completed;
|
|
};
|
|
|
|
struct cec_event_state_change {
|
|
__u16 phys_addr;
|
|
__u16 log_addr_mask;
|
|
__u16 have_conn_info;
|
|
};
|
|
|
|
struct cec_event_lost_msgs {
|
|
__u32 lost_msgs;
|
|
};
|
|
|
|
struct cec_event {
|
|
__u64 ts;
|
|
__u32 event;
|
|
__u32 flags;
|
|
union {
|
|
struct cec_event_state_change state_change;
|
|
struct cec_event_lost_msgs lost_msgs;
|
|
__u32 raw[16];
|
|
};
|
|
};
|
|
|
|
struct cec_event_entry {
|
|
struct list_head list;
|
|
struct cec_event ev;
|
|
};
|
|
|
|
struct cec_fh {
|
|
struct list_head list;
|
|
struct list_head xfer_list;
|
|
struct cec_adapter *adap;
|
|
u8 mode_initiator;
|
|
u8 mode_follower;
|
|
wait_queue_head_t wait;
|
|
struct mutex lock;
|
|
struct list_head events[8];
|
|
u16 queued_events[8];
|
|
unsigned int total_queued_events;
|
|
struct cec_event_entry core_events[2];
|
|
struct list_head msgs;
|
|
unsigned int queued_msgs;
|
|
};
|
|
|
|
struct cec_adap_ops {
|
|
int (*adap_enable)(struct cec_adapter *, bool);
|
|
int (*adap_monitor_all_enable)(struct cec_adapter *, bool);
|
|
int (*adap_monitor_pin_enable)(struct cec_adapter *, bool);
|
|
int (*adap_log_addr)(struct cec_adapter *, u8);
|
|
void (*adap_configured)(struct cec_adapter *, bool);
|
|
int (*adap_transmit)(struct cec_adapter *, u8, u32, struct cec_msg *);
|
|
void (*adap_status)(struct cec_adapter *, struct seq_file *);
|
|
void (*adap_free)(struct cec_adapter *);
|
|
int (*error_inj_show)(struct cec_adapter *, struct seq_file *);
|
|
bool (*error_inj_parse_line)(struct cec_adapter *, char *);
|
|
int (*received)(struct cec_adapter *, struct cec_msg *);
|
|
};
|
|
|
|
struct drm_dp_dpcd_ident {
|
|
u8 oui[3];
|
|
u8 device_id[6];
|
|
u8 hw_rev;
|
|
u8 sw_major_rev;
|
|
u8 sw_minor_rev;
|
|
};
|
|
|
|
struct drm_dp_desc {
|
|
struct drm_dp_dpcd_ident ident;
|
|
u32 quirks;
|
|
};
|
|
|
|
struct intel_pps {
|
|
int panel_power_up_delay;
|
|
int panel_power_down_delay;
|
|
int panel_power_cycle_delay;
|
|
int backlight_on_delay;
|
|
int backlight_off_delay;
|
|
int: 32;
|
|
struct delayed_work panel_vdd_work;
|
|
bool want_panel_vdd;
|
|
bool initializing;
|
|
long: 48;
|
|
unsigned long last_power_on;
|
|
unsigned long last_backlight_off;
|
|
ktime_t panel_power_off_time;
|
|
intel_wakeref_t vdd_wakeref;
|
|
union {
|
|
enum pipe pps_pipe;
|
|
int pps_idx;
|
|
};
|
|
enum pipe active_pipe;
|
|
bool pps_reset;
|
|
struct edp_power_seq pps_delays;
|
|
struct edp_power_seq bios_pps_delays;
|
|
long: 56;
|
|
} __attribute__((packed));
|
|
|
|
struct drm_dp_phy_test_params {
|
|
int link_rate;
|
|
u8 num_lanes;
|
|
u8 phy_pattern;
|
|
u8 hbr2_reset[2];
|
|
u8 custom80[10];
|
|
bool enhanced_frame_cap;
|
|
};
|
|
|
|
struct intel_dp_compliance_data {
|
|
unsigned long edid;
|
|
u8 video_pattern;
|
|
u16 hdisplay;
|
|
u16 vdisplay;
|
|
u8 bpc;
|
|
struct drm_dp_phy_test_params phytest;
|
|
};
|
|
|
|
struct intel_dp_compliance {
|
|
unsigned long test_type;
|
|
struct intel_dp_compliance_data test_data;
|
|
bool test_active;
|
|
int test_link_rate;
|
|
u8 test_lane_count;
|
|
};
|
|
|
|
struct intel_dp_pcon_frl {
|
|
bool is_trained;
|
|
int trained_rate_gbps;
|
|
};
|
|
|
|
struct intel_psr {
|
|
struct mutex lock;
|
|
u32 debug;
|
|
bool sink_support;
|
|
bool source_support;
|
|
bool enabled;
|
|
bool paused;
|
|
enum pipe pipe;
|
|
enum transcoder transcoder;
|
|
bool active;
|
|
struct work_struct work;
|
|
unsigned int busy_frontbuffer_bits;
|
|
bool sink_psr2_support;
|
|
bool link_standby;
|
|
bool colorimetry_support;
|
|
bool psr2_enabled;
|
|
bool psr2_sel_fetch_enabled;
|
|
bool psr2_sel_fetch_cff_enabled;
|
|
bool req_psr2_sdp_prior_scanline;
|
|
u8 sink_sync_latency;
|
|
ktime_t last_entry_attempt;
|
|
ktime_t last_exit;
|
|
bool sink_not_reliable;
|
|
bool irq_aux_error;
|
|
u16 su_w_granularity;
|
|
u16 su_y_granularity;
|
|
u32 dc3co_exitline;
|
|
u32 dc3co_exit_delay;
|
|
struct delayed_work dc3co_work;
|
|
};
|
|
|
|
struct intel_dp_mst_encoder;
|
|
|
|
struct intel_dp {
|
|
i915_reg_t output_reg;
|
|
u32 DP;
|
|
int link_rate;
|
|
u8 lane_count;
|
|
u8 sink_count;
|
|
bool link_trained;
|
|
bool has_hdmi_sink;
|
|
bool has_audio;
|
|
bool reset_link_params;
|
|
bool use_max_params;
|
|
u8 dpcd[15];
|
|
u8 psr_dpcd[2];
|
|
u8 downstream_ports[16];
|
|
u8 edp_dpcd[3];
|
|
u8 dsc_dpcd[15];
|
|
u8 lttpr_common_caps[8];
|
|
u8 lttpr_phy_caps[24];
|
|
u8 fec_capable;
|
|
u8 pcon_dsc_dpcd[13];
|
|
int num_source_rates;
|
|
const int *source_rates;
|
|
int num_sink_rates;
|
|
int sink_rates[8];
|
|
bool use_rate_select;
|
|
int max_sink_lane_count;
|
|
int num_common_rates;
|
|
int common_rates[8];
|
|
int max_link_lane_count;
|
|
int max_link_rate;
|
|
int mso_link_count;
|
|
int mso_pixel_overlap;
|
|
struct drm_dp_desc desc;
|
|
struct drm_dp_aux aux;
|
|
u32 aux_busy_last_status;
|
|
u8 train_set[4];
|
|
struct intel_pps pps;
|
|
bool is_mst;
|
|
int active_mst_links;
|
|
struct intel_connector *attached_connector;
|
|
struct intel_dp_mst_encoder *mst_encoders[4];
|
|
struct drm_dp_mst_topology_mgr mst_mgr;
|
|
u32 (*get_aux_clock_divider)(struct intel_dp *, int);
|
|
u32 (*get_aux_send_ctl)(struct intel_dp *, int, u32);
|
|
i915_reg_t (*aux_ch_ctl_reg)(struct intel_dp *);
|
|
i915_reg_t (*aux_ch_data_reg)(struct intel_dp *, int);
|
|
void (*prepare_link_retrain)(struct intel_dp *, const struct intel_crtc_state *);
|
|
void (*set_link_train)(struct intel_dp *, const struct intel_crtc_state *, u8);
|
|
void (*set_idle_link_train)(struct intel_dp *, const struct intel_crtc_state *);
|
|
u8 (*preemph_max)(struct intel_dp *);
|
|
u8 (*voltage_max)(struct intel_dp *, const struct intel_crtc_state *);
|
|
struct intel_dp_compliance compliance;
|
|
struct {
|
|
int min_tmds_clock;
|
|
int max_tmds_clock;
|
|
int max_dotclock;
|
|
int pcon_max_frl_bw;
|
|
u8 max_bpc;
|
|
bool ycbcr_444_to_420;
|
|
bool rgb_to_ycbcr;
|
|
} dfp;
|
|
struct pm_qos_request pm_qos;
|
|
bool force_dsc_en;
|
|
int force_dsc_bpc;
|
|
bool hobl_failed;
|
|
bool hobl_active;
|
|
struct intel_dp_pcon_frl frl;
|
|
struct intel_psr psr;
|
|
unsigned long last_oui_write;
|
|
};
|
|
|
|
struct intel_digital_port;
|
|
|
|
struct intel_dp_mst_encoder {
|
|
struct intel_encoder base;
|
|
enum pipe pipe;
|
|
struct intel_digital_port *primary;
|
|
struct intel_connector *connector;
|
|
};
|
|
|
|
enum drm_dp_dual_mode_type {
|
|
DRM_DP_DUAL_MODE_NONE = 0,
|
|
DRM_DP_DUAL_MODE_UNKNOWN = 1,
|
|
DRM_DP_DUAL_MODE_TYPE1_DVI = 2,
|
|
DRM_DP_DUAL_MODE_TYPE1_HDMI = 3,
|
|
DRM_DP_DUAL_MODE_TYPE2_DVI = 4,
|
|
DRM_DP_DUAL_MODE_TYPE2_HDMI = 5,
|
|
DRM_DP_DUAL_MODE_LSPCON = 6,
|
|
};
|
|
|
|
struct cec_notifier;
|
|
|
|
struct intel_hdmi {
|
|
i915_reg_t hdmi_reg;
|
|
int ddc_bus;
|
|
struct {
|
|
enum drm_dp_dual_mode_type type;
|
|
int max_tmds_clock;
|
|
} dp_dual_mode;
|
|
bool has_hdmi_sink;
|
|
bool has_audio;
|
|
struct intel_connector *attached_connector;
|
|
struct cec_notifier *cec_notifier;
|
|
};
|
|
|
|
enum drm_lspcon_mode {
|
|
DRM_LSPCON_MODE_INVALID = 0,
|
|
DRM_LSPCON_MODE_LS = 1,
|
|
DRM_LSPCON_MODE_PCON = 2,
|
|
};
|
|
|
|
enum lspcon_vendor {
|
|
LSPCON_VENDOR_MCA = 0,
|
|
LSPCON_VENDOR_PARADE = 1,
|
|
};
|
|
|
|
struct intel_lspcon {
|
|
bool active;
|
|
bool hdr_supported;
|
|
enum drm_lspcon_mode mode;
|
|
enum lspcon_vendor vendor;
|
|
};
|
|
|
|
enum aux_ch {
|
|
AUX_CH_A = 0,
|
|
AUX_CH_B = 1,
|
|
AUX_CH_C = 2,
|
|
AUX_CH_D = 3,
|
|
AUX_CH_E = 4,
|
|
AUX_CH_F = 5,
|
|
AUX_CH_G = 6,
|
|
AUX_CH_H = 7,
|
|
AUX_CH_I = 8,
|
|
AUX_CH_USBC1 = 3,
|
|
AUX_CH_USBC2 = 4,
|
|
AUX_CH_USBC3 = 5,
|
|
AUX_CH_USBC4 = 6,
|
|
AUX_CH_USBC5 = 7,
|
|
AUX_CH_USBC6 = 8,
|
|
AUX_CH_D_XELPD = 7,
|
|
AUX_CH_E_XELPD = 8,
|
|
};
|
|
|
|
enum tc_port_mode {
|
|
TC_PORT_DISCONNECTED = 0,
|
|
TC_PORT_TBT_ALT = 1,
|
|
TC_PORT_DP_ALT = 2,
|
|
TC_PORT_LEGACY = 3,
|
|
};
|
|
|
|
enum phy_fia {
|
|
FIA1 = 0,
|
|
FIA2 = 1,
|
|
FIA3 = 2,
|
|
};
|
|
|
|
struct intel_digital_port {
|
|
struct intel_encoder base;
|
|
u32 saved_port_bits;
|
|
struct intel_dp dp;
|
|
struct intel_hdmi hdmi;
|
|
struct intel_lspcon lspcon;
|
|
enum irqreturn (*hpd_pulse)(struct intel_digital_port *, bool);
|
|
bool release_cl2_override;
|
|
u8 max_lanes;
|
|
enum aux_ch aux_ch;
|
|
enum intel_display_power_domain ddi_io_power_domain;
|
|
intel_wakeref_t ddi_io_wakeref;
|
|
intel_wakeref_t aux_wakeref;
|
|
struct mutex tc_lock;
|
|
intel_wakeref_t tc_lock_wakeref;
|
|
enum intel_display_power_domain tc_lock_power_domain;
|
|
struct delayed_work tc_disconnect_phy_work;
|
|
int tc_link_refcount;
|
|
bool tc_legacy_port: 1;
|
|
char tc_port_name[8];
|
|
enum tc_port_mode tc_mode;
|
|
enum phy_fia tc_phy_fia;
|
|
u8 tc_phy_fia_idx;
|
|
struct mutex hdcp_mutex;
|
|
unsigned int num_hdcp_streams;
|
|
bool hdcp_auth_status;
|
|
struct hdcp_port_data hdcp_port_data;
|
|
bool hdcp_mst_type1_capable;
|
|
void (*write_infoframe)(struct intel_encoder *, const struct intel_crtc_state *, unsigned int, const void *, ssize_t);
|
|
void (*read_infoframe)(struct intel_encoder *, const struct intel_crtc_state *, unsigned int, void *, ssize_t);
|
|
void (*set_infoframes)(struct intel_encoder *, bool, const struct intel_crtc_state *, const struct drm_connector_state *);
|
|
u32 (*infoframes_enabled)(struct intel_encoder *, const struct intel_crtc_state *);
|
|
bool (*connected)(struct intel_encoder *);
|
|
};
|
|
|
|
enum hdcp_wired_protocol {
|
|
HDCP_PROTOCOL_INVALID = 0,
|
|
HDCP_PROTOCOL_HDMI = 1,
|
|
HDCP_PROTOCOL_DP = 2,
|
|
};
|
|
|
|
struct intel_hdcp_shim {
|
|
int (*write_an_aksv)(struct intel_digital_port *, u8 *);
|
|
int (*read_bksv)(struct intel_digital_port *, u8 *);
|
|
int (*read_bstatus)(struct intel_digital_port *, u8 *);
|
|
int (*repeater_present)(struct intel_digital_port *, bool *);
|
|
int (*read_ri_prime)(struct intel_digital_port *, u8 *);
|
|
int (*read_ksv_ready)(struct intel_digital_port *, bool *);
|
|
int (*read_ksv_fifo)(struct intel_digital_port *, int, u8 *);
|
|
int (*read_v_prime_part)(struct intel_digital_port *, int, u32 *);
|
|
int (*toggle_signalling)(struct intel_digital_port *, enum transcoder, bool);
|
|
int (*stream_encryption)(struct intel_connector *, bool);
|
|
bool (*check_link)(struct intel_digital_port *, struct intel_connector *);
|
|
int (*hdcp_capable)(struct intel_digital_port *, bool *);
|
|
enum hdcp_wired_protocol protocol;
|
|
int (*hdcp_2_2_capable)(struct intel_digital_port *, bool *);
|
|
int (*write_2_2_msg)(struct intel_digital_port *, void *, size_t);
|
|
int (*read_2_2_msg)(struct intel_digital_port *, u8, void *, size_t);
|
|
int (*config_stream_type)(struct intel_digital_port *, bool, u8);
|
|
int (*stream_2_2_encryption)(struct intel_connector *, bool);
|
|
int (*check_2_2_link)(struct intel_digital_port *, struct intel_connector *);
|
|
};
|
|
|
|
union intel_ddi_buf_trans_entry;
|
|
|
|
struct intel_ddi_buf_trans {
|
|
const union intel_ddi_buf_trans_entry *entries;
|
|
u8 num_entries;
|
|
u8 hdmi_default_entry;
|
|
};
|
|
|
|
struct child_device_config {
|
|
u16 handle;
|
|
u16 device_type;
|
|
union {
|
|
u8 device_id[10];
|
|
struct {
|
|
u8 i2c_speed;
|
|
u8 dp_onboard_redriver_preemph: 3;
|
|
u8 dp_onboard_redriver_vswing: 3;
|
|
u8 dp_onboard_redriver_present: 1;
|
|
u8 reserved0: 1;
|
|
u8 dp_ondock_redriver_preemph: 3;
|
|
u8 dp_ondock_redriver_vswing: 3;
|
|
u8 dp_ondock_redriver_present: 1;
|
|
u8 reserved1: 1;
|
|
u8 hdmi_level_shifter_value: 5;
|
|
u8 hdmi_max_data_rate: 3;
|
|
u16 dtd_buf_ptr;
|
|
u8 edidless_efp: 1;
|
|
u8 compression_enable: 1;
|
|
u8 compression_method_cps: 1;
|
|
u8 ganged_edp: 1;
|
|
u8 lttpr_non_transparent: 1;
|
|
u8 disable_compression_for_ext_disp: 1;
|
|
u8 reserved2: 2;
|
|
u8 compression_structure_index: 4;
|
|
u8 reserved3: 4;
|
|
u8 hdmi_max_frl_rate: 4;
|
|
u8 hdmi_max_frl_rate_valid: 1;
|
|
u8 reserved4: 3;
|
|
u8 reserved5;
|
|
};
|
|
};
|
|
u16 addin_offset;
|
|
u8 dvo_port;
|
|
u8 i2c_pin;
|
|
u8 slave_addr;
|
|
u8 ddc_pin;
|
|
u16 edid_ptr;
|
|
u8 dvo_cfg;
|
|
union {
|
|
struct {
|
|
u8 dvo2_port;
|
|
u8 i2c2_pin;
|
|
u8 slave2_addr;
|
|
u8 ddc2_pin;
|
|
};
|
|
struct {
|
|
u8 efp_routed: 1;
|
|
u8 lane_reversal: 1;
|
|
u8 lspcon: 1;
|
|
u8 iboost: 1;
|
|
u8 hpd_invert: 1;
|
|
u8 use_vbt_vswing: 1;
|
|
u8 dp_max_lane_count: 2;
|
|
u8 hdmi_support: 1;
|
|
u8 dp_support: 1;
|
|
u8 tmds_support: 1;
|
|
u8 support_reserved: 5;
|
|
u8 aux_channel;
|
|
u8 dongle_detect;
|
|
};
|
|
};
|
|
u8 pipe_cap: 2;
|
|
u8 sdvo_stall: 1;
|
|
u8 hpd_status: 2;
|
|
u8 integrated_encoder: 1;
|
|
u8 capabilities_reserved: 2;
|
|
u8 dvo_wiring;
|
|
union {
|
|
u8 dvo2_wiring;
|
|
u8 mipi_bridge_type;
|
|
};
|
|
u16 extended_type;
|
|
u8 dvo_function;
|
|
u8 dp_usb_type_c: 1;
|
|
u8 tbt: 1;
|
|
u8 flags2_reserved: 2;
|
|
u8 dp_port_trace_length: 4;
|
|
u8 dp_gpio_index;
|
|
u16 dp_gpio_pin_num;
|
|
u8 dp_iboost_level: 4;
|
|
u8 hdmi_iboost_level: 4;
|
|
u8 dp_max_link_rate: 3;
|
|
u8 dp_max_link_rate_reserved: 5;
|
|
} __attribute__((packed));
|
|
|
|
struct dsc_compression_parameters_entry;
|
|
|
|
struct intel_bios_encoder_data {
|
|
struct drm_i915_private *i915;
|
|
struct child_device_config child;
|
|
struct dsc_compression_parameters_entry *dsc;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct intel_gt_coredump___2;
|
|
|
|
struct i915_gpu_coredump___2 {
|
|
struct kref ref;
|
|
ktime_t time;
|
|
ktime_t boottime;
|
|
ktime_t uptime;
|
|
unsigned long capture;
|
|
struct drm_i915_private *i915;
|
|
struct intel_gt_coredump___2 *gt;
|
|
char error_msg[128];
|
|
bool simulated;
|
|
bool wakelock;
|
|
bool suspended;
|
|
int iommu;
|
|
u32 reset_count;
|
|
u32 suspend_count;
|
|
struct intel_device_info device_info;
|
|
struct intel_runtime_info runtime_info;
|
|
struct intel_driver_caps driver_caps;
|
|
struct i915_params params;
|
|
struct intel_overlay_error_state *overlay;
|
|
struct scatterlist *sgl;
|
|
struct scatterlist *fit;
|
|
};
|
|
|
|
struct intel_engine_coredump___2;
|
|
|
|
struct intel_uc_coredump___2;
|
|
|
|
struct intel_gt_coredump___2 {
|
|
const struct intel_gt___2 *_gt;
|
|
bool awake;
|
|
bool simulated;
|
|
struct intel_gt_info info;
|
|
u32 eir;
|
|
u32 pgtbl_er;
|
|
u32 ier;
|
|
u32 gtier[6];
|
|
u32 ngtier;
|
|
u32 forcewake;
|
|
u32 error;
|
|
u32 err_int;
|
|
u32 fault_data0;
|
|
u32 fault_data1;
|
|
u32 done_reg;
|
|
u32 gac_eco;
|
|
u32 gam_ecochk;
|
|
u32 gab_ctl;
|
|
u32 gfx_mode;
|
|
u32 gtt_cache;
|
|
u32 aux_err;
|
|
u32 gam_done;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
u32 derrmr;
|
|
u32 sfc_done[4];
|
|
u32 nfence;
|
|
u64 fence[32];
|
|
struct intel_engine_coredump___2 *engine;
|
|
struct intel_uc_coredump___2 *uc;
|
|
struct intel_gt_coredump___2 *next;
|
|
};
|
|
|
|
struct intel_engine_coredump___2 {
|
|
const struct intel_engine_cs___2 *engine;
|
|
bool hung;
|
|
bool simulated;
|
|
u32 reset_count;
|
|
u32 rq_head;
|
|
u32 rq_post;
|
|
u32 rq_tail;
|
|
u32 ccid;
|
|
u32 start;
|
|
u32 tail;
|
|
u32 head;
|
|
u32 ctl;
|
|
u32 mode;
|
|
u32 hws;
|
|
u32 ipeir;
|
|
u32 ipehr;
|
|
u32 esr;
|
|
u32 bbstate;
|
|
u32 instpm;
|
|
u32 instps;
|
|
u64 bbaddr;
|
|
u64 acthd;
|
|
u32 fault_reg;
|
|
u64 faddr;
|
|
u32 rc_psmi;
|
|
u32 nopid;
|
|
u32 excc;
|
|
u32 cmd_cctl;
|
|
u32 cscmdop;
|
|
u32 ctx_sr_ctl;
|
|
u32 dma_faddr_hi;
|
|
u32 dma_faddr_lo;
|
|
struct intel_instdone instdone;
|
|
struct intel_guc_state_capture *guc_capture;
|
|
struct __guc_capture_parsed_output *guc_capture_node;
|
|
struct i915_gem_context_coredump context;
|
|
struct i915_vma_coredump *vma;
|
|
struct i915_request_coredump execlist[2];
|
|
unsigned int num_ports;
|
|
struct {
|
|
u32 gfx_mode;
|
|
union {
|
|
u64 pdp[4];
|
|
u32 pp_dir_base;
|
|
};
|
|
} vm_info;
|
|
struct intel_engine_coredump___2 *next;
|
|
};
|
|
|
|
struct intel_uc_coredump___2 {
|
|
struct intel_uc_fw___2 guc_fw;
|
|
struct intel_uc_fw___2 huc_fw;
|
|
struct guc_info guc;
|
|
};
|
|
|
|
struct intel_memory_region_ops___2 {
|
|
unsigned int flags;
|
|
int (*init)(struct intel_memory_region___2 *);
|
|
int (*release)(struct intel_memory_region___2 *);
|
|
int (*init_object)(struct intel_memory_region___2 *, struct drm_i915_gem_object___2 *, resource_size_t, resource_size_t, resource_size_t, unsigned int);
|
|
};
|
|
|
|
enum plane_id {
|
|
PLANE_PRIMARY = 0,
|
|
PLANE_SPRITE0 = 1,
|
|
PLANE_SPRITE1 = 2,
|
|
PLANE_SPRITE2 = 3,
|
|
PLANE_SPRITE3 = 4,
|
|
PLANE_SPRITE4 = 5,
|
|
PLANE_SPRITE5 = 6,
|
|
PLANE_CURSOR = 7,
|
|
I915_MAX_PLANES = 8,
|
|
};
|
|
|
|
enum dbuf_slice {
|
|
DBUF_S1 = 0,
|
|
DBUF_S2 = 1,
|
|
DBUF_S3 = 2,
|
|
DBUF_S4 = 3,
|
|
I915_MAX_DBUF_SLICES = 4,
|
|
};
|
|
|
|
struct intel_dbuf_bw {
|
|
unsigned int max_bw[4];
|
|
u8 active_planes[4];
|
|
};
|
|
|
|
struct intel_bw_state {
|
|
struct intel_global_state base;
|
|
struct intel_dbuf_bw dbuf_bw[4];
|
|
u8 pipe_sagv_reject;
|
|
u8 active_pipes;
|
|
u16 qgv_points_mask;
|
|
int min_cdclk[4];
|
|
unsigned int data_rate[4];
|
|
u8 num_active_planes[4];
|
|
};
|
|
|
|
struct intel_qgv_point {
|
|
u16 dclk;
|
|
u16 t_rp;
|
|
u16 t_rdpre;
|
|
u16 t_rc;
|
|
u16 t_ras;
|
|
u16 t_rcd;
|
|
};
|
|
|
|
struct intel_psf_gv_point {
|
|
u8 clk;
|
|
};
|
|
|
|
struct intel_qgv_info {
|
|
struct intel_qgv_point points[8];
|
|
struct intel_psf_gv_point psf_points[3];
|
|
u8 num_points;
|
|
u8 num_psf_points;
|
|
u8 t_bl;
|
|
u8 max_numchannels;
|
|
u8 channel_width;
|
|
u8 deinterleave;
|
|
};
|
|
|
|
struct intel_cdclk_state {
|
|
struct intel_global_state base;
|
|
struct intel_cdclk_config logical;
|
|
struct intel_cdclk_config actual;
|
|
int bw_min_cdclk;
|
|
int min_cdclk[4];
|
|
u8 min_voltage_level[4];
|
|
enum pipe pipe;
|
|
int force_min_cdclk;
|
|
u8 active_pipes;
|
|
};
|
|
|
|
enum gmbus_gpio {
|
|
GPIOA = 0,
|
|
GPIOB = 1,
|
|
GPIOC = 2,
|
|
GPIOD = 3,
|
|
GPIOE = 4,
|
|
GPIOF = 5,
|
|
GPIOG = 6,
|
|
GPIOH = 7,
|
|
__GPIOI_UNUSED = 8,
|
|
GPIOJ = 9,
|
|
GPIOK = 10,
|
|
GPIOL = 11,
|
|
GPIOM = 12,
|
|
GPION = 13,
|
|
GPIOO = 14,
|
|
};
|
|
|
|
struct gmbus_pin {
|
|
const char *name;
|
|
enum gmbus_gpio gpio;
|
|
};
|
|
|
|
struct i2c_algo_bit_data {
|
|
void *data;
|
|
void (*setsda)(void *, int);
|
|
void (*setscl)(void *, int);
|
|
int (*getsda)(void *);
|
|
int (*getscl)(void *);
|
|
int (*pre_xfer)(struct i2c_adapter *);
|
|
void (*post_xfer)(struct i2c_adapter *);
|
|
int udelay;
|
|
int timeout;
|
|
bool can_do_atomic;
|
|
};
|
|
|
|
struct intel_gmbus {
|
|
struct i2c_adapter adapter;
|
|
u32 force_bit;
|
|
u32 reg0;
|
|
i915_reg_t gpio_reg;
|
|
struct i2c_algo_bit_data bit_algo;
|
|
struct drm_i915_private *i915;
|
|
};
|
|
|
|
struct drm_info_list {
|
|
const char *name;
|
|
int (*show)(struct seq_file *, void *);
|
|
u32 driver_features;
|
|
void *data;
|
|
};
|
|
|
|
struct drm_info_node {
|
|
struct drm_minor *minor;
|
|
const struct drm_info_list *info_ent;
|
|
struct list_head list;
|
|
struct dentry *dent;
|
|
};
|
|
|
|
struct virtio_gpu_rect {
|
|
__le32 x;
|
|
__le32 y;
|
|
__le32 width;
|
|
__le32 height;
|
|
};
|
|
|
|
struct virtio_gpu_display_one {
|
|
struct virtio_gpu_rect r;
|
|
__le32 enabled;
|
|
__le32 flags;
|
|
};
|
|
|
|
typedef __u64 __le64;
|
|
|
|
struct virtio_gpu_ctrl_hdr {
|
|
__le32 type;
|
|
__le32 flags;
|
|
__le64 fence_id;
|
|
__le32 ctx_id;
|
|
__u8 ring_idx;
|
|
__u8 padding[3];
|
|
};
|
|
|
|
struct virtio_gpu_cursor_pos {
|
|
__le32 scanout_id;
|
|
__le32 x;
|
|
__le32 y;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_update_cursor {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_cursor_pos pos;
|
|
__le32 resource_id;
|
|
__le32 hot_x;
|
|
__le32 hot_y;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_output {
|
|
int index;
|
|
struct drm_crtc crtc;
|
|
struct drm_connector conn;
|
|
struct drm_encoder enc;
|
|
struct virtio_gpu_display_one info;
|
|
struct virtio_gpu_update_cursor cursor;
|
|
struct edid *edid;
|
|
int cur_x;
|
|
int cur_y;
|
|
bool needs_modeset;
|
|
};
|
|
|
|
struct virtqueue;
|
|
|
|
struct virtio_gpu_queue {
|
|
struct virtqueue *vq;
|
|
spinlock_t qlock;
|
|
wait_queue_head_t ack_queue;
|
|
struct work_struct dequeue_work;
|
|
uint32_t seqno;
|
|
};
|
|
|
|
struct virtio_gpu_fence_driver {
|
|
atomic64_t last_fence_id;
|
|
uint64_t current_fence_id;
|
|
uint64_t context;
|
|
struct list_head fences;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct virtio_shm_region {
|
|
u64 addr;
|
|
u64 len;
|
|
};
|
|
|
|
struct virtio_device;
|
|
|
|
struct virtio_gpu_drv_capset;
|
|
|
|
struct virtio_gpu_device {
|
|
struct drm_device *ddev;
|
|
struct virtio_device *vdev;
|
|
struct virtio_gpu_output outputs[16];
|
|
uint32_t num_scanouts;
|
|
struct virtio_gpu_queue ctrlq;
|
|
struct virtio_gpu_queue cursorq;
|
|
struct kmem_cache *vbufs;
|
|
atomic_t pending_commands;
|
|
struct ida resource_ida;
|
|
wait_queue_head_t resp_wq;
|
|
spinlock_t display_info_lock;
|
|
bool display_info_pending;
|
|
struct virtio_gpu_fence_driver fence_drv;
|
|
struct ida ctx_id_ida;
|
|
bool has_virgl_3d;
|
|
bool has_edid;
|
|
bool has_indirect;
|
|
bool has_resource_assign_uuid;
|
|
bool has_resource_blob;
|
|
bool has_host_visible;
|
|
bool has_context_init;
|
|
struct virtio_shm_region host_visible_region;
|
|
struct drm_mm host_visible_mm;
|
|
struct work_struct config_changed_work;
|
|
struct work_struct obj_free_work;
|
|
spinlock_t obj_free_lock;
|
|
struct list_head obj_free_list;
|
|
struct virtio_gpu_drv_capset *capsets;
|
|
uint32_t num_capsets;
|
|
uint64_t capset_id_mask;
|
|
struct list_head cap_cache;
|
|
spinlock_t resource_export_lock;
|
|
spinlock_t host_visible_lock;
|
|
};
|
|
|
|
struct virtio_device_id {
|
|
__u32 device;
|
|
__u32 vendor;
|
|
};
|
|
|
|
struct vringh_config_ops;
|
|
|
|
struct virtio_config_ops;
|
|
|
|
struct virtio_device {
|
|
int index;
|
|
bool failed;
|
|
bool config_enabled;
|
|
bool config_change_pending;
|
|
spinlock_t config_lock;
|
|
spinlock_t vqs_list_lock;
|
|
struct device dev;
|
|
struct virtio_device_id id;
|
|
const struct virtio_config_ops *config;
|
|
const struct vringh_config_ops *vringh_config;
|
|
struct list_head vqs;
|
|
u64 features;
|
|
void *priv;
|
|
};
|
|
|
|
typedef void vq_callback_t(struct virtqueue *);
|
|
|
|
struct virtio_config_ops {
|
|
void (*get)(struct virtio_device *, unsigned int, void *, unsigned int);
|
|
void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int);
|
|
u32 (*generation)(struct virtio_device *);
|
|
u8 (*get_status)(struct virtio_device *);
|
|
void (*set_status)(struct virtio_device *, u8);
|
|
void (*reset)(struct virtio_device *);
|
|
int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *);
|
|
void (*del_vqs)(struct virtio_device *);
|
|
void (*synchronize_cbs)(struct virtio_device *);
|
|
u64 (*get_features)(struct virtio_device *);
|
|
int (*finalize_features)(struct virtio_device *);
|
|
const char * (*bus_name)(struct virtio_device *);
|
|
int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *);
|
|
const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int);
|
|
bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8);
|
|
int (*disable_vq_and_reset)(struct virtqueue *);
|
|
int (*enable_vq_after_reset)(struct virtqueue *);
|
|
};
|
|
|
|
struct virtqueue {
|
|
struct list_head list;
|
|
void (*callback)(struct virtqueue *);
|
|
const char *name;
|
|
struct virtio_device *vdev;
|
|
unsigned int index;
|
|
unsigned int num_free;
|
|
unsigned int num_max;
|
|
void *priv;
|
|
bool reset;
|
|
};
|
|
|
|
struct virtio_gpu_drv_capset {
|
|
uint32_t id;
|
|
uint32_t max_version;
|
|
uint32_t max_size;
|
|
};
|
|
|
|
enum device_link_state {
|
|
DL_STATE_NONE = -1,
|
|
DL_STATE_DORMANT = 0,
|
|
DL_STATE_AVAILABLE = 1,
|
|
DL_STATE_CONSUMER_PROBE = 2,
|
|
DL_STATE_ACTIVE = 3,
|
|
DL_STATE_SUPPLIER_UNBIND = 4,
|
|
};
|
|
|
|
enum hrtimer_mode {
|
|
HRTIMER_MODE_ABS = 0,
|
|
HRTIMER_MODE_REL = 1,
|
|
HRTIMER_MODE_PINNED = 2,
|
|
HRTIMER_MODE_SOFT = 4,
|
|
HRTIMER_MODE_HARD = 8,
|
|
HRTIMER_MODE_ABS_PINNED = 2,
|
|
HRTIMER_MODE_REL_PINNED = 3,
|
|
HRTIMER_MODE_ABS_SOFT = 4,
|
|
HRTIMER_MODE_REL_SOFT = 5,
|
|
HRTIMER_MODE_ABS_PINNED_SOFT = 6,
|
|
HRTIMER_MODE_REL_PINNED_SOFT = 7,
|
|
HRTIMER_MODE_ABS_HARD = 8,
|
|
HRTIMER_MODE_REL_HARD = 9,
|
|
HRTIMER_MODE_ABS_PINNED_HARD = 10,
|
|
HRTIMER_MODE_REL_PINNED_HARD = 11,
|
|
};
|
|
|
|
struct device_link {
|
|
struct device *supplier;
|
|
struct list_head s_node;
|
|
struct device *consumer;
|
|
struct list_head c_node;
|
|
struct device link_dev;
|
|
enum device_link_state status;
|
|
u32 flags;
|
|
refcount_t rpm_active;
|
|
struct kref kref;
|
|
struct work_struct rm_work;
|
|
bool supplier_preactivated;
|
|
};
|
|
|
|
struct klist_node;
|
|
|
|
struct klist {
|
|
spinlock_t k_lock;
|
|
struct list_head k_list;
|
|
void (*get)(struct klist_node *);
|
|
void (*put)(struct klist_node *);
|
|
};
|
|
|
|
struct klist_node {
|
|
void *n_klist;
|
|
struct list_head n_node;
|
|
struct kref n_ref;
|
|
};
|
|
|
|
struct device_private {
|
|
struct klist klist_children;
|
|
struct klist_node knode_parent;
|
|
struct klist_node knode_driver;
|
|
struct klist_node knode_bus;
|
|
struct klist_node knode_class;
|
|
struct list_head deferred_probe;
|
|
struct device_driver *async_driver;
|
|
char *deferred_probe_reason;
|
|
struct device *device;
|
|
u8 dead: 1;
|
|
};
|
|
|
|
struct driver_private {
|
|
struct kobject kobj;
|
|
struct klist klist_devices;
|
|
struct klist_node knode_bus;
|
|
struct module_kobject *mkobj;
|
|
struct device_driver *driver;
|
|
};
|
|
|
|
struct wake_irq {
|
|
struct device *dev;
|
|
unsigned int status;
|
|
int irq;
|
|
const char *name;
|
|
};
|
|
|
|
struct subsys_private {
|
|
struct kset subsys;
|
|
struct kset *devices_kset;
|
|
struct list_head interfaces;
|
|
struct mutex mutex;
|
|
struct kset *drivers_kset;
|
|
struct klist klist_devices;
|
|
struct klist klist_drivers;
|
|
struct blocking_notifier_head bus_notifier;
|
|
unsigned int drivers_autoprobe: 1;
|
|
struct bus_type *bus;
|
|
struct kset glue_dirs;
|
|
struct class *class;
|
|
struct lock_class_key lock_key;
|
|
};
|
|
|
|
typedef int (*pm_callback_t)(struct device *);
|
|
|
|
enum scsi_target_state {
|
|
STARGET_CREATED = 1,
|
|
STARGET_RUNNING = 2,
|
|
STARGET_REMOVE = 3,
|
|
STARGET_CREATED_REMOVE = 4,
|
|
STARGET_DEL = 5,
|
|
};
|
|
|
|
enum scsi_disposition {
|
|
NEEDS_RETRY = 8193,
|
|
SUCCESS = 8194,
|
|
FAILED = 8195,
|
|
QUEUED = 8196,
|
|
SOFT_ERROR = 8197,
|
|
ADD_TO_MLQUEUE = 8198,
|
|
TIMEOUT_ERROR = 8199,
|
|
SCSI_RETURN_NOT_HANDLED = 8200,
|
|
FAST_IO_FAIL = 8201,
|
|
};
|
|
|
|
enum scsi_device_state {
|
|
SDEV_CREATED = 1,
|
|
SDEV_RUNNING = 2,
|
|
SDEV_CANCEL = 3,
|
|
SDEV_DEL = 4,
|
|
SDEV_QUIESCE = 5,
|
|
SDEV_OFFLINE = 6,
|
|
SDEV_TRANSPORT_OFFLINE = 7,
|
|
SDEV_BLOCK = 8,
|
|
SDEV_CREATED_BLOCK = 9,
|
|
};
|
|
|
|
enum scsi_cmnd_submitter {
|
|
SUBMITTED_BY_BLOCK_LAYER = 0,
|
|
SUBMITTED_BY_SCSI_ERROR_HANDLER = 1,
|
|
SUBMITTED_BY_SCSI_RESET_IOCTL = 2,
|
|
};
|
|
|
|
enum scsi_timeout_action {
|
|
SCSI_EH_DONE = 0,
|
|
SCSI_EH_RESET_TIMER = 1,
|
|
SCSI_EH_NOT_HANDLED = 2,
|
|
};
|
|
|
|
enum scsi_host_state {
|
|
SHOST_CREATED = 1,
|
|
SHOST_RUNNING = 2,
|
|
SHOST_CANCEL = 3,
|
|
SHOST_DEL = 4,
|
|
SHOST_RECOVERY = 5,
|
|
SHOST_CANCEL_RECOVERY = 6,
|
|
SHOST_DEL_RECOVERY = 7,
|
|
};
|
|
|
|
enum scsi_host_status {
|
|
DID_OK = 0,
|
|
DID_NO_CONNECT = 1,
|
|
DID_BUS_BUSY = 2,
|
|
DID_TIME_OUT = 3,
|
|
DID_BAD_TARGET = 4,
|
|
DID_ABORT = 5,
|
|
DID_PARITY = 6,
|
|
DID_ERROR = 7,
|
|
DID_RESET = 8,
|
|
DID_BAD_INTR = 9,
|
|
DID_PASSTHROUGH = 10,
|
|
DID_SOFT_ERROR = 11,
|
|
DID_IMM_RETRY = 12,
|
|
DID_REQUEUE = 13,
|
|
DID_TRANSPORT_DISRUPTED = 14,
|
|
DID_TRANSPORT_FAILFAST = 15,
|
|
DID_TRANSPORT_MARGINAL = 20,
|
|
};
|
|
|
|
enum scsi_ml_status {
|
|
SCSIML_STAT_OK = 0,
|
|
SCSIML_STAT_RESV_CONFLICT = 1,
|
|
SCSIML_STAT_NOSPC = 2,
|
|
SCSIML_STAT_MED_ERROR = 3,
|
|
SCSIML_STAT_TGT_FAILURE = 4,
|
|
};
|
|
|
|
enum scsi_prot_operations {
|
|
SCSI_PROT_NORMAL = 0,
|
|
SCSI_PROT_READ_INSERT = 1,
|
|
SCSI_PROT_WRITE_STRIP = 2,
|
|
SCSI_PROT_READ_STRIP = 3,
|
|
SCSI_PROT_WRITE_INSERT = 4,
|
|
SCSI_PROT_READ_PASS = 5,
|
|
SCSI_PROT_WRITE_PASS = 6,
|
|
};
|
|
|
|
enum sam_status {
|
|
SAM_STAT_GOOD = 0,
|
|
SAM_STAT_CHECK_CONDITION = 2,
|
|
SAM_STAT_CONDITION_MET = 4,
|
|
SAM_STAT_BUSY = 8,
|
|
SAM_STAT_INTERMEDIATE = 16,
|
|
SAM_STAT_INTERMEDIATE_CONDITION_MET = 20,
|
|
SAM_STAT_RESERVATION_CONFLICT = 24,
|
|
SAM_STAT_COMMAND_TERMINATED = 34,
|
|
SAM_STAT_TASK_SET_FULL = 40,
|
|
SAM_STAT_ACA_ACTIVE = 48,
|
|
SAM_STAT_TASK_ABORTED = 64,
|
|
};
|
|
|
|
enum scsi_device_event {
|
|
SDEV_EVT_MEDIA_CHANGE = 1,
|
|
SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2,
|
|
SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3,
|
|
SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4,
|
|
SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5,
|
|
SDEV_EVT_LUN_CHANGE_REPORTED = 6,
|
|
SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7,
|
|
SDEV_EVT_POWER_ON_RESET_OCCURRED = 8,
|
|
SDEV_EVT_FIRST = 1,
|
|
SDEV_EVT_LAST = 8,
|
|
SDEV_EVT_MAXBITS = 9,
|
|
};
|
|
|
|
struct scsi_data_buffer {
|
|
struct sg_table table;
|
|
unsigned int length;
|
|
};
|
|
|
|
struct scsi_device;
|
|
|
|
struct scsi_cmnd {
|
|
struct scsi_device *device;
|
|
struct list_head eh_entry;
|
|
struct delayed_work abort_work;
|
|
struct callback_head rcu;
|
|
int eh_eflags;
|
|
int budget_token;
|
|
unsigned long jiffies_at_alloc;
|
|
int retries;
|
|
int allowed;
|
|
unsigned char prot_op;
|
|
unsigned char prot_type;
|
|
unsigned char prot_flags;
|
|
enum scsi_cmnd_submitter submitter;
|
|
unsigned short cmd_len;
|
|
enum dma_data_direction sc_data_direction;
|
|
unsigned char cmnd[32];
|
|
struct scsi_data_buffer sdb;
|
|
struct scsi_data_buffer *prot_sdb;
|
|
unsigned int underflow;
|
|
unsigned int transfersize;
|
|
unsigned int resid_len;
|
|
unsigned int sense_len;
|
|
unsigned char *sense_buffer;
|
|
int flags;
|
|
unsigned long state;
|
|
unsigned int extra_len;
|
|
unsigned char *host_scribble;
|
|
int result;
|
|
};
|
|
|
|
typedef __u64 blist_flags_t;
|
|
|
|
struct bsg_device;
|
|
|
|
struct Scsi_Host;
|
|
|
|
struct scsi_vpd;
|
|
|
|
struct scsi_target;
|
|
|
|
struct scsi_device_handler;
|
|
|
|
struct scsi_device {
|
|
struct Scsi_Host *host;
|
|
struct request_queue *request_queue;
|
|
struct list_head siblings;
|
|
struct list_head same_target_siblings;
|
|
struct sbitmap budget_map;
|
|
atomic_t device_blocked;
|
|
atomic_t restarts;
|
|
spinlock_t list_lock;
|
|
struct list_head starved_entry;
|
|
unsigned short queue_depth;
|
|
unsigned short max_queue_depth;
|
|
unsigned short last_queue_full_depth;
|
|
unsigned short last_queue_full_count;
|
|
unsigned long last_queue_full_time;
|
|
unsigned long queue_ramp_up_period;
|
|
unsigned long last_queue_ramp_up;
|
|
unsigned int id;
|
|
unsigned int channel;
|
|
u64 lun;
|
|
unsigned int manufacturer;
|
|
unsigned int sector_size;
|
|
void *hostdata;
|
|
unsigned char type;
|
|
char scsi_level;
|
|
char inq_periph_qual;
|
|
struct mutex inquiry_mutex;
|
|
unsigned char inquiry_len;
|
|
unsigned char *inquiry;
|
|
const char *vendor;
|
|
const char *model;
|
|
const char *rev;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg0;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg83;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg80;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg89;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb0;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb1;
|
|
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb2;
|
|
struct scsi_target *sdev_target;
|
|
blist_flags_t sdev_bflags;
|
|
unsigned int eh_timeout;
|
|
unsigned int removable: 1;
|
|
unsigned int changed: 1;
|
|
unsigned int busy: 1;
|
|
unsigned int lockable: 1;
|
|
unsigned int locked: 1;
|
|
unsigned int borken: 1;
|
|
unsigned int disconnect: 1;
|
|
unsigned int soft_reset: 1;
|
|
unsigned int sdtr: 1;
|
|
unsigned int wdtr: 1;
|
|
unsigned int ppr: 1;
|
|
unsigned int tagged_supported: 1;
|
|
unsigned int simple_tags: 1;
|
|
unsigned int was_reset: 1;
|
|
unsigned int expecting_cc_ua: 1;
|
|
unsigned int use_10_for_rw: 1;
|
|
unsigned int use_10_for_ms: 1;
|
|
unsigned int set_dbd_for_ms: 1;
|
|
unsigned int no_report_opcodes: 1;
|
|
unsigned int no_write_same: 1;
|
|
unsigned int use_16_for_rw: 1;
|
|
unsigned int use_16_for_sync: 1;
|
|
unsigned int skip_ms_page_8: 1;
|
|
unsigned int skip_ms_page_3f: 1;
|
|
unsigned int skip_vpd_pages: 1;
|
|
unsigned int try_vpd_pages: 1;
|
|
unsigned int use_192_bytes_for_3f: 1;
|
|
unsigned int no_start_on_add: 1;
|
|
unsigned int allow_restart: 1;
|
|
unsigned int manage_start_stop: 1;
|
|
unsigned int start_stop_pwr_cond: 1;
|
|
unsigned int no_uld_attach: 1;
|
|
unsigned int select_no_atn: 1;
|
|
unsigned int fix_capacity: 1;
|
|
unsigned int guess_capacity: 1;
|
|
unsigned int retry_hwerror: 1;
|
|
unsigned int last_sector_bug: 1;
|
|
unsigned int no_read_disc_info: 1;
|
|
unsigned int no_read_capacity_16: 1;
|
|
unsigned int try_rc_10_first: 1;
|
|
unsigned int security_supported: 1;
|
|
unsigned int is_visible: 1;
|
|
unsigned int wce_default_on: 1;
|
|
unsigned int no_dif: 1;
|
|
unsigned int broken_fua: 1;
|
|
unsigned int lun_in_cdb: 1;
|
|
unsigned int unmap_limit_for_ws: 1;
|
|
unsigned int rpm_autosuspend: 1;
|
|
unsigned int ignore_media_change: 1;
|
|
unsigned int silence_suspend: 1;
|
|
unsigned int queue_stopped;
|
|
bool offline_already;
|
|
atomic_t disk_events_disable_depth;
|
|
unsigned long supported_events[1];
|
|
unsigned long pending_events[1];
|
|
struct list_head event_list;
|
|
struct work_struct event_work;
|
|
unsigned int max_device_blocked;
|
|
atomic_t iorequest_cnt;
|
|
atomic_t iodone_cnt;
|
|
atomic_t ioerr_cnt;
|
|
atomic_t iotmo_cnt;
|
|
struct device sdev_gendev;
|
|
struct device sdev_dev;
|
|
struct work_struct requeue_work;
|
|
struct scsi_device_handler *handler;
|
|
void *handler_data;
|
|
size_t dma_drain_len;
|
|
void *dma_drain_buf;
|
|
unsigned int sg_timeout;
|
|
unsigned int sg_reserved_size;
|
|
struct bsg_device *bsg_dev;
|
|
unsigned char access_state;
|
|
struct mutex state_mutex;
|
|
enum scsi_device_state sdev_state;
|
|
struct task_struct *quiesced_by;
|
|
unsigned long sdev_data[0];
|
|
};
|
|
|
|
struct scsi_host_template;
|
|
|
|
struct scsi_transport_template;
|
|
|
|
struct Scsi_Host {
|
|
struct list_head __devices;
|
|
struct list_head __targets;
|
|
struct list_head starved_list;
|
|
spinlock_t default_lock;
|
|
spinlock_t *host_lock;
|
|
struct mutex scan_mutex;
|
|
struct list_head eh_abort_list;
|
|
struct list_head eh_cmd_q;
|
|
struct task_struct *ehandler;
|
|
struct completion *eh_action;
|
|
wait_queue_head_t host_wait;
|
|
struct scsi_host_template *hostt;
|
|
struct scsi_transport_template *transportt;
|
|
struct kref tagset_refcnt;
|
|
struct completion tagset_freed;
|
|
struct blk_mq_tag_set tag_set;
|
|
atomic_t host_blocked;
|
|
unsigned int host_failed;
|
|
unsigned int host_eh_scheduled;
|
|
unsigned int host_no;
|
|
int eh_deadline;
|
|
unsigned long last_reset;
|
|
unsigned int max_channel;
|
|
unsigned int max_id;
|
|
u64 max_lun;
|
|
unsigned int unique_id;
|
|
unsigned short max_cmd_len;
|
|
int this_id;
|
|
int can_queue;
|
|
short cmd_per_lun;
|
|
unsigned short sg_tablesize;
|
|
unsigned short sg_prot_tablesize;
|
|
unsigned int max_sectors;
|
|
unsigned int opt_sectors;
|
|
unsigned int max_segment_size;
|
|
unsigned long dma_boundary;
|
|
unsigned long virt_boundary_mask;
|
|
unsigned int nr_hw_queues;
|
|
unsigned int nr_maps;
|
|
unsigned int active_mode: 2;
|
|
unsigned int host_self_blocked: 1;
|
|
unsigned int reverse_ordering: 1;
|
|
unsigned int tmf_in_progress: 1;
|
|
unsigned int async_scan: 1;
|
|
unsigned int eh_noresume: 1;
|
|
unsigned int no_write_same: 1;
|
|
unsigned int host_tagset: 1;
|
|
unsigned int short_inquiry: 1;
|
|
unsigned int no_scsi2_lun_in_cdb: 1;
|
|
char work_q_name[20];
|
|
struct workqueue_struct *work_q;
|
|
struct workqueue_struct *tmf_work_q;
|
|
unsigned int max_host_blocked;
|
|
unsigned int prot_capabilities;
|
|
unsigned char prot_guard_type;
|
|
unsigned long base;
|
|
unsigned long io_port;
|
|
unsigned char n_io_port;
|
|
unsigned char dma_channel;
|
|
unsigned int irq;
|
|
enum scsi_host_state shost_state;
|
|
struct device shost_gendev;
|
|
struct device shost_dev;
|
|
void *shost_data;
|
|
struct device *dma_dev;
|
|
unsigned long hostdata[0];
|
|
};
|
|
|
|
struct scsi_host_template {
|
|
unsigned int cmd_size;
|
|
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
|
|
void (*commit_rqs)(struct Scsi_Host *, u16);
|
|
struct module *module;
|
|
const char *name;
|
|
const char * (*info)(struct Scsi_Host *);
|
|
int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *);
|
|
int (*compat_ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *);
|
|
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
|
|
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
|
|
int (*eh_abort_handler)(struct scsi_cmnd *);
|
|
int (*eh_device_reset_handler)(struct scsi_cmnd *);
|
|
int (*eh_target_reset_handler)(struct scsi_cmnd *);
|
|
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
|
|
int (*eh_host_reset_handler)(struct scsi_cmnd *);
|
|
int (*slave_alloc)(struct scsi_device *);
|
|
int (*slave_configure)(struct scsi_device *);
|
|
void (*slave_destroy)(struct scsi_device *);
|
|
int (*target_alloc)(struct scsi_target *);
|
|
void (*target_destroy)(struct scsi_target *);
|
|
int (*scan_finished)(struct Scsi_Host *, unsigned long);
|
|
void (*scan_start)(struct Scsi_Host *);
|
|
int (*change_queue_depth)(struct scsi_device *, int);
|
|
void (*map_queues)(struct Scsi_Host *);
|
|
int (*mq_poll)(struct Scsi_Host *, unsigned int);
|
|
bool (*dma_need_drain)(struct request *);
|
|
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
|
|
void (*unlock_native_capacity)(struct scsi_device *);
|
|
int (*show_info)(struct seq_file *, struct Scsi_Host *);
|
|
int (*write_info)(struct Scsi_Host *, char *, int);
|
|
enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *);
|
|
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
|
|
int (*host_reset)(struct Scsi_Host *, int);
|
|
const char *proc_name;
|
|
int can_queue;
|
|
int this_id;
|
|
unsigned short sg_tablesize;
|
|
unsigned short sg_prot_tablesize;
|
|
unsigned int max_sectors;
|
|
unsigned int max_segment_size;
|
|
unsigned long dma_boundary;
|
|
unsigned long virt_boundary_mask;
|
|
short cmd_per_lun;
|
|
int tag_alloc_policy;
|
|
unsigned int track_queue_depth: 1;
|
|
unsigned int supported_mode: 2;
|
|
unsigned int emulated: 1;
|
|
unsigned int skip_settle_delay: 1;
|
|
unsigned int no_write_same: 1;
|
|
unsigned int host_tagset: 1;
|
|
unsigned int max_host_blocked;
|
|
const struct attribute_group **shost_groups;
|
|
const struct attribute_group **sdev_groups;
|
|
u64 vendor_id;
|
|
int rpm_autosuspend_delay;
|
|
};
|
|
|
|
struct scsi_target {
|
|
struct scsi_device *starget_sdev_user;
|
|
struct list_head siblings;
|
|
struct list_head devices;
|
|
struct device dev;
|
|
struct kref reap_ref;
|
|
unsigned int channel;
|
|
unsigned int id;
|
|
unsigned int create: 1;
|
|
unsigned int single_lun: 1;
|
|
unsigned int pdt_1f_for_no_lun: 1;
|
|
unsigned int no_report_luns: 1;
|
|
unsigned int expecting_lun_change: 1;
|
|
atomic_t target_busy;
|
|
atomic_t target_blocked;
|
|
unsigned int can_queue;
|
|
unsigned int max_target_blocked;
|
|
char scsi_level;
|
|
enum scsi_target_state state;
|
|
void *hostdata;
|
|
unsigned long starget_data[0];
|
|
};
|
|
|
|
struct attribute_container {
|
|
struct list_head node;
|
|
struct klist containers;
|
|
struct class *class;
|
|
const struct attribute_group *grp;
|
|
struct device_attribute **attrs;
|
|
int (*match)(struct attribute_container *, struct device *);
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct transport_container {
|
|
struct attribute_container ac;
|
|
const struct attribute_group *statistics;
|
|
};
|
|
|
|
struct scsi_transport_template {
|
|
struct transport_container host_attrs;
|
|
struct transport_container target_attrs;
|
|
struct transport_container device_attrs;
|
|
int (*user_scan)(struct Scsi_Host *, uint, uint, u64);
|
|
int device_size;
|
|
int device_private_offset;
|
|
int target_size;
|
|
int target_private_offset;
|
|
int host_size;
|
|
unsigned int create_work_queue: 1;
|
|
void (*eh_strategy_handler)(struct Scsi_Host *);
|
|
};
|
|
|
|
struct scsi_vpd {
|
|
struct callback_head rcu;
|
|
int len;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
typedef void (*activate_complete)(void *, int);
|
|
|
|
struct scsi_sense_hdr;
|
|
|
|
struct scsi_device_handler {
|
|
struct list_head list;
|
|
struct module *module;
|
|
const char *name;
|
|
enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *);
|
|
int (*attach)(struct scsi_device *);
|
|
void (*detach)(struct scsi_device *);
|
|
int (*activate)(struct scsi_device *, activate_complete, void *);
|
|
blk_status_t (*prep_fn)(struct scsi_device *, struct request *);
|
|
int (*set_params)(struct scsi_device *, const char *);
|
|
void (*rescan)(struct scsi_device *);
|
|
};
|
|
|
|
struct scsi_sense_hdr {
|
|
u8 response_code;
|
|
u8 sense_key;
|
|
u8 asc;
|
|
u8 ascq;
|
|
u8 byte4;
|
|
u8 byte5;
|
|
u8 byte6;
|
|
u8 additional_length;
|
|
};
|
|
|
|
struct scsi_driver {
|
|
struct device_driver gendrv;
|
|
void (*rescan)(struct device *);
|
|
blk_status_t (*init_command)(struct scsi_cmnd *);
|
|
void (*uninit_command)(struct scsi_cmnd *);
|
|
int (*done)(struct scsi_cmnd *);
|
|
int (*eh_action)(struct scsi_cmnd *, int);
|
|
void (*eh_reset)(struct scsi_cmnd *);
|
|
};
|
|
|
|
typedef __u32 blk_mq_req_flags_t;
|
|
|
|
struct scsi_eh_save {
|
|
int result;
|
|
unsigned int resid_len;
|
|
int eh_eflags;
|
|
enum dma_data_direction data_direction;
|
|
unsigned int underflow;
|
|
unsigned char cmd_len;
|
|
unsigned char prot_op;
|
|
unsigned char cmnd[32];
|
|
struct scsi_data_buffer sdb;
|
|
struct scatterlist sense_sgl;
|
|
};
|
|
|
|
struct ethtool_drvinfo {
|
|
__u32 cmd;
|
|
char driver[32];
|
|
char version[32];
|
|
char fw_version[32];
|
|
char bus_info[32];
|
|
char erom_version[32];
|
|
char reserved2[12];
|
|
__u32 n_priv_flags;
|
|
__u32 n_stats;
|
|
__u32 testinfo_len;
|
|
__u32 eedump_len;
|
|
__u32 regdump_len;
|
|
};
|
|
|
|
struct ethtool_regs {
|
|
__u32 cmd;
|
|
__u32 version;
|
|
__u32 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct ethtool_wolinfo {
|
|
__u32 cmd;
|
|
__u32 supported;
|
|
__u32 wolopts;
|
|
__u8 sopass[6];
|
|
};
|
|
|
|
enum ethtool_link_ext_substate_autoneg {
|
|
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 3,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 4,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 5,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 6,
|
|
};
|
|
|
|
enum ethtool_link_ext_substate_link_training {
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 2,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 3,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 4,
|
|
};
|
|
|
|
enum ethtool_link_ext_substate_link_logical_mismatch {
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 2,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 3,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 4,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 5,
|
|
};
|
|
|
|
enum ethtool_link_ext_substate_bad_signal_integrity {
|
|
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 2,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST = 3,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS = 4,
|
|
};
|
|
|
|
enum ethtool_link_ext_substate_cable_issue {
|
|
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
|
|
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2,
|
|
};
|
|
|
|
enum ethtool_link_ext_substate_module {
|
|
ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
|
|
};
|
|
|
|
enum ethtool_link_ext_state {
|
|
ETHTOOL_LINK_EXT_STATE_AUTONEG = 0,
|
|
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1,
|
|
ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2,
|
|
ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3,
|
|
ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4,
|
|
ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5,
|
|
ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6,
|
|
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7,
|
|
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8,
|
|
ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9,
|
|
ETHTOOL_LINK_EXT_STATE_MODULE = 10,
|
|
};
|
|
|
|
struct ethtool_link_ext_state_info {
|
|
enum ethtool_link_ext_state link_ext_state;
|
|
union {
|
|
enum ethtool_link_ext_substate_autoneg autoneg;
|
|
enum ethtool_link_ext_substate_link_training link_training;
|
|
enum ethtool_link_ext_substate_link_logical_mismatch link_logical_mismatch;
|
|
enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
|
|
enum ethtool_link_ext_substate_cable_issue cable_issue;
|
|
enum ethtool_link_ext_substate_module module;
|
|
u32 __link_ext_substate;
|
|
};
|
|
};
|
|
|
|
struct ethtool_link_ext_stats {
|
|
u64 link_down_events;
|
|
};
|
|
|
|
struct ethtool_eeprom {
|
|
__u32 cmd;
|
|
__u32 magic;
|
|
__u32 offset;
|
|
__u32 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct ethtool_coalesce {
|
|
__u32 cmd;
|
|
__u32 rx_coalesce_usecs;
|
|
__u32 rx_max_coalesced_frames;
|
|
__u32 rx_coalesce_usecs_irq;
|
|
__u32 rx_max_coalesced_frames_irq;
|
|
__u32 tx_coalesce_usecs;
|
|
__u32 tx_max_coalesced_frames;
|
|
__u32 tx_coalesce_usecs_irq;
|
|
__u32 tx_max_coalesced_frames_irq;
|
|
__u32 stats_block_coalesce_usecs;
|
|
__u32 use_adaptive_rx_coalesce;
|
|
__u32 use_adaptive_tx_coalesce;
|
|
__u32 pkt_rate_low;
|
|
__u32 rx_coalesce_usecs_low;
|
|
__u32 rx_max_coalesced_frames_low;
|
|
__u32 tx_coalesce_usecs_low;
|
|
__u32 tx_max_coalesced_frames_low;
|
|
__u32 pkt_rate_high;
|
|
__u32 rx_coalesce_usecs_high;
|
|
__u32 rx_max_coalesced_frames_high;
|
|
__u32 tx_coalesce_usecs_high;
|
|
__u32 tx_max_coalesced_frames_high;
|
|
__u32 rate_sample_interval;
|
|
};
|
|
|
|
struct kernel_ethtool_coalesce {
|
|
u8 use_cqe_mode_tx;
|
|
u8 use_cqe_mode_rx;
|
|
u32 tx_aggr_max_bytes;
|
|
u32 tx_aggr_max_frames;
|
|
u32 tx_aggr_time_usecs;
|
|
};
|
|
|
|
struct ethtool_ringparam {
|
|
__u32 cmd;
|
|
__u32 rx_max_pending;
|
|
__u32 rx_mini_max_pending;
|
|
__u32 rx_jumbo_max_pending;
|
|
__u32 tx_max_pending;
|
|
__u32 rx_pending;
|
|
__u32 rx_mini_pending;
|
|
__u32 rx_jumbo_pending;
|
|
__u32 tx_pending;
|
|
};
|
|
|
|
struct kernel_ethtool_ringparam {
|
|
u32 rx_buf_len;
|
|
u8 tcp_data_split;
|
|
u8 tx_push;
|
|
u8 rx_push;
|
|
u32 cqe_size;
|
|
};
|
|
|
|
enum ethtool_mac_stats_src {
|
|
ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0,
|
|
ETHTOOL_MAC_STATS_SRC_EMAC = 1,
|
|
ETHTOOL_MAC_STATS_SRC_PMAC = 2,
|
|
};
|
|
|
|
struct ethtool_pause_stats {
|
|
enum ethtool_mac_stats_src src;
|
|
union {
|
|
struct {
|
|
u64 tx_pause_frames;
|
|
u64 rx_pause_frames;
|
|
};
|
|
struct {
|
|
u64 tx_pause_frames;
|
|
u64 rx_pause_frames;
|
|
} stats;
|
|
};
|
|
};
|
|
|
|
struct ethtool_pauseparam {
|
|
__u32 cmd;
|
|
__u32 autoneg;
|
|
__u32 rx_pause;
|
|
__u32 tx_pause;
|
|
};
|
|
|
|
struct ethtool_test {
|
|
__u32 cmd;
|
|
__u32 flags;
|
|
__u32 reserved;
|
|
__u32 len;
|
|
__u64 data[0];
|
|
};
|
|
|
|
struct ethtool_stats {
|
|
__u32 cmd;
|
|
__u32 n_stats;
|
|
__u64 data[0];
|
|
};
|
|
|
|
struct ethtool_tcpip4_spec {
|
|
__be32 ip4src;
|
|
__be32 ip4dst;
|
|
__be16 psrc;
|
|
__be16 pdst;
|
|
__u8 tos;
|
|
};
|
|
|
|
struct ethtool_ah_espip4_spec {
|
|
__be32 ip4src;
|
|
__be32 ip4dst;
|
|
__be32 spi;
|
|
__u8 tos;
|
|
};
|
|
|
|
struct ethtool_usrip4_spec {
|
|
__be32 ip4src;
|
|
__be32 ip4dst;
|
|
__be32 l4_4_bytes;
|
|
__u8 tos;
|
|
__u8 ip_ver;
|
|
__u8 proto;
|
|
};
|
|
|
|
struct ethtool_tcpip6_spec {
|
|
__be32 ip6src[4];
|
|
__be32 ip6dst[4];
|
|
__be16 psrc;
|
|
__be16 pdst;
|
|
__u8 tclass;
|
|
};
|
|
|
|
struct ethtool_ah_espip6_spec {
|
|
__be32 ip6src[4];
|
|
__be32 ip6dst[4];
|
|
__be32 spi;
|
|
__u8 tclass;
|
|
};
|
|
|
|
struct ethtool_usrip6_spec {
|
|
__be32 ip6src[4];
|
|
__be32 ip6dst[4];
|
|
__be32 l4_4_bytes;
|
|
__u8 tclass;
|
|
__u8 l4_proto;
|
|
};
|
|
|
|
struct ethhdr {
|
|
unsigned char h_dest[6];
|
|
unsigned char h_source[6];
|
|
__be16 h_proto;
|
|
};
|
|
|
|
union ethtool_flow_union {
|
|
struct ethtool_tcpip4_spec tcp_ip4_spec;
|
|
struct ethtool_tcpip4_spec udp_ip4_spec;
|
|
struct ethtool_tcpip4_spec sctp_ip4_spec;
|
|
struct ethtool_ah_espip4_spec ah_ip4_spec;
|
|
struct ethtool_ah_espip4_spec esp_ip4_spec;
|
|
struct ethtool_usrip4_spec usr_ip4_spec;
|
|
struct ethtool_tcpip6_spec tcp_ip6_spec;
|
|
struct ethtool_tcpip6_spec udp_ip6_spec;
|
|
struct ethtool_tcpip6_spec sctp_ip6_spec;
|
|
struct ethtool_ah_espip6_spec ah_ip6_spec;
|
|
struct ethtool_ah_espip6_spec esp_ip6_spec;
|
|
struct ethtool_usrip6_spec usr_ip6_spec;
|
|
struct ethhdr ether_spec;
|
|
__u8 hdata[52];
|
|
};
|
|
|
|
struct ethtool_flow_ext {
|
|
__u8 padding[2];
|
|
unsigned char h_dest[6];
|
|
__be16 vlan_etype;
|
|
__be16 vlan_tci;
|
|
__be32 data[2];
|
|
};
|
|
|
|
struct ethtool_rx_flow_spec {
|
|
__u32 flow_type;
|
|
union ethtool_flow_union h_u;
|
|
struct ethtool_flow_ext h_ext;
|
|
union ethtool_flow_union m_u;
|
|
struct ethtool_flow_ext m_ext;
|
|
__u64 ring_cookie;
|
|
__u32 location;
|
|
};
|
|
|
|
struct ethtool_rxnfc {
|
|
__u32 cmd;
|
|
__u32 flow_type;
|
|
__u64 data;
|
|
struct ethtool_rx_flow_spec fs;
|
|
union {
|
|
__u32 rule_cnt;
|
|
__u32 rss_context;
|
|
};
|
|
__u32 rule_locs[0];
|
|
};
|
|
|
|
struct ethtool_flash {
|
|
__u32 cmd;
|
|
__u32 region;
|
|
char data[128];
|
|
};
|
|
|
|
struct ethtool_channels {
|
|
__u32 cmd;
|
|
__u32 max_rx;
|
|
__u32 max_tx;
|
|
__u32 max_other;
|
|
__u32 max_combined;
|
|
__u32 rx_count;
|
|
__u32 tx_count;
|
|
__u32 other_count;
|
|
__u32 combined_count;
|
|
};
|
|
|
|
struct ethtool_dump {
|
|
__u32 cmd;
|
|
__u32 version;
|
|
__u32 flag;
|
|
__u32 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct ethtool_ts_info {
|
|
__u32 cmd;
|
|
__u32 so_timestamping;
|
|
__s32 phc_index;
|
|
__u32 tx_types;
|
|
__u32 tx_reserved[3];
|
|
__u32 rx_filters;
|
|
__u32 rx_reserved[3];
|
|
};
|
|
|
|
struct ethtool_modinfo {
|
|
__u32 cmd;
|
|
__u32 type;
|
|
__u32 eeprom_len;
|
|
__u32 reserved[8];
|
|
};
|
|
|
|
struct ethtool_eee {
|
|
__u32 cmd;
|
|
__u32 supported;
|
|
__u32 advertised;
|
|
__u32 lp_advertised;
|
|
__u32 eee_active;
|
|
__u32 eee_enabled;
|
|
__u32 tx_lpi_enabled;
|
|
__u32 tx_lpi_timer;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
struct ethtool_tunable {
|
|
__u32 cmd;
|
|
__u32 id;
|
|
__u32 type_id;
|
|
__u32 len;
|
|
void *data[0];
|
|
};
|
|
|
|
struct ethtool_link_settings {
|
|
__u32 cmd;
|
|
__u32 speed;
|
|
__u8 duplex;
|
|
__u8 port;
|
|
__u8 phy_address;
|
|
__u8 autoneg;
|
|
__u8 mdio_support;
|
|
__u8 eth_tp_mdix;
|
|
__u8 eth_tp_mdix_ctrl;
|
|
__s8 link_mode_masks_nwords;
|
|
__u8 transceiver;
|
|
__u8 master_slave_cfg;
|
|
__u8 master_slave_state;
|
|
__u8 rate_matching;
|
|
__u32 reserved[7];
|
|
__u32 link_mode_masks[0];
|
|
};
|
|
|
|
struct ethtool_link_ksettings {
|
|
struct ethtool_link_settings base;
|
|
struct {
|
|
unsigned long supported[2];
|
|
unsigned long advertising[2];
|
|
unsigned long lp_advertising[2];
|
|
} link_modes;
|
|
u32 lanes;
|
|
};
|
|
|
|
struct ethtool_fec_stat {
|
|
u64 total;
|
|
u64 lanes[8];
|
|
};
|
|
|
|
struct ethtool_fec_stats {
|
|
struct ethtool_fec_stat corrected_blocks;
|
|
struct ethtool_fec_stat uncorrectable_blocks;
|
|
struct ethtool_fec_stat corrected_bits;
|
|
};
|
|
|
|
struct ethtool_fecparam {
|
|
__u32 cmd;
|
|
__u32 active_fec;
|
|
__u32 fec;
|
|
__u32 reserved;
|
|
};
|
|
|
|
struct ethtool_module_eeprom {
|
|
u32 offset;
|
|
u32 length;
|
|
u8 page;
|
|
u8 bank;
|
|
u8 i2c_address;
|
|
u8 *data;
|
|
};
|
|
|
|
struct ethtool_eth_phy_stats {
|
|
enum ethtool_mac_stats_src src;
|
|
union {
|
|
struct {
|
|
u64 SymbolErrorDuringCarrier;
|
|
};
|
|
struct {
|
|
u64 SymbolErrorDuringCarrier;
|
|
} stats;
|
|
};
|
|
};
|
|
|
|
struct ethtool_eth_mac_stats {
|
|
enum ethtool_mac_stats_src src;
|
|
union {
|
|
struct {
|
|
u64 FramesTransmittedOK;
|
|
u64 SingleCollisionFrames;
|
|
u64 MultipleCollisionFrames;
|
|
u64 FramesReceivedOK;
|
|
u64 FrameCheckSequenceErrors;
|
|
u64 AlignmentErrors;
|
|
u64 OctetsTransmittedOK;
|
|
u64 FramesWithDeferredXmissions;
|
|
u64 LateCollisions;
|
|
u64 FramesAbortedDueToXSColls;
|
|
u64 FramesLostDueToIntMACXmitError;
|
|
u64 CarrierSenseErrors;
|
|
u64 OctetsReceivedOK;
|
|
u64 FramesLostDueToIntMACRcvError;
|
|
u64 MulticastFramesXmittedOK;
|
|
u64 BroadcastFramesXmittedOK;
|
|
u64 FramesWithExcessiveDeferral;
|
|
u64 MulticastFramesReceivedOK;
|
|
u64 BroadcastFramesReceivedOK;
|
|
u64 InRangeLengthErrors;
|
|
u64 OutOfRangeLengthField;
|
|
u64 FrameTooLongErrors;
|
|
};
|
|
struct {
|
|
u64 FramesTransmittedOK;
|
|
u64 SingleCollisionFrames;
|
|
u64 MultipleCollisionFrames;
|
|
u64 FramesReceivedOK;
|
|
u64 FrameCheckSequenceErrors;
|
|
u64 AlignmentErrors;
|
|
u64 OctetsTransmittedOK;
|
|
u64 FramesWithDeferredXmissions;
|
|
u64 LateCollisions;
|
|
u64 FramesAbortedDueToXSColls;
|
|
u64 FramesLostDueToIntMACXmitError;
|
|
u64 CarrierSenseErrors;
|
|
u64 OctetsReceivedOK;
|
|
u64 FramesLostDueToIntMACRcvError;
|
|
u64 MulticastFramesXmittedOK;
|
|
u64 BroadcastFramesXmittedOK;
|
|
u64 FramesWithExcessiveDeferral;
|
|
u64 MulticastFramesReceivedOK;
|
|
u64 BroadcastFramesReceivedOK;
|
|
u64 InRangeLengthErrors;
|
|
u64 OutOfRangeLengthField;
|
|
u64 FrameTooLongErrors;
|
|
} stats;
|
|
};
|
|
};
|
|
|
|
struct ethtool_eth_ctrl_stats {
|
|
enum ethtool_mac_stats_src src;
|
|
union {
|
|
struct {
|
|
u64 MACControlFramesTransmitted;
|
|
u64 MACControlFramesReceived;
|
|
u64 UnsupportedOpcodesReceived;
|
|
};
|
|
struct {
|
|
u64 MACControlFramesTransmitted;
|
|
u64 MACControlFramesReceived;
|
|
u64 UnsupportedOpcodesReceived;
|
|
} stats;
|
|
};
|
|
};
|
|
|
|
struct ethtool_rmon_stats {
|
|
enum ethtool_mac_stats_src src;
|
|
union {
|
|
struct {
|
|
u64 undersize_pkts;
|
|
u64 oversize_pkts;
|
|
u64 fragments;
|
|
u64 jabbers;
|
|
u64 hist[10];
|
|
u64 hist_tx[10];
|
|
};
|
|
struct {
|
|
u64 undersize_pkts;
|
|
u64 oversize_pkts;
|
|
u64 fragments;
|
|
u64 jabbers;
|
|
u64 hist[10];
|
|
u64 hist_tx[10];
|
|
} stats;
|
|
};
|
|
};
|
|
|
|
struct ethtool_rmon_hist_range {
|
|
u16 low;
|
|
u16 high;
|
|
};
|
|
|
|
enum ethtool_module_power_mode_policy {
|
|
ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
|
|
ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2,
|
|
};
|
|
|
|
enum ethtool_module_power_mode {
|
|
ETHTOOL_MODULE_POWER_MODE_LOW = 1,
|
|
ETHTOOL_MODULE_POWER_MODE_HIGH = 2,
|
|
};
|
|
|
|
struct ethtool_module_power_mode_params {
|
|
enum ethtool_module_power_mode_policy policy;
|
|
enum ethtool_module_power_mode mode;
|
|
};
|
|
|
|
enum ethtool_mm_verify_status {
|
|
ETHTOOL_MM_VERIFY_STATUS_UNKNOWN = 0,
|
|
ETHTOOL_MM_VERIFY_STATUS_INITIAL = 1,
|
|
ETHTOOL_MM_VERIFY_STATUS_VERIFYING = 2,
|
|
ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED = 3,
|
|
ETHTOOL_MM_VERIFY_STATUS_FAILED = 4,
|
|
ETHTOOL_MM_VERIFY_STATUS_DISABLED = 5,
|
|
};
|
|
|
|
struct ethtool_mm_state {
|
|
u32 verify_time;
|
|
u32 max_verify_time;
|
|
enum ethtool_mm_verify_status verify_status;
|
|
bool tx_enabled;
|
|
bool tx_active;
|
|
bool pmac_enabled;
|
|
bool verify_enabled;
|
|
u32 tx_min_frag_size;
|
|
u32 rx_min_frag_size;
|
|
};
|
|
|
|
struct ethtool_mm_cfg {
|
|
u32 verify_time;
|
|
bool verify_enabled;
|
|
bool tx_enabled;
|
|
bool pmac_enabled;
|
|
u32 tx_min_frag_size;
|
|
};
|
|
|
|
struct ethtool_mm_stats {
|
|
u64 MACMergeFrameAssErrorCount;
|
|
u64 MACMergeFrameSmdErrorCount;
|
|
u64 MACMergeFrameAssOkCount;
|
|
u64 MACMergeFragCountRx;
|
|
u64 MACMergeFragCountTx;
|
|
u64 MACMergeHoldCount;
|
|
};
|
|
|
|
struct reset_control;
|
|
|
|
struct mii_bus;
|
|
|
|
struct mdio_device {
|
|
struct device dev;
|
|
struct mii_bus *bus;
|
|
char modalias[32];
|
|
int (*bus_match)(struct device *, struct device_driver *);
|
|
void (*device_free)(struct mdio_device *);
|
|
void (*device_remove)(struct mdio_device *);
|
|
int addr;
|
|
int flags;
|
|
struct gpio_desc *reset_gpio;
|
|
struct reset_control *reset_ctrl;
|
|
unsigned int reset_assert_delay;
|
|
unsigned int reset_deassert_delay;
|
|
};
|
|
|
|
struct phy_c45_device_ids {
|
|
u32 devices_in_package;
|
|
u32 mmds_present;
|
|
u32 device_ids[32];
|
|
};
|
|
|
|
enum phy_state {
|
|
PHY_DOWN = 0,
|
|
PHY_READY = 1,
|
|
PHY_HALTED = 2,
|
|
PHY_UP = 3,
|
|
PHY_RUNNING = 4,
|
|
PHY_NOLINK = 5,
|
|
PHY_CABLETEST = 6,
|
|
};
|
|
|
|
typedef enum {
|
|
PHY_INTERFACE_MODE_NA = 0,
|
|
PHY_INTERFACE_MODE_INTERNAL = 1,
|
|
PHY_INTERFACE_MODE_MII = 2,
|
|
PHY_INTERFACE_MODE_GMII = 3,
|
|
PHY_INTERFACE_MODE_SGMII = 4,
|
|
PHY_INTERFACE_MODE_TBI = 5,
|
|
PHY_INTERFACE_MODE_REVMII = 6,
|
|
PHY_INTERFACE_MODE_RMII = 7,
|
|
PHY_INTERFACE_MODE_REVRMII = 8,
|
|
PHY_INTERFACE_MODE_RGMII = 9,
|
|
PHY_INTERFACE_MODE_RGMII_ID = 10,
|
|
PHY_INTERFACE_MODE_RGMII_RXID = 11,
|
|
PHY_INTERFACE_MODE_RGMII_TXID = 12,
|
|
PHY_INTERFACE_MODE_RTBI = 13,
|
|
PHY_INTERFACE_MODE_SMII = 14,
|
|
PHY_INTERFACE_MODE_XGMII = 15,
|
|
PHY_INTERFACE_MODE_XLGMII = 16,
|
|
PHY_INTERFACE_MODE_MOCA = 17,
|
|
PHY_INTERFACE_MODE_QSGMII = 18,
|
|
PHY_INTERFACE_MODE_TRGMII = 19,
|
|
PHY_INTERFACE_MODE_100BASEX = 20,
|
|
PHY_INTERFACE_MODE_1000BASEX = 21,
|
|
PHY_INTERFACE_MODE_2500BASEX = 22,
|
|
PHY_INTERFACE_MODE_5GBASER = 23,
|
|
PHY_INTERFACE_MODE_RXAUI = 24,
|
|
PHY_INTERFACE_MODE_XAUI = 25,
|
|
PHY_INTERFACE_MODE_10GBASER = 26,
|
|
PHY_INTERFACE_MODE_25GBASER = 27,
|
|
PHY_INTERFACE_MODE_USXGMII = 28,
|
|
PHY_INTERFACE_MODE_10GKR = 29,
|
|
PHY_INTERFACE_MODE_QUSGMII = 30,
|
|
PHY_INTERFACE_MODE_1000BASEKX = 31,
|
|
PHY_INTERFACE_MODE_MAX = 32,
|
|
} phy_interface_t;
|
|
|
|
struct phylink;
|
|
|
|
struct pse_control;
|
|
|
|
struct phy_driver;
|
|
|
|
struct phy_package_shared;
|
|
|
|
struct mii_timestamper;
|
|
|
|
struct phy_device {
|
|
struct mdio_device mdio;
|
|
struct phy_driver *drv;
|
|
struct device_link *devlink;
|
|
u32 phy_id;
|
|
struct phy_c45_device_ids c45_ids;
|
|
unsigned int is_c45: 1;
|
|
unsigned int is_internal: 1;
|
|
unsigned int is_pseudo_fixed_link: 1;
|
|
unsigned int is_gigabit_capable: 1;
|
|
unsigned int has_fixups: 1;
|
|
unsigned int suspended: 1;
|
|
unsigned int suspended_by_mdio_bus: 1;
|
|
unsigned int sysfs_links: 1;
|
|
unsigned int loopback_enabled: 1;
|
|
unsigned int downshifted_rate: 1;
|
|
unsigned int is_on_sfp_module: 1;
|
|
unsigned int mac_managed_pm: 1;
|
|
unsigned int autoneg: 1;
|
|
unsigned int link: 1;
|
|
unsigned int autoneg_complete: 1;
|
|
unsigned int interrupts: 1;
|
|
unsigned int irq_suspended: 1;
|
|
unsigned int irq_rerun: 1;
|
|
int rate_matching;
|
|
enum phy_state state;
|
|
u32 dev_flags;
|
|
phy_interface_t interface;
|
|
int speed;
|
|
int duplex;
|
|
int port;
|
|
int pause;
|
|
int asym_pause;
|
|
u8 master_slave_get;
|
|
u8 master_slave_set;
|
|
u8 master_slave_state;
|
|
unsigned long supported[2];
|
|
unsigned long advertising[2];
|
|
unsigned long lp_advertising[2];
|
|
unsigned long adv_old[2];
|
|
unsigned long supported_eee[2];
|
|
unsigned long advertising_eee[2];
|
|
bool eee_enabled;
|
|
unsigned long host_interfaces[1];
|
|
u32 eee_broken_modes;
|
|
int irq;
|
|
void *priv;
|
|
struct phy_package_shared *shared;
|
|
struct sk_buff *skb;
|
|
void *ehdr;
|
|
struct nlattr *nest;
|
|
struct delayed_work state_queue;
|
|
struct mutex lock;
|
|
bool sfp_bus_attached;
|
|
struct sfp_bus *sfp_bus;
|
|
struct phylink *phylink;
|
|
struct net_device *attached_dev;
|
|
struct mii_timestamper *mii_ts;
|
|
struct pse_control *psec;
|
|
u8 mdix;
|
|
u8 mdix_ctrl;
|
|
int pma_extable;
|
|
unsigned int link_down_events;
|
|
void (*phy_link_change)(struct phy_device *, bool);
|
|
void (*adjust_link)(struct net_device *);
|
|
};
|
|
|
|
struct mdio_bus_stats {
|
|
u64_stats_t transfers;
|
|
u64_stats_t errors;
|
|
u64_stats_t writes;
|
|
u64_stats_t reads;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct mii_bus {
|
|
struct module *owner;
|
|
const char *name;
|
|
char id[61];
|
|
void *priv;
|
|
int (*read)(struct mii_bus *, int, int);
|
|
int (*write)(struct mii_bus *, int, int, u16);
|
|
int (*read_c45)(struct mii_bus *, int, int, int);
|
|
int (*write_c45)(struct mii_bus *, int, int, int, u16);
|
|
int (*reset)(struct mii_bus *);
|
|
struct mdio_bus_stats stats[32];
|
|
struct mutex mdio_lock;
|
|
struct device *parent;
|
|
enum {
|
|
MDIOBUS_ALLOCATED = 1,
|
|
MDIOBUS_REGISTERED = 2,
|
|
MDIOBUS_UNREGISTERED = 3,
|
|
MDIOBUS_RELEASED = 4,
|
|
} state;
|
|
struct device dev;
|
|
struct mdio_device *mdio_map[32];
|
|
u32 phy_mask;
|
|
u32 phy_ignore_ta_mask;
|
|
int irq[32];
|
|
int reset_delay_us;
|
|
int reset_post_delay_us;
|
|
struct gpio_desc *reset_gpiod;
|
|
struct mutex shared_lock;
|
|
struct phy_package_shared *shared[32];
|
|
};
|
|
|
|
struct phy_package_shared {
|
|
int addr;
|
|
refcount_t refcnt;
|
|
unsigned long flags;
|
|
size_t priv_size;
|
|
void *priv;
|
|
};
|
|
|
|
struct mdio_driver_common {
|
|
struct device_driver driver;
|
|
int flags;
|
|
};
|
|
|
|
struct phy_tdr_config;
|
|
|
|
struct phy_plca_cfg;
|
|
|
|
struct phy_plca_status;
|
|
|
|
struct phy_driver {
|
|
struct mdio_driver_common mdiodrv;
|
|
u32 phy_id;
|
|
char *name;
|
|
u32 phy_id_mask;
|
|
const unsigned long * const features;
|
|
u32 flags;
|
|
const void *driver_data;
|
|
int (*soft_reset)(struct phy_device *);
|
|
int (*config_init)(struct phy_device *);
|
|
int (*probe)(struct phy_device *);
|
|
int (*get_features)(struct phy_device *);
|
|
int (*get_rate_matching)(struct phy_device *, phy_interface_t);
|
|
int (*suspend)(struct phy_device *);
|
|
int (*resume)(struct phy_device *);
|
|
int (*config_aneg)(struct phy_device *);
|
|
int (*aneg_done)(struct phy_device *);
|
|
int (*read_status)(struct phy_device *);
|
|
int (*config_intr)(struct phy_device *);
|
|
irqreturn_t (*handle_interrupt)(struct phy_device *);
|
|
void (*remove)(struct phy_device *);
|
|
int (*match_phy_device)(struct phy_device *);
|
|
int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *);
|
|
void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *);
|
|
void (*link_change_notify)(struct phy_device *);
|
|
int (*read_mmd)(struct phy_device *, int, u16);
|
|
int (*write_mmd)(struct phy_device *, int, u16, u16);
|
|
int (*read_page)(struct phy_device *);
|
|
int (*write_page)(struct phy_device *, int);
|
|
int (*module_info)(struct phy_device *, struct ethtool_modinfo *);
|
|
int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *);
|
|
int (*cable_test_start)(struct phy_device *);
|
|
int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *);
|
|
int (*cable_test_get_status)(struct phy_device *, bool *);
|
|
int (*get_sset_count)(struct phy_device *);
|
|
void (*get_strings)(struct phy_device *, u8 *);
|
|
void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
|
|
int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *);
|
|
int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *);
|
|
int (*set_loopback)(struct phy_device *, bool);
|
|
int (*get_sqi)(struct phy_device *);
|
|
int (*get_sqi_max)(struct phy_device *);
|
|
int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *);
|
|
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *);
|
|
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *);
|
|
};
|
|
|
|
struct phy_tdr_config {
|
|
u32 first;
|
|
u32 last;
|
|
u32 step;
|
|
s8 pair;
|
|
};
|
|
|
|
struct phy_plca_cfg {
|
|
int version;
|
|
int enabled;
|
|
int node_id;
|
|
int node_cnt;
|
|
int to_tmr;
|
|
int burst_cnt;
|
|
int burst_tmr;
|
|
};
|
|
|
|
struct phy_plca_status {
|
|
bool pst;
|
|
};
|
|
|
|
struct mii_timestamper {
|
|
bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int);
|
|
void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int);
|
|
int (*hwtstamp)(struct mii_timestamper *, struct ifreq *);
|
|
void (*link_state)(struct mii_timestamper *, struct phy_device *);
|
|
int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *);
|
|
struct device *device;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_MSG_KERNEL_NONE = 0,
|
|
ETHTOOL_MSG_STRSET_GET_REPLY = 1,
|
|
ETHTOOL_MSG_LINKINFO_GET_REPLY = 2,
|
|
ETHTOOL_MSG_LINKINFO_NTF = 3,
|
|
ETHTOOL_MSG_LINKMODES_GET_REPLY = 4,
|
|
ETHTOOL_MSG_LINKMODES_NTF = 5,
|
|
ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6,
|
|
ETHTOOL_MSG_DEBUG_GET_REPLY = 7,
|
|
ETHTOOL_MSG_DEBUG_NTF = 8,
|
|
ETHTOOL_MSG_WOL_GET_REPLY = 9,
|
|
ETHTOOL_MSG_WOL_NTF = 10,
|
|
ETHTOOL_MSG_FEATURES_GET_REPLY = 11,
|
|
ETHTOOL_MSG_FEATURES_SET_REPLY = 12,
|
|
ETHTOOL_MSG_FEATURES_NTF = 13,
|
|
ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14,
|
|
ETHTOOL_MSG_PRIVFLAGS_NTF = 15,
|
|
ETHTOOL_MSG_RINGS_GET_REPLY = 16,
|
|
ETHTOOL_MSG_RINGS_NTF = 17,
|
|
ETHTOOL_MSG_CHANNELS_GET_REPLY = 18,
|
|
ETHTOOL_MSG_CHANNELS_NTF = 19,
|
|
ETHTOOL_MSG_COALESCE_GET_REPLY = 20,
|
|
ETHTOOL_MSG_COALESCE_NTF = 21,
|
|
ETHTOOL_MSG_PAUSE_GET_REPLY = 22,
|
|
ETHTOOL_MSG_PAUSE_NTF = 23,
|
|
ETHTOOL_MSG_EEE_GET_REPLY = 24,
|
|
ETHTOOL_MSG_EEE_NTF = 25,
|
|
ETHTOOL_MSG_TSINFO_GET_REPLY = 26,
|
|
ETHTOOL_MSG_CABLE_TEST_NTF = 27,
|
|
ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28,
|
|
ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29,
|
|
ETHTOOL_MSG_FEC_GET_REPLY = 30,
|
|
ETHTOOL_MSG_FEC_NTF = 31,
|
|
ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32,
|
|
ETHTOOL_MSG_STATS_GET_REPLY = 33,
|
|
ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34,
|
|
ETHTOOL_MSG_MODULE_GET_REPLY = 35,
|
|
ETHTOOL_MSG_MODULE_NTF = 36,
|
|
ETHTOOL_MSG_PSE_GET_REPLY = 37,
|
|
ETHTOOL_MSG_RSS_GET_REPLY = 38,
|
|
ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 39,
|
|
ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 40,
|
|
ETHTOOL_MSG_PLCA_NTF = 41,
|
|
ETHTOOL_MSG_MM_GET_REPLY = 42,
|
|
ETHTOOL_MSG_MM_NTF = 43,
|
|
__ETHTOOL_MSG_KERNEL_CNT = 44,
|
|
ETHTOOL_MSG_KERNEL_MAX = 43,
|
|
};
|
|
|
|
enum ethtool_link_mode_bit_indices {
|
|
ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0,
|
|
ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1,
|
|
ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2,
|
|
ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3,
|
|
ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4,
|
|
ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5,
|
|
ETHTOOL_LINK_MODE_Autoneg_BIT = 6,
|
|
ETHTOOL_LINK_MODE_TP_BIT = 7,
|
|
ETHTOOL_LINK_MODE_AUI_BIT = 8,
|
|
ETHTOOL_LINK_MODE_MII_BIT = 9,
|
|
ETHTOOL_LINK_MODE_FIBRE_BIT = 10,
|
|
ETHTOOL_LINK_MODE_BNC_BIT = 11,
|
|
ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12,
|
|
ETHTOOL_LINK_MODE_Pause_BIT = 13,
|
|
ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14,
|
|
ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15,
|
|
ETHTOOL_LINK_MODE_Backplane_BIT = 16,
|
|
ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17,
|
|
ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18,
|
|
ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19,
|
|
ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20,
|
|
ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21,
|
|
ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22,
|
|
ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23,
|
|
ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24,
|
|
ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25,
|
|
ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26,
|
|
ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27,
|
|
ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
|
|
ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
|
|
ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
|
|
ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
|
|
ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
|
|
ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
|
|
ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
|
|
ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
|
|
ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
|
|
ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
|
|
ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
|
|
ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
|
|
ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
|
|
ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
|
|
ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
|
|
ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
|
|
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
|
|
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
|
|
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
|
|
ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
|
|
ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
|
|
ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
|
|
ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
|
|
ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
|
|
ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52,
|
|
ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53,
|
|
ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54,
|
|
ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55,
|
|
ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56,
|
|
ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57,
|
|
ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58,
|
|
ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59,
|
|
ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60,
|
|
ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61,
|
|
ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62,
|
|
ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63,
|
|
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
|
|
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
|
|
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
|
|
ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
|
|
ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
|
|
ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
|
|
ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
|
|
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
|
|
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
|
|
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
|
|
ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
|
|
ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
|
|
ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
|
|
ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
|
|
ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
|
|
ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
|
|
ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
|
|
ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
|
|
ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
|
|
ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
|
|
ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
|
|
ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
|
|
ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
|
|
ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
|
|
ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
|
|
ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
|
|
ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
|
|
ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
|
|
ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92,
|
|
ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93,
|
|
ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94,
|
|
ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95,
|
|
ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
|
|
ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
|
|
ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
|
|
ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99,
|
|
ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100,
|
|
ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101,
|
|
__ETHTOOL_LINK_MODE_MASK_NBITS = 102,
|
|
};
|
|
|
|
enum netdev_state_t {
|
|
__LINK_STATE_START = 0,
|
|
__LINK_STATE_PRESENT = 1,
|
|
__LINK_STATE_NOCARRIER = 2,
|
|
__LINK_STATE_LINKWATCH_PENDING = 3,
|
|
__LINK_STATE_DORMANT = 4,
|
|
__LINK_STATE_TESTING = 5,
|
|
};
|
|
|
|
struct mii_ioctl_data {
|
|
__u16 phy_id;
|
|
__u16 reg_num;
|
|
__u16 val_in;
|
|
__u16 val_out;
|
|
};
|
|
|
|
struct phy_setting {
|
|
u32 speed;
|
|
u8 duplex;
|
|
u8 bit;
|
|
};
|
|
|
|
typedef __u16 __sum16;
|
|
|
|
struct iphdr {
|
|
__u8 ihl: 4;
|
|
__u8 version: 4;
|
|
__u8 tos;
|
|
__be16 tot_len;
|
|
__be16 id;
|
|
__be16 frag_off;
|
|
__u8 ttl;
|
|
__u8 protocol;
|
|
__sum16 check;
|
|
union {
|
|
struct {
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
};
|
|
struct {
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
} addrs;
|
|
};
|
|
};
|
|
|
|
struct ip_tunnel_parm {
|
|
char name[16];
|
|
int link;
|
|
__be16 i_flags;
|
|
__be16 o_flags;
|
|
__be32 i_key;
|
|
__be32 o_key;
|
|
struct iphdr iph;
|
|
};
|
|
|
|
struct nd_opt_hdr {
|
|
__u8 nd_opt_type;
|
|
__u8 nd_opt_len;
|
|
};
|
|
|
|
struct ndisc_options {
|
|
struct nd_opt_hdr *nd_opt_array[15];
|
|
struct nd_opt_hdr *nd_useropts;
|
|
struct nd_opt_hdr *nd_useropts_end;
|
|
};
|
|
|
|
struct prefix_info {
|
|
__u8 type;
|
|
__u8 length;
|
|
__u8 prefix_len;
|
|
__u8 reserved: 6;
|
|
__u8 autoconf: 1;
|
|
__u8 onlink: 1;
|
|
__be32 valid;
|
|
__be32 prefered;
|
|
__be32 reserved2;
|
|
struct in6_addr prefix;
|
|
};
|
|
|
|
struct rt6key {
|
|
struct in6_addr addr;
|
|
int plen;
|
|
};
|
|
|
|
struct rtable;
|
|
|
|
struct fnhe_hash_bucket;
|
|
|
|
struct fib_nh_common {
|
|
struct net_device *nhc_dev;
|
|
netdevice_tracker nhc_dev_tracker;
|
|
int nhc_oif;
|
|
unsigned char nhc_scope;
|
|
u8 nhc_family;
|
|
u8 nhc_gw_family;
|
|
unsigned char nhc_flags;
|
|
struct lwtunnel_state *nhc_lwtstate;
|
|
union {
|
|
__be32 ipv4;
|
|
struct in6_addr ipv6;
|
|
} nhc_gw;
|
|
int nhc_weight;
|
|
atomic_t nhc_upper_bound;
|
|
struct rtable __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("percpu"))) *nhc_pcpu_rth_output;
|
|
struct rtable __attribute__((btf_type_tag("rcu"))) *nhc_rth_input;
|
|
struct fnhe_hash_bucket __attribute__((btf_type_tag("rcu"))) *nhc_exceptions;
|
|
};
|
|
|
|
struct rt6_exception_bucket;
|
|
|
|
struct fib6_nh {
|
|
struct fib_nh_common nh_common;
|
|
struct rt6_info * __attribute__((btf_type_tag("percpu"))) *rt6i_pcpu;
|
|
struct rt6_exception_bucket __attribute__((btf_type_tag("rcu"))) *rt6i_exception_bucket;
|
|
};
|
|
|
|
struct fib6_node;
|
|
|
|
struct dst_metrics;
|
|
|
|
struct nexthop;
|
|
|
|
struct fib6_info {
|
|
struct fib6_table *fib6_table;
|
|
struct fib6_info __attribute__((btf_type_tag("rcu"))) *fib6_next;
|
|
struct fib6_node __attribute__((btf_type_tag("rcu"))) *fib6_node;
|
|
union {
|
|
struct list_head fib6_siblings;
|
|
struct list_head nh_list;
|
|
};
|
|
unsigned int fib6_nsiblings;
|
|
refcount_t fib6_ref;
|
|
unsigned long expires;
|
|
struct dst_metrics *fib6_metrics;
|
|
struct rt6key fib6_dst;
|
|
u32 fib6_flags;
|
|
struct rt6key fib6_src;
|
|
struct rt6key fib6_prefsrc;
|
|
u32 fib6_metric;
|
|
u8 fib6_protocol;
|
|
u8 fib6_type;
|
|
u8 offload;
|
|
u8 trap;
|
|
u8 offload_failed;
|
|
u8 should_flush: 1;
|
|
u8 dst_nocount: 1;
|
|
u8 dst_nopolicy: 1;
|
|
u8 fib6_destroying: 1;
|
|
u8 unused: 4;
|
|
struct callback_head rcu;
|
|
struct nexthop *nh;
|
|
struct fib6_nh fib6_nh[0];
|
|
};
|
|
|
|
struct fib6_node {
|
|
struct fib6_node __attribute__((btf_type_tag("rcu"))) *parent;
|
|
struct fib6_node __attribute__((btf_type_tag("rcu"))) *left;
|
|
struct fib6_node __attribute__((btf_type_tag("rcu"))) *right;
|
|
struct fib6_info __attribute__((btf_type_tag("rcu"))) *leaf;
|
|
__u16 fn_bit;
|
|
__u16 fn_flags;
|
|
int fn_sernum;
|
|
struct fib6_info __attribute__((btf_type_tag("rcu"))) *rr_ptr;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct inet_peer_base {
|
|
struct rb_root rb_root;
|
|
seqlock_t lock;
|
|
int total;
|
|
};
|
|
|
|
struct fib6_table {
|
|
struct hlist_node tb6_hlist;
|
|
u32 tb6_id;
|
|
spinlock_t tb6_lock;
|
|
struct fib6_node tb6_root;
|
|
struct inet_peer_base tb6_peers;
|
|
unsigned int flags;
|
|
unsigned int fib_seq;
|
|
};
|
|
|
|
struct dst_metrics {
|
|
u32 metrics[17];
|
|
refcount_t refcnt;
|
|
};
|
|
|
|
struct nh_info;
|
|
|
|
struct nh_group;
|
|
|
|
struct nexthop {
|
|
struct rb_node rb_node;
|
|
struct list_head fi_list;
|
|
struct list_head f6i_list;
|
|
struct list_head fdb_list;
|
|
struct list_head grp_list;
|
|
struct net *net;
|
|
u32 id;
|
|
u8 protocol;
|
|
u8 nh_flags;
|
|
bool is_group;
|
|
refcount_t refcnt;
|
|
struct callback_head rcu;
|
|
union {
|
|
struct nh_info __attribute__((btf_type_tag("rcu"))) *nh_info;
|
|
struct nh_group __attribute__((btf_type_tag("rcu"))) *nh_grp;
|
|
};
|
|
};
|
|
|
|
struct fib_info;
|
|
|
|
struct fib_nh {
|
|
struct fib_nh_common nh_common;
|
|
struct hlist_node nh_hash;
|
|
struct fib_info *nh_parent;
|
|
__be32 nh_saddr;
|
|
int nh_saddr_genid;
|
|
};
|
|
|
|
struct nh_info {
|
|
struct hlist_node dev_hash;
|
|
struct nexthop *nh_parent;
|
|
u8 family;
|
|
bool reject_nh;
|
|
bool fdb_nh;
|
|
union {
|
|
struct fib_nh_common fib_nhc;
|
|
struct fib_nh fib_nh;
|
|
struct fib6_nh fib6_nh;
|
|
};
|
|
};
|
|
|
|
struct lwtunnel_state {
|
|
__u16 type;
|
|
__u16 flags;
|
|
__u16 headroom;
|
|
atomic_t refcnt;
|
|
int (*orig_output)(struct net *, struct sock *, struct sk_buff *);
|
|
int (*orig_input)(struct sk_buff *);
|
|
struct callback_head rcu;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct uncached_list;
|
|
|
|
struct rtable {
|
|
struct dst_entry dst;
|
|
int rt_genid;
|
|
unsigned int rt_flags;
|
|
__u16 rt_type;
|
|
__u8 rt_is_input;
|
|
__u8 rt_uses_gateway;
|
|
int rt_iif;
|
|
u8 rt_gw_family;
|
|
union {
|
|
__be32 rt_gw4;
|
|
struct in6_addr rt_gw6;
|
|
};
|
|
u32 rt_mtu_locked: 1;
|
|
u32 rt_pmtu: 31;
|
|
struct list_head rt_uncached;
|
|
struct uncached_list *rt_uncached_list;
|
|
};
|
|
|
|
struct fib_nh_exception;
|
|
|
|
struct fnhe_hash_bucket {
|
|
struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain;
|
|
};
|
|
|
|
struct fib_nh_exception {
|
|
struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *fnhe_next;
|
|
int fnhe_genid;
|
|
__be32 fnhe_daddr;
|
|
u32 fnhe_pmtu;
|
|
bool fnhe_mtu_locked;
|
|
__be32 fnhe_gw;
|
|
unsigned long fnhe_expires;
|
|
struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_input;
|
|
struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_output;
|
|
unsigned long fnhe_stamp;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct fib_info {
|
|
struct hlist_node fib_hash;
|
|
struct hlist_node fib_lhash;
|
|
struct list_head nh_list;
|
|
struct net *fib_net;
|
|
refcount_t fib_treeref;
|
|
refcount_t fib_clntref;
|
|
unsigned int fib_flags;
|
|
unsigned char fib_dead;
|
|
unsigned char fib_protocol;
|
|
unsigned char fib_scope;
|
|
unsigned char fib_type;
|
|
__be32 fib_prefsrc;
|
|
u32 fib_tb_id;
|
|
u32 fib_priority;
|
|
struct dst_metrics *fib_metrics;
|
|
int fib_nhs;
|
|
bool fib_nh_is_v6;
|
|
bool nh_updated;
|
|
struct nexthop *nh;
|
|
struct callback_head rcu;
|
|
struct fib_nh fib_nh[0];
|
|
};
|
|
|
|
struct rt6_info {
|
|
struct dst_entry dst;
|
|
struct fib6_info __attribute__((btf_type_tag("rcu"))) *from;
|
|
int sernum;
|
|
struct rt6key rt6i_dst;
|
|
struct rt6key rt6i_src;
|
|
struct in6_addr rt6i_gateway;
|
|
struct inet6_dev *rt6i_idev;
|
|
u32 rt6i_flags;
|
|
struct list_head rt6i_uncached;
|
|
struct uncached_list *rt6i_uncached_list;
|
|
unsigned short rt6i_nfheader_len;
|
|
};
|
|
|
|
struct rt6_exception_bucket {
|
|
struct hlist_head chain;
|
|
int depth;
|
|
};
|
|
|
|
struct nh_grp_entry {
|
|
struct nexthop *nh;
|
|
u8 weight;
|
|
union {
|
|
struct {
|
|
atomic_t upper_bound;
|
|
} hthr;
|
|
struct {
|
|
struct list_head uw_nh_entry;
|
|
u16 count_buckets;
|
|
u16 wants_buckets;
|
|
} res;
|
|
};
|
|
struct list_head nh_list;
|
|
struct nexthop *nh_parent;
|
|
};
|
|
|
|
struct nh_res_table;
|
|
|
|
struct nh_group {
|
|
struct nh_group *spare;
|
|
u16 num_nh;
|
|
bool is_multipath;
|
|
bool hash_threshold;
|
|
bool resilient;
|
|
bool fdb_nh;
|
|
bool has_v4;
|
|
struct nh_res_table __attribute__((btf_type_tag("rcu"))) *res_table;
|
|
struct nh_grp_entry nh_entries[0];
|
|
};
|
|
|
|
struct nh_res_bucket {
|
|
struct nh_grp_entry __attribute__((btf_type_tag("rcu"))) *nh_entry;
|
|
atomic_long_t used_time;
|
|
unsigned long migrated_time;
|
|
bool occupied;
|
|
u8 nh_flags;
|
|
};
|
|
|
|
struct nh_res_table {
|
|
struct net *net;
|
|
u32 nhg_id;
|
|
struct delayed_work upkeep_dw;
|
|
struct list_head uw_nh_entries;
|
|
unsigned long unbalanced_since;
|
|
u32 idle_timer;
|
|
u32 unbalanced_timer;
|
|
u16 num_nh_buckets;
|
|
struct nh_res_bucket nh_buckets[0];
|
|
};
|
|
|
|
struct udp_tunnel_info {
|
|
unsigned short type;
|
|
sa_family_t sa_family;
|
|
__be16 port;
|
|
u8 hw_priv;
|
|
};
|
|
|
|
struct udp_tunnel_nic_shared {
|
|
struct udp_tunnel_nic *udp_tunnel_nic_info;
|
|
struct list_head devices;
|
|
};
|
|
|
|
enum devlink_port_type {
|
|
DEVLINK_PORT_TYPE_NOTSET = 0,
|
|
DEVLINK_PORT_TYPE_AUTO = 1,
|
|
DEVLINK_PORT_TYPE_ETH = 2,
|
|
DEVLINK_PORT_TYPE_IB = 3,
|
|
};
|
|
|
|
enum devlink_port_flavour {
|
|
DEVLINK_PORT_FLAVOUR_PHYSICAL = 0,
|
|
DEVLINK_PORT_FLAVOUR_CPU = 1,
|
|
DEVLINK_PORT_FLAVOUR_DSA = 2,
|
|
DEVLINK_PORT_FLAVOUR_PCI_PF = 3,
|
|
DEVLINK_PORT_FLAVOUR_PCI_VF = 4,
|
|
DEVLINK_PORT_FLAVOUR_VIRTUAL = 5,
|
|
DEVLINK_PORT_FLAVOUR_UNUSED = 6,
|
|
DEVLINK_PORT_FLAVOUR_PCI_SF = 7,
|
|
};
|
|
|
|
struct devlink_port_phys_attrs {
|
|
u32 port_number;
|
|
u32 split_subport_number;
|
|
};
|
|
|
|
struct devlink_port_pci_pf_attrs {
|
|
u32 controller;
|
|
u16 pf;
|
|
u8 external: 1;
|
|
};
|
|
|
|
struct devlink_port_pci_vf_attrs {
|
|
u32 controller;
|
|
u16 pf;
|
|
u16 vf;
|
|
u8 external: 1;
|
|
};
|
|
|
|
struct devlink_port_pci_sf_attrs {
|
|
u32 controller;
|
|
u32 sf;
|
|
u16 pf;
|
|
u8 external: 1;
|
|
};
|
|
|
|
struct devlink_port_attrs {
|
|
u8 split: 1;
|
|
u8 splittable: 1;
|
|
u32 lanes;
|
|
enum devlink_port_flavour flavour;
|
|
struct netdev_phys_item_id switch_id;
|
|
union {
|
|
struct devlink_port_phys_attrs phys;
|
|
struct devlink_port_pci_pf_attrs pci_pf;
|
|
struct devlink_port_pci_vf_attrs pci_vf;
|
|
struct devlink_port_pci_sf_attrs pci_sf;
|
|
};
|
|
};
|
|
|
|
struct devlink;
|
|
|
|
struct ib_device;
|
|
|
|
struct devlink_rate;
|
|
|
|
struct devlink_linecard;
|
|
|
|
struct devlink_port {
|
|
struct list_head list;
|
|
struct list_head region_list;
|
|
struct devlink *devlink;
|
|
unsigned int index;
|
|
spinlock_t type_lock;
|
|
enum devlink_port_type type;
|
|
enum devlink_port_type desired_type;
|
|
union {
|
|
struct {
|
|
struct net_device *netdev;
|
|
int ifindex;
|
|
char ifname[16];
|
|
} type_eth;
|
|
struct {
|
|
struct ib_device *ibdev;
|
|
} type_ib;
|
|
};
|
|
struct devlink_port_attrs attrs;
|
|
u8 attrs_set: 1;
|
|
u8 switch_port: 1;
|
|
u8 registered: 1;
|
|
u8 initialized: 1;
|
|
struct delayed_work type_warn_dw;
|
|
struct list_head reporter_list;
|
|
struct devlink_rate *devlink_rate;
|
|
struct devlink_linecard *linecard;
|
|
};
|
|
|
|
enum devlink_rate_type {
|
|
DEVLINK_RATE_TYPE_LEAF = 0,
|
|
DEVLINK_RATE_TYPE_NODE = 1,
|
|
};
|
|
|
|
struct devlink_rate {
|
|
struct list_head list;
|
|
enum devlink_rate_type type;
|
|
struct devlink *devlink;
|
|
void *priv;
|
|
u64 tx_share;
|
|
u64 tx_max;
|
|
struct devlink_rate *parent;
|
|
union {
|
|
struct devlink_port *devlink_port;
|
|
struct {
|
|
char *name;
|
|
refcount_t refcnt;
|
|
};
|
|
};
|
|
u32 tx_priority;
|
|
u32 tx_weight;
|
|
};
|
|
|
|
struct udp_hslot;
|
|
|
|
struct udp_table {
|
|
struct udp_hslot *hash;
|
|
struct udp_hslot *hash2;
|
|
unsigned int mask;
|
|
unsigned int log;
|
|
};
|
|
|
|
struct udp_hslot {
|
|
struct hlist_head head;
|
|
int count;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct rt6_statistics {
|
|
__u32 fib_nodes;
|
|
__u32 fib_route_nodes;
|
|
__u32 fib_rt_entries;
|
|
__u32 fib_rt_cache;
|
|
__u32 fib_discarded_routes;
|
|
atomic_t fib_rt_alloc;
|
|
};
|
|
|
|
struct bus_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct bus_type *, char *);
|
|
ssize_t (*store)(struct bus_type *, const char *, size_t);
|
|
};
|
|
|
|
enum nsim_dev_port_type {
|
|
NSIM_DEV_PORT_TYPE_PF = 0,
|
|
NSIM_DEV_PORT_TYPE_VF = 1,
|
|
};
|
|
|
|
struct nsim_bus_dev {
|
|
struct device dev;
|
|
struct list_head list;
|
|
unsigned int port_count;
|
|
unsigned int num_queues;
|
|
struct net *initial_net;
|
|
unsigned int max_vfs;
|
|
unsigned int num_vfs;
|
|
bool init;
|
|
};
|
|
|
|
struct usb_class {
|
|
struct kref kref;
|
|
struct class *class;
|
|
};
|
|
|
|
enum usb_interface_condition {
|
|
USB_INTERFACE_UNBOUND = 0,
|
|
USB_INTERFACE_BINDING = 1,
|
|
USB_INTERFACE_BOUND = 2,
|
|
USB_INTERFACE_UNBINDING = 3,
|
|
};
|
|
|
|
struct usb_host_interface;
|
|
|
|
struct usb_interface_assoc_descriptor;
|
|
|
|
struct usb_interface {
|
|
struct usb_host_interface *altsetting;
|
|
struct usb_host_interface *cur_altsetting;
|
|
unsigned int num_altsetting;
|
|
struct usb_interface_assoc_descriptor *intf_assoc;
|
|
int minor;
|
|
enum usb_interface_condition condition;
|
|
unsigned int sysfs_files_created: 1;
|
|
unsigned int ep_devs_created: 1;
|
|
unsigned int unregistering: 1;
|
|
unsigned int needs_remote_wakeup: 1;
|
|
unsigned int needs_altsetting0: 1;
|
|
unsigned int needs_binding: 1;
|
|
unsigned int resetting_device: 1;
|
|
unsigned int authorized: 1;
|
|
struct device dev;
|
|
struct device *usb_dev;
|
|
struct work_struct reset_ws;
|
|
};
|
|
|
|
struct usb_interface_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bInterfaceNumber;
|
|
__u8 bAlternateSetting;
|
|
__u8 bNumEndpoints;
|
|
__u8 bInterfaceClass;
|
|
__u8 bInterfaceSubClass;
|
|
__u8 bInterfaceProtocol;
|
|
__u8 iInterface;
|
|
};
|
|
|
|
struct usb_host_endpoint;
|
|
|
|
struct usb_host_interface {
|
|
struct usb_interface_descriptor desc;
|
|
int extralen;
|
|
unsigned char *extra;
|
|
struct usb_host_endpoint *endpoint;
|
|
char *string;
|
|
};
|
|
|
|
struct usb_endpoint_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bEndpointAddress;
|
|
__u8 bmAttributes;
|
|
__le16 wMaxPacketSize;
|
|
__u8 bInterval;
|
|
__u8 bRefresh;
|
|
__u8 bSynchAddress;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_ss_ep_comp_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bMaxBurst;
|
|
__u8 bmAttributes;
|
|
__le16 wBytesPerInterval;
|
|
};
|
|
|
|
struct usb_ssp_isoc_ep_comp_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__le16 wReseved;
|
|
__le32 dwBytesPerInterval;
|
|
};
|
|
|
|
struct ep_device;
|
|
|
|
struct usb_host_endpoint {
|
|
struct usb_endpoint_descriptor desc;
|
|
struct usb_ss_ep_comp_descriptor ss_ep_comp;
|
|
struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp;
|
|
char: 8;
|
|
struct list_head urb_list;
|
|
void *hcpriv;
|
|
struct ep_device *ep_dev;
|
|
unsigned char *extra;
|
|
int extralen;
|
|
int enabled;
|
|
int streams;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_interface_assoc_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bFirstInterface;
|
|
__u8 bInterfaceCount;
|
|
__u8 bFunctionClass;
|
|
__u8 bFunctionSubClass;
|
|
__u8 bFunctionProtocol;
|
|
__u8 iFunction;
|
|
};
|
|
|
|
struct usb_class_driver {
|
|
char *name;
|
|
char * (*devnode)(const struct device *, umode_t *);
|
|
const struct file_operations *fops;
|
|
int minor_base;
|
|
};
|
|
|
|
enum usb3_link_state {
|
|
USB3_LPM_U0 = 0,
|
|
USB3_LPM_U1 = 1,
|
|
USB3_LPM_U2 = 2,
|
|
USB3_LPM_U3 = 3,
|
|
};
|
|
|
|
struct usb_hcd;
|
|
|
|
struct urb;
|
|
|
|
struct usb_device;
|
|
|
|
struct usb_tt;
|
|
|
|
struct hc_driver {
|
|
const char *description;
|
|
const char *product_desc;
|
|
size_t hcd_priv_size;
|
|
irqreturn_t (*irq)(struct usb_hcd *);
|
|
int flags;
|
|
int (*reset)(struct usb_hcd *);
|
|
int (*start)(struct usb_hcd *);
|
|
int (*pci_suspend)(struct usb_hcd *, bool);
|
|
int (*pci_resume)(struct usb_hcd *, bool);
|
|
int (*pci_poweroff_late)(struct usb_hcd *, bool);
|
|
void (*stop)(struct usb_hcd *);
|
|
void (*shutdown)(struct usb_hcd *);
|
|
int (*get_frame_number)(struct usb_hcd *);
|
|
int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t);
|
|
int (*urb_dequeue)(struct usb_hcd *, struct urb *, int);
|
|
int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t);
|
|
void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *);
|
|
void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *);
|
|
void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *);
|
|
int (*hub_status_data)(struct usb_hcd *, char *);
|
|
int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16);
|
|
int (*bus_suspend)(struct usb_hcd *);
|
|
int (*bus_resume)(struct usb_hcd *);
|
|
int (*start_port_reset)(struct usb_hcd *, unsigned int);
|
|
unsigned long (*get_resuming_ports)(struct usb_hcd *);
|
|
void (*relinquish_port)(struct usb_hcd *, int);
|
|
int (*port_handed_over)(struct usb_hcd *, int);
|
|
void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *);
|
|
int (*alloc_dev)(struct usb_hcd *, struct usb_device *);
|
|
void (*free_dev)(struct usb_hcd *, struct usb_device *);
|
|
int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t);
|
|
int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t);
|
|
int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
|
|
int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
|
|
int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
|
|
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
|
int (*address_device)(struct usb_hcd *, struct usb_device *);
|
|
int (*enable_device)(struct usb_hcd *, struct usb_device *);
|
|
int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t);
|
|
int (*reset_device)(struct usb_hcd *, struct usb_device *);
|
|
int (*update_device)(struct usb_hcd *, struct usb_device *);
|
|
int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int);
|
|
int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state);
|
|
int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state);
|
|
int (*find_raw_port_number)(struct usb_hcd *, int);
|
|
int (*port_power)(struct usb_hcd *, int, bool);
|
|
int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int);
|
|
};
|
|
|
|
struct usb_devmap {
|
|
unsigned long devicemap[2];
|
|
};
|
|
|
|
struct mon_bus;
|
|
|
|
struct usb_bus {
|
|
struct device *controller;
|
|
struct device *sysdev;
|
|
int busnum;
|
|
const char *bus_name;
|
|
u8 uses_pio_for_control;
|
|
u8 otg_port;
|
|
unsigned int is_b_host: 1;
|
|
unsigned int b_hnp_enable: 1;
|
|
unsigned int no_stop_on_short: 1;
|
|
unsigned int no_sg_constraint: 1;
|
|
unsigned int sg_tablesize;
|
|
int devnum_next;
|
|
struct mutex devnum_next_mutex;
|
|
struct usb_devmap devmap;
|
|
struct usb_device *root_hub;
|
|
struct usb_bus *hs_companion;
|
|
int bandwidth_allocated;
|
|
int bandwidth_int_reqs;
|
|
int bandwidth_isoc_reqs;
|
|
unsigned int resuming_ports;
|
|
struct mon_bus *mon_bus;
|
|
int monitored;
|
|
};
|
|
|
|
struct usb_phy_roothub;
|
|
|
|
enum usb_dev_authorize_policy {
|
|
USB_DEVICE_AUTHORIZE_NONE = 0,
|
|
USB_DEVICE_AUTHORIZE_ALL = 1,
|
|
USB_DEVICE_AUTHORIZE_INTERNAL = 2,
|
|
};
|
|
|
|
struct giveback_urb_bh {
|
|
bool running;
|
|
bool high_prio;
|
|
spinlock_t lock;
|
|
struct list_head head;
|
|
struct tasklet_struct bh;
|
|
struct usb_host_endpoint *completing_ep;
|
|
};
|
|
|
|
struct dma_pool;
|
|
|
|
struct usb_phy;
|
|
|
|
struct gen_pool;
|
|
|
|
struct usb_hcd {
|
|
struct usb_bus self;
|
|
struct kref kref;
|
|
const char *product_desc;
|
|
int speed;
|
|
char irq_descr[24];
|
|
struct timer_list rh_timer;
|
|
struct urb *status_urb;
|
|
struct work_struct wakeup_work;
|
|
struct work_struct died_work;
|
|
const struct hc_driver *driver;
|
|
struct usb_phy *usb_phy;
|
|
struct usb_phy_roothub *phy_roothub;
|
|
unsigned long flags;
|
|
enum usb_dev_authorize_policy dev_policy;
|
|
unsigned int rh_registered: 1;
|
|
unsigned int rh_pollable: 1;
|
|
unsigned int msix_enabled: 1;
|
|
unsigned int msi_enabled: 1;
|
|
unsigned int skip_phy_initialization: 1;
|
|
unsigned int uses_new_polling: 1;
|
|
unsigned int wireless: 1;
|
|
unsigned int has_tt: 1;
|
|
unsigned int amd_resume_bug: 1;
|
|
unsigned int can_do_streams: 1;
|
|
unsigned int tpl_support: 1;
|
|
unsigned int cant_recv_wakeups: 1;
|
|
unsigned int irq;
|
|
void *regs;
|
|
resource_size_t rsrc_start;
|
|
resource_size_t rsrc_len;
|
|
unsigned int power_budget;
|
|
struct giveback_urb_bh high_prio_bh;
|
|
struct giveback_urb_bh low_prio_bh;
|
|
struct mutex *address0_mutex;
|
|
struct mutex *bandwidth_mutex;
|
|
struct usb_hcd *shared_hcd;
|
|
struct usb_hcd *primary_hcd;
|
|
struct dma_pool *pool[4];
|
|
int state;
|
|
struct gen_pool *localmem_pool;
|
|
unsigned long hcd_priv[0];
|
|
};
|
|
|
|
enum usb_device_state {
|
|
USB_STATE_NOTATTACHED = 0,
|
|
USB_STATE_ATTACHED = 1,
|
|
USB_STATE_POWERED = 2,
|
|
USB_STATE_RECONNECTING = 3,
|
|
USB_STATE_UNAUTHENTICATED = 4,
|
|
USB_STATE_DEFAULT = 5,
|
|
USB_STATE_ADDRESS = 6,
|
|
USB_STATE_CONFIGURED = 7,
|
|
USB_STATE_SUSPENDED = 8,
|
|
};
|
|
|
|
enum usb_device_speed {
|
|
USB_SPEED_UNKNOWN = 0,
|
|
USB_SPEED_LOW = 1,
|
|
USB_SPEED_FULL = 2,
|
|
USB_SPEED_HIGH = 3,
|
|
USB_SPEED_WIRELESS = 4,
|
|
USB_SPEED_SUPER = 5,
|
|
USB_SPEED_SUPER_PLUS = 6,
|
|
};
|
|
|
|
enum usb_ssp_rate {
|
|
USB_SSP_GEN_UNKNOWN = 0,
|
|
USB_SSP_GEN_2x1 = 1,
|
|
USB_SSP_GEN_1x2 = 2,
|
|
USB_SSP_GEN_2x2 = 3,
|
|
};
|
|
|
|
struct usb_device_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__le16 bcdUSB;
|
|
__u8 bDeviceClass;
|
|
__u8 bDeviceSubClass;
|
|
__u8 bDeviceProtocol;
|
|
__u8 bMaxPacketSize0;
|
|
__le16 idVendor;
|
|
__le16 idProduct;
|
|
__le16 bcdDevice;
|
|
__u8 iManufacturer;
|
|
__u8 iProduct;
|
|
__u8 iSerialNumber;
|
|
__u8 bNumConfigurations;
|
|
};
|
|
|
|
struct wusb_dev;
|
|
|
|
struct usb2_lpm_parameters {
|
|
unsigned int besl;
|
|
int timeout;
|
|
};
|
|
|
|
struct usb3_lpm_parameters {
|
|
unsigned int mel;
|
|
unsigned int pel;
|
|
unsigned int sel;
|
|
int timeout;
|
|
};
|
|
|
|
struct usb_host_bos;
|
|
|
|
struct usb_host_config;
|
|
|
|
struct usb_device {
|
|
int devnum;
|
|
char devpath[16];
|
|
u32 route;
|
|
enum usb_device_state state;
|
|
enum usb_device_speed speed;
|
|
unsigned int rx_lanes;
|
|
unsigned int tx_lanes;
|
|
enum usb_ssp_rate ssp_rate;
|
|
struct usb_tt *tt;
|
|
int ttport;
|
|
unsigned int toggle[2];
|
|
struct usb_device *parent;
|
|
struct usb_bus *bus;
|
|
struct usb_host_endpoint ep0;
|
|
struct device dev;
|
|
struct usb_device_descriptor descriptor;
|
|
struct usb_host_bos *bos;
|
|
struct usb_host_config *config;
|
|
struct usb_host_config *actconfig;
|
|
struct usb_host_endpoint *ep_in[16];
|
|
struct usb_host_endpoint *ep_out[16];
|
|
char **rawdescriptors;
|
|
unsigned short bus_mA;
|
|
u8 portnum;
|
|
u8 level;
|
|
u8 devaddr;
|
|
unsigned int can_submit: 1;
|
|
unsigned int persist_enabled: 1;
|
|
unsigned int reset_in_progress: 1;
|
|
unsigned int have_langid: 1;
|
|
unsigned int authorized: 1;
|
|
unsigned int authenticated: 1;
|
|
unsigned int wusb: 1;
|
|
unsigned int lpm_capable: 1;
|
|
unsigned int lpm_devinit_allow: 1;
|
|
unsigned int usb2_hw_lpm_capable: 1;
|
|
unsigned int usb2_hw_lpm_besl_capable: 1;
|
|
unsigned int usb2_hw_lpm_enabled: 1;
|
|
unsigned int usb2_hw_lpm_allowed: 1;
|
|
unsigned int usb3_lpm_u1_enabled: 1;
|
|
unsigned int usb3_lpm_u2_enabled: 1;
|
|
int string_langid;
|
|
char *product;
|
|
char *manufacturer;
|
|
char *serial;
|
|
struct list_head filelist;
|
|
int maxchild;
|
|
u32 quirks;
|
|
atomic_t urbnum;
|
|
unsigned long active_duration;
|
|
unsigned long connect_time;
|
|
unsigned int do_remote_wakeup: 1;
|
|
unsigned int reset_resume: 1;
|
|
unsigned int port_is_suspended: 1;
|
|
struct wusb_dev *wusb_dev;
|
|
int slot_id;
|
|
struct usb2_lpm_parameters l1_params;
|
|
struct usb3_lpm_parameters u1_params;
|
|
struct usb3_lpm_parameters u2_params;
|
|
unsigned int lpm_disable_count;
|
|
u16 hub_delay;
|
|
unsigned int use_generic_driver: 1;
|
|
};
|
|
|
|
struct usb_tt {
|
|
struct usb_device *hub;
|
|
int multi;
|
|
unsigned int think_time;
|
|
void *hcpriv;
|
|
spinlock_t lock;
|
|
struct list_head clear_list;
|
|
struct work_struct clear_work;
|
|
};
|
|
|
|
struct usb_bos_descriptor;
|
|
|
|
struct usb_ext_cap_descriptor;
|
|
|
|
struct usb_ss_cap_descriptor;
|
|
|
|
struct usb_ssp_cap_descriptor;
|
|
|
|
struct usb_ss_container_id_descriptor;
|
|
|
|
struct usb_ptm_cap_descriptor;
|
|
|
|
struct usb_host_bos {
|
|
struct usb_bos_descriptor *desc;
|
|
struct usb_ext_cap_descriptor *ext_cap;
|
|
struct usb_ss_cap_descriptor *ss_cap;
|
|
struct usb_ssp_cap_descriptor *ssp_cap;
|
|
struct usb_ss_container_id_descriptor *ss_id;
|
|
struct usb_ptm_cap_descriptor *ptm_cap;
|
|
};
|
|
|
|
struct usb_bos_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__le16 wTotalLength;
|
|
__u8 bNumDeviceCaps;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_ext_cap_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDevCapabilityType;
|
|
__le32 bmAttributes;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_ss_cap_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDevCapabilityType;
|
|
__u8 bmAttributes;
|
|
__le16 wSpeedSupported;
|
|
__u8 bFunctionalitySupport;
|
|
__u8 bU1devExitLat;
|
|
__le16 bU2DevExitLat;
|
|
};
|
|
|
|
struct usb_ssp_cap_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDevCapabilityType;
|
|
__u8 bReserved;
|
|
__le32 bmAttributes;
|
|
__le16 wFunctionalitySupport;
|
|
__le16 wReserved;
|
|
__le32 bmSublinkSpeedAttr[1];
|
|
};
|
|
|
|
struct usb_ss_container_id_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDevCapabilityType;
|
|
__u8 bReserved;
|
|
__u8 ContainerID[16];
|
|
};
|
|
|
|
struct usb_ptm_cap_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDevCapabilityType;
|
|
};
|
|
|
|
struct usb_config_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__le16 wTotalLength;
|
|
__u8 bNumInterfaces;
|
|
__u8 bConfigurationValue;
|
|
__u8 iConfiguration;
|
|
__u8 bmAttributes;
|
|
__u8 bMaxPower;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_interface_cache;
|
|
|
|
struct usb_host_config {
|
|
struct usb_config_descriptor desc;
|
|
char *string;
|
|
struct usb_interface_assoc_descriptor *intf_assoc[16];
|
|
struct usb_interface *interface[32];
|
|
struct usb_interface_cache *intf_cache[32];
|
|
unsigned char *extra;
|
|
int extralen;
|
|
};
|
|
|
|
struct usb_interface_cache {
|
|
unsigned int num_altsetting;
|
|
struct kref ref;
|
|
struct usb_host_interface altsetting[0];
|
|
};
|
|
|
|
typedef void (*usb_complete_t)(struct urb *);
|
|
|
|
struct usb_iso_packet_descriptor {
|
|
unsigned int offset;
|
|
unsigned int length;
|
|
unsigned int actual_length;
|
|
int status;
|
|
};
|
|
|
|
struct usb_anchor;
|
|
|
|
struct urb {
|
|
struct kref kref;
|
|
int unlinked;
|
|
void *hcpriv;
|
|
atomic_t use_count;
|
|
atomic_t reject;
|
|
struct list_head urb_list;
|
|
struct list_head anchor_list;
|
|
struct usb_anchor *anchor;
|
|
struct usb_device *dev;
|
|
struct usb_host_endpoint *ep;
|
|
unsigned int pipe;
|
|
unsigned int stream_id;
|
|
int status;
|
|
unsigned int transfer_flags;
|
|
void *transfer_buffer;
|
|
dma_addr_t transfer_dma;
|
|
struct scatterlist *sg;
|
|
int num_mapped_sgs;
|
|
int num_sgs;
|
|
u32 transfer_buffer_length;
|
|
u32 actual_length;
|
|
unsigned char *setup_packet;
|
|
dma_addr_t setup_dma;
|
|
int start_frame;
|
|
int number_of_packets;
|
|
int interval;
|
|
int error_count;
|
|
void *context;
|
|
usb_complete_t complete;
|
|
struct usb_iso_packet_descriptor iso_frame_desc[0];
|
|
};
|
|
|
|
struct usb_anchor {
|
|
struct list_head urb_list;
|
|
wait_queue_head_t wait;
|
|
spinlock_t lock;
|
|
atomic_t suspend_wakeups;
|
|
unsigned int poisoned: 1;
|
|
};
|
|
|
|
enum uhci_rh_state {
|
|
UHCI_RH_RESET = 0,
|
|
UHCI_RH_SUSPENDED = 1,
|
|
UHCI_RH_AUTO_STOPPED = 2,
|
|
UHCI_RH_RESUMING = 3,
|
|
UHCI_RH_SUSPENDING = 4,
|
|
UHCI_RH_RUNNING = 5,
|
|
UHCI_RH_RUNNING_NODEVS = 6,
|
|
};
|
|
|
|
enum dmi_field {
|
|
DMI_NONE = 0,
|
|
DMI_BIOS_VENDOR = 1,
|
|
DMI_BIOS_VERSION = 2,
|
|
DMI_BIOS_DATE = 3,
|
|
DMI_BIOS_RELEASE = 4,
|
|
DMI_EC_FIRMWARE_RELEASE = 5,
|
|
DMI_SYS_VENDOR = 6,
|
|
DMI_PRODUCT_NAME = 7,
|
|
DMI_PRODUCT_VERSION = 8,
|
|
DMI_PRODUCT_SERIAL = 9,
|
|
DMI_PRODUCT_UUID = 10,
|
|
DMI_PRODUCT_SKU = 11,
|
|
DMI_PRODUCT_FAMILY = 12,
|
|
DMI_BOARD_VENDOR = 13,
|
|
DMI_BOARD_NAME = 14,
|
|
DMI_BOARD_VERSION = 15,
|
|
DMI_BOARD_SERIAL = 16,
|
|
DMI_BOARD_ASSET_TAG = 17,
|
|
DMI_CHASSIS_VENDOR = 18,
|
|
DMI_CHASSIS_TYPE = 19,
|
|
DMI_CHASSIS_VERSION = 20,
|
|
DMI_CHASSIS_SERIAL = 21,
|
|
DMI_CHASSIS_ASSET_TAG = 22,
|
|
DMI_STRING_MAX = 23,
|
|
DMI_OEM_STRING = 24,
|
|
};
|
|
|
|
struct clk;
|
|
|
|
struct uhci_td;
|
|
|
|
struct uhci_qh;
|
|
|
|
struct uhci_hcd {
|
|
unsigned long io_addr;
|
|
void *regs;
|
|
struct dma_pool *qh_pool;
|
|
struct dma_pool *td_pool;
|
|
struct uhci_td *term_td;
|
|
struct uhci_qh *skelqh[11];
|
|
struct uhci_qh *next_qh;
|
|
spinlock_t lock;
|
|
dma_addr_t frame_dma_handle;
|
|
__le32 *frame;
|
|
void **frame_cpu;
|
|
enum uhci_rh_state rh_state;
|
|
unsigned long auto_stop_time;
|
|
unsigned int frame_number;
|
|
unsigned int is_stopped;
|
|
unsigned int last_iso_frame;
|
|
unsigned int cur_iso_frame;
|
|
unsigned int scan_in_progress: 1;
|
|
unsigned int need_rescan: 1;
|
|
unsigned int dead: 1;
|
|
unsigned int RD_enable: 1;
|
|
unsigned int is_initialized: 1;
|
|
unsigned int fsbr_is_on: 1;
|
|
unsigned int fsbr_is_wanted: 1;
|
|
unsigned int fsbr_expiring: 1;
|
|
struct timer_list fsbr_timer;
|
|
unsigned int oc_low: 1;
|
|
unsigned int wait_for_hp: 1;
|
|
unsigned int big_endian_mmio: 1;
|
|
unsigned int big_endian_desc: 1;
|
|
unsigned int is_aspeed: 1;
|
|
unsigned long port_c_suspend;
|
|
unsigned long resuming_ports;
|
|
unsigned long ports_timeout;
|
|
struct list_head idle_qh_list;
|
|
int rh_numports;
|
|
wait_queue_head_t waitqh;
|
|
int num_waiting;
|
|
int total_load;
|
|
short load[32];
|
|
struct clk *clk;
|
|
void (*reset_hc)(struct uhci_hcd *);
|
|
int (*check_and_reset_hc)(struct uhci_hcd *);
|
|
void (*configure_hc)(struct uhci_hcd *);
|
|
int (*resume_detect_interrupts_are_broken)(struct uhci_hcd *);
|
|
int (*global_suspend_mode_is_broken)(struct uhci_hcd *);
|
|
};
|
|
|
|
struct uhci_td {
|
|
__le32 link;
|
|
__le32 status;
|
|
__le32 token;
|
|
__le32 buffer;
|
|
dma_addr_t dma_handle;
|
|
struct list_head list;
|
|
int frame;
|
|
struct list_head fl_list;
|
|
};
|
|
|
|
struct uhci_qh {
|
|
__le32 link;
|
|
__le32 element;
|
|
dma_addr_t dma_handle;
|
|
struct list_head node;
|
|
struct usb_host_endpoint *hep;
|
|
struct usb_device *udev;
|
|
struct list_head queue;
|
|
struct uhci_td *dummy_td;
|
|
struct uhci_td *post_td;
|
|
struct usb_iso_packet_descriptor *iso_packet_desc;
|
|
unsigned long advance_jiffies;
|
|
unsigned int unlink_frame;
|
|
unsigned int period;
|
|
short phase;
|
|
short load;
|
|
unsigned int iso_frame;
|
|
int state;
|
|
int type;
|
|
int skel;
|
|
unsigned int initial_toggle: 1;
|
|
unsigned int needs_fixup: 1;
|
|
unsigned int is_stopped: 1;
|
|
unsigned int wait_expired: 1;
|
|
unsigned int bandwidth_reserved: 1;
|
|
};
|
|
|
|
struct urb_priv {
|
|
struct list_head node;
|
|
struct urb *urb;
|
|
struct uhci_qh *qh;
|
|
struct list_head td_list;
|
|
unsigned int fsbr: 1;
|
|
};
|
|
|
|
enum psmouse_type {
|
|
PSMOUSE_NONE = 0,
|
|
PSMOUSE_PS2 = 1,
|
|
PSMOUSE_PS2PP = 2,
|
|
PSMOUSE_THINKPS = 3,
|
|
PSMOUSE_GENPS = 4,
|
|
PSMOUSE_IMPS = 5,
|
|
PSMOUSE_IMEX = 6,
|
|
PSMOUSE_SYNAPTICS = 7,
|
|
PSMOUSE_ALPS = 8,
|
|
PSMOUSE_LIFEBOOK = 9,
|
|
PSMOUSE_TRACKPOINT = 10,
|
|
PSMOUSE_TOUCHKIT_PS2 = 11,
|
|
PSMOUSE_CORTRON = 12,
|
|
PSMOUSE_HGPK = 13,
|
|
PSMOUSE_ELANTECH = 14,
|
|
PSMOUSE_FSP = 15,
|
|
PSMOUSE_SYNAPTICS_RELATIVE = 16,
|
|
PSMOUSE_CYPRESS = 17,
|
|
PSMOUSE_FOCALTECH = 18,
|
|
PSMOUSE_VMMOUSE = 19,
|
|
PSMOUSE_BYD = 20,
|
|
PSMOUSE_SYNAPTICS_SMBUS = 21,
|
|
PSMOUSE_ELANTECH_SMBUS = 22,
|
|
PSMOUSE_AUTO = 23,
|
|
};
|
|
|
|
enum psmouse_state {
|
|
PSMOUSE_IGNORE = 0,
|
|
PSMOUSE_INITIALIZING = 1,
|
|
PSMOUSE_RESYNCING = 2,
|
|
PSMOUSE_CMD_MODE = 3,
|
|
PSMOUSE_ACTIVATED = 4,
|
|
};
|
|
|
|
enum psmouse_scale {
|
|
PSMOUSE_SCALE11 = 0,
|
|
PSMOUSE_SCALE21 = 1,
|
|
};
|
|
|
|
struct serio;
|
|
|
|
struct ps2dev {
|
|
struct serio *serio;
|
|
struct mutex cmd_mutex;
|
|
wait_queue_head_t wait;
|
|
unsigned long flags;
|
|
u8 cmdbuf[8];
|
|
u8 cmdcnt;
|
|
u8 nak;
|
|
};
|
|
|
|
typedef enum {
|
|
PSMOUSE_BAD_DATA = 0,
|
|
PSMOUSE_GOOD_DATA = 1,
|
|
PSMOUSE_FULL_PACKET = 2,
|
|
} psmouse_ret_t;
|
|
|
|
struct psmouse_protocol;
|
|
|
|
struct psmouse {
|
|
void *private;
|
|
struct input_dev *dev;
|
|
struct ps2dev ps2dev;
|
|
struct delayed_work resync_work;
|
|
const char *vendor;
|
|
const char *name;
|
|
const struct psmouse_protocol *protocol;
|
|
unsigned char packet[8];
|
|
unsigned char badbyte;
|
|
unsigned char pktcnt;
|
|
unsigned char pktsize;
|
|
unsigned char oob_data_type;
|
|
unsigned char extra_buttons;
|
|
bool acks_disable_command;
|
|
unsigned int model;
|
|
unsigned long last;
|
|
unsigned long out_of_sync_cnt;
|
|
unsigned long num_resyncs;
|
|
enum psmouse_state state;
|
|
char devname[64];
|
|
char phys[32];
|
|
unsigned int rate;
|
|
unsigned int resolution;
|
|
unsigned int resetafter;
|
|
unsigned int resync_time;
|
|
bool smartscroll;
|
|
psmouse_ret_t (*protocol_handler)(struct psmouse *);
|
|
void (*set_rate)(struct psmouse *, unsigned int);
|
|
void (*set_resolution)(struct psmouse *, unsigned int);
|
|
void (*set_scale)(struct psmouse *, enum psmouse_scale);
|
|
int (*reconnect)(struct psmouse *);
|
|
int (*fast_reconnect)(struct psmouse *);
|
|
void (*disconnect)(struct psmouse *);
|
|
void (*cleanup)(struct psmouse *);
|
|
int (*poll)(struct psmouse *);
|
|
void (*pt_activate)(struct psmouse *);
|
|
void (*pt_deactivate)(struct psmouse *);
|
|
};
|
|
|
|
struct input_mt_slot {
|
|
int abs[14];
|
|
unsigned int frame;
|
|
unsigned int key;
|
|
};
|
|
|
|
struct input_mt {
|
|
int trkid;
|
|
int num_slots;
|
|
int slot;
|
|
unsigned int flags;
|
|
unsigned int frame;
|
|
int *red;
|
|
struct input_mt_slot slots[0];
|
|
};
|
|
|
|
struct serio_device_id {
|
|
__u8 type;
|
|
__u8 extra;
|
|
__u8 id;
|
|
__u8 proto;
|
|
};
|
|
|
|
struct serio_driver;
|
|
|
|
struct serio {
|
|
void *port_data;
|
|
char name[32];
|
|
char phys[32];
|
|
char firmware_id[128];
|
|
bool manual_bind;
|
|
struct serio_device_id id;
|
|
spinlock_t lock;
|
|
int (*write)(struct serio *, unsigned char);
|
|
int (*open)(struct serio *);
|
|
void (*close)(struct serio *);
|
|
int (*start)(struct serio *);
|
|
void (*stop)(struct serio *);
|
|
struct serio *parent;
|
|
struct list_head child_node;
|
|
struct list_head children;
|
|
unsigned int depth;
|
|
struct serio_driver *drv;
|
|
struct mutex drv_mutex;
|
|
struct device dev;
|
|
struct list_head node;
|
|
struct mutex *ps2_cmd_mutex;
|
|
};
|
|
|
|
struct serio_driver {
|
|
const char *description;
|
|
const struct serio_device_id *id_table;
|
|
bool manual_bind;
|
|
void (*write_wakeup)(struct serio *);
|
|
irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
|
|
int (*connect)(struct serio *, struct serio_driver *);
|
|
int (*reconnect)(struct serio *);
|
|
int (*fast_reconnect)(struct serio *);
|
|
void (*disconnect)(struct serio *);
|
|
void (*cleanup)(struct serio *);
|
|
struct device_driver driver;
|
|
};
|
|
|
|
struct psmouse_protocol {
|
|
enum psmouse_type type;
|
|
bool maxproto;
|
|
bool ignore_parity;
|
|
bool try_passthru;
|
|
bool smbus_companion;
|
|
const char *name;
|
|
const char *alias;
|
|
int (*detect)(struct psmouse *, bool);
|
|
int (*init)(struct psmouse *);
|
|
};
|
|
|
|
struct focaltech_finger_state {
|
|
bool active;
|
|
bool valid;
|
|
unsigned int x;
|
|
unsigned int y;
|
|
};
|
|
|
|
struct focaltech_hw_state {
|
|
struct focaltech_finger_state fingers[5];
|
|
unsigned int width;
|
|
bool pressed;
|
|
};
|
|
|
|
struct focaltech_data {
|
|
unsigned int x_max;
|
|
unsigned int y_max;
|
|
struct focaltech_hw_state state;
|
|
};
|
|
|
|
struct rc_map_list {
|
|
struct list_head list;
|
|
struct rc_map map;
|
|
};
|
|
|
|
struct ptp_extts_request {
|
|
unsigned int index;
|
|
unsigned int flags;
|
|
unsigned int rsv[2];
|
|
};
|
|
|
|
struct ptp_clock_time {
|
|
__s64 sec;
|
|
__u32 nsec;
|
|
__u32 reserved;
|
|
};
|
|
|
|
struct ptp_perout_request {
|
|
union {
|
|
struct ptp_clock_time start;
|
|
struct ptp_clock_time phase;
|
|
};
|
|
struct ptp_clock_time period;
|
|
unsigned int index;
|
|
unsigned int flags;
|
|
union {
|
|
struct ptp_clock_time on;
|
|
unsigned int rsv[4];
|
|
};
|
|
};
|
|
|
|
struct ptp_clock_request {
|
|
enum {
|
|
PTP_CLK_REQ_EXTTS = 0,
|
|
PTP_CLK_REQ_PEROUT = 1,
|
|
PTP_CLK_REQ_PPS = 2,
|
|
} type;
|
|
union {
|
|
struct ptp_extts_request extts;
|
|
struct ptp_perout_request perout;
|
|
};
|
|
};
|
|
|
|
enum ptp_pin_function {
|
|
PTP_PF_NONE = 0,
|
|
PTP_PF_EXTTS = 1,
|
|
PTP_PF_PEROUT = 2,
|
|
PTP_PF_PHYSYNC = 3,
|
|
};
|
|
|
|
struct posix_clock;
|
|
|
|
struct __kernel_timex;
|
|
|
|
struct posix_clock_operations {
|
|
struct module *owner;
|
|
int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *);
|
|
int (*clock_gettime)(struct posix_clock *, struct timespec64 *);
|
|
int (*clock_getres)(struct posix_clock *, struct timespec64 *);
|
|
int (*clock_settime)(struct posix_clock *, const struct timespec64 *);
|
|
long (*ioctl)(struct posix_clock *, unsigned int, unsigned long);
|
|
int (*open)(struct posix_clock *, fmode_t);
|
|
__poll_t (*poll)(struct posix_clock *, struct file *, poll_table *);
|
|
int (*release)(struct posix_clock *);
|
|
ssize_t (*read)(struct posix_clock *, uint, char __attribute__((btf_type_tag("user"))) *, size_t);
|
|
};
|
|
|
|
struct posix_clock {
|
|
struct posix_clock_operations ops;
|
|
struct cdev cdev;
|
|
struct device *dev;
|
|
struct rw_semaphore rwsem;
|
|
bool zombie;
|
|
};
|
|
|
|
struct ptp_extts_event {
|
|
struct ptp_clock_time t;
|
|
unsigned int index;
|
|
unsigned int flags;
|
|
unsigned int rsv[2];
|
|
};
|
|
|
|
struct timestamp_event_queue {
|
|
struct ptp_extts_event buf[128];
|
|
int head;
|
|
int tail;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct kthread_delayed_work {
|
|
struct kthread_work work;
|
|
struct timer_list timer;
|
|
};
|
|
|
|
struct ptp_clock_info;
|
|
|
|
struct pps_device;
|
|
|
|
struct ptp_clock {
|
|
struct posix_clock clock;
|
|
struct device dev;
|
|
struct ptp_clock_info *info;
|
|
dev_t devid;
|
|
int index;
|
|
struct pps_device *pps_source;
|
|
long dialed_frequency;
|
|
struct timestamp_event_queue tsevq;
|
|
struct mutex tsevq_mux;
|
|
struct mutex pincfg_mux;
|
|
wait_queue_head_t tsev_wq;
|
|
int defunct;
|
|
struct device_attribute *pin_dev_attr;
|
|
struct attribute **pin_attr;
|
|
struct attribute_group pin_attr_group;
|
|
const struct attribute_group *pin_attr_groups[2];
|
|
struct kthread_worker *kworker;
|
|
struct kthread_delayed_work aux_work;
|
|
unsigned int max_vclocks;
|
|
unsigned int n_vclocks;
|
|
int *vclock_index;
|
|
struct mutex n_vclocks_mux;
|
|
bool is_virtual_clock;
|
|
bool has_cycles;
|
|
};
|
|
|
|
struct __kernel_timex_timeval {
|
|
__kernel_time64_t tv_sec;
|
|
long long tv_usec;
|
|
};
|
|
|
|
struct __kernel_timex {
|
|
unsigned int modes;
|
|
long long offset;
|
|
long long freq;
|
|
long long maxerror;
|
|
long long esterror;
|
|
int status;
|
|
long long constant;
|
|
long long precision;
|
|
long long tolerance;
|
|
struct __kernel_timex_timeval time;
|
|
long long tick;
|
|
long long ppsfreq;
|
|
long long jitter;
|
|
int shift;
|
|
long long stabil;
|
|
long long jitcnt;
|
|
long long calcnt;
|
|
long long errcnt;
|
|
long long stbcnt;
|
|
int tai;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct ptp_pin_desc;
|
|
|
|
struct ptp_system_timestamp;
|
|
|
|
struct system_device_crosststamp;
|
|
|
|
struct ptp_clock_info {
|
|
struct module *owner;
|
|
char name[32];
|
|
s32 max_adj;
|
|
int n_alarm;
|
|
int n_ext_ts;
|
|
int n_per_out;
|
|
int n_pins;
|
|
int pps;
|
|
struct ptp_pin_desc *pin_config;
|
|
int (*adjfine)(struct ptp_clock_info *, long);
|
|
int (*adjphase)(struct ptp_clock_info *, s32);
|
|
int (*adjtime)(struct ptp_clock_info *, s64);
|
|
int (*gettime64)(struct ptp_clock_info *, struct timespec64 *);
|
|
int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
|
|
int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *);
|
|
int (*settime64)(struct ptp_clock_info *, const struct timespec64 *);
|
|
int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *);
|
|
int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
|
|
int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *);
|
|
int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int);
|
|
int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int);
|
|
long (*do_aux_work)(struct ptp_clock_info *);
|
|
};
|
|
|
|
struct ptp_pin_desc {
|
|
char name[64];
|
|
unsigned int index;
|
|
unsigned int func;
|
|
unsigned int chan;
|
|
unsigned int rsv[5];
|
|
};
|
|
|
|
struct ptp_system_timestamp {
|
|
struct timespec64 pre_ts;
|
|
struct timespec64 post_ts;
|
|
};
|
|
|
|
struct system_device_crosststamp {
|
|
ktime_t device;
|
|
ktime_t sys_realtime;
|
|
ktime_t sys_monoraw;
|
|
};
|
|
|
|
struct pps_source_info {
|
|
char name[32];
|
|
char path[32];
|
|
int mode;
|
|
void (*echo)(struct pps_device *, int, void *);
|
|
struct module *owner;
|
|
struct device *dev;
|
|
};
|
|
|
|
struct pps_ktime {
|
|
__s64 sec;
|
|
__s32 nsec;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct pps_kparams {
|
|
int api_version;
|
|
int mode;
|
|
struct pps_ktime assert_off_tu;
|
|
struct pps_ktime clear_off_tu;
|
|
};
|
|
|
|
struct pps_device {
|
|
struct pps_source_info info;
|
|
struct pps_kparams params;
|
|
__u32 assert_sequence;
|
|
__u32 clear_sequence;
|
|
struct pps_ktime assert_tu;
|
|
struct pps_ktime clear_tu;
|
|
int current_mode;
|
|
unsigned int last_ev;
|
|
wait_queue_head_t queue;
|
|
unsigned int id;
|
|
const void *lookup_cookie;
|
|
struct cdev cdev;
|
|
struct device *dev;
|
|
struct fasync_struct *async_queue;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct ptp_sys_offset_precise {
|
|
struct ptp_clock_time device;
|
|
struct ptp_clock_time sys_realtime;
|
|
struct ptp_clock_time sys_monoraw;
|
|
unsigned int rsv[4];
|
|
};
|
|
|
|
struct ptp_clock_caps {
|
|
int max_adj;
|
|
int n_alarm;
|
|
int n_ext_ts;
|
|
int n_per_out;
|
|
int pps;
|
|
int n_pins;
|
|
int cross_timestamping;
|
|
int adjust_phase;
|
|
int rsv[12];
|
|
};
|
|
|
|
struct ptp_sys_offset_extended {
|
|
unsigned int n_samples;
|
|
unsigned int rsv[3];
|
|
struct ptp_clock_time ts[75];
|
|
};
|
|
|
|
struct ptp_sys_offset {
|
|
unsigned int n_samples;
|
|
unsigned int rsv[3];
|
|
struct ptp_clock_time ts[51];
|
|
};
|
|
|
|
struct cpufreq_policy;
|
|
|
|
struct cpufreq_policy_data;
|
|
|
|
struct freq_attr;
|
|
|
|
struct cpufreq_driver {
|
|
char name[16];
|
|
u16 flags;
|
|
void *driver_data;
|
|
int (*init)(struct cpufreq_policy *);
|
|
int (*verify)(struct cpufreq_policy_data *);
|
|
int (*setpolicy)(struct cpufreq_policy *);
|
|
int (*target)(struct cpufreq_policy *, unsigned int, unsigned int);
|
|
int (*target_index)(struct cpufreq_policy *, unsigned int);
|
|
unsigned int (*fast_switch)(struct cpufreq_policy *, unsigned int);
|
|
void (*adjust_perf)(unsigned int, unsigned long, unsigned long, unsigned long);
|
|
unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int);
|
|
int (*target_intermediate)(struct cpufreq_policy *, unsigned int);
|
|
unsigned int (*get)(unsigned int);
|
|
void (*update_limits)(unsigned int);
|
|
int (*bios_limit)(int, unsigned int *);
|
|
int (*online)(struct cpufreq_policy *);
|
|
int (*offline)(struct cpufreq_policy *);
|
|
int (*exit)(struct cpufreq_policy *);
|
|
int (*suspend)(struct cpufreq_policy *);
|
|
int (*resume)(struct cpufreq_policy *);
|
|
void (*ready)(struct cpufreq_policy *);
|
|
struct freq_attr **attr;
|
|
bool boost_enabled;
|
|
int (*set_boost)(struct cpufreq_policy *, int);
|
|
void (*register_em)(struct cpufreq_policy *);
|
|
};
|
|
|
|
struct cpufreq_cpuinfo {
|
|
unsigned int max_freq;
|
|
unsigned int min_freq;
|
|
unsigned int transition_latency;
|
|
};
|
|
|
|
enum cpufreq_table_sorting {
|
|
CPUFREQ_TABLE_UNSORTED = 0,
|
|
CPUFREQ_TABLE_SORTED_ASCENDING = 1,
|
|
CPUFREQ_TABLE_SORTED_DESCENDING = 2,
|
|
};
|
|
|
|
struct cpufreq_stats;
|
|
|
|
struct cpufreq_governor;
|
|
|
|
struct cpufreq_frequency_table;
|
|
|
|
struct thermal_cooling_device;
|
|
|
|
struct cpufreq_policy {
|
|
cpumask_var_t cpus;
|
|
cpumask_var_t related_cpus;
|
|
cpumask_var_t real_cpus;
|
|
unsigned int shared_type;
|
|
unsigned int cpu;
|
|
struct clk *clk;
|
|
struct cpufreq_cpuinfo cpuinfo;
|
|
unsigned int min;
|
|
unsigned int max;
|
|
unsigned int cur;
|
|
unsigned int suspend_freq;
|
|
unsigned int policy;
|
|
unsigned int last_policy;
|
|
struct cpufreq_governor *governor;
|
|
void *governor_data;
|
|
char last_governor[16];
|
|
struct work_struct update;
|
|
struct freq_constraints constraints;
|
|
struct freq_qos_request *min_freq_req;
|
|
struct freq_qos_request *max_freq_req;
|
|
struct cpufreq_frequency_table *freq_table;
|
|
enum cpufreq_table_sorting freq_table_sorted;
|
|
struct list_head policy_list;
|
|
struct kobject kobj;
|
|
struct completion kobj_unregister;
|
|
struct rw_semaphore rwsem;
|
|
bool fast_switch_possible;
|
|
bool fast_switch_enabled;
|
|
bool strict_target;
|
|
bool efficiencies_available;
|
|
unsigned int transition_delay_us;
|
|
bool dvfs_possible_from_any_cpu;
|
|
unsigned int cached_target_freq;
|
|
unsigned int cached_resolved_idx;
|
|
bool transition_ongoing;
|
|
spinlock_t transition_lock;
|
|
wait_queue_head_t transition_wait;
|
|
struct task_struct *transition_task;
|
|
struct cpufreq_stats *stats;
|
|
void *driver_data;
|
|
struct thermal_cooling_device *cdev;
|
|
struct notifier_block nb_min;
|
|
struct notifier_block nb_max;
|
|
};
|
|
|
|
struct cpufreq_governor {
|
|
char name[16];
|
|
int (*init)(struct cpufreq_policy *);
|
|
void (*exit)(struct cpufreq_policy *);
|
|
int (*start)(struct cpufreq_policy *);
|
|
void (*stop)(struct cpufreq_policy *);
|
|
void (*limits)(struct cpufreq_policy *);
|
|
ssize_t (*show_setspeed)(struct cpufreq_policy *, char *);
|
|
int (*store_setspeed)(struct cpufreq_policy *, unsigned int);
|
|
struct list_head governor_list;
|
|
struct module *owner;
|
|
u8 flags;
|
|
};
|
|
|
|
struct cpufreq_frequency_table {
|
|
unsigned int flags;
|
|
unsigned int driver_data;
|
|
unsigned int frequency;
|
|
};
|
|
|
|
struct thermal_cooling_device_ops;
|
|
|
|
struct thermal_cooling_device {
|
|
int id;
|
|
char *type;
|
|
unsigned long max_state;
|
|
struct device device;
|
|
struct device_node *np;
|
|
void *devdata;
|
|
void *stats;
|
|
const struct thermal_cooling_device_ops *ops;
|
|
bool updated;
|
|
struct mutex lock;
|
|
struct list_head thermal_instances;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct thermal_cooling_device_ops {
|
|
int (*get_max_state)(struct thermal_cooling_device *, unsigned long *);
|
|
int (*get_cur_state)(struct thermal_cooling_device *, unsigned long *);
|
|
int (*set_cur_state)(struct thermal_cooling_device *, unsigned long);
|
|
int (*get_requested_power)(struct thermal_cooling_device *, u32 *);
|
|
int (*state2power)(struct thermal_cooling_device *, unsigned long, u32 *);
|
|
int (*power2state)(struct thermal_cooling_device *, u32, unsigned long *);
|
|
};
|
|
|
|
struct cpufreq_policy_data {
|
|
struct cpufreq_cpuinfo cpuinfo;
|
|
struct cpufreq_frequency_table *freq_table;
|
|
unsigned int cpu;
|
|
unsigned int min;
|
|
unsigned int max;
|
|
};
|
|
|
|
struct freq_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct cpufreq_policy *, char *);
|
|
ssize_t (*store)(struct cpufreq_policy *, const char *, size_t);
|
|
};
|
|
|
|
enum cpuhp_state {
|
|
CPUHP_INVALID = -1,
|
|
CPUHP_OFFLINE = 0,
|
|
CPUHP_CREATE_THREADS = 1,
|
|
CPUHP_PERF_PREPARE = 2,
|
|
CPUHP_PERF_X86_PREPARE = 3,
|
|
CPUHP_PERF_X86_AMD_UNCORE_PREP = 4,
|
|
CPUHP_PERF_POWER = 5,
|
|
CPUHP_PERF_SUPERH = 6,
|
|
CPUHP_X86_HPET_DEAD = 7,
|
|
CPUHP_X86_APB_DEAD = 8,
|
|
CPUHP_X86_MCE_DEAD = 9,
|
|
CPUHP_VIRT_NET_DEAD = 10,
|
|
CPUHP_IBMVNIC_DEAD = 11,
|
|
CPUHP_SLUB_DEAD = 12,
|
|
CPUHP_DEBUG_OBJ_DEAD = 13,
|
|
CPUHP_MM_WRITEBACK_DEAD = 14,
|
|
CPUHP_MM_DEMOTION_DEAD = 15,
|
|
CPUHP_MM_VMSTAT_DEAD = 16,
|
|
CPUHP_SOFTIRQ_DEAD = 17,
|
|
CPUHP_NET_MVNETA_DEAD = 18,
|
|
CPUHP_CPUIDLE_DEAD = 19,
|
|
CPUHP_ARM64_FPSIMD_DEAD = 20,
|
|
CPUHP_ARM_OMAP_WAKE_DEAD = 21,
|
|
CPUHP_IRQ_POLL_DEAD = 22,
|
|
CPUHP_BLOCK_SOFTIRQ_DEAD = 23,
|
|
CPUHP_BIO_DEAD = 24,
|
|
CPUHP_ACPI_CPUDRV_DEAD = 25,
|
|
CPUHP_S390_PFAULT_DEAD = 26,
|
|
CPUHP_BLK_MQ_DEAD = 27,
|
|
CPUHP_FS_BUFF_DEAD = 28,
|
|
CPUHP_PRINTK_DEAD = 29,
|
|
CPUHP_MM_MEMCQ_DEAD = 30,
|
|
CPUHP_XFS_DEAD = 31,
|
|
CPUHP_PERCPU_CNT_DEAD = 32,
|
|
CPUHP_RADIX_DEAD = 33,
|
|
CPUHP_PAGE_ALLOC = 34,
|
|
CPUHP_NET_DEV_DEAD = 35,
|
|
CPUHP_PCI_XGENE_DEAD = 36,
|
|
CPUHP_IOMMU_IOVA_DEAD = 37,
|
|
CPUHP_LUSTRE_CFS_DEAD = 38,
|
|
CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 39,
|
|
CPUHP_PADATA_DEAD = 40,
|
|
CPUHP_AP_DTPM_CPU_DEAD = 41,
|
|
CPUHP_RANDOM_PREPARE = 42,
|
|
CPUHP_WORKQUEUE_PREP = 43,
|
|
CPUHP_POWER_NUMA_PREPARE = 44,
|
|
CPUHP_HRTIMERS_PREPARE = 45,
|
|
CPUHP_PROFILE_PREPARE = 46,
|
|
CPUHP_X2APIC_PREPARE = 47,
|
|
CPUHP_SMPCFD_PREPARE = 48,
|
|
CPUHP_RELAY_PREPARE = 49,
|
|
CPUHP_SLAB_PREPARE = 50,
|
|
CPUHP_MD_RAID5_PREPARE = 51,
|
|
CPUHP_RCUTREE_PREP = 52,
|
|
CPUHP_CPUIDLE_COUPLED_PREPARE = 53,
|
|
CPUHP_POWERPC_PMAC_PREPARE = 54,
|
|
CPUHP_POWERPC_MMU_CTX_PREPARE = 55,
|
|
CPUHP_XEN_PREPARE = 56,
|
|
CPUHP_XEN_EVTCHN_PREPARE = 57,
|
|
CPUHP_ARM_SHMOBILE_SCU_PREPARE = 58,
|
|
CPUHP_SH_SH3X_PREPARE = 59,
|
|
CPUHP_NET_FLOW_PREPARE = 60,
|
|
CPUHP_TOPOLOGY_PREPARE = 61,
|
|
CPUHP_NET_IUCV_PREPARE = 62,
|
|
CPUHP_ARM_BL_PREPARE = 63,
|
|
CPUHP_TRACE_RB_PREPARE = 64,
|
|
CPUHP_MM_ZS_PREPARE = 65,
|
|
CPUHP_MM_ZSWP_MEM_PREPARE = 66,
|
|
CPUHP_MM_ZSWP_POOL_PREPARE = 67,
|
|
CPUHP_KVM_PPC_BOOK3S_PREPARE = 68,
|
|
CPUHP_ZCOMP_PREPARE = 69,
|
|
CPUHP_TIMERS_PREPARE = 70,
|
|
CPUHP_MIPS_SOC_PREPARE = 71,
|
|
CPUHP_BP_PREPARE_DYN = 72,
|
|
CPUHP_BP_PREPARE_DYN_END = 92,
|
|
CPUHP_BRINGUP_CPU = 93,
|
|
CPUHP_AP_IDLE_DEAD = 94,
|
|
CPUHP_AP_OFFLINE = 95,
|
|
CPUHP_AP_CACHECTRL_STARTING = 96,
|
|
CPUHP_AP_SCHED_STARTING = 97,
|
|
CPUHP_AP_RCUTREE_DYING = 98,
|
|
CPUHP_AP_CPU_PM_STARTING = 99,
|
|
CPUHP_AP_IRQ_GIC_STARTING = 100,
|
|
CPUHP_AP_IRQ_HIP04_STARTING = 101,
|
|
CPUHP_AP_IRQ_APPLE_AIC_STARTING = 102,
|
|
CPUHP_AP_IRQ_ARMADA_XP_STARTING = 103,
|
|
CPUHP_AP_IRQ_BCM2836_STARTING = 104,
|
|
CPUHP_AP_IRQ_MIPS_GIC_STARTING = 105,
|
|
CPUHP_AP_IRQ_RISCV_STARTING = 106,
|
|
CPUHP_AP_IRQ_LOONGARCH_STARTING = 107,
|
|
CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 108,
|
|
CPUHP_AP_ARM_MVEBU_COHERENCY = 109,
|
|
CPUHP_AP_MICROCODE_LOADER = 110,
|
|
CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 111,
|
|
CPUHP_AP_PERF_X86_STARTING = 112,
|
|
CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 113,
|
|
CPUHP_AP_PERF_X86_CQM_STARTING = 114,
|
|
CPUHP_AP_PERF_X86_CSTATE_STARTING = 115,
|
|
CPUHP_AP_PERF_XTENSA_STARTING = 116,
|
|
CPUHP_AP_MIPS_OP_LOONGSON3_STARTING = 117,
|
|
CPUHP_AP_ARM_SDEI_STARTING = 118,
|
|
CPUHP_AP_ARM_VFP_STARTING = 119,
|
|
CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 120,
|
|
CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 121,
|
|
CPUHP_AP_PERF_ARM_ACPI_STARTING = 122,
|
|
CPUHP_AP_PERF_ARM_STARTING = 123,
|
|
CPUHP_AP_PERF_RISCV_STARTING = 124,
|
|
CPUHP_AP_ARM_L2X0_STARTING = 125,
|
|
CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 126,
|
|
CPUHP_AP_ARM_ARCH_TIMER_STARTING = 127,
|
|
CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 128,
|
|
CPUHP_AP_JCORE_TIMER_STARTING = 129,
|
|
CPUHP_AP_ARM_TWD_STARTING = 130,
|
|
CPUHP_AP_QCOM_TIMER_STARTING = 131,
|
|
CPUHP_AP_TEGRA_TIMER_STARTING = 132,
|
|
CPUHP_AP_ARMADA_TIMER_STARTING = 133,
|
|
CPUHP_AP_MARCO_TIMER_STARTING = 134,
|
|
CPUHP_AP_MIPS_GIC_TIMER_STARTING = 135,
|
|
CPUHP_AP_ARC_TIMER_STARTING = 136,
|
|
CPUHP_AP_RISCV_TIMER_STARTING = 137,
|
|
CPUHP_AP_CLINT_TIMER_STARTING = 138,
|
|
CPUHP_AP_CSKY_TIMER_STARTING = 139,
|
|
CPUHP_AP_TI_GP_TIMER_STARTING = 140,
|
|
CPUHP_AP_HYPERV_TIMER_STARTING = 141,
|
|
CPUHP_AP_DUMMY_TIMER_STARTING = 142,
|
|
CPUHP_AP_ARM_XEN_STARTING = 143,
|
|
CPUHP_AP_ARM_CORESIGHT_STARTING = 144,
|
|
CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 145,
|
|
CPUHP_AP_ARM64_ISNDEP_STARTING = 146,
|
|
CPUHP_AP_SMPCFD_DYING = 147,
|
|
CPUHP_AP_X86_TBOOT_DYING = 148,
|
|
CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 149,
|
|
CPUHP_AP_ONLINE = 150,
|
|
CPUHP_TEARDOWN_CPU = 151,
|
|
CPUHP_AP_ONLINE_IDLE = 152,
|
|
CPUHP_AP_KVM_ONLINE = 153,
|
|
CPUHP_AP_SCHED_WAIT_EMPTY = 154,
|
|
CPUHP_AP_SMPBOOT_THREADS = 155,
|
|
CPUHP_AP_X86_VDSO_VMA_ONLINE = 156,
|
|
CPUHP_AP_IRQ_AFFINITY_ONLINE = 157,
|
|
CPUHP_AP_BLK_MQ_ONLINE = 158,
|
|
CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 159,
|
|
CPUHP_AP_X86_INTEL_EPB_ONLINE = 160,
|
|
CPUHP_AP_PERF_ONLINE = 161,
|
|
CPUHP_AP_PERF_X86_ONLINE = 162,
|
|
CPUHP_AP_PERF_X86_UNCORE_ONLINE = 163,
|
|
CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 164,
|
|
CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 165,
|
|
CPUHP_AP_PERF_X86_RAPL_ONLINE = 166,
|
|
CPUHP_AP_PERF_X86_CQM_ONLINE = 167,
|
|
CPUHP_AP_PERF_X86_CSTATE_ONLINE = 168,
|
|
CPUHP_AP_PERF_X86_IDXD_ONLINE = 169,
|
|
CPUHP_AP_PERF_X86_IOMMU_PERF_ONLINE = 170,
|
|
CPUHP_AP_PERF_S390_CF_ONLINE = 171,
|
|
CPUHP_AP_PERF_S390_SF_ONLINE = 172,
|
|
CPUHP_AP_PERF_ARM_CCI_ONLINE = 173,
|
|
CPUHP_AP_PERF_ARM_CCN_ONLINE = 174,
|
|
CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 175,
|
|
CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 176,
|
|
CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 177,
|
|
CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 178,
|
|
CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 179,
|
|
CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 180,
|
|
CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 181,
|
|
CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 182,
|
|
CPUHP_AP_PERF_ARM_L2X0_ONLINE = 183,
|
|
CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 184,
|
|
CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 185,
|
|
CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 186,
|
|
CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 187,
|
|
CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 188,
|
|
CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 189,
|
|
CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 190,
|
|
CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 191,
|
|
CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 192,
|
|
CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 193,
|
|
CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 194,
|
|
CPUHP_AP_PERF_CSKY_ONLINE = 195,
|
|
CPUHP_AP_WATCHDOG_ONLINE = 196,
|
|
CPUHP_AP_WORKQUEUE_ONLINE = 197,
|
|
CPUHP_AP_RANDOM_ONLINE = 198,
|
|
CPUHP_AP_RCUTREE_ONLINE = 199,
|
|
CPUHP_AP_BASE_CACHEINFO_ONLINE = 200,
|
|
CPUHP_AP_ONLINE_DYN = 201,
|
|
CPUHP_AP_ONLINE_DYN_END = 231,
|
|
CPUHP_AP_MM_DEMOTION_ONLINE = 232,
|
|
CPUHP_AP_X86_HPET_ONLINE = 233,
|
|
CPUHP_AP_X86_KVM_CLK_ONLINE = 234,
|
|
CPUHP_AP_ACTIVE = 235,
|
|
CPUHP_ONLINE = 236,
|
|
};
|
|
|
|
struct srcu_notifier_head {
|
|
struct mutex mutex;
|
|
struct srcu_struct srcu;
|
|
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
|
|
};
|
|
|
|
struct subsys_interface {
|
|
const char *name;
|
|
struct bus_type *subsys;
|
|
struct list_head node;
|
|
int (*add_dev)(struct device *, struct subsys_interface *);
|
|
void (*remove_dev)(struct device *, struct subsys_interface *);
|
|
};
|
|
|
|
enum kobject_action {
|
|
KOBJ_ADD = 0,
|
|
KOBJ_REMOVE = 1,
|
|
KOBJ_CHANGE = 2,
|
|
KOBJ_MOVE = 3,
|
|
KOBJ_ONLINE = 4,
|
|
KOBJ_OFFLINE = 5,
|
|
KOBJ_BIND = 6,
|
|
KOBJ_UNBIND = 7,
|
|
};
|
|
|
|
struct cpufreq_freqs {
|
|
struct cpufreq_policy *policy;
|
|
unsigned int old;
|
|
unsigned int new;
|
|
u8 flags;
|
|
};
|
|
|
|
struct hid_device_id;
|
|
|
|
struct hid_device;
|
|
|
|
struct hid_report_id;
|
|
|
|
struct hid_report;
|
|
|
|
struct hid_usage_id;
|
|
|
|
struct hid_field;
|
|
|
|
struct hid_usage;
|
|
|
|
struct hid_input;
|
|
|
|
struct hid_driver {
|
|
char *name;
|
|
const struct hid_device_id *id_table;
|
|
struct list_head dyn_list;
|
|
spinlock_t dyn_lock;
|
|
bool (*match)(struct hid_device *, bool);
|
|
int (*probe)(struct hid_device *, const struct hid_device_id *);
|
|
void (*remove)(struct hid_device *);
|
|
const struct hid_report_id *report_table;
|
|
int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int);
|
|
const struct hid_usage_id *usage_table;
|
|
int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
|
|
void (*report)(struct hid_device *, struct hid_report *);
|
|
__u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *);
|
|
int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *);
|
|
int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *);
|
|
int (*input_configured)(struct hid_device *, struct hid_input *);
|
|
void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *);
|
|
int (*suspend)(struct hid_device *, pm_message_t);
|
|
int (*resume)(struct hid_device *);
|
|
int (*reset_resume)(struct hid_device *);
|
|
struct device_driver driver;
|
|
};
|
|
|
|
struct hid_device_id {
|
|
__u16 bus;
|
|
__u16 group;
|
|
__u32 vendor;
|
|
__u32 product;
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
enum hid_type {
|
|
HID_TYPE_OTHER = 0,
|
|
HID_TYPE_USBMOUSE = 1,
|
|
HID_TYPE_USBNONE = 2,
|
|
};
|
|
|
|
struct hid_report_enum {
|
|
unsigned int numbered;
|
|
struct list_head report_list;
|
|
struct hid_report *report_id_hash[256];
|
|
};
|
|
|
|
struct hid_bpf_prog_list;
|
|
|
|
struct hid_bpf {
|
|
u8 *device_data;
|
|
u32 allocated_data;
|
|
struct hid_bpf_prog_list __attribute__((btf_type_tag("rcu"))) *progs[2];
|
|
bool destroyed;
|
|
spinlock_t progs_lock;
|
|
};
|
|
|
|
struct hid_collection;
|
|
|
|
struct hid_ll_driver;
|
|
|
|
struct hid_device {
|
|
__u8 *dev_rdesc;
|
|
unsigned int dev_rsize;
|
|
__u8 *rdesc;
|
|
unsigned int rsize;
|
|
struct hid_collection *collection;
|
|
unsigned int collection_size;
|
|
unsigned int maxcollection;
|
|
unsigned int maxapplication;
|
|
__u16 bus;
|
|
__u16 group;
|
|
__u32 vendor;
|
|
__u32 product;
|
|
__u32 version;
|
|
enum hid_type type;
|
|
unsigned int country;
|
|
struct hid_report_enum report_enum[3];
|
|
struct work_struct led_work;
|
|
struct semaphore driver_input_lock;
|
|
struct device dev;
|
|
struct hid_driver *driver;
|
|
const struct hid_ll_driver *ll_driver;
|
|
struct mutex ll_open_lock;
|
|
unsigned int ll_open_count;
|
|
unsigned long status;
|
|
unsigned int claimed;
|
|
unsigned int quirks;
|
|
unsigned int initial_quirks;
|
|
bool io_started;
|
|
struct list_head inputs;
|
|
void *hiddev;
|
|
void *hidraw;
|
|
char name[128];
|
|
char phys[64];
|
|
char uniq[64];
|
|
void *driver_data;
|
|
int (*ff_init)(struct hid_device *);
|
|
int (*hiddev_connect)(struct hid_device *, unsigned int);
|
|
void (*hiddev_disconnect)(struct hid_device *);
|
|
void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
|
|
void (*hiddev_report_event)(struct hid_device *, struct hid_report *);
|
|
unsigned short debug;
|
|
struct dentry *debug_dir;
|
|
struct dentry *debug_rdesc;
|
|
struct dentry *debug_events;
|
|
struct list_head debug_list;
|
|
spinlock_t debug_list_lock;
|
|
wait_queue_head_t debug_wait;
|
|
unsigned int id;
|
|
struct hid_bpf bpf;
|
|
};
|
|
|
|
struct hid_collection {
|
|
int parent_idx;
|
|
unsigned int type;
|
|
unsigned int usage;
|
|
unsigned int level;
|
|
};
|
|
|
|
enum hid_report_type {
|
|
HID_INPUT_REPORT = 0,
|
|
HID_OUTPUT_REPORT = 1,
|
|
HID_FEATURE_REPORT = 2,
|
|
HID_REPORT_TYPES = 3,
|
|
};
|
|
|
|
struct hid_field_entry;
|
|
|
|
struct hid_report {
|
|
struct list_head list;
|
|
struct list_head hidinput_list;
|
|
struct list_head field_entry_list;
|
|
unsigned int id;
|
|
enum hid_report_type type;
|
|
unsigned int application;
|
|
struct hid_field *field[256];
|
|
struct hid_field_entry *field_entries;
|
|
unsigned int maxfield;
|
|
unsigned int size;
|
|
struct hid_device *device;
|
|
bool tool_active;
|
|
unsigned int tool;
|
|
};
|
|
|
|
struct hid_field {
|
|
unsigned int physical;
|
|
unsigned int logical;
|
|
unsigned int application;
|
|
struct hid_usage *usage;
|
|
unsigned int maxusage;
|
|
unsigned int flags;
|
|
unsigned int report_offset;
|
|
unsigned int report_size;
|
|
unsigned int report_count;
|
|
unsigned int report_type;
|
|
__s32 *value;
|
|
__s32 *new_value;
|
|
__s32 *usages_priorities;
|
|
__s32 logical_minimum;
|
|
__s32 logical_maximum;
|
|
__s32 physical_minimum;
|
|
__s32 physical_maximum;
|
|
__s32 unit_exponent;
|
|
unsigned int unit;
|
|
bool ignored;
|
|
struct hid_report *report;
|
|
unsigned int index;
|
|
struct hid_input *hidinput;
|
|
__u16 dpad;
|
|
unsigned int slot_idx;
|
|
};
|
|
|
|
struct hid_usage {
|
|
unsigned int hid;
|
|
unsigned int collection_index;
|
|
unsigned int usage_index;
|
|
__s8 resolution_multiplier;
|
|
__s8 wheel_factor;
|
|
__u16 code;
|
|
__u8 type;
|
|
__s8 hat_min;
|
|
__s8 hat_max;
|
|
__s8 hat_dir;
|
|
__s16 wheel_accumulated;
|
|
};
|
|
|
|
struct hid_input {
|
|
struct list_head list;
|
|
struct hid_report *report;
|
|
struct input_dev *input;
|
|
const char *name;
|
|
bool registered;
|
|
struct list_head reports;
|
|
unsigned int application;
|
|
};
|
|
|
|
struct hid_field_entry {
|
|
struct list_head list;
|
|
struct hid_field *field;
|
|
unsigned int index;
|
|
__s32 priority;
|
|
};
|
|
|
|
struct hid_ll_driver {
|
|
int (*start)(struct hid_device *);
|
|
void (*stop)(struct hid_device *);
|
|
int (*open)(struct hid_device *);
|
|
void (*close)(struct hid_device *);
|
|
int (*power)(struct hid_device *, int);
|
|
int (*parse)(struct hid_device *);
|
|
void (*request)(struct hid_device *, struct hid_report *, int);
|
|
int (*wait)(struct hid_device *);
|
|
int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int);
|
|
int (*output_report)(struct hid_device *, __u8 *, size_t);
|
|
int (*idle)(struct hid_device *, int, int, int);
|
|
bool (*may_wakeup)(struct hid_device *);
|
|
};
|
|
|
|
struct hid_bpf_prog_list {
|
|
u16 prog_idx[64];
|
|
u8 prog_cnt;
|
|
};
|
|
|
|
struct hid_report_id {
|
|
__u32 report_type;
|
|
};
|
|
|
|
struct hid_usage_id {
|
|
__u32 usage_hid;
|
|
__u32 usage_type;
|
|
__u32 usage_code;
|
|
};
|
|
|
|
enum hid_class_request {
|
|
HID_REQ_GET_REPORT = 1,
|
|
HID_REQ_GET_IDLE = 2,
|
|
HID_REQ_GET_PROTOCOL = 3,
|
|
HID_REQ_SET_REPORT = 9,
|
|
HID_REQ_SET_IDLE = 10,
|
|
HID_REQ_SET_PROTOCOL = 11,
|
|
};
|
|
|
|
struct plff_device {
|
|
struct hid_report *report;
|
|
s32 maxval;
|
|
s32 *strong;
|
|
s32 *weak;
|
|
};
|
|
|
|
struct dmi_system_id;
|
|
|
|
struct snd_soc_acpi_codecs;
|
|
|
|
struct config_entry {
|
|
u32 flags;
|
|
u16 device;
|
|
u8 acpi_hid[16];
|
|
const struct dmi_system_id *dmi_table;
|
|
const struct snd_soc_acpi_codecs *codec_hid;
|
|
};
|
|
|
|
struct dmi_strmatch {
|
|
unsigned char slot: 7;
|
|
unsigned char exact_match: 1;
|
|
char substr[79];
|
|
};
|
|
|
|
struct dmi_system_id {
|
|
int (*callback)(const struct dmi_system_id *);
|
|
const char *ident;
|
|
struct dmi_strmatch matches[4];
|
|
void *driver_data;
|
|
};
|
|
|
|
struct snd_soc_acpi_codecs {
|
|
int num_codecs;
|
|
u8 codecs[48];
|
|
};
|
|
|
|
enum {
|
|
SND_INTEL_DSP_DRIVER_ANY = 0,
|
|
SND_INTEL_DSP_DRIVER_LEGACY = 1,
|
|
SND_INTEL_DSP_DRIVER_SST = 2,
|
|
SND_INTEL_DSP_DRIVER_SOF = 3,
|
|
SND_INTEL_DSP_DRIVER_AVS = 4,
|
|
SND_INTEL_DSP_DRIVER_LAST = 4,
|
|
};
|
|
|
|
enum nhlt_link_type {
|
|
NHLT_LINK_HDA = 0,
|
|
NHLT_LINK_DSP = 1,
|
|
NHLT_LINK_DMIC = 2,
|
|
NHLT_LINK_SSP = 3,
|
|
NHLT_LINK_INVALID = 4,
|
|
};
|
|
|
|
enum {
|
|
IPPROTO_IP = 0,
|
|
IPPROTO_ICMP = 1,
|
|
IPPROTO_IGMP = 2,
|
|
IPPROTO_IPIP = 4,
|
|
IPPROTO_TCP = 6,
|
|
IPPROTO_EGP = 8,
|
|
IPPROTO_PUP = 12,
|
|
IPPROTO_UDP = 17,
|
|
IPPROTO_IDP = 22,
|
|
IPPROTO_TP = 29,
|
|
IPPROTO_DCCP = 33,
|
|
IPPROTO_IPV6 = 41,
|
|
IPPROTO_RSVP = 46,
|
|
IPPROTO_GRE = 47,
|
|
IPPROTO_ESP = 50,
|
|
IPPROTO_AH = 51,
|
|
IPPROTO_MTP = 92,
|
|
IPPROTO_BEETPH = 94,
|
|
IPPROTO_ENCAP = 98,
|
|
IPPROTO_PIM = 103,
|
|
IPPROTO_COMP = 108,
|
|
IPPROTO_L2TP = 115,
|
|
IPPROTO_SCTP = 132,
|
|
IPPROTO_UDPLITE = 136,
|
|
IPPROTO_MPLS = 137,
|
|
IPPROTO_ETHERNET = 143,
|
|
IPPROTO_RAW = 255,
|
|
IPPROTO_MPTCP = 262,
|
|
IPPROTO_MAX = 263,
|
|
};
|
|
|
|
enum {
|
|
LINUX_MIB_NUM = 0,
|
|
LINUX_MIB_SYNCOOKIESSENT = 1,
|
|
LINUX_MIB_SYNCOOKIESRECV = 2,
|
|
LINUX_MIB_SYNCOOKIESFAILED = 3,
|
|
LINUX_MIB_EMBRYONICRSTS = 4,
|
|
LINUX_MIB_PRUNECALLED = 5,
|
|
LINUX_MIB_RCVPRUNED = 6,
|
|
LINUX_MIB_OFOPRUNED = 7,
|
|
LINUX_MIB_OUTOFWINDOWICMPS = 8,
|
|
LINUX_MIB_LOCKDROPPEDICMPS = 9,
|
|
LINUX_MIB_ARPFILTER = 10,
|
|
LINUX_MIB_TIMEWAITED = 11,
|
|
LINUX_MIB_TIMEWAITRECYCLED = 12,
|
|
LINUX_MIB_TIMEWAITKILLED = 13,
|
|
LINUX_MIB_PAWSACTIVEREJECTED = 14,
|
|
LINUX_MIB_PAWSESTABREJECTED = 15,
|
|
LINUX_MIB_DELAYEDACKS = 16,
|
|
LINUX_MIB_DELAYEDACKLOCKED = 17,
|
|
LINUX_MIB_DELAYEDACKLOST = 18,
|
|
LINUX_MIB_LISTENOVERFLOWS = 19,
|
|
LINUX_MIB_LISTENDROPS = 20,
|
|
LINUX_MIB_TCPHPHITS = 21,
|
|
LINUX_MIB_TCPPUREACKS = 22,
|
|
LINUX_MIB_TCPHPACKS = 23,
|
|
LINUX_MIB_TCPRENORECOVERY = 24,
|
|
LINUX_MIB_TCPSACKRECOVERY = 25,
|
|
LINUX_MIB_TCPSACKRENEGING = 26,
|
|
LINUX_MIB_TCPSACKREORDER = 27,
|
|
LINUX_MIB_TCPRENOREORDER = 28,
|
|
LINUX_MIB_TCPTSREORDER = 29,
|
|
LINUX_MIB_TCPFULLUNDO = 30,
|
|
LINUX_MIB_TCPPARTIALUNDO = 31,
|
|
LINUX_MIB_TCPDSACKUNDO = 32,
|
|
LINUX_MIB_TCPLOSSUNDO = 33,
|
|
LINUX_MIB_TCPLOSTRETRANSMIT = 34,
|
|
LINUX_MIB_TCPRENOFAILURES = 35,
|
|
LINUX_MIB_TCPSACKFAILURES = 36,
|
|
LINUX_MIB_TCPLOSSFAILURES = 37,
|
|
LINUX_MIB_TCPFASTRETRANS = 38,
|
|
LINUX_MIB_TCPSLOWSTARTRETRANS = 39,
|
|
LINUX_MIB_TCPTIMEOUTS = 40,
|
|
LINUX_MIB_TCPLOSSPROBES = 41,
|
|
LINUX_MIB_TCPLOSSPROBERECOVERY = 42,
|
|
LINUX_MIB_TCPRENORECOVERYFAIL = 43,
|
|
LINUX_MIB_TCPSACKRECOVERYFAIL = 44,
|
|
LINUX_MIB_TCPRCVCOLLAPSED = 45,
|
|
LINUX_MIB_TCPDSACKOLDSENT = 46,
|
|
LINUX_MIB_TCPDSACKOFOSENT = 47,
|
|
LINUX_MIB_TCPDSACKRECV = 48,
|
|
LINUX_MIB_TCPDSACKOFORECV = 49,
|
|
LINUX_MIB_TCPABORTONDATA = 50,
|
|
LINUX_MIB_TCPABORTONCLOSE = 51,
|
|
LINUX_MIB_TCPABORTONMEMORY = 52,
|
|
LINUX_MIB_TCPABORTONTIMEOUT = 53,
|
|
LINUX_MIB_TCPABORTONLINGER = 54,
|
|
LINUX_MIB_TCPABORTFAILED = 55,
|
|
LINUX_MIB_TCPMEMORYPRESSURES = 56,
|
|
LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57,
|
|
LINUX_MIB_TCPSACKDISCARD = 58,
|
|
LINUX_MIB_TCPDSACKIGNOREDOLD = 59,
|
|
LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60,
|
|
LINUX_MIB_TCPSPURIOUSRTOS = 61,
|
|
LINUX_MIB_TCPMD5NOTFOUND = 62,
|
|
LINUX_MIB_TCPMD5UNEXPECTED = 63,
|
|
LINUX_MIB_TCPMD5FAILURE = 64,
|
|
LINUX_MIB_SACKSHIFTED = 65,
|
|
LINUX_MIB_SACKMERGED = 66,
|
|
LINUX_MIB_SACKSHIFTFALLBACK = 67,
|
|
LINUX_MIB_TCPBACKLOGDROP = 68,
|
|
LINUX_MIB_PFMEMALLOCDROP = 69,
|
|
LINUX_MIB_TCPMINTTLDROP = 70,
|
|
LINUX_MIB_TCPDEFERACCEPTDROP = 71,
|
|
LINUX_MIB_IPRPFILTER = 72,
|
|
LINUX_MIB_TCPTIMEWAITOVERFLOW = 73,
|
|
LINUX_MIB_TCPREQQFULLDOCOOKIES = 74,
|
|
LINUX_MIB_TCPREQQFULLDROP = 75,
|
|
LINUX_MIB_TCPRETRANSFAIL = 76,
|
|
LINUX_MIB_TCPRCVCOALESCE = 77,
|
|
LINUX_MIB_TCPBACKLOGCOALESCE = 78,
|
|
LINUX_MIB_TCPOFOQUEUE = 79,
|
|
LINUX_MIB_TCPOFODROP = 80,
|
|
LINUX_MIB_TCPOFOMERGE = 81,
|
|
LINUX_MIB_TCPCHALLENGEACK = 82,
|
|
LINUX_MIB_TCPSYNCHALLENGE = 83,
|
|
LINUX_MIB_TCPFASTOPENACTIVE = 84,
|
|
LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85,
|
|
LINUX_MIB_TCPFASTOPENPASSIVE = 86,
|
|
LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87,
|
|
LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88,
|
|
LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89,
|
|
LINUX_MIB_TCPFASTOPENBLACKHOLE = 90,
|
|
LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91,
|
|
LINUX_MIB_BUSYPOLLRXPACKETS = 92,
|
|
LINUX_MIB_TCPAUTOCORKING = 93,
|
|
LINUX_MIB_TCPFROMZEROWINDOWADV = 94,
|
|
LINUX_MIB_TCPTOZEROWINDOWADV = 95,
|
|
LINUX_MIB_TCPWANTZEROWINDOWADV = 96,
|
|
LINUX_MIB_TCPSYNRETRANS = 97,
|
|
LINUX_MIB_TCPORIGDATASENT = 98,
|
|
LINUX_MIB_TCPHYSTARTTRAINDETECT = 99,
|
|
LINUX_MIB_TCPHYSTARTTRAINCWND = 100,
|
|
LINUX_MIB_TCPHYSTARTDELAYDETECT = 101,
|
|
LINUX_MIB_TCPHYSTARTDELAYCWND = 102,
|
|
LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103,
|
|
LINUX_MIB_TCPACKSKIPPEDPAWS = 104,
|
|
LINUX_MIB_TCPACKSKIPPEDSEQ = 105,
|
|
LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106,
|
|
LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107,
|
|
LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108,
|
|
LINUX_MIB_TCPWINPROBE = 109,
|
|
LINUX_MIB_TCPKEEPALIVE = 110,
|
|
LINUX_MIB_TCPMTUPFAIL = 111,
|
|
LINUX_MIB_TCPMTUPSUCCESS = 112,
|
|
LINUX_MIB_TCPDELIVERED = 113,
|
|
LINUX_MIB_TCPDELIVEREDCE = 114,
|
|
LINUX_MIB_TCPACKCOMPRESSED = 115,
|
|
LINUX_MIB_TCPZEROWINDOWDROP = 116,
|
|
LINUX_MIB_TCPRCVQDROP = 117,
|
|
LINUX_MIB_TCPWQUEUETOOBIG = 118,
|
|
LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119,
|
|
LINUX_MIB_TCPTIMEOUTREHASH = 120,
|
|
LINUX_MIB_TCPDUPLICATEDATAREHASH = 121,
|
|
LINUX_MIB_TCPDSACKRECVSEGS = 122,
|
|
LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123,
|
|
LINUX_MIB_TCPMIGRATEREQSUCCESS = 124,
|
|
LINUX_MIB_TCPMIGRATEREQFAILURE = 125,
|
|
LINUX_MIB_TCPPLBREHASH = 126,
|
|
__LINUX_MIB_MAX = 127,
|
|
};
|
|
|
|
enum skb_drop_reason {
|
|
SKB_NOT_DROPPED_YET = 0,
|
|
SKB_CONSUMED = 1,
|
|
SKB_DROP_REASON_NOT_SPECIFIED = 2,
|
|
SKB_DROP_REASON_NO_SOCKET = 3,
|
|
SKB_DROP_REASON_PKT_TOO_SMALL = 4,
|
|
SKB_DROP_REASON_TCP_CSUM = 5,
|
|
SKB_DROP_REASON_SOCKET_FILTER = 6,
|
|
SKB_DROP_REASON_UDP_CSUM = 7,
|
|
SKB_DROP_REASON_NETFILTER_DROP = 8,
|
|
SKB_DROP_REASON_OTHERHOST = 9,
|
|
SKB_DROP_REASON_IP_CSUM = 10,
|
|
SKB_DROP_REASON_IP_INHDR = 11,
|
|
SKB_DROP_REASON_IP_RPFILTER = 12,
|
|
SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13,
|
|
SKB_DROP_REASON_XFRM_POLICY = 14,
|
|
SKB_DROP_REASON_IP_NOPROTO = 15,
|
|
SKB_DROP_REASON_SOCKET_RCVBUFF = 16,
|
|
SKB_DROP_REASON_PROTO_MEM = 17,
|
|
SKB_DROP_REASON_TCP_MD5NOTFOUND = 18,
|
|
SKB_DROP_REASON_TCP_MD5UNEXPECTED = 19,
|
|
SKB_DROP_REASON_TCP_MD5FAILURE = 20,
|
|
SKB_DROP_REASON_SOCKET_BACKLOG = 21,
|
|
SKB_DROP_REASON_TCP_FLAGS = 22,
|
|
SKB_DROP_REASON_TCP_ZEROWINDOW = 23,
|
|
SKB_DROP_REASON_TCP_OLD_DATA = 24,
|
|
SKB_DROP_REASON_TCP_OVERWINDOW = 25,
|
|
SKB_DROP_REASON_TCP_OFOMERGE = 26,
|
|
SKB_DROP_REASON_TCP_RFC7323_PAWS = 27,
|
|
SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 28,
|
|
SKB_DROP_REASON_TCP_RESET = 29,
|
|
SKB_DROP_REASON_TCP_INVALID_SYN = 30,
|
|
SKB_DROP_REASON_TCP_CLOSE = 31,
|
|
SKB_DROP_REASON_TCP_FASTOPEN = 32,
|
|
SKB_DROP_REASON_TCP_OLD_ACK = 33,
|
|
SKB_DROP_REASON_TCP_TOO_OLD_ACK = 34,
|
|
SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 35,
|
|
SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 36,
|
|
SKB_DROP_REASON_TCP_OFO_DROP = 37,
|
|
SKB_DROP_REASON_IP_OUTNOROUTES = 38,
|
|
SKB_DROP_REASON_BPF_CGROUP_EGRESS = 39,
|
|
SKB_DROP_REASON_IPV6DISABLED = 40,
|
|
SKB_DROP_REASON_NEIGH_CREATEFAIL = 41,
|
|
SKB_DROP_REASON_NEIGH_FAILED = 42,
|
|
SKB_DROP_REASON_NEIGH_QUEUEFULL = 43,
|
|
SKB_DROP_REASON_NEIGH_DEAD = 44,
|
|
SKB_DROP_REASON_TC_EGRESS = 45,
|
|
SKB_DROP_REASON_QDISC_DROP = 46,
|
|
SKB_DROP_REASON_CPU_BACKLOG = 47,
|
|
SKB_DROP_REASON_XDP = 48,
|
|
SKB_DROP_REASON_TC_INGRESS = 49,
|
|
SKB_DROP_REASON_UNHANDLED_PROTO = 50,
|
|
SKB_DROP_REASON_SKB_CSUM = 51,
|
|
SKB_DROP_REASON_SKB_GSO_SEG = 52,
|
|
SKB_DROP_REASON_SKB_UCOPY_FAULT = 53,
|
|
SKB_DROP_REASON_DEV_HDR = 54,
|
|
SKB_DROP_REASON_DEV_READY = 55,
|
|
SKB_DROP_REASON_FULL_RING = 56,
|
|
SKB_DROP_REASON_NOMEM = 57,
|
|
SKB_DROP_REASON_HDR_TRUNC = 58,
|
|
SKB_DROP_REASON_TAP_FILTER = 59,
|
|
SKB_DROP_REASON_TAP_TXFILTER = 60,
|
|
SKB_DROP_REASON_ICMP_CSUM = 61,
|
|
SKB_DROP_REASON_INVALID_PROTO = 62,
|
|
SKB_DROP_REASON_IP_INADDRERRORS = 63,
|
|
SKB_DROP_REASON_IP_INNOROUTES = 64,
|
|
SKB_DROP_REASON_PKT_TOO_BIG = 65,
|
|
SKB_DROP_REASON_DUP_FRAG = 66,
|
|
SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 67,
|
|
SKB_DROP_REASON_FRAG_TOO_FAR = 68,
|
|
SKB_DROP_REASON_TCP_MINTTL = 69,
|
|
SKB_DROP_REASON_IPV6_BAD_EXTHDR = 70,
|
|
SKB_DROP_REASON_IPV6_NDISC_FRAG = 71,
|
|
SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 72,
|
|
SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 73,
|
|
SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 74,
|
|
SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 75,
|
|
SKB_DROP_REASON_MAX = 76,
|
|
};
|
|
|
|
enum {
|
|
TCP_ESTABLISHED = 1,
|
|
TCP_SYN_SENT = 2,
|
|
TCP_SYN_RECV = 3,
|
|
TCP_FIN_WAIT1 = 4,
|
|
TCP_FIN_WAIT2 = 5,
|
|
TCP_TIME_WAIT = 6,
|
|
TCP_CLOSE = 7,
|
|
TCP_CLOSE_WAIT = 8,
|
|
TCP_LAST_ACK = 9,
|
|
TCP_LISTEN = 10,
|
|
TCP_CLOSING = 11,
|
|
TCP_NEW_SYN_RECV = 12,
|
|
TCP_MAX_STATES = 13,
|
|
};
|
|
|
|
struct qdisc_skb_cb {
|
|
struct {
|
|
unsigned int pkt_len;
|
|
u16 slave_dev_queue_mapping;
|
|
u16 tc_classid;
|
|
};
|
|
unsigned char data[20];
|
|
};
|
|
|
|
typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *));
|
|
|
|
typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *);
|
|
|
|
typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *);
|
|
|
|
struct ethnl_req_info;
|
|
|
|
struct ethnl_reply_data;
|
|
|
|
struct genl_info;
|
|
|
|
struct ethnl_request_ops {
|
|
u8 request_cmd;
|
|
u8 reply_cmd;
|
|
u16 hdr_attr;
|
|
unsigned int req_info_size;
|
|
unsigned int reply_data_size;
|
|
bool allow_nodev_do;
|
|
u8 set_ntf_cmd;
|
|
int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *);
|
|
int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, struct genl_info *);
|
|
int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *);
|
|
int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *);
|
|
void (*cleanup_data)(struct ethnl_reply_data *);
|
|
int (*set_validate)(struct ethnl_req_info *, struct genl_info *);
|
|
int (*set)(struct ethnl_req_info *, struct genl_info *);
|
|
};
|
|
|
|
struct ethnl_req_info {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
u32 flags;
|
|
};
|
|
|
|
struct ethnl_reply_data {
|
|
struct net_device *dev;
|
|
};
|
|
|
|
struct genlmsghdr;
|
|
|
|
struct genl_info {
|
|
u32 snd_seq;
|
|
u32 snd_portid;
|
|
struct nlmsghdr *nlhdr;
|
|
struct genlmsghdr *genlhdr;
|
|
void *userhdr;
|
|
struct nlattr **attrs;
|
|
possible_net_t _net;
|
|
void *user_ptr[2];
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
struct genlmsghdr {
|
|
__u8 cmd;
|
|
__u8 version;
|
|
__u16 reserved;
|
|
};
|
|
|
|
struct genl_split_ops;
|
|
|
|
struct genl_ops;
|
|
|
|
struct genl_small_ops;
|
|
|
|
struct genl_multicast_group;
|
|
|
|
struct genl_family {
|
|
unsigned int hdrsize;
|
|
char name[16];
|
|
unsigned int version;
|
|
unsigned int maxattr;
|
|
u8 netnsok: 1;
|
|
u8 parallel_ops: 1;
|
|
u8 n_ops;
|
|
u8 n_small_ops;
|
|
u8 n_split_ops;
|
|
u8 n_mcgrps;
|
|
u8 resv_start_op;
|
|
const struct nla_policy *policy;
|
|
int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
|
|
void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
|
|
const struct genl_ops *ops;
|
|
const struct genl_small_ops *small_ops;
|
|
const struct genl_split_ops *split_ops;
|
|
const struct genl_multicast_group *mcgrps;
|
|
struct module *module;
|
|
int id;
|
|
unsigned int mcgrp_offset;
|
|
};
|
|
|
|
struct genl_split_ops {
|
|
union {
|
|
struct {
|
|
int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
|
|
int (*doit)(struct sk_buff *, struct genl_info *);
|
|
void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
|
|
};
|
|
struct {
|
|
int (*start)(struct netlink_callback *);
|
|
int (*dumpit)(struct sk_buff *, struct netlink_callback *);
|
|
int (*done)(struct netlink_callback *);
|
|
};
|
|
};
|
|
const struct nla_policy *policy;
|
|
unsigned int maxattr;
|
|
u8 cmd;
|
|
u8 internal_flags;
|
|
u8 flags;
|
|
u8 validate;
|
|
};
|
|
|
|
struct genl_ops {
|
|
int (*doit)(struct sk_buff *, struct genl_info *);
|
|
int (*start)(struct netlink_callback *);
|
|
int (*dumpit)(struct sk_buff *, struct netlink_callback *);
|
|
int (*done)(struct netlink_callback *);
|
|
const struct nla_policy *policy;
|
|
unsigned int maxattr;
|
|
u8 cmd;
|
|
u8 internal_flags;
|
|
u8 flags;
|
|
u8 validate;
|
|
};
|
|
|
|
struct genl_small_ops {
|
|
int (*doit)(struct sk_buff *, struct genl_info *);
|
|
int (*dumpit)(struct sk_buff *, struct netlink_callback *);
|
|
u8 cmd;
|
|
u8 internal_flags;
|
|
u8 flags;
|
|
u8 validate;
|
|
};
|
|
|
|
struct genl_multicast_group {
|
|
char name[16];
|
|
u8 flags;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_HEADER_UNSPEC = 0,
|
|
ETHTOOL_A_HEADER_DEV_INDEX = 1,
|
|
ETHTOOL_A_HEADER_DEV_NAME = 2,
|
|
ETHTOOL_A_HEADER_FLAGS = 3,
|
|
__ETHTOOL_A_HEADER_CNT = 4,
|
|
ETHTOOL_A_HEADER_MAX = 3,
|
|
};
|
|
|
|
enum ethtool_multicast_groups {
|
|
ETHNL_MCGRP_MONITOR = 0,
|
|
};
|
|
|
|
enum netlink_validation {
|
|
NL_VALIDATE_LIBERAL = 0,
|
|
NL_VALIDATE_TRAILING = 1,
|
|
NL_VALIDATE_MAXTYPE = 2,
|
|
NL_VALIDATE_UNSPEC = 4,
|
|
NL_VALIDATE_STRICT_ATTRS = 8,
|
|
NL_VALIDATE_NESTED = 16,
|
|
};
|
|
|
|
enum netdev_cmd {
|
|
NETDEV_UP = 1,
|
|
NETDEV_DOWN = 2,
|
|
NETDEV_REBOOT = 3,
|
|
NETDEV_CHANGE = 4,
|
|
NETDEV_REGISTER = 5,
|
|
NETDEV_UNREGISTER = 6,
|
|
NETDEV_CHANGEMTU = 7,
|
|
NETDEV_CHANGEADDR = 8,
|
|
NETDEV_PRE_CHANGEADDR = 9,
|
|
NETDEV_GOING_DOWN = 10,
|
|
NETDEV_CHANGENAME = 11,
|
|
NETDEV_FEAT_CHANGE = 12,
|
|
NETDEV_BONDING_FAILOVER = 13,
|
|
NETDEV_PRE_UP = 14,
|
|
NETDEV_PRE_TYPE_CHANGE = 15,
|
|
NETDEV_POST_TYPE_CHANGE = 16,
|
|
NETDEV_POST_INIT = 17,
|
|
NETDEV_PRE_UNINIT = 18,
|
|
NETDEV_RELEASE = 19,
|
|
NETDEV_NOTIFY_PEERS = 20,
|
|
NETDEV_JOIN = 21,
|
|
NETDEV_CHANGEUPPER = 22,
|
|
NETDEV_RESEND_IGMP = 23,
|
|
NETDEV_PRECHANGEMTU = 24,
|
|
NETDEV_CHANGEINFODATA = 25,
|
|
NETDEV_BONDING_INFO = 26,
|
|
NETDEV_PRECHANGEUPPER = 27,
|
|
NETDEV_CHANGELOWERSTATE = 28,
|
|
NETDEV_UDP_TUNNEL_PUSH_INFO = 29,
|
|
NETDEV_UDP_TUNNEL_DROP_INFO = 30,
|
|
NETDEV_CHANGE_TX_QUEUE_LEN = 31,
|
|
NETDEV_CVLAN_FILTER_PUSH_INFO = 32,
|
|
NETDEV_CVLAN_FILTER_DROP_INFO = 33,
|
|
NETDEV_SVLAN_FILTER_PUSH_INFO = 34,
|
|
NETDEV_SVLAN_FILTER_DROP_INFO = 35,
|
|
NETDEV_OFFLOAD_XSTATS_ENABLE = 36,
|
|
NETDEV_OFFLOAD_XSTATS_DISABLE = 37,
|
|
NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38,
|
|
NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39,
|
|
NETDEV_XDP_FEAT_CHANGE = 40,
|
|
};
|
|
|
|
struct scm_creds {
|
|
u32 pid;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
};
|
|
|
|
struct netlink_skb_parms {
|
|
struct scm_creds creds;
|
|
__u32 portid;
|
|
__u32 dst_group;
|
|
__u32 flags;
|
|
struct sock *sk;
|
|
bool nsid_is_set;
|
|
int nsid;
|
|
};
|
|
|
|
struct ethnl_dump_ctx {
|
|
const struct ethnl_request_ops *ops;
|
|
struct ethnl_req_info *req_info;
|
|
struct ethnl_reply_data *reply_data;
|
|
int pos_hash;
|
|
int pos_idx;
|
|
};
|
|
|
|
struct genl_dumpit_info {
|
|
const struct genl_family *family;
|
|
struct genl_split_ops op;
|
|
struct nlattr **attrs;
|
|
};
|
|
|
|
struct netdev_notifier_info {
|
|
struct net_device *dev;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_PLCA_UNSPEC = 0,
|
|
ETHTOOL_A_PLCA_HEADER = 1,
|
|
ETHTOOL_A_PLCA_VERSION = 2,
|
|
ETHTOOL_A_PLCA_ENABLED = 3,
|
|
ETHTOOL_A_PLCA_STATUS = 4,
|
|
ETHTOOL_A_PLCA_NODE_CNT = 5,
|
|
ETHTOOL_A_PLCA_NODE_ID = 6,
|
|
ETHTOOL_A_PLCA_TO_TMR = 7,
|
|
ETHTOOL_A_PLCA_BURST_CNT = 8,
|
|
ETHTOOL_A_PLCA_BURST_TMR = 9,
|
|
__ETHTOOL_A_PLCA_CNT = 10,
|
|
ETHTOOL_A_PLCA_MAX = 9,
|
|
};
|
|
|
|
struct plca_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct phy_plca_cfg plca_cfg;
|
|
struct phy_plca_status plca_st;
|
|
};
|
|
|
|
struct ethtool_phy_ops {
|
|
int (*get_sset_count)(struct phy_device *);
|
|
int (*get_strings)(struct phy_device *, u8 *);
|
|
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
|
|
int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *);
|
|
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *);
|
|
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *);
|
|
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
|
|
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
|
|
};
|
|
|
|
struct in_addr {
|
|
__be32 s_addr;
|
|
};
|
|
|
|
union nf_inet_addr {
|
|
__u32 all[4];
|
|
__be32 ip;
|
|
__be32 ip6[4];
|
|
struct in_addr in;
|
|
struct in6_addr in6;
|
|
};
|
|
|
|
union nf_conntrack_man_proto {
|
|
__be16 all;
|
|
struct {
|
|
__be16 port;
|
|
} tcp;
|
|
struct {
|
|
__be16 port;
|
|
} udp;
|
|
struct {
|
|
__be16 id;
|
|
} icmp;
|
|
struct {
|
|
__be16 port;
|
|
} dccp;
|
|
struct {
|
|
__be16 port;
|
|
} sctp;
|
|
struct {
|
|
__be16 key;
|
|
} gre;
|
|
};
|
|
|
|
typedef u16 u_int16_t;
|
|
|
|
struct nf_conntrack_man {
|
|
union nf_inet_addr u3;
|
|
union nf_conntrack_man_proto u;
|
|
u_int16_t l3num;
|
|
};
|
|
|
|
struct nf_conn;
|
|
|
|
struct nf_conntrack_expect;
|
|
|
|
struct nf_ct_helper_expectfn {
|
|
struct list_head head;
|
|
const char *name;
|
|
void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *);
|
|
};
|
|
|
|
struct nf_conntrack {
|
|
refcount_t use;
|
|
};
|
|
|
|
struct nf_conntrack_zone {
|
|
u16 id;
|
|
u8 flags;
|
|
u8 dir;
|
|
};
|
|
|
|
struct nf_conntrack_tuple {
|
|
struct nf_conntrack_man src;
|
|
struct {
|
|
union nf_inet_addr u3;
|
|
union {
|
|
__be16 all;
|
|
struct {
|
|
__be16 port;
|
|
} tcp;
|
|
struct {
|
|
__be16 port;
|
|
} udp;
|
|
struct {
|
|
u_int8_t type;
|
|
u_int8_t code;
|
|
} icmp;
|
|
struct {
|
|
__be16 port;
|
|
} dccp;
|
|
struct {
|
|
__be16 port;
|
|
} sctp;
|
|
struct {
|
|
__be16 key;
|
|
} gre;
|
|
} u;
|
|
u_int8_t protonum;
|
|
u_int8_t dir;
|
|
} dst;
|
|
};
|
|
|
|
struct nf_conntrack_tuple_hash {
|
|
struct hlist_nulls_node hnnode;
|
|
struct nf_conntrack_tuple tuple;
|
|
};
|
|
|
|
typedef u32 u_int32_t;
|
|
|
|
typedef u64 u_int64_t;
|
|
|
|
struct nf_ct_dccp {
|
|
u_int8_t role[2];
|
|
u_int8_t state;
|
|
u_int8_t last_pkt;
|
|
u_int8_t last_dir;
|
|
u_int64_t handshake_seq;
|
|
};
|
|
|
|
enum sctp_conntrack {
|
|
SCTP_CONNTRACK_NONE = 0,
|
|
SCTP_CONNTRACK_CLOSED = 1,
|
|
SCTP_CONNTRACK_COOKIE_WAIT = 2,
|
|
SCTP_CONNTRACK_COOKIE_ECHOED = 3,
|
|
SCTP_CONNTRACK_ESTABLISHED = 4,
|
|
SCTP_CONNTRACK_SHUTDOWN_SENT = 5,
|
|
SCTP_CONNTRACK_SHUTDOWN_RECD = 6,
|
|
SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7,
|
|
SCTP_CONNTRACK_HEARTBEAT_SENT = 8,
|
|
SCTP_CONNTRACK_HEARTBEAT_ACKED = 9,
|
|
SCTP_CONNTRACK_MAX = 10,
|
|
};
|
|
|
|
struct ip_ct_sctp {
|
|
enum sctp_conntrack state;
|
|
__be32 vtag[2];
|
|
u8 last_dir;
|
|
u8 flags;
|
|
};
|
|
|
|
struct ip_ct_tcp_state {
|
|
u_int32_t td_end;
|
|
u_int32_t td_maxend;
|
|
u_int32_t td_maxwin;
|
|
u_int32_t td_maxack;
|
|
u_int8_t td_scale;
|
|
u_int8_t flags;
|
|
};
|
|
|
|
struct ip_ct_tcp {
|
|
struct ip_ct_tcp_state seen[2];
|
|
u_int8_t state;
|
|
u_int8_t last_dir;
|
|
u_int8_t retrans;
|
|
u_int8_t last_index;
|
|
u_int32_t last_seq;
|
|
u_int32_t last_ack;
|
|
u_int32_t last_end;
|
|
u_int16_t last_win;
|
|
u_int8_t last_wscale;
|
|
u_int8_t last_flags;
|
|
};
|
|
|
|
struct nf_ct_udp {
|
|
unsigned long stream_ts;
|
|
};
|
|
|
|
struct nf_ct_gre {
|
|
unsigned int stream_timeout;
|
|
unsigned int timeout;
|
|
};
|
|
|
|
union nf_conntrack_proto {
|
|
struct nf_ct_dccp dccp;
|
|
struct ip_ct_sctp sctp;
|
|
struct ip_ct_tcp tcp;
|
|
struct nf_ct_udp udp;
|
|
struct nf_ct_gre gre;
|
|
unsigned int tmpl_padto;
|
|
};
|
|
|
|
struct nf_ct_ext;
|
|
|
|
struct nf_conn {
|
|
struct nf_conntrack ct_general;
|
|
spinlock_t lock;
|
|
u32 timeout;
|
|
struct nf_conntrack_zone zone;
|
|
struct nf_conntrack_tuple_hash tuplehash[2];
|
|
unsigned long status;
|
|
possible_net_t ct_net;
|
|
struct hlist_node nat_bysource;
|
|
struct { } __nfct_init_offset;
|
|
struct nf_conn *master;
|
|
u_int32_t mark;
|
|
u_int32_t secmark;
|
|
struct nf_ct_ext *ext;
|
|
union nf_conntrack_proto proto;
|
|
};
|
|
|
|
struct xfrm_address_filter;
|
|
|
|
struct xfrm_state_walk {
|
|
struct list_head all;
|
|
u8 state;
|
|
u8 dying;
|
|
u8 proto;
|
|
u32 seq;
|
|
struct xfrm_address_filter *filter;
|
|
};
|
|
|
|
struct xfrm_replay_state {
|
|
__u32 oseq;
|
|
__u32 seq;
|
|
__u32 bitmap;
|
|
};
|
|
|
|
enum xfrm_replay_mode {
|
|
XFRM_REPLAY_MODE_LEGACY = 0,
|
|
XFRM_REPLAY_MODE_BMP = 1,
|
|
XFRM_REPLAY_MODE_ESN = 2,
|
|
};
|
|
|
|
struct xfrm_stats {
|
|
__u32 replay_window;
|
|
__u32 replay;
|
|
__u32 integrity_failed;
|
|
};
|
|
|
|
struct xfrm_mode {
|
|
u8 encap;
|
|
u8 family;
|
|
u8 flags;
|
|
};
|
|
|
|
struct xfrm_algo_auth;
|
|
|
|
struct xfrm_algo;
|
|
|
|
struct xfrm_algo_aead;
|
|
|
|
struct xfrm_encap_tmpl;
|
|
|
|
struct xfrm_replay_state_esn;
|
|
|
|
struct xfrm_type;
|
|
|
|
struct xfrm_type_offload;
|
|
|
|
struct xfrm_state {
|
|
possible_net_t xs_net;
|
|
union {
|
|
struct hlist_node gclist;
|
|
struct hlist_node bydst;
|
|
};
|
|
struct hlist_node bysrc;
|
|
struct hlist_node byspi;
|
|
struct hlist_node byseq;
|
|
refcount_t refcnt;
|
|
spinlock_t lock;
|
|
struct xfrm_id id;
|
|
struct xfrm_selector sel;
|
|
struct xfrm_mark mark;
|
|
u32 if_id;
|
|
u32 tfcpad;
|
|
u32 genid;
|
|
struct xfrm_state_walk km;
|
|
struct {
|
|
u32 reqid;
|
|
u8 mode;
|
|
u8 replay_window;
|
|
u8 aalgo;
|
|
u8 ealgo;
|
|
u8 calgo;
|
|
u8 flags;
|
|
u16 family;
|
|
xfrm_address_t saddr;
|
|
int header_len;
|
|
int trailer_len;
|
|
u32 extra_flags;
|
|
struct xfrm_mark smark;
|
|
} props;
|
|
struct xfrm_lifetime_cfg lft;
|
|
struct xfrm_algo_auth *aalg;
|
|
struct xfrm_algo *ealg;
|
|
struct xfrm_algo *calg;
|
|
struct xfrm_algo_aead *aead;
|
|
const char *geniv;
|
|
__be16 new_mapping_sport;
|
|
u32 new_mapping;
|
|
u32 mapping_maxage;
|
|
struct xfrm_encap_tmpl *encap;
|
|
struct sock __attribute__((btf_type_tag("rcu"))) *encap_sk;
|
|
xfrm_address_t *coaddr;
|
|
struct xfrm_state *tunnel;
|
|
atomic_t tunnel_users;
|
|
struct xfrm_replay_state replay;
|
|
struct xfrm_replay_state_esn *replay_esn;
|
|
struct xfrm_replay_state preplay;
|
|
struct xfrm_replay_state_esn *preplay_esn;
|
|
enum xfrm_replay_mode repl_mode;
|
|
u32 xflags;
|
|
u32 replay_maxage;
|
|
u32 replay_maxdiff;
|
|
struct timer_list rtimer;
|
|
struct xfrm_stats stats;
|
|
struct xfrm_lifetime_cur curlft;
|
|
struct hrtimer mtimer;
|
|
struct xfrm_dev_offload xso;
|
|
long saved_tmo;
|
|
time64_t lastused;
|
|
struct page_frag xfrag;
|
|
const struct xfrm_type *type;
|
|
struct xfrm_mode inner_mode;
|
|
struct xfrm_mode inner_mode_iaf;
|
|
struct xfrm_mode outer_mode;
|
|
const struct xfrm_type_offload *type_offload;
|
|
struct xfrm_sec_ctx *security;
|
|
void *data;
|
|
};
|
|
|
|
struct xfrm_address_filter {
|
|
xfrm_address_t saddr;
|
|
xfrm_address_t daddr;
|
|
__u16 family;
|
|
__u8 splen;
|
|
__u8 dplen;
|
|
};
|
|
|
|
struct xfrm_algo_auth {
|
|
char alg_name[64];
|
|
unsigned int alg_key_len;
|
|
unsigned int alg_trunc_len;
|
|
char alg_key[0];
|
|
};
|
|
|
|
struct xfrm_algo {
|
|
char alg_name[64];
|
|
unsigned int alg_key_len;
|
|
char alg_key[0];
|
|
};
|
|
|
|
struct xfrm_algo_aead {
|
|
char alg_name[64];
|
|
unsigned int alg_key_len;
|
|
unsigned int alg_icv_len;
|
|
char alg_key[0];
|
|
};
|
|
|
|
struct xfrm_encap_tmpl {
|
|
__u16 encap_type;
|
|
__be16 encap_sport;
|
|
__be16 encap_dport;
|
|
xfrm_address_t encap_oa;
|
|
};
|
|
|
|
struct xfrm_replay_state_esn {
|
|
unsigned int bmp_len;
|
|
__u32 oseq;
|
|
__u32 seq;
|
|
__u32 oseq_hi;
|
|
__u32 seq_hi;
|
|
__u32 replay_window;
|
|
__u32 bmp[0];
|
|
};
|
|
|
|
struct xfrm_type {
|
|
struct module *owner;
|
|
u8 proto;
|
|
u8 flags;
|
|
int (*init_state)(struct xfrm_state *, struct netlink_ext_ack *);
|
|
void (*destructor)(struct xfrm_state *);
|
|
int (*input)(struct xfrm_state *, struct sk_buff *);
|
|
int (*output)(struct xfrm_state *, struct sk_buff *);
|
|
int (*reject)(struct xfrm_state *, struct sk_buff *, const struct flowi *);
|
|
};
|
|
|
|
struct xfrm_type_offload {
|
|
struct module *owner;
|
|
u8 proto;
|
|
void (*encap)(struct xfrm_state *, struct sk_buff *);
|
|
int (*input_tail)(struct xfrm_state *, struct sk_buff *);
|
|
int (*xmit)(struct xfrm_state *, struct sk_buff *, netdev_features_t);
|
|
};
|
|
|
|
struct xfrm_sec_ctx {
|
|
__u8 ctx_doi;
|
|
__u8 ctx_alg;
|
|
__u16 ctx_len;
|
|
__u32 ctx_sid;
|
|
char ctx_str[0];
|
|
};
|
|
|
|
struct nf_hook_state {
|
|
u8 hook;
|
|
u8 pf;
|
|
struct net_device *in;
|
|
struct net_device *out;
|
|
struct sock *sk;
|
|
struct net *net;
|
|
int (*okfn)(struct net *, struct sock *, struct sk_buff *);
|
|
};
|
|
|
|
struct nf_ct_event {
|
|
struct nf_conn *ct;
|
|
u32 portid;
|
|
int report;
|
|
};
|
|
|
|
struct nf_exp_event {
|
|
struct nf_conntrack_expect *exp;
|
|
u32 portid;
|
|
int report;
|
|
};
|
|
|
|
struct nf_conntrack_tuple_mask {
|
|
struct {
|
|
union nf_inet_addr u3;
|
|
union nf_conntrack_man_proto u;
|
|
} src;
|
|
};
|
|
|
|
enum ip_conntrack_dir {
|
|
IP_CT_DIR_ORIGINAL = 0,
|
|
IP_CT_DIR_REPLY = 1,
|
|
IP_CT_DIR_MAX = 2,
|
|
};
|
|
|
|
struct nf_conntrack_helper;
|
|
|
|
struct nf_conntrack_expect {
|
|
struct hlist_node lnode;
|
|
struct hlist_node hnode;
|
|
struct nf_conntrack_tuple tuple;
|
|
struct nf_conntrack_tuple_mask mask;
|
|
void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *);
|
|
struct nf_conntrack_helper *helper;
|
|
struct nf_conn *master;
|
|
struct timer_list timeout;
|
|
refcount_t use;
|
|
unsigned int flags;
|
|
unsigned int class;
|
|
union nf_inet_addr saved_addr;
|
|
union nf_conntrack_man_proto saved_proto;
|
|
enum ip_conntrack_dir dir;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
enum ip_conntrack_info {
|
|
IP_CT_ESTABLISHED = 0,
|
|
IP_CT_RELATED = 1,
|
|
IP_CT_NEW = 2,
|
|
IP_CT_IS_REPLY = 3,
|
|
IP_CT_ESTABLISHED_REPLY = 3,
|
|
IP_CT_RELATED_REPLY = 4,
|
|
IP_CT_NUMBER = 5,
|
|
IP_CT_UNTRACKED = 7,
|
|
};
|
|
|
|
struct nf_conntrack_expect_policy;
|
|
|
|
struct nf_conntrack_helper {
|
|
struct hlist_node hnode;
|
|
char name[16];
|
|
refcount_t refcnt;
|
|
struct module *me;
|
|
const struct nf_conntrack_expect_policy *expect_policy;
|
|
struct nf_conntrack_tuple tuple;
|
|
int (*help)(struct sk_buff *, unsigned int, struct nf_conn *, enum ip_conntrack_info);
|
|
void (*destroy)(struct nf_conn *);
|
|
int (*from_nlattr)(struct nlattr *, struct nf_conn *);
|
|
int (*to_nlattr)(struct sk_buff *, const struct nf_conn *);
|
|
unsigned int expect_class_max;
|
|
unsigned int flags;
|
|
unsigned int queue_num;
|
|
u16 data_len;
|
|
char nat_mod_name[16];
|
|
};
|
|
|
|
struct nf_conntrack_expect_policy {
|
|
unsigned int max_expected;
|
|
unsigned int timeout;
|
|
char name[16];
|
|
};
|
|
|
|
struct nf_ct_ext {
|
|
u8 offset[8];
|
|
u8 len;
|
|
unsigned int gen_id;
|
|
char data[0];
|
|
};
|
|
|
|
enum nf_nat_manip_type {
|
|
NF_NAT_MANIP_SRC = 0,
|
|
NF_NAT_MANIP_DST = 1,
|
|
};
|
|
|
|
struct nf_nat_hook {
|
|
int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *);
|
|
void (*decode_session)(struct sk_buff *, struct flowi *);
|
|
unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir);
|
|
void (*remove_nat_bysrc)(struct nf_conn *);
|
|
};
|
|
|
|
enum nf_ct_ext_id {
|
|
NF_CT_EXT_HELPER = 0,
|
|
NF_CT_EXT_NAT = 1,
|
|
NF_CT_EXT_SEQADJ = 2,
|
|
NF_CT_EXT_ACCT = 3,
|
|
NF_CT_EXT_ECACHE = 4,
|
|
NF_CT_EXT_TSTAMP = 5,
|
|
NF_CT_EXT_TIMEOUT = 6,
|
|
NF_CT_EXT_LABELS = 7,
|
|
NF_CT_EXT_NUM = 8,
|
|
};
|
|
|
|
enum ip_conntrack_status {
|
|
IPS_EXPECTED_BIT = 0,
|
|
IPS_EXPECTED = 1,
|
|
IPS_SEEN_REPLY_BIT = 1,
|
|
IPS_SEEN_REPLY = 2,
|
|
IPS_ASSURED_BIT = 2,
|
|
IPS_ASSURED = 4,
|
|
IPS_CONFIRMED_BIT = 3,
|
|
IPS_CONFIRMED = 8,
|
|
IPS_SRC_NAT_BIT = 4,
|
|
IPS_SRC_NAT = 16,
|
|
IPS_DST_NAT_BIT = 5,
|
|
IPS_DST_NAT = 32,
|
|
IPS_NAT_MASK = 48,
|
|
IPS_SEQ_ADJUST_BIT = 6,
|
|
IPS_SEQ_ADJUST = 64,
|
|
IPS_SRC_NAT_DONE_BIT = 7,
|
|
IPS_SRC_NAT_DONE = 128,
|
|
IPS_DST_NAT_DONE_BIT = 8,
|
|
IPS_DST_NAT_DONE = 256,
|
|
IPS_NAT_DONE_MASK = 384,
|
|
IPS_DYING_BIT = 9,
|
|
IPS_DYING = 512,
|
|
IPS_FIXED_TIMEOUT_BIT = 10,
|
|
IPS_FIXED_TIMEOUT = 1024,
|
|
IPS_TEMPLATE_BIT = 11,
|
|
IPS_TEMPLATE = 2048,
|
|
IPS_UNTRACKED_BIT = 12,
|
|
IPS_UNTRACKED = 4096,
|
|
IPS_NAT_CLASH_BIT = 12,
|
|
IPS_NAT_CLASH = 4096,
|
|
IPS_HELPER_BIT = 13,
|
|
IPS_HELPER = 8192,
|
|
IPS_OFFLOAD_BIT = 14,
|
|
IPS_OFFLOAD = 16384,
|
|
IPS_HW_OFFLOAD_BIT = 15,
|
|
IPS_HW_OFFLOAD = 32768,
|
|
IPS_UNCHANGEABLE_MASK = 56313,
|
|
__IPS_MAX_BIT = 16,
|
|
};
|
|
|
|
enum nf_inet_hooks {
|
|
NF_INET_PRE_ROUTING = 0,
|
|
NF_INET_LOCAL_IN = 1,
|
|
NF_INET_FORWARD = 2,
|
|
NF_INET_LOCAL_OUT = 3,
|
|
NF_INET_POST_ROUTING = 4,
|
|
NF_INET_NUMHOOKS = 5,
|
|
NF_INET_INGRESS = 5,
|
|
};
|
|
|
|
enum nf_hook_ops_type {
|
|
NF_HOOK_OP_UNDEFINED = 0,
|
|
NF_HOOK_OP_NF_TABLES = 1,
|
|
};
|
|
|
|
enum {
|
|
NFPROTO_UNSPEC = 0,
|
|
NFPROTO_INET = 1,
|
|
NFPROTO_IPV4 = 2,
|
|
NFPROTO_ARP = 3,
|
|
NFPROTO_NETDEV = 5,
|
|
NFPROTO_BRIDGE = 7,
|
|
NFPROTO_IPV6 = 10,
|
|
NFPROTO_NUMPROTO = 11,
|
|
};
|
|
|
|
enum ctattr_nat {
|
|
CTA_NAT_UNSPEC = 0,
|
|
CTA_NAT_V4_MINIP = 1,
|
|
CTA_NAT_V4_MAXIP = 2,
|
|
CTA_NAT_PROTO = 3,
|
|
CTA_NAT_V6_MINIP = 4,
|
|
CTA_NAT_V6_MAXIP = 5,
|
|
__CTA_NAT_MAX = 6,
|
|
};
|
|
|
|
enum ctattr_protonat {
|
|
CTA_PROTONAT_UNSPEC = 0,
|
|
CTA_PROTONAT_PORT_MIN = 1,
|
|
CTA_PROTONAT_PORT_MAX = 2,
|
|
__CTA_PROTONAT_MAX = 3,
|
|
};
|
|
|
|
union nf_conntrack_nat_help {};
|
|
|
|
struct nf_conn_nat {
|
|
union nf_conntrack_nat_help help;
|
|
int masq_index;
|
|
};
|
|
|
|
struct nf_nat_range2 {
|
|
unsigned int flags;
|
|
union nf_inet_addr min_addr;
|
|
union nf_inet_addr max_addr;
|
|
union nf_conntrack_man_proto min_proto;
|
|
union nf_conntrack_man_proto max_proto;
|
|
union nf_conntrack_man_proto base_proto;
|
|
};
|
|
|
|
struct nf_conn_help {
|
|
struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper;
|
|
struct hlist_head expectations;
|
|
u8 expecting[4];
|
|
int: 32;
|
|
char data[32];
|
|
};
|
|
|
|
struct nf_ct_seqadj {
|
|
u32 correction_pos;
|
|
s32 offset_before;
|
|
s32 offset_after;
|
|
};
|
|
|
|
struct nf_conn_seqadj {
|
|
struct nf_ct_seqadj seq[2];
|
|
};
|
|
|
|
struct nf_hook_ops {
|
|
nf_hookfn *hook;
|
|
struct net_device *dev;
|
|
void *priv;
|
|
u8 pf;
|
|
enum nf_hook_ops_type hook_ops_type: 8;
|
|
unsigned int hooknum;
|
|
int priority;
|
|
};
|
|
|
|
struct nf_nat_proto_clean {
|
|
u8 l3proto;
|
|
u8 l4proto;
|
|
};
|
|
|
|
struct nf_nat_lookup_hook_priv {
|
|
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *entries;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct nf_nat_hooks_net {
|
|
struct nf_hook_ops *nat_hook_ops;
|
|
unsigned int users;
|
|
};
|
|
|
|
struct nat_net {
|
|
struct nf_nat_hooks_net nat_proto_net[11];
|
|
};
|
|
|
|
struct inet_ehash_bucket;
|
|
|
|
struct inet_bind_hashbucket;
|
|
|
|
struct inet_listen_hashbucket;
|
|
|
|
struct inet_hashinfo {
|
|
struct inet_ehash_bucket *ehash;
|
|
spinlock_t *ehash_locks;
|
|
unsigned int ehash_mask;
|
|
unsigned int ehash_locks_mask;
|
|
struct kmem_cache *bind_bucket_cachep;
|
|
struct inet_bind_hashbucket *bhash;
|
|
struct kmem_cache *bind2_bucket_cachep;
|
|
struct inet_bind_hashbucket *bhash2;
|
|
unsigned int bhash_size;
|
|
unsigned int lhash2_mask;
|
|
struct inet_listen_hashbucket *lhash2;
|
|
bool pernet;
|
|
};
|
|
|
|
struct hlist_nulls_head {
|
|
struct hlist_nulls_node *first;
|
|
};
|
|
|
|
struct inet_ehash_bucket {
|
|
struct hlist_nulls_head chain;
|
|
};
|
|
|
|
struct inet_bind_hashbucket {
|
|
spinlock_t lock;
|
|
struct hlist_head chain;
|
|
};
|
|
|
|
struct inet_listen_hashbucket {
|
|
spinlock_t lock;
|
|
struct hlist_nulls_head nulls_head;
|
|
};
|
|
|
|
struct ack_sample {
|
|
u32 pkts_acked;
|
|
s32 rtt_us;
|
|
u32 in_flight;
|
|
};
|
|
|
|
struct rate_sample {
|
|
u64 prior_mstamp;
|
|
u32 prior_delivered;
|
|
u32 prior_delivered_ce;
|
|
s32 delivered;
|
|
s32 delivered_ce;
|
|
long interval_us;
|
|
u32 snd_interval_us;
|
|
u32 rcv_interval_us;
|
|
long rtt_us;
|
|
int losses;
|
|
u32 acked_sacked;
|
|
u32 prior_in_flight;
|
|
u32 last_end_seq;
|
|
bool is_app_limited;
|
|
bool is_retrans;
|
|
bool is_ack_delayed;
|
|
};
|
|
|
|
struct bpf_cgroup_storage_key {
|
|
__u64 cgroup_inode_id;
|
|
__u32 attach_type;
|
|
};
|
|
|
|
struct bpf_storage_buffer;
|
|
|
|
struct bpf_cgroup_storage_map;
|
|
|
|
struct bpf_cgroup_storage {
|
|
union {
|
|
struct bpf_storage_buffer *buf;
|
|
void __attribute__((btf_type_tag("percpu"))) *percpu_buf;
|
|
};
|
|
struct bpf_cgroup_storage_map *map;
|
|
struct bpf_cgroup_storage_key key;
|
|
struct list_head list_map;
|
|
struct list_head list_cg;
|
|
struct rb_node node;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct bpf_storage_buffer {
|
|
struct callback_head rcu;
|
|
char data[0];
|
|
};
|
|
|
|
enum sock_flags {
|
|
SOCK_DEAD = 0,
|
|
SOCK_DONE = 1,
|
|
SOCK_URGINLINE = 2,
|
|
SOCK_KEEPOPEN = 3,
|
|
SOCK_LINGER = 4,
|
|
SOCK_DESTROY = 5,
|
|
SOCK_BROADCAST = 6,
|
|
SOCK_TIMESTAMP = 7,
|
|
SOCK_ZAPPED = 8,
|
|
SOCK_USE_WRITE_QUEUE = 9,
|
|
SOCK_DBG = 10,
|
|
SOCK_RCVTSTAMP = 11,
|
|
SOCK_RCVTSTAMPNS = 12,
|
|
SOCK_LOCALROUTE = 13,
|
|
SOCK_MEMALLOC = 14,
|
|
SOCK_TIMESTAMPING_RX_SOFTWARE = 15,
|
|
SOCK_FASYNC = 16,
|
|
SOCK_RXQ_OVFL = 17,
|
|
SOCK_ZEROCOPY = 18,
|
|
SOCK_WIFI_STATUS = 19,
|
|
SOCK_NOFCS = 20,
|
|
SOCK_FILTER_LOCKED = 21,
|
|
SOCK_SELECT_ERR_QUEUE = 22,
|
|
SOCK_RCU_FREE = 23,
|
|
SOCK_TXTIME = 24,
|
|
SOCK_XDP = 25,
|
|
SOCK_TSTAMP_NEW = 26,
|
|
SOCK_RCVMARK = 27,
|
|
};
|
|
|
|
enum rt_scope_t {
|
|
RT_SCOPE_UNIVERSE = 0,
|
|
RT_SCOPE_SITE = 200,
|
|
RT_SCOPE_LINK = 253,
|
|
RT_SCOPE_HOST = 254,
|
|
RT_SCOPE_NOWHERE = 255,
|
|
};
|
|
|
|
enum {
|
|
IPSTATS_MIB_NUM = 0,
|
|
IPSTATS_MIB_INPKTS = 1,
|
|
IPSTATS_MIB_INOCTETS = 2,
|
|
IPSTATS_MIB_INDELIVERS = 3,
|
|
IPSTATS_MIB_OUTFORWDATAGRAMS = 4,
|
|
IPSTATS_MIB_OUTPKTS = 5,
|
|
IPSTATS_MIB_OUTOCTETS = 6,
|
|
IPSTATS_MIB_INHDRERRORS = 7,
|
|
IPSTATS_MIB_INTOOBIGERRORS = 8,
|
|
IPSTATS_MIB_INNOROUTES = 9,
|
|
IPSTATS_MIB_INADDRERRORS = 10,
|
|
IPSTATS_MIB_INUNKNOWNPROTOS = 11,
|
|
IPSTATS_MIB_INTRUNCATEDPKTS = 12,
|
|
IPSTATS_MIB_INDISCARDS = 13,
|
|
IPSTATS_MIB_OUTDISCARDS = 14,
|
|
IPSTATS_MIB_OUTNOROUTES = 15,
|
|
IPSTATS_MIB_REASMTIMEOUT = 16,
|
|
IPSTATS_MIB_REASMREQDS = 17,
|
|
IPSTATS_MIB_REASMOKS = 18,
|
|
IPSTATS_MIB_REASMFAILS = 19,
|
|
IPSTATS_MIB_FRAGOKS = 20,
|
|
IPSTATS_MIB_FRAGFAILS = 21,
|
|
IPSTATS_MIB_FRAGCREATES = 22,
|
|
IPSTATS_MIB_INMCASTPKTS = 23,
|
|
IPSTATS_MIB_OUTMCASTPKTS = 24,
|
|
IPSTATS_MIB_INBCASTPKTS = 25,
|
|
IPSTATS_MIB_OUTBCASTPKTS = 26,
|
|
IPSTATS_MIB_INMCASTOCTETS = 27,
|
|
IPSTATS_MIB_OUTMCASTOCTETS = 28,
|
|
IPSTATS_MIB_INBCASTOCTETS = 29,
|
|
IPSTATS_MIB_OUTBCASTOCTETS = 30,
|
|
IPSTATS_MIB_CSUMERRORS = 31,
|
|
IPSTATS_MIB_NOECTPKTS = 32,
|
|
IPSTATS_MIB_ECT1PKTS = 33,
|
|
IPSTATS_MIB_ECT0PKTS = 34,
|
|
IPSTATS_MIB_CEPKTS = 35,
|
|
IPSTATS_MIB_REASM_OVERLAPS = 36,
|
|
__IPSTATS_MIB_MAX = 37,
|
|
};
|
|
|
|
enum tcp_synack_type {
|
|
TCP_SYNACK_NORMAL = 0,
|
|
TCP_SYNACK_FASTOPEN = 1,
|
|
TCP_SYNACK_COOKIE = 2,
|
|
};
|
|
|
|
enum {
|
|
XFRM_POLICY_IN = 0,
|
|
XFRM_POLICY_OUT = 1,
|
|
XFRM_POLICY_FWD = 2,
|
|
XFRM_POLICY_MASK = 3,
|
|
XFRM_POLICY_MAX = 3,
|
|
};
|
|
|
|
struct inet_bind_bucket {
|
|
possible_net_t ib_net;
|
|
int l3mdev;
|
|
unsigned short port;
|
|
signed char fastreuse;
|
|
signed char fastreuseport;
|
|
kuid_t fastuid;
|
|
struct in6_addr fast_v6_rcv_saddr;
|
|
__be32 fast_rcv_saddr;
|
|
unsigned short fast_sk_family;
|
|
bool fast_ipv6_only;
|
|
struct hlist_node node;
|
|
struct hlist_head owners;
|
|
};
|
|
|
|
struct ip_options {
|
|
__be32 faddr;
|
|
__be32 nexthop;
|
|
unsigned char optlen;
|
|
unsigned char srr;
|
|
unsigned char rr;
|
|
unsigned char ts;
|
|
unsigned char is_strictroute: 1;
|
|
unsigned char srr_is_hit: 1;
|
|
unsigned char is_changed: 1;
|
|
unsigned char rr_needaddr: 1;
|
|
unsigned char ts_needtime: 1;
|
|
unsigned char ts_needaddr: 1;
|
|
unsigned char router_alert;
|
|
unsigned char cipso;
|
|
unsigned char __pad2;
|
|
unsigned char __data[0];
|
|
};
|
|
|
|
struct ip_options_rcu {
|
|
struct callback_head rcu;
|
|
struct ip_options opt;
|
|
};
|
|
|
|
struct sockaddr_in {
|
|
__kernel_sa_family_t sin_family;
|
|
__be16 sin_port;
|
|
struct in_addr sin_addr;
|
|
unsigned char __pad[8];
|
|
};
|
|
|
|
struct inet_cork {
|
|
unsigned int flags;
|
|
__be32 addr;
|
|
struct ip_options *opt;
|
|
unsigned int fragsize;
|
|
int length;
|
|
struct dst_entry *dst;
|
|
u8 tx_flags;
|
|
__u8 ttl;
|
|
__s16 tos;
|
|
char priority;
|
|
__u16 gso_size;
|
|
u64 transmit_time;
|
|
u32 mark;
|
|
};
|
|
|
|
struct inet_cork_full {
|
|
struct inet_cork base;
|
|
struct flowi fl;
|
|
};
|
|
|
|
struct ipv6_pinfo;
|
|
|
|
struct ip_mc_socklist;
|
|
|
|
struct inet_sock {
|
|
struct sock sk;
|
|
struct ipv6_pinfo *pinet6;
|
|
__be32 inet_saddr;
|
|
__s16 uc_ttl;
|
|
__u16 cmsg_flags;
|
|
struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt;
|
|
__be16 inet_sport;
|
|
__u16 inet_id;
|
|
__u8 tos;
|
|
__u8 min_ttl;
|
|
__u8 mc_ttl;
|
|
__u8 pmtudisc;
|
|
__u8 recverr: 1;
|
|
__u8 is_icsk: 1;
|
|
__u8 freebind: 1;
|
|
__u8 hdrincl: 1;
|
|
__u8 mc_loop: 1;
|
|
__u8 transparent: 1;
|
|
__u8 mc_all: 1;
|
|
__u8 nodefrag: 1;
|
|
__u8 bind_address_no_port: 1;
|
|
__u8 recverr_rfc4884: 1;
|
|
__u8 defer_connect: 1;
|
|
__u8 rcv_tos;
|
|
__u8 convert_csum;
|
|
int uc_index;
|
|
int mc_index;
|
|
__be32 mc_addr;
|
|
struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list;
|
|
struct inet_cork_full cork;
|
|
struct {
|
|
__u16 lo;
|
|
__u16 hi;
|
|
} local_port_range;
|
|
};
|
|
|
|
struct in6_pktinfo {
|
|
struct in6_addr ipi6_addr;
|
|
int ipi6_ifindex;
|
|
};
|
|
|
|
struct ipv6_txoptions;
|
|
|
|
struct inet6_cork {
|
|
struct ipv6_txoptions *opt;
|
|
u8 hop_limit;
|
|
u8 tclass;
|
|
};
|
|
|
|
struct ipv6_mc_socklist;
|
|
|
|
struct ipv6_ac_socklist;
|
|
|
|
struct ipv6_fl_socklist;
|
|
|
|
struct ipv6_pinfo {
|
|
struct in6_addr saddr;
|
|
struct in6_pktinfo sticky_pktinfo;
|
|
const struct in6_addr *daddr_cache;
|
|
__be32 flow_label;
|
|
__u32 frag_size;
|
|
__u16 __unused_1: 7;
|
|
__s16 hop_limit: 9;
|
|
__u16 mc_loop: 1;
|
|
__u16 __unused_2: 6;
|
|
__s16 mcast_hops: 9;
|
|
int ucast_oif;
|
|
int mcast_oif;
|
|
union {
|
|
struct {
|
|
__u16 srcrt: 1;
|
|
__u16 osrcrt: 1;
|
|
__u16 rxinfo: 1;
|
|
__u16 rxoinfo: 1;
|
|
__u16 rxhlim: 1;
|
|
__u16 rxohlim: 1;
|
|
__u16 hopopts: 1;
|
|
__u16 ohopopts: 1;
|
|
__u16 dstopts: 1;
|
|
__u16 odstopts: 1;
|
|
__u16 rxflow: 1;
|
|
__u16 rxtclass: 1;
|
|
__u16 rxpmtu: 1;
|
|
__u16 rxorigdstaddr: 1;
|
|
__u16 recvfragsize: 1;
|
|
} bits;
|
|
__u16 all;
|
|
} rxopt;
|
|
__u16 recverr: 1;
|
|
__u16 sndflow: 1;
|
|
__u16 repflow: 1;
|
|
__u16 pmtudisc: 3;
|
|
__u16 padding: 1;
|
|
__u16 srcprefs: 3;
|
|
__u16 dontfrag: 1;
|
|
__u16 autoflowlabel: 1;
|
|
__u16 autoflowlabel_set: 1;
|
|
__u16 mc_all: 1;
|
|
__u16 recverr_rfc4884: 1;
|
|
__u16 rtalert_isolate: 1;
|
|
__u8 min_hopcount;
|
|
__u8 tclass;
|
|
__be32 rcv_flowinfo;
|
|
__u32 dst_cookie;
|
|
struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list;
|
|
struct ipv6_ac_socklist *ipv6_ac_list;
|
|
struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list;
|
|
struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt;
|
|
struct sk_buff *pktoptions;
|
|
struct sk_buff *rxpmtu;
|
|
struct inet6_cork cork;
|
|
};
|
|
|
|
struct ip6_sf_socklist;
|
|
|
|
struct ipv6_mc_socklist {
|
|
struct in6_addr addr;
|
|
int ifindex;
|
|
unsigned int sfmode;
|
|
struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct ip6_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ip6_sf_socklist {
|
|
unsigned int sl_max;
|
|
unsigned int sl_count;
|
|
struct callback_head rcu;
|
|
struct in6_addr sl_addr[0];
|
|
};
|
|
|
|
struct ipv6_ac_socklist {
|
|
struct in6_addr acl_addr;
|
|
int acl_ifindex;
|
|
struct ipv6_ac_socklist *acl_next;
|
|
};
|
|
|
|
struct ip6_flowlabel;
|
|
|
|
struct ipv6_fl_socklist {
|
|
struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct ip6_flowlabel *fl;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ip6_flowlabel {
|
|
struct ip6_flowlabel __attribute__((btf_type_tag("rcu"))) *next;
|
|
__be32 label;
|
|
atomic_t users;
|
|
struct in6_addr dst;
|
|
struct ipv6_txoptions *opt;
|
|
unsigned long linger;
|
|
struct callback_head rcu;
|
|
u8 share;
|
|
union {
|
|
struct pid *pid;
|
|
kuid_t uid;
|
|
} owner;
|
|
unsigned long lastuse;
|
|
unsigned long expires;
|
|
struct net *fl_net;
|
|
};
|
|
|
|
struct ipv6_opt_hdr;
|
|
|
|
struct ipv6_rt_hdr;
|
|
|
|
struct ipv6_txoptions {
|
|
refcount_t refcnt;
|
|
int tot_len;
|
|
__u16 opt_flen;
|
|
__u16 opt_nflen;
|
|
struct ipv6_opt_hdr *hopopt;
|
|
struct ipv6_opt_hdr *dst0opt;
|
|
struct ipv6_rt_hdr *srcrt;
|
|
struct ipv6_opt_hdr *dst1opt;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ipv6_opt_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
};
|
|
|
|
struct ipv6_rt_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
__u8 type;
|
|
__u8 segments_left;
|
|
};
|
|
|
|
struct ip_mreqn {
|
|
struct in_addr imr_multiaddr;
|
|
struct in_addr imr_address;
|
|
int imr_ifindex;
|
|
};
|
|
|
|
struct ip_sf_socklist;
|
|
|
|
struct ip_mc_socklist {
|
|
struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *next_rcu;
|
|
struct ip_mreqn multi;
|
|
unsigned int sfmode;
|
|
struct ip_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct inet_bind2_bucket {
|
|
possible_net_t ib_net;
|
|
int l3mdev;
|
|
unsigned short port;
|
|
unsigned short family;
|
|
union {
|
|
struct in6_addr v6_rcv_saddr;
|
|
__be32 rcv_saddr;
|
|
};
|
|
struct hlist_node node;
|
|
struct hlist_head owners;
|
|
struct hlist_head deathrow;
|
|
};
|
|
|
|
struct inet_timewait_sock {
|
|
struct sock_common __tw_common;
|
|
__u32 tw_mark;
|
|
volatile unsigned char tw_substate;
|
|
unsigned char tw_rcv_wscale;
|
|
__be16 tw_sport;
|
|
unsigned int tw_transparent: 1;
|
|
unsigned int tw_flowlabel: 20;
|
|
unsigned int tw_pad: 3;
|
|
unsigned int tw_tos: 8;
|
|
u32 tw_txhash;
|
|
u32 tw_priority;
|
|
struct timer_list tw_timer;
|
|
struct inet_bind_bucket *tw_tb;
|
|
struct inet_bind2_bucket *tw_tb2;
|
|
struct hlist_node tw_bind2_node;
|
|
};
|
|
|
|
struct fastopen_queue {
|
|
struct request_sock *rskq_rst_head;
|
|
struct request_sock *rskq_rst_tail;
|
|
spinlock_t lock;
|
|
int qlen;
|
|
int max_qlen;
|
|
struct tcp_fastopen_context __attribute__((btf_type_tag("rcu"))) *ctx;
|
|
};
|
|
|
|
struct request_sock_queue {
|
|
spinlock_t rskq_lock;
|
|
u8 rskq_defer_accept;
|
|
u32 synflood_warned;
|
|
atomic_t qlen;
|
|
atomic_t young;
|
|
struct request_sock *rskq_accept_head;
|
|
struct request_sock *rskq_accept_tail;
|
|
struct fastopen_queue fastopenq;
|
|
};
|
|
|
|
struct inet_connection_sock_af_ops;
|
|
|
|
struct tcp_ulp_ops;
|
|
|
|
struct inet_connection_sock {
|
|
struct inet_sock icsk_inet;
|
|
struct request_sock_queue icsk_accept_queue;
|
|
struct inet_bind_bucket *icsk_bind_hash;
|
|
struct inet_bind2_bucket *icsk_bind2_hash;
|
|
unsigned long icsk_timeout;
|
|
struct timer_list icsk_retransmit_timer;
|
|
struct timer_list icsk_delack_timer;
|
|
__u32 icsk_rto;
|
|
__u32 icsk_rto_min;
|
|
__u32 icsk_delack_max;
|
|
__u32 icsk_pmtu_cookie;
|
|
const struct tcp_congestion_ops *icsk_ca_ops;
|
|
const struct inet_connection_sock_af_ops *icsk_af_ops;
|
|
const struct tcp_ulp_ops *icsk_ulp_ops;
|
|
void __attribute__((btf_type_tag("rcu"))) *icsk_ulp_data;
|
|
void (*icsk_clean_acked)(struct sock *, u32);
|
|
unsigned int (*icsk_sync_mss)(struct sock *, u32);
|
|
__u8 icsk_ca_state: 5;
|
|
__u8 icsk_ca_initialized: 1;
|
|
__u8 icsk_ca_setsockopt: 1;
|
|
__u8 icsk_ca_dst_locked: 1;
|
|
__u8 icsk_retransmits;
|
|
__u8 icsk_pending;
|
|
__u8 icsk_backoff;
|
|
__u8 icsk_syn_retries;
|
|
__u8 icsk_probes_out;
|
|
__u16 icsk_ext_hdr_len;
|
|
struct {
|
|
__u8 pending;
|
|
__u8 quick;
|
|
__u8 pingpong;
|
|
__u8 retry;
|
|
__u32 ato;
|
|
unsigned long timeout;
|
|
__u32 lrcvtime;
|
|
__u16 last_seg_size;
|
|
__u16 rcv_mss;
|
|
} icsk_ack;
|
|
struct {
|
|
int search_high;
|
|
int search_low;
|
|
u32 probe_size: 31;
|
|
u32 enabled: 1;
|
|
u32 probe_timestamp;
|
|
} icsk_mtup;
|
|
u32 icsk_probes_tstamp;
|
|
u32 icsk_user_timeout;
|
|
u64 icsk_ca_priv[13];
|
|
};
|
|
|
|
struct inet_connection_sock_af_ops {
|
|
int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *);
|
|
void (*send_check)(struct sock *, struct sk_buff *);
|
|
int (*rebuild_header)(struct sock *);
|
|
void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *);
|
|
int (*conn_request)(struct sock *, struct sk_buff *);
|
|
struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *);
|
|
u16 net_header_len;
|
|
u16 net_frag_header_len;
|
|
u16 sockaddr_len;
|
|
int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
|
|
int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
|
|
void (*addr2sockaddr)(struct sock *, struct sockaddr *);
|
|
void (*mtu_reduced)(struct sock *);
|
|
};
|
|
|
|
struct tcp_ulp_ops {
|
|
struct list_head list;
|
|
int (*init)(struct sock *);
|
|
void (*update)(struct sock *, struct proto *, void (*)(struct sock *));
|
|
void (*release)(struct sock *);
|
|
int (*get_info)(const struct sock *, struct sk_buff *);
|
|
size_t (*get_info_size)(const struct sock *);
|
|
void (*clone)(const struct request_sock *, struct sock *, const gfp_t);
|
|
char name[16];
|
|
struct module *owner;
|
|
};
|
|
|
|
struct inet_request_sock {
|
|
struct request_sock req;
|
|
u16 snd_wscale: 4;
|
|
u16 rcv_wscale: 4;
|
|
u16 tstamp_ok: 1;
|
|
u16 sack_ok: 1;
|
|
u16 wscale_ok: 1;
|
|
u16 ecn_ok: 1;
|
|
u16 acked: 1;
|
|
u16 no_srccheck: 1;
|
|
u16 smc_ok: 1;
|
|
u32 ir_mark;
|
|
union {
|
|
struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *ireq_opt;
|
|
struct {
|
|
struct ipv6_txoptions *ipv6_opt;
|
|
struct sk_buff *pktopts;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct tcp_request_sock_ops;
|
|
|
|
struct tcp_request_sock {
|
|
struct inet_request_sock req;
|
|
const struct tcp_request_sock_ops *af_specific;
|
|
u64 snt_synack;
|
|
bool tfo_listener;
|
|
bool is_mptcp;
|
|
bool drop_req;
|
|
u32 txhash;
|
|
u32 rcv_isn;
|
|
u32 snt_isn;
|
|
u32 ts_off;
|
|
u32 last_oow_ack_time;
|
|
u32 rcv_nxt;
|
|
u8 syn_tos;
|
|
};
|
|
|
|
struct tcp_md5sig_key;
|
|
|
|
struct tcp_fastopen_cookie;
|
|
|
|
struct tcp_request_sock_ops {
|
|
u16 mss_clamp;
|
|
struct tcp_md5sig_key * (*req_md5_lookup)(const struct sock *, const struct sock *);
|
|
int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *);
|
|
__u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *);
|
|
struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *);
|
|
u32 (*init_seq)(const struct sk_buff *);
|
|
u32 (*init_ts_off)(const struct net *, const struct sk_buff *);
|
|
int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *);
|
|
};
|
|
|
|
union tcp_md5_addr {
|
|
struct in_addr a4;
|
|
struct in6_addr a6;
|
|
};
|
|
|
|
struct tcp_md5sig_key {
|
|
struct hlist_node node;
|
|
u8 keylen;
|
|
u8 family;
|
|
u8 prefixlen;
|
|
u8 flags;
|
|
union tcp_md5_addr addr;
|
|
int l3index;
|
|
u8 key[80];
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct tcp_fastopen_cookie {
|
|
__le64 val[2];
|
|
s8 len;
|
|
bool exp;
|
|
};
|
|
|
|
struct tcp_rack {
|
|
u64 mstamp;
|
|
u32 rtt_us;
|
|
u32 end_seq;
|
|
u32 last_delivered;
|
|
u8 reo_wnd_steps;
|
|
u8 reo_wnd_persist: 5;
|
|
u8 dsack_seen: 1;
|
|
u8 advanced: 1;
|
|
};
|
|
|
|
struct minmax_sample {
|
|
u32 t;
|
|
u32 v;
|
|
};
|
|
|
|
struct minmax {
|
|
struct minmax_sample s[3];
|
|
};
|
|
|
|
struct tcp_options_received {
|
|
int ts_recent_stamp;
|
|
u32 ts_recent;
|
|
u32 rcv_tsval;
|
|
u32 rcv_tsecr;
|
|
u16 saw_tstamp: 1;
|
|
u16 tstamp_ok: 1;
|
|
u16 dsack: 1;
|
|
u16 wscale_ok: 1;
|
|
u16 sack_ok: 3;
|
|
u16 smc_ok: 1;
|
|
u16 snd_wscale: 4;
|
|
u16 rcv_wscale: 4;
|
|
u8 saw_unknown: 1;
|
|
u8 unused: 7;
|
|
u8 num_sacks;
|
|
u16 user_mss;
|
|
u16 mss_clamp;
|
|
};
|
|
|
|
struct tcp_sack_block {
|
|
u32 start_seq;
|
|
u32 end_seq;
|
|
};
|
|
|
|
struct tcp_sock_af_ops;
|
|
|
|
struct tcp_md5sig_info;
|
|
|
|
struct tcp_fastopen_request;
|
|
|
|
struct tcp_sock {
|
|
struct inet_connection_sock inet_conn;
|
|
u16 tcp_header_len;
|
|
u16 gso_segs;
|
|
__be32 pred_flags;
|
|
u64 bytes_received;
|
|
u32 segs_in;
|
|
u32 data_segs_in;
|
|
u32 rcv_nxt;
|
|
u32 copied_seq;
|
|
u32 rcv_wup;
|
|
u32 snd_nxt;
|
|
u32 segs_out;
|
|
u32 data_segs_out;
|
|
u64 bytes_sent;
|
|
u64 bytes_acked;
|
|
u32 dsack_dups;
|
|
u32 snd_una;
|
|
u32 snd_sml;
|
|
u32 rcv_tstamp;
|
|
u32 lsndtime;
|
|
u32 last_oow_ack_time;
|
|
u32 compressed_ack_rcv_nxt;
|
|
u32 tsoffset;
|
|
struct list_head tsq_node;
|
|
struct list_head tsorted_sent_queue;
|
|
u32 snd_wl1;
|
|
u32 snd_wnd;
|
|
u32 max_window;
|
|
u32 mss_cache;
|
|
u32 window_clamp;
|
|
u32 rcv_ssthresh;
|
|
struct tcp_rack rack;
|
|
u16 advmss;
|
|
u8 compressed_ack;
|
|
u8 dup_ack_counter: 2;
|
|
u8 tlp_retrans: 1;
|
|
u8 unused: 5;
|
|
u32 chrono_start;
|
|
u32 chrono_stat[3];
|
|
u8 chrono_type: 2;
|
|
u8 rate_app_limited: 1;
|
|
u8 fastopen_connect: 1;
|
|
u8 fastopen_no_cookie: 1;
|
|
u8 is_sack_reneg: 1;
|
|
u8 fastopen_client_fail: 2;
|
|
u8 nonagle: 4;
|
|
u8 thin_lto: 1;
|
|
u8 recvmsg_inq: 1;
|
|
u8 repair: 1;
|
|
u8 frto: 1;
|
|
u8 repair_queue;
|
|
u8 save_syn: 2;
|
|
u8 syn_data: 1;
|
|
u8 syn_fastopen: 1;
|
|
u8 syn_fastopen_exp: 1;
|
|
u8 syn_fastopen_ch: 1;
|
|
u8 syn_data_acked: 1;
|
|
u8 is_cwnd_limited: 1;
|
|
u32 tlp_high_seq;
|
|
u32 tcp_tx_delay;
|
|
u64 tcp_wstamp_ns;
|
|
u64 tcp_clock_cache;
|
|
u64 tcp_mstamp;
|
|
u32 srtt_us;
|
|
u32 mdev_us;
|
|
u32 mdev_max_us;
|
|
u32 rttvar_us;
|
|
u32 rtt_seq;
|
|
struct minmax rtt_min;
|
|
u32 packets_out;
|
|
u32 retrans_out;
|
|
u32 max_packets_out;
|
|
u32 cwnd_usage_seq;
|
|
u16 urg_data;
|
|
u8 ecn_flags;
|
|
u8 keepalive_probes;
|
|
u32 reordering;
|
|
u32 reord_seen;
|
|
u32 snd_up;
|
|
struct tcp_options_received rx_opt;
|
|
u32 snd_ssthresh;
|
|
u32 snd_cwnd;
|
|
u32 snd_cwnd_cnt;
|
|
u32 snd_cwnd_clamp;
|
|
u32 snd_cwnd_used;
|
|
u32 snd_cwnd_stamp;
|
|
u32 prior_cwnd;
|
|
u32 prr_delivered;
|
|
u32 prr_out;
|
|
u32 delivered;
|
|
u32 delivered_ce;
|
|
u32 lost;
|
|
u32 app_limited;
|
|
u64 first_tx_mstamp;
|
|
u64 delivered_mstamp;
|
|
u32 rate_delivered;
|
|
u32 rate_interval_us;
|
|
u32 rcv_wnd;
|
|
u32 write_seq;
|
|
u32 notsent_lowat;
|
|
u32 pushed_seq;
|
|
u32 lost_out;
|
|
u32 sacked_out;
|
|
struct hrtimer pacing_timer;
|
|
struct hrtimer compressed_ack_timer;
|
|
struct sk_buff *lost_skb_hint;
|
|
struct sk_buff *retransmit_skb_hint;
|
|
struct rb_root out_of_order_queue;
|
|
struct sk_buff *ooo_last_skb;
|
|
struct tcp_sack_block duplicate_sack[1];
|
|
struct tcp_sack_block selective_acks[4];
|
|
struct tcp_sack_block recv_sack_cache[4];
|
|
struct sk_buff *highest_sack;
|
|
int lost_cnt_hint;
|
|
u32 prior_ssthresh;
|
|
u32 high_seq;
|
|
u32 retrans_stamp;
|
|
u32 undo_marker;
|
|
int undo_retrans;
|
|
u64 bytes_retrans;
|
|
u32 total_retrans;
|
|
u32 urg_seq;
|
|
unsigned int keepalive_time;
|
|
unsigned int keepalive_intvl;
|
|
int linger2;
|
|
u8 bpf_sock_ops_cb_flags;
|
|
u8 bpf_chg_cc_inprogress: 1;
|
|
u16 timeout_rehash;
|
|
u32 rcv_ooopack;
|
|
u32 rcv_rtt_last_tsecr;
|
|
struct {
|
|
u32 rtt_us;
|
|
u32 seq;
|
|
u64 time;
|
|
} rcv_rtt_est;
|
|
struct {
|
|
u32 space;
|
|
u32 seq;
|
|
u64 time;
|
|
} rcvq_space;
|
|
struct {
|
|
u32 probe_seq_start;
|
|
u32 probe_seq_end;
|
|
} mtu_probe;
|
|
u32 plb_rehash;
|
|
u32 mtu_info;
|
|
bool is_mptcp;
|
|
const struct tcp_sock_af_ops *af_specific;
|
|
struct tcp_md5sig_info __attribute__((btf_type_tag("rcu"))) *md5sig_info;
|
|
struct tcp_fastopen_request *fastopen_req;
|
|
struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk;
|
|
struct saved_syn *saved_syn;
|
|
};
|
|
|
|
struct tcp_sock_af_ops {
|
|
struct tcp_md5sig_key * (*md5_lookup)(const struct sock *, const struct sock *);
|
|
int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *);
|
|
int (*md5_parse)(struct sock *, int, sockptr_t, int);
|
|
};
|
|
|
|
struct tcp_md5sig_info {
|
|
struct hlist_head head;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct tcp_fastopen_request {
|
|
struct tcp_fastopen_cookie cookie;
|
|
struct msghdr *data;
|
|
size_t size;
|
|
int copied;
|
|
struct ubuf_info *uarg;
|
|
};
|
|
|
|
enum nexthop_event_type {
|
|
NEXTHOP_EVENT_DEL = 0,
|
|
NEXTHOP_EVENT_REPLACE = 1,
|
|
NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2,
|
|
NEXTHOP_EVENT_BUCKET_REPLACE = 3,
|
|
};
|
|
|
|
enum net_device_flags {
|
|
IFF_UP = 1,
|
|
IFF_BROADCAST = 2,
|
|
IFF_DEBUG = 4,
|
|
IFF_LOOPBACK = 8,
|
|
IFF_POINTOPOINT = 16,
|
|
IFF_NOTRAILERS = 32,
|
|
IFF_RUNNING = 64,
|
|
IFF_NOARP = 128,
|
|
IFF_PROMISC = 256,
|
|
IFF_ALLMULTI = 512,
|
|
IFF_MASTER = 1024,
|
|
IFF_SLAVE = 2048,
|
|
IFF_MULTICAST = 4096,
|
|
IFF_PORTSEL = 8192,
|
|
IFF_AUTOMEDIA = 16384,
|
|
IFF_DYNAMIC = 32768,
|
|
IFF_LOWER_UP = 65536,
|
|
IFF_DORMANT = 131072,
|
|
IFF_ECHO = 262144,
|
|
};
|
|
|
|
enum nh_notifier_info_type {
|
|
NH_NOTIFIER_INFO_TYPE_SINGLE = 0,
|
|
NH_NOTIFIER_INFO_TYPE_GRP = 1,
|
|
NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2,
|
|
NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3,
|
|
};
|
|
|
|
enum {
|
|
RTM_BASE = 16,
|
|
RTM_NEWLINK = 16,
|
|
RTM_DELLINK = 17,
|
|
RTM_GETLINK = 18,
|
|
RTM_SETLINK = 19,
|
|
RTM_NEWADDR = 20,
|
|
RTM_DELADDR = 21,
|
|
RTM_GETADDR = 22,
|
|
RTM_NEWROUTE = 24,
|
|
RTM_DELROUTE = 25,
|
|
RTM_GETROUTE = 26,
|
|
RTM_NEWNEIGH = 28,
|
|
RTM_DELNEIGH = 29,
|
|
RTM_GETNEIGH = 30,
|
|
RTM_NEWRULE = 32,
|
|
RTM_DELRULE = 33,
|
|
RTM_GETRULE = 34,
|
|
RTM_NEWQDISC = 36,
|
|
RTM_DELQDISC = 37,
|
|
RTM_GETQDISC = 38,
|
|
RTM_NEWTCLASS = 40,
|
|
RTM_DELTCLASS = 41,
|
|
RTM_GETTCLASS = 42,
|
|
RTM_NEWTFILTER = 44,
|
|
RTM_DELTFILTER = 45,
|
|
RTM_GETTFILTER = 46,
|
|
RTM_NEWACTION = 48,
|
|
RTM_DELACTION = 49,
|
|
RTM_GETACTION = 50,
|
|
RTM_NEWPREFIX = 52,
|
|
RTM_GETMULTICAST = 58,
|
|
RTM_GETANYCAST = 62,
|
|
RTM_NEWNEIGHTBL = 64,
|
|
RTM_GETNEIGHTBL = 66,
|
|
RTM_SETNEIGHTBL = 67,
|
|
RTM_NEWNDUSEROPT = 68,
|
|
RTM_NEWADDRLABEL = 72,
|
|
RTM_DELADDRLABEL = 73,
|
|
RTM_GETADDRLABEL = 74,
|
|
RTM_GETDCB = 78,
|
|
RTM_SETDCB = 79,
|
|
RTM_NEWNETCONF = 80,
|
|
RTM_DELNETCONF = 81,
|
|
RTM_GETNETCONF = 82,
|
|
RTM_NEWMDB = 84,
|
|
RTM_DELMDB = 85,
|
|
RTM_GETMDB = 86,
|
|
RTM_NEWNSID = 88,
|
|
RTM_DELNSID = 89,
|
|
RTM_GETNSID = 90,
|
|
RTM_NEWSTATS = 92,
|
|
RTM_GETSTATS = 94,
|
|
RTM_SETSTATS = 95,
|
|
RTM_NEWCACHEREPORT = 96,
|
|
RTM_NEWCHAIN = 100,
|
|
RTM_DELCHAIN = 101,
|
|
RTM_GETCHAIN = 102,
|
|
RTM_NEWNEXTHOP = 104,
|
|
RTM_DELNEXTHOP = 105,
|
|
RTM_GETNEXTHOP = 106,
|
|
RTM_NEWLINKPROP = 108,
|
|
RTM_DELLINKPROP = 109,
|
|
RTM_GETLINKPROP = 110,
|
|
RTM_NEWVLAN = 112,
|
|
RTM_DELVLAN = 113,
|
|
RTM_GETVLAN = 114,
|
|
RTM_NEWNEXTHOPBUCKET = 116,
|
|
RTM_DELNEXTHOPBUCKET = 117,
|
|
RTM_GETNEXTHOPBUCKET = 118,
|
|
RTM_NEWTUNNEL = 120,
|
|
RTM_DELTUNNEL = 121,
|
|
RTM_GETTUNNEL = 122,
|
|
__RTM_MAX = 123,
|
|
};
|
|
|
|
enum rtnetlink_groups {
|
|
RTNLGRP_NONE = 0,
|
|
RTNLGRP_LINK = 1,
|
|
RTNLGRP_NOTIFY = 2,
|
|
RTNLGRP_NEIGH = 3,
|
|
RTNLGRP_TC = 4,
|
|
RTNLGRP_IPV4_IFADDR = 5,
|
|
RTNLGRP_IPV4_MROUTE = 6,
|
|
RTNLGRP_IPV4_ROUTE = 7,
|
|
RTNLGRP_IPV4_RULE = 8,
|
|
RTNLGRP_IPV6_IFADDR = 9,
|
|
RTNLGRP_IPV6_MROUTE = 10,
|
|
RTNLGRP_IPV6_ROUTE = 11,
|
|
RTNLGRP_IPV6_IFINFO = 12,
|
|
RTNLGRP_DECnet_IFADDR = 13,
|
|
RTNLGRP_NOP2 = 14,
|
|
RTNLGRP_DECnet_ROUTE = 15,
|
|
RTNLGRP_DECnet_RULE = 16,
|
|
RTNLGRP_NOP4 = 17,
|
|
RTNLGRP_IPV6_PREFIX = 18,
|
|
RTNLGRP_IPV6_RULE = 19,
|
|
RTNLGRP_ND_USEROPT = 20,
|
|
RTNLGRP_PHONET_IFADDR = 21,
|
|
RTNLGRP_PHONET_ROUTE = 22,
|
|
RTNLGRP_DCB = 23,
|
|
RTNLGRP_IPV4_NETCONF = 24,
|
|
RTNLGRP_IPV6_NETCONF = 25,
|
|
RTNLGRP_MDB = 26,
|
|
RTNLGRP_MPLS_ROUTE = 27,
|
|
RTNLGRP_NSID = 28,
|
|
RTNLGRP_MPLS_NETCONF = 29,
|
|
RTNLGRP_IPV4_MROUTE_R = 30,
|
|
RTNLGRP_IPV6_MROUTE_R = 31,
|
|
RTNLGRP_NEXTHOP = 32,
|
|
RTNLGRP_BRVLAN = 33,
|
|
RTNLGRP_MCTP_IFADDR = 34,
|
|
RTNLGRP_TUNNEL = 35,
|
|
RTNLGRP_STATS = 36,
|
|
__RTNLGRP_MAX = 37,
|
|
};
|
|
|
|
enum {
|
|
NHA_UNSPEC = 0,
|
|
NHA_ID = 1,
|
|
NHA_GROUP = 2,
|
|
NHA_GROUP_TYPE = 3,
|
|
NHA_BLACKHOLE = 4,
|
|
NHA_OIF = 5,
|
|
NHA_GATEWAY = 6,
|
|
NHA_ENCAP_TYPE = 7,
|
|
NHA_ENCAP = 8,
|
|
NHA_GROUPS = 9,
|
|
NHA_MASTER = 10,
|
|
NHA_FDB = 11,
|
|
NHA_RES_GROUP = 12,
|
|
NHA_RES_BUCKET = 13,
|
|
__NHA_MAX = 14,
|
|
};
|
|
|
|
enum {
|
|
NEXTHOP_GRP_TYPE_MPATH = 0,
|
|
NEXTHOP_GRP_TYPE_RES = 1,
|
|
__NEXTHOP_GRP_TYPE_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
NHA_RES_GROUP_UNSPEC = 0,
|
|
NHA_RES_GROUP_PAD = 0,
|
|
NHA_RES_GROUP_BUCKETS = 1,
|
|
NHA_RES_GROUP_IDLE_TIMER = 2,
|
|
NHA_RES_GROUP_UNBALANCED_TIMER = 3,
|
|
NHA_RES_GROUP_UNBALANCED_TIME = 4,
|
|
__NHA_RES_GROUP_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
NHA_RES_BUCKET_UNSPEC = 0,
|
|
NHA_RES_BUCKET_PAD = 0,
|
|
NHA_RES_BUCKET_INDEX = 1,
|
|
NHA_RES_BUCKET_IDLE_TIME = 2,
|
|
NHA_RES_BUCKET_NH_ID = 3,
|
|
__NHA_RES_BUCKET_MAX = 4,
|
|
};
|
|
|
|
enum rt_class_t {
|
|
RT_TABLE_UNSPEC = 0,
|
|
RT_TABLE_COMPAT = 252,
|
|
RT_TABLE_DEFAULT = 253,
|
|
RT_TABLE_MAIN = 254,
|
|
RT_TABLE_LOCAL = 255,
|
|
RT_TABLE_MAX = 4294967295,
|
|
};
|
|
|
|
struct nh_notifier_single_info;
|
|
|
|
struct nh_notifier_grp_info;
|
|
|
|
struct nh_notifier_res_table_info;
|
|
|
|
struct nh_notifier_res_bucket_info;
|
|
|
|
struct nh_notifier_info {
|
|
struct net *net;
|
|
struct netlink_ext_ack *extack;
|
|
u32 id;
|
|
enum nh_notifier_info_type type;
|
|
union {
|
|
struct nh_notifier_single_info *nh;
|
|
struct nh_notifier_grp_info *nh_grp;
|
|
struct nh_notifier_res_table_info *nh_res_table;
|
|
struct nh_notifier_res_bucket_info *nh_res_bucket;
|
|
};
|
|
};
|
|
|
|
struct nh_notifier_single_info {
|
|
struct net_device *dev;
|
|
u8 gw_family;
|
|
union {
|
|
__be32 ipv4;
|
|
struct in6_addr ipv6;
|
|
};
|
|
u8 is_reject: 1;
|
|
u8 is_fdb: 1;
|
|
u8 has_encap: 1;
|
|
};
|
|
|
|
struct nh_notifier_grp_entry_info {
|
|
u8 weight;
|
|
u32 id;
|
|
struct nh_notifier_single_info nh;
|
|
};
|
|
|
|
struct nh_notifier_grp_info {
|
|
u16 num_nh;
|
|
bool is_fdb;
|
|
struct nh_notifier_grp_entry_info nh_entries[0];
|
|
};
|
|
|
|
struct nh_notifier_res_table_info {
|
|
u16 num_nh_buckets;
|
|
struct nh_notifier_single_info nhs[0];
|
|
};
|
|
|
|
struct nh_notifier_res_bucket_info {
|
|
u16 bucket_index;
|
|
unsigned int idle_timer_ms;
|
|
bool force;
|
|
struct nh_notifier_single_info old_nh;
|
|
struct nh_notifier_single_info new_nh;
|
|
};
|
|
|
|
typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *);
|
|
|
|
typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
|
|
|
|
struct nl_info {
|
|
struct nlmsghdr *nlh;
|
|
struct net *nl_net;
|
|
u32 portid;
|
|
u8 skip_notify: 1;
|
|
u8 skip_notify_kernel: 1;
|
|
};
|
|
|
|
struct nh_config {
|
|
u32 nh_id;
|
|
u8 nh_family;
|
|
u8 nh_protocol;
|
|
u8 nh_blackhole;
|
|
u8 nh_fdb;
|
|
u32 nh_flags;
|
|
int nh_ifindex;
|
|
struct net_device *dev;
|
|
union {
|
|
__be32 ipv4;
|
|
struct in6_addr ipv6;
|
|
} gw;
|
|
struct nlattr *nh_grp;
|
|
u16 nh_grp_type;
|
|
u16 nh_grp_res_num_buckets;
|
|
unsigned long nh_grp_res_idle_timer;
|
|
unsigned long nh_grp_res_unbalanced_timer;
|
|
bool nh_grp_res_has_num_buckets;
|
|
bool nh_grp_res_has_idle_timer;
|
|
bool nh_grp_res_has_unbalanced_timer;
|
|
struct nlattr *nh_encap;
|
|
u16 nh_encap_type;
|
|
u32 nlflags;
|
|
struct nl_info nlinfo;
|
|
};
|
|
|
|
struct nhmsg {
|
|
unsigned char nh_family;
|
|
unsigned char nh_scope;
|
|
unsigned char nh_protocol;
|
|
unsigned char resvd;
|
|
unsigned int nh_flags;
|
|
};
|
|
|
|
struct nexthop_grp {
|
|
__u32 id;
|
|
__u8 weight;
|
|
__u8 resvd1;
|
|
__u16 resvd2;
|
|
};
|
|
|
|
typedef u8 dscp_t;
|
|
|
|
struct rtnexthop;
|
|
|
|
struct fib_config {
|
|
u8 fc_dst_len;
|
|
dscp_t fc_dscp;
|
|
u8 fc_protocol;
|
|
u8 fc_scope;
|
|
u8 fc_type;
|
|
u8 fc_gw_family;
|
|
u32 fc_table;
|
|
__be32 fc_dst;
|
|
union {
|
|
__be32 fc_gw4;
|
|
struct in6_addr fc_gw6;
|
|
};
|
|
int fc_oif;
|
|
u32 fc_flags;
|
|
u32 fc_priority;
|
|
__be32 fc_prefsrc;
|
|
u32 fc_nh_id;
|
|
struct nlattr *fc_mx;
|
|
struct rtnexthop *fc_mp;
|
|
int fc_mx_len;
|
|
int fc_mp_len;
|
|
u32 fc_flow;
|
|
u32 fc_nlflags;
|
|
struct nl_info fc_nlinfo;
|
|
struct nlattr *fc_encap;
|
|
u16 fc_encap_type;
|
|
};
|
|
|
|
struct rtnexthop {
|
|
unsigned short rtnh_len;
|
|
unsigned char rtnh_flags;
|
|
unsigned char rtnh_hops;
|
|
int rtnh_ifindex;
|
|
};
|
|
|
|
struct fib6_config {
|
|
u32 fc_table;
|
|
u32 fc_metric;
|
|
int fc_dst_len;
|
|
int fc_src_len;
|
|
int fc_ifindex;
|
|
u32 fc_flags;
|
|
u32 fc_protocol;
|
|
u16 fc_type;
|
|
u16 fc_delete_all_nh: 1;
|
|
u16 fc_ignore_dev_down: 1;
|
|
u16 __unused: 14;
|
|
u32 fc_nh_id;
|
|
struct in6_addr fc_dst;
|
|
struct in6_addr fc_src;
|
|
struct in6_addr fc_prefsrc;
|
|
struct in6_addr fc_gateway;
|
|
unsigned long fc_expires;
|
|
struct nlattr *fc_mx;
|
|
int fc_mx_len;
|
|
int fc_mp_len;
|
|
struct nlattr *fc_mp;
|
|
struct nl_info fc_nlinfo;
|
|
struct nlattr *fc_encap;
|
|
u16 fc_encap_type;
|
|
bool fc_is_fdb;
|
|
};
|
|
|
|
struct nh_dump_filter {
|
|
u32 nh_id;
|
|
int dev_idx;
|
|
int master_idx;
|
|
bool group_filter;
|
|
bool fdb_filter;
|
|
u32 res_bucket_nh_id;
|
|
};
|
|
|
|
struct rtm_dump_nh_ctx {
|
|
u32 idx;
|
|
};
|
|
|
|
struct rtm_dump_res_bucket_ctx {
|
|
struct rtm_dump_nh_ctx nh;
|
|
u16 bucket_index;
|
|
u32 done_nh_idx;
|
|
};
|
|
|
|
struct rtm_dump_nexthop_bucket_data {
|
|
struct rtm_dump_res_bucket_ctx *ctx;
|
|
struct nh_dump_filter filter;
|
|
};
|
|
|
|
typedef __kernel_clock_t clock_t;
|
|
|
|
struct netdev_notifier_info_ext {
|
|
struct netdev_notifier_info info;
|
|
union {
|
|
u32 mtu;
|
|
} ext;
|
|
};
|
|
|
|
enum {
|
|
XFRM_DEV_OFFLOAD_UNSPECIFIED = 0,
|
|
XFRM_DEV_OFFLOAD_CRYPTO = 1,
|
|
XFRM_DEV_OFFLOAD_PACKET = 2,
|
|
};
|
|
|
|
enum {
|
|
SKB_GSO_TCPV4 = 1,
|
|
SKB_GSO_DODGY = 2,
|
|
SKB_GSO_TCP_ECN = 4,
|
|
SKB_GSO_TCP_FIXEDID = 8,
|
|
SKB_GSO_TCPV6 = 16,
|
|
SKB_GSO_FCOE = 32,
|
|
SKB_GSO_GRE = 64,
|
|
SKB_GSO_GRE_CSUM = 128,
|
|
SKB_GSO_IPXIP4 = 256,
|
|
SKB_GSO_IPXIP6 = 512,
|
|
SKB_GSO_UDP_TUNNEL = 1024,
|
|
SKB_GSO_UDP_TUNNEL_CSUM = 2048,
|
|
SKB_GSO_PARTIAL = 4096,
|
|
SKB_GSO_TUNNEL_REMCSUM = 8192,
|
|
SKB_GSO_SCTP = 16384,
|
|
SKB_GSO_ESP = 32768,
|
|
SKB_GSO_UDP = 65536,
|
|
SKB_GSO_UDP_L4 = 131072,
|
|
SKB_GSO_FRAGLIST = 262144,
|
|
};
|
|
|
|
enum {
|
|
NETIF_F_SG_BIT = 0,
|
|
NETIF_F_IP_CSUM_BIT = 1,
|
|
__UNUSED_NETIF_F_1 = 2,
|
|
NETIF_F_HW_CSUM_BIT = 3,
|
|
NETIF_F_IPV6_CSUM_BIT = 4,
|
|
NETIF_F_HIGHDMA_BIT = 5,
|
|
NETIF_F_FRAGLIST_BIT = 6,
|
|
NETIF_F_HW_VLAN_CTAG_TX_BIT = 7,
|
|
NETIF_F_HW_VLAN_CTAG_RX_BIT = 8,
|
|
NETIF_F_HW_VLAN_CTAG_FILTER_BIT = 9,
|
|
NETIF_F_VLAN_CHALLENGED_BIT = 10,
|
|
NETIF_F_GSO_BIT = 11,
|
|
NETIF_F_LLTX_BIT = 12,
|
|
NETIF_F_NETNS_LOCAL_BIT = 13,
|
|
NETIF_F_GRO_BIT = 14,
|
|
NETIF_F_LRO_BIT = 15,
|
|
NETIF_F_GSO_SHIFT = 16,
|
|
NETIF_F_TSO_BIT = 16,
|
|
NETIF_F_GSO_ROBUST_BIT = 17,
|
|
NETIF_F_TSO_ECN_BIT = 18,
|
|
NETIF_F_TSO_MANGLEID_BIT = 19,
|
|
NETIF_F_TSO6_BIT = 20,
|
|
NETIF_F_FSO_BIT = 21,
|
|
NETIF_F_GSO_GRE_BIT = 22,
|
|
NETIF_F_GSO_GRE_CSUM_BIT = 23,
|
|
NETIF_F_GSO_IPXIP4_BIT = 24,
|
|
NETIF_F_GSO_IPXIP6_BIT = 25,
|
|
NETIF_F_GSO_UDP_TUNNEL_BIT = 26,
|
|
NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT = 27,
|
|
NETIF_F_GSO_PARTIAL_BIT = 28,
|
|
NETIF_F_GSO_TUNNEL_REMCSUM_BIT = 29,
|
|
NETIF_F_GSO_SCTP_BIT = 30,
|
|
NETIF_F_GSO_ESP_BIT = 31,
|
|
NETIF_F_GSO_UDP_BIT = 32,
|
|
NETIF_F_GSO_UDP_L4_BIT = 33,
|
|
NETIF_F_GSO_FRAGLIST_BIT = 34,
|
|
NETIF_F_GSO_LAST = 34,
|
|
NETIF_F_FCOE_CRC_BIT = 35,
|
|
NETIF_F_SCTP_CRC_BIT = 36,
|
|
NETIF_F_FCOE_MTU_BIT = 37,
|
|
NETIF_F_NTUPLE_BIT = 38,
|
|
NETIF_F_RXHASH_BIT = 39,
|
|
NETIF_F_RXCSUM_BIT = 40,
|
|
NETIF_F_NOCACHE_COPY_BIT = 41,
|
|
NETIF_F_LOOPBACK_BIT = 42,
|
|
NETIF_F_RXFCS_BIT = 43,
|
|
NETIF_F_RXALL_BIT = 44,
|
|
NETIF_F_HW_VLAN_STAG_TX_BIT = 45,
|
|
NETIF_F_HW_VLAN_STAG_RX_BIT = 46,
|
|
NETIF_F_HW_VLAN_STAG_FILTER_BIT = 47,
|
|
NETIF_F_HW_L2FW_DOFFLOAD_BIT = 48,
|
|
NETIF_F_HW_TC_BIT = 49,
|
|
NETIF_F_HW_ESP_BIT = 50,
|
|
NETIF_F_HW_ESP_TX_CSUM_BIT = 51,
|
|
NETIF_F_RX_UDP_TUNNEL_PORT_BIT = 52,
|
|
NETIF_F_HW_TLS_TX_BIT = 53,
|
|
NETIF_F_HW_TLS_RX_BIT = 54,
|
|
NETIF_F_GRO_HW_BIT = 55,
|
|
NETIF_F_HW_TLS_RECORD_BIT = 56,
|
|
NETIF_F_GRO_FRAGLIST_BIT = 57,
|
|
NETIF_F_HW_MACSEC_BIT = 58,
|
|
NETIF_F_GRO_UDP_FWD_BIT = 59,
|
|
NETIF_F_HW_HSR_TAG_INS_BIT = 60,
|
|
NETIF_F_HW_HSR_TAG_RM_BIT = 61,
|
|
NETIF_F_HW_HSR_FWD_BIT = 62,
|
|
NETIF_F_HW_HSR_DUP_BIT = 63,
|
|
NETDEV_FEATURE_COUNT = 64,
|
|
};
|
|
|
|
enum {
|
|
XFRM_STATE_VOID = 0,
|
|
XFRM_STATE_ACQ = 1,
|
|
XFRM_STATE_VALID = 2,
|
|
XFRM_STATE_ERROR = 3,
|
|
XFRM_STATE_EXPIRED = 4,
|
|
XFRM_STATE_DEAD = 5,
|
|
};
|
|
|
|
enum {
|
|
XFRM_MODE_FLAG_TUNNEL = 1,
|
|
};
|
|
|
|
enum {
|
|
TCPF_ESTABLISHED = 2,
|
|
TCPF_SYN_SENT = 4,
|
|
TCPF_SYN_RECV = 8,
|
|
TCPF_FIN_WAIT1 = 16,
|
|
TCPF_FIN_WAIT2 = 32,
|
|
TCPF_TIME_WAIT = 64,
|
|
TCPF_CLOSE = 128,
|
|
TCPF_CLOSE_WAIT = 256,
|
|
TCPF_LAST_ACK = 512,
|
|
TCPF_LISTEN = 1024,
|
|
TCPF_CLOSING = 2048,
|
|
TCPF_NEW_SYN_RECV = 4096,
|
|
};
|
|
|
|
enum {
|
|
RTAX_UNSPEC = 0,
|
|
RTAX_LOCK = 1,
|
|
RTAX_MTU = 2,
|
|
RTAX_WINDOW = 3,
|
|
RTAX_RTT = 4,
|
|
RTAX_RTTVAR = 5,
|
|
RTAX_SSTHRESH = 6,
|
|
RTAX_CWND = 7,
|
|
RTAX_ADVMSS = 8,
|
|
RTAX_REORDERING = 9,
|
|
RTAX_HOPLIMIT = 10,
|
|
RTAX_INITCWND = 11,
|
|
RTAX_FEATURES = 12,
|
|
RTAX_RTO_MIN = 13,
|
|
RTAX_INITRWND = 14,
|
|
RTAX_QUICKACK = 15,
|
|
RTAX_CC_ALGO = 16,
|
|
RTAX_FASTOPEN_NO_COOKIE = 17,
|
|
__RTAX_MAX = 18,
|
|
};
|
|
|
|
enum {
|
|
INET_ECN_NOT_ECT = 0,
|
|
INET_ECN_ECT_1 = 1,
|
|
INET_ECN_ECT_0 = 2,
|
|
INET_ECN_CE = 3,
|
|
INET_ECN_MASK = 3,
|
|
};
|
|
|
|
enum skb_ext_id {
|
|
SKB_EXT_SEC_PATH = 0,
|
|
SKB_EXT_MPTCP = 1,
|
|
SKB_EXT_NUM = 2,
|
|
};
|
|
|
|
struct inet_skb_parm {
|
|
int iif;
|
|
struct ip_options opt;
|
|
u16 flags;
|
|
u16 frag_max_size;
|
|
};
|
|
|
|
struct inet6_skb_parm {
|
|
int iif;
|
|
__be16 ra;
|
|
__u16 dst0;
|
|
__u16 srcrt;
|
|
__u16 dst1;
|
|
__u16 lastopt;
|
|
__u16 nhoff;
|
|
__u16 flags;
|
|
__u16 frag_max_size;
|
|
__u16 srhoff;
|
|
};
|
|
|
|
typedef struct bio_vec skb_frag_t;
|
|
|
|
struct skb_shared_info {
|
|
__u8 flags;
|
|
__u8 meta_len;
|
|
__u8 nr_frags;
|
|
__u8 tx_flags;
|
|
unsigned short gso_size;
|
|
unsigned short gso_segs;
|
|
struct sk_buff *frag_list;
|
|
struct skb_shared_hwtstamps hwtstamps;
|
|
unsigned int gso_type;
|
|
u32 tskey;
|
|
atomic_t dataref;
|
|
unsigned int xdp_frags_size;
|
|
void *destructor_arg;
|
|
skb_frag_t frags[17];
|
|
};
|
|
|
|
struct ip_tunnel;
|
|
|
|
struct ip6_tnl;
|
|
|
|
struct xfrm_tunnel_skb_cb {
|
|
union {
|
|
struct inet_skb_parm h4;
|
|
struct inet6_skb_parm h6;
|
|
} header;
|
|
union {
|
|
struct ip_tunnel *ip4;
|
|
struct ip6_tnl *ip6;
|
|
} tunnel;
|
|
};
|
|
|
|
struct xfrm_mode_skb_cb {
|
|
struct xfrm_tunnel_skb_cb header;
|
|
__be16 id;
|
|
__be16 frag_off;
|
|
u8 ihl;
|
|
u8 tos;
|
|
u8 ttl;
|
|
u8 protocol;
|
|
u8 optlen;
|
|
u8 flow_lbl[3];
|
|
};
|
|
|
|
struct ipv6hdr {
|
|
__u8 priority: 4;
|
|
__u8 version: 4;
|
|
__u8 flow_lbl[3];
|
|
__be16 payload_len;
|
|
__u8 nexthdr;
|
|
__u8 hop_limit;
|
|
union {
|
|
struct {
|
|
struct in6_addr saddr;
|
|
struct in6_addr daddr;
|
|
};
|
|
struct {
|
|
struct in6_addr saddr;
|
|
struct in6_addr daddr;
|
|
} addrs;
|
|
};
|
|
};
|
|
|
|
struct xfrm_dst {
|
|
union {
|
|
struct dst_entry dst;
|
|
struct rtable rt;
|
|
struct rt6_info rt6;
|
|
} u;
|
|
struct dst_entry *route;
|
|
struct dst_entry *child;
|
|
struct dst_entry *path;
|
|
struct xfrm_policy *pols[2];
|
|
int num_pols;
|
|
int num_xfrms;
|
|
u32 xfrm_genid;
|
|
u32 policy_genid;
|
|
u32 route_mtu_cached;
|
|
u32 child_mtu_cached;
|
|
u32 route_cookie;
|
|
u32 path_cookie;
|
|
};
|
|
|
|
struct ip_beet_phdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
__u8 padlen;
|
|
__u8 reserved;
|
|
};
|
|
|
|
struct xfrm_offload {
|
|
struct {
|
|
__u32 low;
|
|
__u32 hi;
|
|
} seq;
|
|
__u32 flags;
|
|
__u32 status;
|
|
__u8 proto;
|
|
__u8 inner_ipproto;
|
|
};
|
|
|
|
struct sec_path {
|
|
int len;
|
|
int olen;
|
|
struct xfrm_state *xvec[6];
|
|
struct xfrm_offload ovec[1];
|
|
};
|
|
|
|
struct xfrm_state_afinfo {
|
|
u8 family;
|
|
u8 proto;
|
|
const struct xfrm_type_offload *type_offload_esp;
|
|
const struct xfrm_type *type_esp;
|
|
const struct xfrm_type *type_ipip;
|
|
const struct xfrm_type *type_ipip6;
|
|
const struct xfrm_type *type_comp;
|
|
const struct xfrm_type *type_ah;
|
|
const struct xfrm_type *type_routing;
|
|
const struct xfrm_type *type_dstopts;
|
|
int (*output)(struct net *, struct sock *, struct sk_buff *);
|
|
int (*transport_finish)(struct sk_buff *, int);
|
|
void (*local_error)(struct sk_buff *, u32);
|
|
};
|
|
|
|
struct static_key_false_deferred {
|
|
struct static_key_false key;
|
|
unsigned long timeout;
|
|
struct delayed_work work;
|
|
};
|
|
|
|
struct raw_hashinfo {
|
|
spinlock_t lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct hlist_nulls_head ht[256];
|
|
};
|
|
|
|
enum proc_hidepid {
|
|
HIDEPID_OFF = 0,
|
|
HIDEPID_NO_ACCESS = 1,
|
|
HIDEPID_INVISIBLE = 2,
|
|
HIDEPID_NOT_PTRACEABLE = 4,
|
|
};
|
|
|
|
enum proc_pidonly {
|
|
PROC_PIDONLY_OFF = 0,
|
|
PROC_PIDONLY_ON = 1,
|
|
};
|
|
|
|
struct seq_net_private {
|
|
struct net *net;
|
|
netns_tracker ns_tracker;
|
|
};
|
|
|
|
struct ip6fl_iter_state {
|
|
struct seq_net_private p;
|
|
struct pid_namespace *pid_ns;
|
|
int bucket;
|
|
};
|
|
|
|
struct in6_flowlabel_req {
|
|
struct in6_addr flr_dst;
|
|
__be32 flr_label;
|
|
__u8 flr_action;
|
|
__u8 flr_share;
|
|
__u16 flr_flags;
|
|
__u16 flr_expires;
|
|
__u16 flr_linger;
|
|
__u32 __flr_pad;
|
|
};
|
|
|
|
struct sockcm_cookie {
|
|
u64 transmit_time;
|
|
u32 mark;
|
|
u32 tsflags;
|
|
};
|
|
|
|
struct ipcm6_cookie {
|
|
struct sockcm_cookie sockc;
|
|
__s16 hlimit;
|
|
__s16 tclass;
|
|
__u16 gso_size;
|
|
__s8 dontfrag;
|
|
struct ipv6_txoptions *opt;
|
|
};
|
|
|
|
struct proc_fs_info {
|
|
struct pid_namespace *pid_ns;
|
|
struct dentry *proc_self;
|
|
struct dentry *proc_thread_self;
|
|
kgid_t pid_gid;
|
|
enum proc_hidepid hide_pid;
|
|
enum proc_pidonly pidonly;
|
|
};
|
|
|
|
struct net_proto_family {
|
|
int family;
|
|
int (*create)(struct net *, struct socket *, int, int);
|
|
struct module *owner;
|
|
};
|
|
|
|
enum tpacket_versions {
|
|
TPACKET_V1 = 0,
|
|
TPACKET_V2 = 1,
|
|
TPACKET_V3 = 2,
|
|
};
|
|
|
|
enum sock_type {
|
|
SOCK_STREAM = 1,
|
|
SOCK_DGRAM = 2,
|
|
SOCK_RAW = 3,
|
|
SOCK_RDM = 4,
|
|
SOCK_SEQPACKET = 5,
|
|
SOCK_DCCP = 6,
|
|
SOCK_PACKET = 10,
|
|
};
|
|
|
|
enum {
|
|
SOF_TIMESTAMPING_TX_HARDWARE = 1,
|
|
SOF_TIMESTAMPING_TX_SOFTWARE = 2,
|
|
SOF_TIMESTAMPING_RX_HARDWARE = 4,
|
|
SOF_TIMESTAMPING_RX_SOFTWARE = 8,
|
|
SOF_TIMESTAMPING_SOFTWARE = 16,
|
|
SOF_TIMESTAMPING_SYS_HARDWARE = 32,
|
|
SOF_TIMESTAMPING_RAW_HARDWARE = 64,
|
|
SOF_TIMESTAMPING_OPT_ID = 128,
|
|
SOF_TIMESTAMPING_TX_SCHED = 256,
|
|
SOF_TIMESTAMPING_TX_ACK = 512,
|
|
SOF_TIMESTAMPING_OPT_CMSG = 1024,
|
|
SOF_TIMESTAMPING_OPT_TSONLY = 2048,
|
|
SOF_TIMESTAMPING_OPT_STATS = 4096,
|
|
SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
|
|
SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
|
|
SOF_TIMESTAMPING_BIND_PHC = 32768,
|
|
SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
|
|
SOF_TIMESTAMPING_LAST = 65536,
|
|
SOF_TIMESTAMPING_MASK = 131071,
|
|
};
|
|
|
|
enum tk_offsets {
|
|
TK_OFFS_REAL = 0,
|
|
TK_OFFS_BOOT = 1,
|
|
TK_OFFS_TAI = 2,
|
|
TK_OFFS_MAX = 3,
|
|
};
|
|
|
|
enum ip_defrag_users {
|
|
IP_DEFRAG_LOCAL_DELIVER = 0,
|
|
IP_DEFRAG_CALL_RA_CHAIN = 1,
|
|
IP_DEFRAG_CONNTRACK_IN = 2,
|
|
__IP_DEFRAG_CONNTRACK_IN_END = 65537,
|
|
IP_DEFRAG_CONNTRACK_OUT = 65538,
|
|
__IP_DEFRAG_CONNTRACK_OUT_END = 131073,
|
|
IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074,
|
|
__IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609,
|
|
IP_DEFRAG_VS_IN = 196610,
|
|
IP_DEFRAG_VS_OUT = 196611,
|
|
IP_DEFRAG_VS_FWD = 196612,
|
|
IP_DEFRAG_AF_PACKET = 196613,
|
|
IP_DEFRAG_MACVLAN = 196614,
|
|
};
|
|
|
|
enum nf_dev_hooks {
|
|
NF_NETDEV_INGRESS = 0,
|
|
NF_NETDEV_EGRESS = 1,
|
|
NF_NETDEV_NUMHOOKS = 2,
|
|
};
|
|
|
|
enum {
|
|
SKBTX_HW_TSTAMP = 1,
|
|
SKBTX_SW_TSTAMP = 2,
|
|
SKBTX_IN_PROGRESS = 4,
|
|
SKBTX_HW_TSTAMP_USE_CYCLES = 8,
|
|
SKBTX_WIFI_STATUS = 16,
|
|
SKBTX_HW_TSTAMP_NETDEV = 32,
|
|
SKBTX_SCHED_TSTAMP = 64,
|
|
};
|
|
|
|
enum {
|
|
SKBFL_ZEROCOPY_ENABLE = 1,
|
|
SKBFL_SHARED_FRAG = 2,
|
|
SKBFL_PURE_ZEROCOPY = 4,
|
|
SKBFL_DONT_ORPHAN = 8,
|
|
SKBFL_MANAGED_FRAG_REFS = 16,
|
|
};
|
|
|
|
enum netdev_priv_flags {
|
|
IFF_802_1Q_VLAN = 1ULL,
|
|
IFF_EBRIDGE = 2ULL,
|
|
IFF_BONDING = 4ULL,
|
|
IFF_ISATAP = 8ULL,
|
|
IFF_WAN_HDLC = 16ULL,
|
|
IFF_XMIT_DST_RELEASE = 32ULL,
|
|
IFF_DONT_BRIDGE = 64ULL,
|
|
IFF_DISABLE_NETPOLL = 128ULL,
|
|
IFF_MACVLAN_PORT = 256ULL,
|
|
IFF_BRIDGE_PORT = 512ULL,
|
|
IFF_OVS_DATAPATH = 1024ULL,
|
|
IFF_TX_SKB_SHARING = 2048ULL,
|
|
IFF_UNICAST_FLT = 4096ULL,
|
|
IFF_TEAM_PORT = 8192ULL,
|
|
IFF_SUPP_NOFCS = 16384ULL,
|
|
IFF_LIVE_ADDR_CHANGE = 32768ULL,
|
|
IFF_MACVLAN = 65536ULL,
|
|
IFF_XMIT_DST_RELEASE_PERM = 131072ULL,
|
|
IFF_L3MDEV_MASTER = 262144ULL,
|
|
IFF_NO_QUEUE = 524288ULL,
|
|
IFF_OPENVSWITCH = 1048576ULL,
|
|
IFF_L3MDEV_SLAVE = 2097152ULL,
|
|
IFF_TEAM = 4194304ULL,
|
|
IFF_RXFH_CONFIGURED = 8388608ULL,
|
|
IFF_PHONY_HEADROOM = 16777216ULL,
|
|
IFF_MACSEC = 33554432ULL,
|
|
IFF_NO_RX_HANDLER = 67108864ULL,
|
|
IFF_FAILOVER = 134217728ULL,
|
|
IFF_FAILOVER_SLAVE = 268435456ULL,
|
|
IFF_L3MDEV_RX_HANDLER = 536870912ULL,
|
|
IFF_NO_ADDRCONF = 1073741824ULL,
|
|
IFF_TX_SKB_NO_LINEAR = 2147483648ULL,
|
|
IFF_CHANGE_PROTO_DOWN = 4294967296ULL,
|
|
};
|
|
|
|
struct tpacket_stats {
|
|
unsigned int tp_packets;
|
|
unsigned int tp_drops;
|
|
};
|
|
|
|
struct tpacket_stats_v3 {
|
|
unsigned int tp_packets;
|
|
unsigned int tp_drops;
|
|
unsigned int tp_freeze_q_cnt;
|
|
};
|
|
|
|
union tpacket_stats_u {
|
|
struct tpacket_stats stats1;
|
|
struct tpacket_stats_v3 stats3;
|
|
};
|
|
|
|
struct pgv;
|
|
|
|
struct tpacket_kbdq_core {
|
|
struct pgv *pkbdq;
|
|
unsigned int feature_req_word;
|
|
unsigned int hdrlen;
|
|
unsigned char reset_pending_on_curr_blk;
|
|
unsigned char delete_blk_timer;
|
|
unsigned short kactive_blk_num;
|
|
unsigned short blk_sizeof_priv;
|
|
unsigned short last_kactive_blk_num;
|
|
char *pkblk_start;
|
|
char *pkblk_end;
|
|
int kblk_size;
|
|
unsigned int max_frame_len;
|
|
unsigned int knum_blocks;
|
|
uint64_t knxt_seq_num;
|
|
char *prev;
|
|
char *nxt_offset;
|
|
struct sk_buff *skb;
|
|
rwlock_t blk_fill_in_prog_lock;
|
|
unsigned short retire_blk_tov;
|
|
unsigned short version;
|
|
unsigned long tov_in_jiffies;
|
|
struct timer_list retire_blk_timer;
|
|
};
|
|
|
|
struct packet_ring_buffer {
|
|
struct pgv *pg_vec;
|
|
unsigned int head;
|
|
unsigned int frames_per_block;
|
|
unsigned int frame_size;
|
|
unsigned int frame_max;
|
|
unsigned int pg_vec_order;
|
|
unsigned int pg_vec_pages;
|
|
unsigned int pg_vec_len;
|
|
unsigned int __attribute__((btf_type_tag("percpu"))) *pending_refcnt;
|
|
union {
|
|
unsigned long *rx_owner_map;
|
|
struct tpacket_kbdq_core prb_bdqc;
|
|
};
|
|
};
|
|
|
|
struct packet_type {
|
|
__be16 type;
|
|
bool ignore_outgoing;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
int (*func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
|
|
void (*list_func)(struct list_head *, struct packet_type *, struct net_device *);
|
|
bool (*id_match)(struct packet_type *, struct sock *);
|
|
struct net *af_packet_net;
|
|
void *af_packet_priv;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct packet_fanout;
|
|
|
|
struct packet_rollover;
|
|
|
|
struct packet_mclist;
|
|
|
|
struct packet_sock {
|
|
struct sock sk;
|
|
struct packet_fanout *fanout;
|
|
union tpacket_stats_u stats;
|
|
struct packet_ring_buffer rx_ring;
|
|
struct packet_ring_buffer tx_ring;
|
|
int copy_thresh;
|
|
spinlock_t bind_lock;
|
|
struct mutex pg_vec_lock;
|
|
unsigned int running;
|
|
unsigned int auxdata: 1;
|
|
unsigned int origdev: 1;
|
|
unsigned int has_vnet_hdr: 1;
|
|
unsigned int tp_loss: 1;
|
|
unsigned int tp_tx_has_off: 1;
|
|
int pressure;
|
|
int ifindex;
|
|
__be16 num;
|
|
struct packet_rollover *rollover;
|
|
struct packet_mclist *mclist;
|
|
atomic_t mapped;
|
|
enum tpacket_versions tp_version;
|
|
unsigned int tp_hdrlen;
|
|
unsigned int tp_reserve;
|
|
unsigned int tp_tstamp;
|
|
struct completion skb_completion;
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev;
|
|
int (*xmit)(struct sk_buff *);
|
|
struct packet_type prot_hook;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
atomic_t tp_drops;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct packet_fanout {
|
|
possible_net_t net;
|
|
unsigned int num_members;
|
|
u32 max_num_members;
|
|
u16 id;
|
|
u8 type;
|
|
u8 flags;
|
|
union {
|
|
atomic_t rr_cur;
|
|
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *bpf_prog;
|
|
};
|
|
struct list_head list;
|
|
spinlock_t lock;
|
|
refcount_t sk_ref;
|
|
long: 64;
|
|
struct packet_type prot_hook;
|
|
struct sock __attribute__((btf_type_tag("rcu"))) *arr[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct pgv {
|
|
char *buffer;
|
|
};
|
|
|
|
struct packet_rollover {
|
|
int sock;
|
|
atomic_long_t num;
|
|
atomic_long_t num_huge;
|
|
atomic_long_t num_failed;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 history[16];
|
|
};
|
|
|
|
struct packet_mclist {
|
|
struct packet_mclist *next;
|
|
int ifindex;
|
|
int count;
|
|
unsigned short type;
|
|
unsigned short alen;
|
|
unsigned char addr[32];
|
|
};
|
|
|
|
struct tpacket_bd_ts {
|
|
unsigned int ts_sec;
|
|
union {
|
|
unsigned int ts_usec;
|
|
unsigned int ts_nsec;
|
|
};
|
|
};
|
|
|
|
struct tpacket_hdr_v1 {
|
|
__u32 block_status;
|
|
__u32 num_pkts;
|
|
__u32 offset_to_first_pkt;
|
|
__u32 blk_len;
|
|
__u64 seq_num;
|
|
struct tpacket_bd_ts ts_first_pkt;
|
|
struct tpacket_bd_ts ts_last_pkt;
|
|
};
|
|
|
|
union tpacket_bd_header_u {
|
|
struct tpacket_hdr_v1 bh1;
|
|
};
|
|
|
|
struct tpacket_block_desc {
|
|
__u32 version;
|
|
__u32 offset_to_priv;
|
|
union tpacket_bd_header_u hdr;
|
|
};
|
|
|
|
struct tpacket_hdr_variant1 {
|
|
__u32 tp_rxhash;
|
|
__u32 tp_vlan_tci;
|
|
__u16 tp_vlan_tpid;
|
|
__u16 tp_padding;
|
|
};
|
|
|
|
struct tpacket3_hdr {
|
|
__u32 tp_next_offset;
|
|
__u32 tp_sec;
|
|
__u32 tp_nsec;
|
|
__u32 tp_snaplen;
|
|
__u32 tp_len;
|
|
__u32 tp_status;
|
|
__u16 tp_mac;
|
|
__u16 tp_net;
|
|
union {
|
|
struct tpacket_hdr_variant1 hv1;
|
|
};
|
|
__u8 tp_padding[8];
|
|
};
|
|
|
|
struct sockaddr_ll {
|
|
unsigned short sll_family;
|
|
__be16 sll_protocol;
|
|
int sll_ifindex;
|
|
unsigned short sll_hatype;
|
|
unsigned char sll_pkttype;
|
|
unsigned char sll_halen;
|
|
unsigned char sll_addr[8];
|
|
};
|
|
|
|
struct sockaddr_pkt {
|
|
unsigned short spkt_family;
|
|
unsigned char spkt_device[14];
|
|
__be16 spkt_protocol;
|
|
};
|
|
|
|
struct packet_skb_cb {
|
|
union {
|
|
struct sockaddr_pkt pkt;
|
|
union {
|
|
unsigned int origlen;
|
|
struct sockaddr_ll ll;
|
|
};
|
|
} sa;
|
|
};
|
|
|
|
typedef __u16 __virtio16;
|
|
|
|
struct sock_skb_cb {
|
|
u32 dropcount;
|
|
};
|
|
|
|
struct tpacket_hdr;
|
|
|
|
struct tpacket2_hdr;
|
|
|
|
union tpacket_uhdr {
|
|
struct tpacket_hdr *h1;
|
|
struct tpacket2_hdr *h2;
|
|
struct tpacket3_hdr *h3;
|
|
void *raw;
|
|
};
|
|
|
|
struct tpacket_hdr {
|
|
unsigned long tp_status;
|
|
unsigned int tp_len;
|
|
unsigned int tp_snaplen;
|
|
unsigned short tp_mac;
|
|
unsigned short tp_net;
|
|
unsigned int tp_sec;
|
|
unsigned int tp_usec;
|
|
};
|
|
|
|
struct tpacket2_hdr {
|
|
__u32 tp_status;
|
|
__u32 tp_len;
|
|
__u32 tp_snaplen;
|
|
__u16 tp_mac;
|
|
__u16 tp_net;
|
|
__u32 tp_sec;
|
|
__u32 tp_nsec;
|
|
__u16 tp_vlan_tci;
|
|
__u16 tp_vlan_tpid;
|
|
__u8 tp_padding[4];
|
|
};
|
|
|
|
struct virtio_net_hdr {
|
|
__u8 flags;
|
|
__u8 gso_type;
|
|
__virtio16 hdr_len;
|
|
__virtio16 gso_size;
|
|
__virtio16 csum_start;
|
|
__virtio16 csum_offset;
|
|
};
|
|
|
|
struct tpacket_req {
|
|
unsigned int tp_block_size;
|
|
unsigned int tp_block_nr;
|
|
unsigned int tp_frame_size;
|
|
unsigned int tp_frame_nr;
|
|
};
|
|
|
|
struct tpacket_req3 {
|
|
unsigned int tp_block_size;
|
|
unsigned int tp_block_nr;
|
|
unsigned int tp_frame_size;
|
|
unsigned int tp_frame_nr;
|
|
unsigned int tp_retire_blk_tov;
|
|
unsigned int tp_sizeof_priv;
|
|
unsigned int tp_feature_req_word;
|
|
};
|
|
|
|
union tpacket_req_u {
|
|
struct tpacket_req req;
|
|
struct tpacket_req3 req3;
|
|
};
|
|
|
|
struct sock_fprog {
|
|
unsigned short len;
|
|
struct sock_filter __attribute__((btf_type_tag("user"))) *filter;
|
|
};
|
|
|
|
typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int);
|
|
|
|
struct flow_dissector_key_control {
|
|
u16 thoff;
|
|
u16 addr_type;
|
|
u32 flags;
|
|
};
|
|
|
|
struct flow_dissector_key_basic {
|
|
__be16 n_proto;
|
|
u8 ip_proto;
|
|
u8 padding;
|
|
};
|
|
|
|
struct flow_keys_basic {
|
|
struct flow_dissector_key_control control;
|
|
struct flow_dissector_key_basic basic;
|
|
};
|
|
|
|
struct flow_dissector {
|
|
unsigned int used_keys;
|
|
unsigned short offset[31];
|
|
};
|
|
|
|
struct vlan_hdr {
|
|
__be16 h_vlan_TCI;
|
|
__be16 h_vlan_encapsulated_proto;
|
|
};
|
|
|
|
struct packet_mreq_max {
|
|
int mr_ifindex;
|
|
unsigned short mr_type;
|
|
unsigned short mr_alen;
|
|
unsigned char mr_address[32];
|
|
};
|
|
|
|
struct fanout_args {
|
|
__u16 id;
|
|
__u16 type_flags;
|
|
__u32 max_num_members;
|
|
};
|
|
|
|
struct tpacket_rollover_stats {
|
|
__u64 tp_all;
|
|
__u64 tp_huge;
|
|
__u64 tp_failed;
|
|
};
|
|
|
|
struct tpacket_auxdata {
|
|
__u32 tp_status;
|
|
__u32 tp_len;
|
|
__u32 tp_snaplen;
|
|
__u16 tp_mac;
|
|
__u16 tp_net;
|
|
__u16 tp_vlan_tci;
|
|
__u16 tp_vlan_tpid;
|
|
};
|
|
|
|
struct radiotap_align_size;
|
|
|
|
struct ieee80211_radiotap_namespace {
|
|
const struct radiotap_align_size *align_size;
|
|
int n_bits;
|
|
uint32_t oui;
|
|
uint8_t subns;
|
|
};
|
|
|
|
struct radiotap_align_size {
|
|
uint8_t align: 4;
|
|
uint8_t size: 4;
|
|
};
|
|
|
|
enum ieee80211_radiotap_presence {
|
|
IEEE80211_RADIOTAP_TSFT = 0,
|
|
IEEE80211_RADIOTAP_FLAGS = 1,
|
|
IEEE80211_RADIOTAP_RATE = 2,
|
|
IEEE80211_RADIOTAP_CHANNEL = 3,
|
|
IEEE80211_RADIOTAP_FHSS = 4,
|
|
IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5,
|
|
IEEE80211_RADIOTAP_DBM_ANTNOISE = 6,
|
|
IEEE80211_RADIOTAP_LOCK_QUALITY = 7,
|
|
IEEE80211_RADIOTAP_TX_ATTENUATION = 8,
|
|
IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9,
|
|
IEEE80211_RADIOTAP_DBM_TX_POWER = 10,
|
|
IEEE80211_RADIOTAP_ANTENNA = 11,
|
|
IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
|
|
IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
|
|
IEEE80211_RADIOTAP_RX_FLAGS = 14,
|
|
IEEE80211_RADIOTAP_TX_FLAGS = 15,
|
|
IEEE80211_RADIOTAP_RTS_RETRIES = 16,
|
|
IEEE80211_RADIOTAP_DATA_RETRIES = 17,
|
|
IEEE80211_RADIOTAP_MCS = 19,
|
|
IEEE80211_RADIOTAP_AMPDU_STATUS = 20,
|
|
IEEE80211_RADIOTAP_VHT = 21,
|
|
IEEE80211_RADIOTAP_TIMESTAMP = 22,
|
|
IEEE80211_RADIOTAP_HE = 23,
|
|
IEEE80211_RADIOTAP_HE_MU = 24,
|
|
IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26,
|
|
IEEE80211_RADIOTAP_LSIG = 27,
|
|
IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
|
|
IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
|
|
IEEE80211_RADIOTAP_EXT = 31,
|
|
};
|
|
|
|
struct ieee80211_radiotap_header;
|
|
|
|
struct ieee80211_radiotap_vendor_namespaces;
|
|
|
|
struct ieee80211_radiotap_iterator {
|
|
struct ieee80211_radiotap_header *_rtheader;
|
|
const struct ieee80211_radiotap_vendor_namespaces *_vns;
|
|
const struct ieee80211_radiotap_namespace *current_namespace;
|
|
unsigned char *_arg;
|
|
unsigned char *_next_ns_data;
|
|
__le32 *_next_bitmap;
|
|
unsigned char *this_arg;
|
|
int this_arg_index;
|
|
int this_arg_size;
|
|
int is_radiotap_ns;
|
|
int _max_length;
|
|
int _arg_index;
|
|
uint32_t _bitmap_shifter;
|
|
int _reset_on_ext;
|
|
};
|
|
|
|
struct ieee80211_radiotap_header {
|
|
uint8_t it_version;
|
|
uint8_t it_pad;
|
|
__le16 it_len;
|
|
__le32 it_present;
|
|
__le32 it_optional[0];
|
|
};
|
|
|
|
struct ieee80211_radiotap_vendor_namespaces {
|
|
const struct ieee80211_radiotap_namespace *ns;
|
|
int n_ns;
|
|
};
|
|
|
|
enum nl80211_chan_width {
|
|
NL80211_CHAN_WIDTH_20_NOHT = 0,
|
|
NL80211_CHAN_WIDTH_20 = 1,
|
|
NL80211_CHAN_WIDTH_40 = 2,
|
|
NL80211_CHAN_WIDTH_80 = 3,
|
|
NL80211_CHAN_WIDTH_80P80 = 4,
|
|
NL80211_CHAN_WIDTH_160 = 5,
|
|
NL80211_CHAN_WIDTH_5 = 6,
|
|
NL80211_CHAN_WIDTH_10 = 7,
|
|
NL80211_CHAN_WIDTH_1 = 8,
|
|
NL80211_CHAN_WIDTH_2 = 9,
|
|
NL80211_CHAN_WIDTH_4 = 10,
|
|
NL80211_CHAN_WIDTH_8 = 11,
|
|
NL80211_CHAN_WIDTH_16 = 12,
|
|
NL80211_CHAN_WIDTH_320 = 13,
|
|
};
|
|
|
|
enum ieee80211_edmg_bw_config {
|
|
IEEE80211_EDMG_BW_CONFIG_4 = 4,
|
|
IEEE80211_EDMG_BW_CONFIG_5 = 5,
|
|
IEEE80211_EDMG_BW_CONFIG_6 = 6,
|
|
IEEE80211_EDMG_BW_CONFIG_7 = 7,
|
|
IEEE80211_EDMG_BW_CONFIG_8 = 8,
|
|
IEEE80211_EDMG_BW_CONFIG_9 = 9,
|
|
IEEE80211_EDMG_BW_CONFIG_10 = 10,
|
|
IEEE80211_EDMG_BW_CONFIG_11 = 11,
|
|
IEEE80211_EDMG_BW_CONFIG_12 = 12,
|
|
IEEE80211_EDMG_BW_CONFIG_13 = 13,
|
|
IEEE80211_EDMG_BW_CONFIG_14 = 14,
|
|
IEEE80211_EDMG_BW_CONFIG_15 = 15,
|
|
};
|
|
|
|
struct ieee80211_edmg {
|
|
u8 channels;
|
|
enum ieee80211_edmg_bw_config bw_config;
|
|
};
|
|
|
|
struct ieee80211_channel;
|
|
|
|
struct cfg80211_chan_def {
|
|
struct ieee80211_channel *chan;
|
|
enum nl80211_chan_width width;
|
|
u32 center_freq1;
|
|
u32 center_freq2;
|
|
struct ieee80211_edmg edmg;
|
|
u16 freq1_offset;
|
|
};
|
|
|
|
enum nl80211_iftype {
|
|
NL80211_IFTYPE_UNSPECIFIED = 0,
|
|
NL80211_IFTYPE_ADHOC = 1,
|
|
NL80211_IFTYPE_STATION = 2,
|
|
NL80211_IFTYPE_AP = 3,
|
|
NL80211_IFTYPE_AP_VLAN = 4,
|
|
NL80211_IFTYPE_WDS = 5,
|
|
NL80211_IFTYPE_MONITOR = 6,
|
|
NL80211_IFTYPE_MESH_POINT = 7,
|
|
NL80211_IFTYPE_P2P_CLIENT = 8,
|
|
NL80211_IFTYPE_P2P_GO = 9,
|
|
NL80211_IFTYPE_P2P_DEVICE = 10,
|
|
NL80211_IFTYPE_OCB = 11,
|
|
NL80211_IFTYPE_NAN = 12,
|
|
NUM_NL80211_IFTYPES = 13,
|
|
NL80211_IFTYPE_MAX = 12,
|
|
};
|
|
|
|
enum ieee80211_bss_type {
|
|
IEEE80211_BSS_TYPE_ESS = 0,
|
|
IEEE80211_BSS_TYPE_PBSS = 1,
|
|
IEEE80211_BSS_TYPE_IBSS = 2,
|
|
IEEE80211_BSS_TYPE_MBSS = 3,
|
|
IEEE80211_BSS_TYPE_ANY = 4,
|
|
};
|
|
|
|
struct wiphy;
|
|
|
|
struct cfg80211_conn;
|
|
|
|
struct cfg80211_cached_keys;
|
|
|
|
struct cfg80211_cqm_config;
|
|
|
|
struct cfg80211_internal_bss;
|
|
|
|
struct wireless_dev {
|
|
struct wiphy *wiphy;
|
|
enum nl80211_iftype iftype;
|
|
struct list_head list;
|
|
struct net_device *netdev;
|
|
u32 identifier;
|
|
struct list_head mgmt_registrations;
|
|
u8 mgmt_registrations_need_update: 1;
|
|
struct mutex mtx;
|
|
bool use_4addr;
|
|
bool is_running;
|
|
bool registered;
|
|
bool registering;
|
|
u8 address[6];
|
|
struct cfg80211_conn *conn;
|
|
struct cfg80211_cached_keys *connect_keys;
|
|
enum ieee80211_bss_type conn_bss_type;
|
|
u32 conn_owner_nlportid;
|
|
struct work_struct disconnect_wk;
|
|
u8 disconnect_bssid[6];
|
|
struct list_head event_list;
|
|
spinlock_t event_lock;
|
|
u8 connected: 1;
|
|
bool ps;
|
|
int ps_timeout;
|
|
u32 ap_unexpected_nlportid;
|
|
u32 owner_nlportid;
|
|
bool nl_owner_dead;
|
|
bool cac_started;
|
|
unsigned long cac_start_time;
|
|
unsigned int cac_time_ms;
|
|
struct cfg80211_cqm_config *cqm_config;
|
|
struct list_head pmsr_list;
|
|
spinlock_t pmsr_lock;
|
|
struct work_struct pmsr_free_wk;
|
|
unsigned long unprot_beacon_reported;
|
|
union {
|
|
struct {
|
|
u8 connected_addr[6];
|
|
u8 ssid[32];
|
|
u8 ssid_len;
|
|
char: 8;
|
|
} client;
|
|
struct {
|
|
int beacon_interval;
|
|
struct cfg80211_chan_def preset_chandef;
|
|
struct cfg80211_chan_def chandef;
|
|
u8 id[32];
|
|
u8 id_len;
|
|
u8 id_up_len;
|
|
} mesh;
|
|
struct {
|
|
struct cfg80211_chan_def preset_chandef;
|
|
u8 ssid[32];
|
|
u8 ssid_len;
|
|
} ap;
|
|
struct {
|
|
struct cfg80211_internal_bss *current_bss;
|
|
struct cfg80211_chan_def chandef;
|
|
int beacon_interval;
|
|
u8 ssid[32];
|
|
u8 ssid_len;
|
|
} ibss;
|
|
struct {
|
|
struct cfg80211_chan_def chandef;
|
|
} ocb;
|
|
} u;
|
|
struct {
|
|
u8 addr[6];
|
|
union {
|
|
struct {
|
|
unsigned int beacon_interval;
|
|
struct cfg80211_chan_def chandef;
|
|
} ap;
|
|
struct {
|
|
struct cfg80211_internal_bss *current_bss;
|
|
} client;
|
|
};
|
|
} links[15];
|
|
u16 valid_links;
|
|
};
|
|
|
|
enum cfg80211_signal_type {
|
|
CFG80211_SIGNAL_TYPE_NONE = 0,
|
|
CFG80211_SIGNAL_TYPE_MBM = 1,
|
|
CFG80211_SIGNAL_TYPE_UNSPEC = 2,
|
|
};
|
|
|
|
struct mac_address;
|
|
|
|
struct ieee80211_txrx_stypes;
|
|
|
|
struct ieee80211_iface_combination;
|
|
|
|
struct wiphy_iftype_akm_suites;
|
|
|
|
struct wiphy_wowlan_support;
|
|
|
|
struct cfg80211_wowlan;
|
|
|
|
struct wiphy_iftype_ext_capab;
|
|
|
|
struct ieee80211_supported_band;
|
|
|
|
struct regulatory_request;
|
|
|
|
struct ieee80211_regdomain;
|
|
|
|
struct ieee80211_ht_cap;
|
|
|
|
struct ieee80211_vht_cap;
|
|
|
|
struct wiphy_coalesce_support;
|
|
|
|
struct wiphy_vendor_command;
|
|
|
|
struct nl80211_vendor_cmd_info;
|
|
|
|
struct cfg80211_pmsr_capabilities;
|
|
|
|
struct cfg80211_sar_capa;
|
|
|
|
struct rfkill;
|
|
|
|
struct wiphy {
|
|
struct mutex mtx;
|
|
u8 perm_addr[6];
|
|
u8 addr_mask[6];
|
|
struct mac_address *addresses;
|
|
const struct ieee80211_txrx_stypes *mgmt_stypes;
|
|
const struct ieee80211_iface_combination *iface_combinations;
|
|
int n_iface_combinations;
|
|
u16 software_iftypes;
|
|
u16 n_addresses;
|
|
u16 interface_modes;
|
|
u16 max_acl_mac_addrs;
|
|
u32 flags;
|
|
u32 regulatory_flags;
|
|
u32 features;
|
|
u8 ext_features[8];
|
|
u32 ap_sme_capa;
|
|
enum cfg80211_signal_type signal_type;
|
|
int bss_priv_size;
|
|
u8 max_scan_ssids;
|
|
u8 max_sched_scan_reqs;
|
|
u8 max_sched_scan_ssids;
|
|
u8 max_match_sets;
|
|
u16 max_scan_ie_len;
|
|
u16 max_sched_scan_ie_len;
|
|
u32 max_sched_scan_plans;
|
|
u32 max_sched_scan_plan_interval;
|
|
u32 max_sched_scan_plan_iterations;
|
|
int n_cipher_suites;
|
|
const u32 *cipher_suites;
|
|
int n_akm_suites;
|
|
const u32 *akm_suites;
|
|
const struct wiphy_iftype_akm_suites *iftype_akm_suites;
|
|
unsigned int num_iftype_akm_suites;
|
|
u8 retry_short;
|
|
u8 retry_long;
|
|
u32 frag_threshold;
|
|
u32 rts_threshold;
|
|
u8 coverage_class;
|
|
char fw_version[32];
|
|
u32 hw_version;
|
|
const struct wiphy_wowlan_support *wowlan;
|
|
struct cfg80211_wowlan *wowlan_config;
|
|
u16 max_remain_on_channel_duration;
|
|
u8 max_num_pmkids;
|
|
u32 available_antennas_tx;
|
|
u32 available_antennas_rx;
|
|
u32 probe_resp_offload;
|
|
const u8 *extended_capabilities;
|
|
const u8 *extended_capabilities_mask;
|
|
u8 extended_capabilities_len;
|
|
const struct wiphy_iftype_ext_capab *iftype_ext_capab;
|
|
unsigned int num_iftype_ext_capab;
|
|
const void *privid;
|
|
struct ieee80211_supported_band *bands[6];
|
|
void (*reg_notifier)(struct wiphy *, struct regulatory_request *);
|
|
const struct ieee80211_regdomain __attribute__((btf_type_tag("rcu"))) *regd;
|
|
struct device dev;
|
|
bool registered;
|
|
struct dentry *debugfsdir;
|
|
const struct ieee80211_ht_cap *ht_capa_mod_mask;
|
|
const struct ieee80211_vht_cap *vht_capa_mod_mask;
|
|
struct list_head wdev_list;
|
|
possible_net_t _net;
|
|
const struct wiphy_coalesce_support *coalesce;
|
|
const struct wiphy_vendor_command *vendor_commands;
|
|
const struct nl80211_vendor_cmd_info *vendor_events;
|
|
int n_vendor_commands;
|
|
int n_vendor_events;
|
|
u16 max_ap_assoc_sta;
|
|
u8 max_num_csa_counters;
|
|
u32 bss_select_support;
|
|
u8 nan_supported_bands;
|
|
u32 txq_limit;
|
|
u32 txq_memory_limit;
|
|
u32 txq_quantum;
|
|
unsigned long tx_queue_len;
|
|
u8 support_mbssid: 1;
|
|
u8 support_only_he_mbssid: 1;
|
|
const struct cfg80211_pmsr_capabilities *pmsr_capa;
|
|
struct {
|
|
u64 peer;
|
|
u64 vif;
|
|
u8 max_retry;
|
|
} tid_config_support;
|
|
u8 max_data_retry_count;
|
|
const struct cfg80211_sar_capa *sar_capa;
|
|
struct rfkill *rfkill;
|
|
u8 mbssid_max_interfaces;
|
|
u8 ema_max_profile_periodicity;
|
|
u16 max_num_akm_suites;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
char priv[0];
|
|
};
|
|
|
|
struct mac_address {
|
|
u8 addr[6];
|
|
};
|
|
|
|
struct ieee80211_txrx_stypes {
|
|
u16 tx;
|
|
u16 rx;
|
|
};
|
|
|
|
struct ieee80211_iface_limit;
|
|
|
|
struct ieee80211_iface_combination {
|
|
const struct ieee80211_iface_limit *limits;
|
|
u32 num_different_channels;
|
|
u16 max_interfaces;
|
|
u8 n_limits;
|
|
bool beacon_int_infra_match;
|
|
u8 radar_detect_widths;
|
|
u8 radar_detect_regions;
|
|
u32 beacon_int_min_gcd;
|
|
};
|
|
|
|
struct ieee80211_iface_limit {
|
|
u16 max;
|
|
u16 types;
|
|
};
|
|
|
|
struct wiphy_iftype_akm_suites {
|
|
u16 iftypes_mask;
|
|
const u32 *akm_suites;
|
|
int n_akm_suites;
|
|
};
|
|
|
|
struct wiphy_wowlan_tcp_support;
|
|
|
|
struct wiphy_wowlan_support {
|
|
u32 flags;
|
|
int n_patterns;
|
|
int pattern_max_len;
|
|
int pattern_min_len;
|
|
int max_pkt_offset;
|
|
int max_nd_match_sets;
|
|
const struct wiphy_wowlan_tcp_support *tcp;
|
|
};
|
|
|
|
struct nl80211_wowlan_tcp_data_token_feature;
|
|
|
|
struct wiphy_wowlan_tcp_support {
|
|
const struct nl80211_wowlan_tcp_data_token_feature *tok;
|
|
u32 data_payload_max;
|
|
u32 data_interval_max;
|
|
u32 wake_payload_max;
|
|
bool seq;
|
|
};
|
|
|
|
struct nl80211_wowlan_tcp_data_token_feature {
|
|
__u32 min_len;
|
|
__u32 max_len;
|
|
__u32 bufsize;
|
|
};
|
|
|
|
struct cfg80211_pkt_pattern;
|
|
|
|
struct cfg80211_wowlan_tcp;
|
|
|
|
struct cfg80211_sched_scan_request;
|
|
|
|
struct cfg80211_wowlan {
|
|
bool any;
|
|
bool disconnect;
|
|
bool magic_pkt;
|
|
bool gtk_rekey_failure;
|
|
bool eap_identity_req;
|
|
bool four_way_handshake;
|
|
bool rfkill_release;
|
|
struct cfg80211_pkt_pattern *patterns;
|
|
struct cfg80211_wowlan_tcp *tcp;
|
|
int n_patterns;
|
|
struct cfg80211_sched_scan_request *nd_config;
|
|
};
|
|
|
|
struct cfg80211_pkt_pattern {
|
|
const u8 *mask;
|
|
const u8 *pattern;
|
|
int pattern_len;
|
|
int pkt_offset;
|
|
};
|
|
|
|
struct nl80211_wowlan_tcp_data_seq {
|
|
__u32 start;
|
|
__u32 offset;
|
|
__u32 len;
|
|
};
|
|
|
|
struct nl80211_wowlan_tcp_data_token {
|
|
__u32 offset;
|
|
__u32 len;
|
|
__u8 token_stream[0];
|
|
};
|
|
|
|
struct cfg80211_wowlan_tcp {
|
|
struct socket *sock;
|
|
__be32 src;
|
|
__be32 dst;
|
|
u16 src_port;
|
|
u16 dst_port;
|
|
u8 dst_mac[6];
|
|
int payload_len;
|
|
const u8 *payload;
|
|
struct nl80211_wowlan_tcp_data_seq payload_seq;
|
|
u32 data_interval;
|
|
u32 wake_len;
|
|
const u8 *wake_data;
|
|
const u8 *wake_mask;
|
|
u32 tokens_size;
|
|
struct nl80211_wowlan_tcp_data_token payload_tok;
|
|
};
|
|
|
|
enum nl80211_bss_scan_width {
|
|
NL80211_BSS_CHAN_WIDTH_20 = 0,
|
|
NL80211_BSS_CHAN_WIDTH_10 = 1,
|
|
NL80211_BSS_CHAN_WIDTH_5 = 2,
|
|
NL80211_BSS_CHAN_WIDTH_1 = 3,
|
|
NL80211_BSS_CHAN_WIDTH_2 = 4,
|
|
};
|
|
|
|
enum nl80211_band {
|
|
NL80211_BAND_2GHZ = 0,
|
|
NL80211_BAND_5GHZ = 1,
|
|
NL80211_BAND_60GHZ = 2,
|
|
NL80211_BAND_6GHZ = 3,
|
|
NL80211_BAND_S1GHZ = 4,
|
|
NL80211_BAND_LC = 5,
|
|
NUM_NL80211_BANDS = 6,
|
|
};
|
|
|
|
struct cfg80211_bss_select_adjust {
|
|
enum nl80211_band band;
|
|
s8 delta;
|
|
};
|
|
|
|
struct cfg80211_ssid;
|
|
|
|
struct cfg80211_match_set;
|
|
|
|
struct cfg80211_sched_scan_plan;
|
|
|
|
struct cfg80211_sched_scan_request {
|
|
u64 reqid;
|
|
struct cfg80211_ssid *ssids;
|
|
int n_ssids;
|
|
u32 n_channels;
|
|
enum nl80211_bss_scan_width scan_width;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
u32 flags;
|
|
struct cfg80211_match_set *match_sets;
|
|
int n_match_sets;
|
|
s32 min_rssi_thold;
|
|
u32 delay;
|
|
struct cfg80211_sched_scan_plan *scan_plans;
|
|
int n_scan_plans;
|
|
u8 mac_addr[6];
|
|
u8 mac_addr_mask[6];
|
|
bool relative_rssi_set;
|
|
s8 relative_rssi;
|
|
struct cfg80211_bss_select_adjust rssi_adjust;
|
|
struct wiphy *wiphy;
|
|
struct net_device *dev;
|
|
unsigned long scan_start;
|
|
bool report_results;
|
|
struct callback_head callback_head;
|
|
u32 owner_nlportid;
|
|
bool nl_owner_dead;
|
|
struct list_head list;
|
|
struct ieee80211_channel *channels[0];
|
|
};
|
|
|
|
struct cfg80211_ssid {
|
|
u8 ssid[32];
|
|
u8 ssid_len;
|
|
};
|
|
|
|
struct cfg80211_match_set {
|
|
struct cfg80211_ssid ssid;
|
|
u8 bssid[6];
|
|
s32 rssi_thold;
|
|
s32 per_band_rssi_thold[6];
|
|
};
|
|
|
|
struct cfg80211_sched_scan_plan {
|
|
u32 interval;
|
|
u32 iterations;
|
|
};
|
|
|
|
enum nl80211_dfs_state {
|
|
NL80211_DFS_USABLE = 0,
|
|
NL80211_DFS_UNAVAILABLE = 1,
|
|
NL80211_DFS_AVAILABLE = 2,
|
|
};
|
|
|
|
struct ieee80211_channel {
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
u16 hw_value;
|
|
u32 flags;
|
|
int max_antenna_gain;
|
|
int max_power;
|
|
int max_reg_power;
|
|
bool beacon_found;
|
|
u32 orig_flags;
|
|
int orig_mag;
|
|
int orig_mpwr;
|
|
enum nl80211_dfs_state dfs_state;
|
|
unsigned long dfs_state_entered;
|
|
unsigned int dfs_cac_ms;
|
|
};
|
|
|
|
struct wiphy_iftype_ext_capab {
|
|
enum nl80211_iftype iftype;
|
|
const u8 *extended_capabilities;
|
|
const u8 *extended_capabilities_mask;
|
|
u8 extended_capabilities_len;
|
|
u16 eml_capabilities;
|
|
u16 mld_capa_and_ops;
|
|
};
|
|
|
|
struct ieee80211_mcs_info {
|
|
u8 rx_mask[10];
|
|
__le16 rx_highest;
|
|
u8 tx_params;
|
|
u8 reserved[3];
|
|
};
|
|
|
|
struct ieee80211_sta_ht_cap {
|
|
u16 cap;
|
|
bool ht_supported;
|
|
u8 ampdu_factor;
|
|
u8 ampdu_density;
|
|
struct ieee80211_mcs_info mcs;
|
|
char: 8;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_vht_mcs_info {
|
|
__le16 rx_mcs_map;
|
|
__le16 rx_highest;
|
|
__le16 tx_mcs_map;
|
|
__le16 tx_highest;
|
|
};
|
|
|
|
struct ieee80211_sta_vht_cap {
|
|
bool vht_supported;
|
|
u32 cap;
|
|
struct ieee80211_vht_mcs_info vht_mcs;
|
|
};
|
|
|
|
struct ieee80211_sta_s1g_cap {
|
|
bool s1g;
|
|
u8 cap[10];
|
|
u8 nss_mcs[5];
|
|
};
|
|
|
|
struct ieee80211_rate;
|
|
|
|
struct ieee80211_sband_iftype_data;
|
|
|
|
struct ieee80211_supported_band {
|
|
struct ieee80211_channel *channels;
|
|
struct ieee80211_rate *bitrates;
|
|
enum nl80211_band band;
|
|
int n_channels;
|
|
int n_bitrates;
|
|
struct ieee80211_sta_ht_cap ht_cap;
|
|
struct ieee80211_sta_vht_cap vht_cap;
|
|
struct ieee80211_sta_s1g_cap s1g_cap;
|
|
struct ieee80211_edmg edmg_cap;
|
|
u16 n_iftype_data;
|
|
const struct ieee80211_sband_iftype_data *iftype_data;
|
|
};
|
|
|
|
struct ieee80211_rate {
|
|
u32 flags;
|
|
u16 bitrate;
|
|
u16 hw_value;
|
|
u16 hw_value_short;
|
|
};
|
|
|
|
struct ieee80211_he_cap_elem {
|
|
u8 mac_cap_info[6];
|
|
u8 phy_cap_info[11];
|
|
};
|
|
|
|
struct ieee80211_he_mcs_nss_supp {
|
|
__le16 rx_mcs_80;
|
|
__le16 tx_mcs_80;
|
|
__le16 rx_mcs_160;
|
|
__le16 tx_mcs_160;
|
|
__le16 rx_mcs_80p80;
|
|
__le16 tx_mcs_80p80;
|
|
};
|
|
|
|
struct ieee80211_sta_he_cap {
|
|
bool has_he;
|
|
struct ieee80211_he_cap_elem he_cap_elem;
|
|
struct ieee80211_he_mcs_nss_supp he_mcs_nss_supp;
|
|
u8 ppe_thres[25];
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_he_6ghz_capa {
|
|
__le16 capa;
|
|
};
|
|
|
|
struct ieee80211_eht_cap_elem_fixed {
|
|
u8 mac_cap_info[2];
|
|
u8 phy_cap_info[9];
|
|
};
|
|
|
|
struct ieee80211_eht_mcs_nss_supp_20mhz_only {
|
|
u8 rx_tx_mcs7_max_nss;
|
|
u8 rx_tx_mcs9_max_nss;
|
|
u8 rx_tx_mcs11_max_nss;
|
|
u8 rx_tx_mcs13_max_nss;
|
|
};
|
|
|
|
struct ieee80211_eht_mcs_nss_supp_bw {
|
|
u8 rx_tx_mcs9_max_nss;
|
|
u8 rx_tx_mcs11_max_nss;
|
|
u8 rx_tx_mcs13_max_nss;
|
|
};
|
|
|
|
struct ieee80211_eht_mcs_nss_supp {
|
|
union {
|
|
struct ieee80211_eht_mcs_nss_supp_20mhz_only only_20mhz;
|
|
struct {
|
|
struct ieee80211_eht_mcs_nss_supp_bw _80;
|
|
struct ieee80211_eht_mcs_nss_supp_bw _160;
|
|
struct ieee80211_eht_mcs_nss_supp_bw _320;
|
|
} bw;
|
|
};
|
|
};
|
|
|
|
struct ieee80211_sta_eht_cap {
|
|
bool has_eht;
|
|
struct ieee80211_eht_cap_elem_fixed eht_cap_elem;
|
|
struct ieee80211_eht_mcs_nss_supp eht_mcs_nss_supp;
|
|
u8 eht_ppe_thres[32];
|
|
};
|
|
|
|
struct ieee80211_sband_iftype_data {
|
|
u16 types_mask;
|
|
struct ieee80211_sta_he_cap he_cap;
|
|
struct ieee80211_he_6ghz_capa he_6ghz_capa;
|
|
struct ieee80211_sta_eht_cap eht_cap;
|
|
struct {
|
|
const u8 *data;
|
|
unsigned int len;
|
|
} vendor_elems;
|
|
} __attribute__((packed));
|
|
|
|
enum nl80211_reg_initiator {
|
|
NL80211_REGDOM_SET_BY_CORE = 0,
|
|
NL80211_REGDOM_SET_BY_USER = 1,
|
|
NL80211_REGDOM_SET_BY_DRIVER = 2,
|
|
NL80211_REGDOM_SET_BY_COUNTRY_IE = 3,
|
|
};
|
|
|
|
enum nl80211_user_reg_hint_type {
|
|
NL80211_USER_REG_HINT_USER = 0,
|
|
NL80211_USER_REG_HINT_CELL_BASE = 1,
|
|
NL80211_USER_REG_HINT_INDOOR = 2,
|
|
};
|
|
|
|
enum nl80211_dfs_regions {
|
|
NL80211_DFS_UNSET = 0,
|
|
NL80211_DFS_FCC = 1,
|
|
NL80211_DFS_ETSI = 2,
|
|
NL80211_DFS_JP = 3,
|
|
};
|
|
|
|
enum environment_cap {
|
|
ENVIRON_ANY = 0,
|
|
ENVIRON_INDOOR = 1,
|
|
ENVIRON_OUTDOOR = 2,
|
|
};
|
|
|
|
struct regulatory_request {
|
|
struct callback_head callback_head;
|
|
int wiphy_idx;
|
|
enum nl80211_reg_initiator initiator;
|
|
enum nl80211_user_reg_hint_type user_reg_hint_type;
|
|
char alpha2[3];
|
|
enum nl80211_dfs_regions dfs_region;
|
|
bool intersect;
|
|
bool processed;
|
|
enum environment_cap country_ie_env;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct ieee80211_freq_range {
|
|
u32 start_freq_khz;
|
|
u32 end_freq_khz;
|
|
u32 max_bandwidth_khz;
|
|
};
|
|
|
|
struct ieee80211_power_rule {
|
|
u32 max_antenna_gain;
|
|
u32 max_eirp;
|
|
};
|
|
|
|
struct ieee80211_wmm_ac {
|
|
u16 cw_min;
|
|
u16 cw_max;
|
|
u16 cot;
|
|
u8 aifsn;
|
|
};
|
|
|
|
struct ieee80211_wmm_rule {
|
|
struct ieee80211_wmm_ac client[4];
|
|
struct ieee80211_wmm_ac ap[4];
|
|
};
|
|
|
|
struct ieee80211_reg_rule {
|
|
struct ieee80211_freq_range freq_range;
|
|
struct ieee80211_power_rule power_rule;
|
|
struct ieee80211_wmm_rule wmm_rule;
|
|
u32 flags;
|
|
u32 dfs_cac_ms;
|
|
bool has_wmm;
|
|
};
|
|
|
|
struct ieee80211_regdomain {
|
|
struct callback_head callback_head;
|
|
u32 n_reg_rules;
|
|
char alpha2[3];
|
|
enum nl80211_dfs_regions dfs_region;
|
|
struct ieee80211_reg_rule reg_rules[0];
|
|
};
|
|
|
|
struct ieee80211_ht_cap {
|
|
__le16 cap_info;
|
|
u8 ampdu_params_info;
|
|
struct ieee80211_mcs_info mcs;
|
|
__le16 extended_ht_cap_info;
|
|
__le32 tx_BF_cap_info;
|
|
u8 antenna_selection_info;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_vht_cap {
|
|
__le32 vht_cap_info;
|
|
struct ieee80211_vht_mcs_info supp_mcs;
|
|
};
|
|
|
|
struct wiphy_coalesce_support {
|
|
int n_rules;
|
|
int max_delay;
|
|
int n_patterns;
|
|
int pattern_max_len;
|
|
int pattern_min_len;
|
|
int max_pkt_offset;
|
|
};
|
|
|
|
struct nl80211_vendor_cmd_info {
|
|
__u32 vendor_id;
|
|
__u32 subcmd;
|
|
};
|
|
|
|
struct wiphy_vendor_command {
|
|
struct nl80211_vendor_cmd_info info;
|
|
u32 flags;
|
|
int (*doit)(struct wiphy *, struct wireless_dev *, const void *, int);
|
|
int (*dumpit)(struct wiphy *, struct wireless_dev *, struct sk_buff *, const void *, int, unsigned long *);
|
|
const struct nla_policy *policy;
|
|
unsigned int maxattr;
|
|
};
|
|
|
|
struct cfg80211_pmsr_capabilities {
|
|
unsigned int max_peers;
|
|
u8 report_ap_tsf: 1;
|
|
u8 randomize_mac_addr: 1;
|
|
struct {
|
|
u32 preambles;
|
|
u32 bandwidths;
|
|
s8 max_bursts_exponent;
|
|
u8 max_ftms_per_burst;
|
|
u8 supported: 1;
|
|
u8 asap: 1;
|
|
u8 non_asap: 1;
|
|
u8 request_lci: 1;
|
|
u8 request_civicloc: 1;
|
|
u8 trigger_based: 1;
|
|
u8 non_trigger_based: 1;
|
|
} ftm;
|
|
};
|
|
|
|
enum nl80211_sar_type {
|
|
NL80211_SAR_TYPE_POWER = 0,
|
|
NUM_NL80211_SAR_TYPE = 1,
|
|
};
|
|
|
|
struct cfg80211_sar_freq_ranges;
|
|
|
|
struct cfg80211_sar_capa {
|
|
enum nl80211_sar_type type;
|
|
u32 num_freq_ranges;
|
|
const struct cfg80211_sar_freq_ranges *freq_ranges;
|
|
};
|
|
|
|
struct cfg80211_sar_freq_ranges {
|
|
u32 start_freq;
|
|
u32 end_freq;
|
|
};
|
|
|
|
enum nl80211_key_mode {
|
|
NL80211_KEY_RX_TX = 0,
|
|
NL80211_KEY_NO_TX = 1,
|
|
NL80211_KEY_SET_TX = 2,
|
|
};
|
|
|
|
struct key_params {
|
|
const u8 *key;
|
|
const u8 *seq;
|
|
int key_len;
|
|
int seq_len;
|
|
u16 vlan_id;
|
|
u32 cipher;
|
|
enum nl80211_key_mode mode;
|
|
};
|
|
|
|
struct cfg80211_cached_keys {
|
|
struct key_params params[4];
|
|
u8 data[52];
|
|
int def;
|
|
};
|
|
|
|
struct cfg80211_cqm_config {
|
|
u32 rssi_hyst;
|
|
s32 last_rssi_event_value;
|
|
int n_rssi_thresholds;
|
|
s32 rssi_thresholds[0];
|
|
};
|
|
|
|
struct cfg80211_bss_ies;
|
|
|
|
struct cfg80211_bss {
|
|
struct ieee80211_channel *channel;
|
|
enum nl80211_bss_scan_width scan_width;
|
|
const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *ies;
|
|
const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *beacon_ies;
|
|
const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *proberesp_ies;
|
|
struct cfg80211_bss *hidden_beacon_bss;
|
|
struct cfg80211_bss *transmitted_bss;
|
|
struct list_head nontrans_list;
|
|
s32 signal;
|
|
u16 beacon_interval;
|
|
u16 capability;
|
|
u8 bssid[6];
|
|
u8 chains;
|
|
s8 chain_signal[4];
|
|
u8 bssid_index;
|
|
u8 max_bssid_indicator;
|
|
int: 24;
|
|
u8 priv[0];
|
|
};
|
|
|
|
struct cfg80211_internal_bss {
|
|
struct list_head list;
|
|
struct list_head hidden_list;
|
|
struct rb_node rbn;
|
|
u64 ts_boottime;
|
|
unsigned long ts;
|
|
unsigned long refcount;
|
|
atomic_t hold;
|
|
u64 parent_tsf;
|
|
u8 parent_bssid[6];
|
|
struct cfg80211_bss pub;
|
|
};
|
|
|
|
struct cfg80211_bss_ies {
|
|
u64 tsf;
|
|
struct callback_head callback_head;
|
|
int len;
|
|
bool from_beacon;
|
|
u8 data[0];
|
|
};
|
|
|
|
enum ieee80211_eid {
|
|
WLAN_EID_SSID = 0,
|
|
WLAN_EID_SUPP_RATES = 1,
|
|
WLAN_EID_FH_PARAMS = 2,
|
|
WLAN_EID_DS_PARAMS = 3,
|
|
WLAN_EID_CF_PARAMS = 4,
|
|
WLAN_EID_TIM = 5,
|
|
WLAN_EID_IBSS_PARAMS = 6,
|
|
WLAN_EID_COUNTRY = 7,
|
|
WLAN_EID_REQUEST = 10,
|
|
WLAN_EID_QBSS_LOAD = 11,
|
|
WLAN_EID_EDCA_PARAM_SET = 12,
|
|
WLAN_EID_TSPEC = 13,
|
|
WLAN_EID_TCLAS = 14,
|
|
WLAN_EID_SCHEDULE = 15,
|
|
WLAN_EID_CHALLENGE = 16,
|
|
WLAN_EID_PWR_CONSTRAINT = 32,
|
|
WLAN_EID_PWR_CAPABILITY = 33,
|
|
WLAN_EID_TPC_REQUEST = 34,
|
|
WLAN_EID_TPC_REPORT = 35,
|
|
WLAN_EID_SUPPORTED_CHANNELS = 36,
|
|
WLAN_EID_CHANNEL_SWITCH = 37,
|
|
WLAN_EID_MEASURE_REQUEST = 38,
|
|
WLAN_EID_MEASURE_REPORT = 39,
|
|
WLAN_EID_QUIET = 40,
|
|
WLAN_EID_IBSS_DFS = 41,
|
|
WLAN_EID_ERP_INFO = 42,
|
|
WLAN_EID_TS_DELAY = 43,
|
|
WLAN_EID_TCLAS_PROCESSING = 44,
|
|
WLAN_EID_HT_CAPABILITY = 45,
|
|
WLAN_EID_QOS_CAPA = 46,
|
|
WLAN_EID_RSN = 48,
|
|
WLAN_EID_802_15_COEX = 49,
|
|
WLAN_EID_EXT_SUPP_RATES = 50,
|
|
WLAN_EID_AP_CHAN_REPORT = 51,
|
|
WLAN_EID_NEIGHBOR_REPORT = 52,
|
|
WLAN_EID_RCPI = 53,
|
|
WLAN_EID_MOBILITY_DOMAIN = 54,
|
|
WLAN_EID_FAST_BSS_TRANSITION = 55,
|
|
WLAN_EID_TIMEOUT_INTERVAL = 56,
|
|
WLAN_EID_RIC_DATA = 57,
|
|
WLAN_EID_DSE_REGISTERED_LOCATION = 58,
|
|
WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59,
|
|
WLAN_EID_EXT_CHANSWITCH_ANN = 60,
|
|
WLAN_EID_HT_OPERATION = 61,
|
|
WLAN_EID_SECONDARY_CHANNEL_OFFSET = 62,
|
|
WLAN_EID_BSS_AVG_ACCESS_DELAY = 63,
|
|
WLAN_EID_ANTENNA_INFO = 64,
|
|
WLAN_EID_RSNI = 65,
|
|
WLAN_EID_MEASUREMENT_PILOT_TX_INFO = 66,
|
|
WLAN_EID_BSS_AVAILABLE_CAPACITY = 67,
|
|
WLAN_EID_BSS_AC_ACCESS_DELAY = 68,
|
|
WLAN_EID_TIME_ADVERTISEMENT = 69,
|
|
WLAN_EID_RRM_ENABLED_CAPABILITIES = 70,
|
|
WLAN_EID_MULTIPLE_BSSID = 71,
|
|
WLAN_EID_BSS_COEX_2040 = 72,
|
|
WLAN_EID_BSS_INTOLERANT_CHL_REPORT = 73,
|
|
WLAN_EID_OVERLAP_BSS_SCAN_PARAM = 74,
|
|
WLAN_EID_RIC_DESCRIPTOR = 75,
|
|
WLAN_EID_MMIE = 76,
|
|
WLAN_EID_ASSOC_COMEBACK_TIME = 77,
|
|
WLAN_EID_EVENT_REQUEST = 78,
|
|
WLAN_EID_EVENT_REPORT = 79,
|
|
WLAN_EID_DIAGNOSTIC_REQUEST = 80,
|
|
WLAN_EID_DIAGNOSTIC_REPORT = 81,
|
|
WLAN_EID_LOCATION_PARAMS = 82,
|
|
WLAN_EID_NON_TX_BSSID_CAP = 83,
|
|
WLAN_EID_SSID_LIST = 84,
|
|
WLAN_EID_MULTI_BSSID_IDX = 85,
|
|
WLAN_EID_FMS_DESCRIPTOR = 86,
|
|
WLAN_EID_FMS_REQUEST = 87,
|
|
WLAN_EID_FMS_RESPONSE = 88,
|
|
WLAN_EID_QOS_TRAFFIC_CAPA = 89,
|
|
WLAN_EID_BSS_MAX_IDLE_PERIOD = 90,
|
|
WLAN_EID_TSF_REQUEST = 91,
|
|
WLAN_EID_TSF_RESPOSNE = 92,
|
|
WLAN_EID_WNM_SLEEP_MODE = 93,
|
|
WLAN_EID_TIM_BCAST_REQ = 94,
|
|
WLAN_EID_TIM_BCAST_RESP = 95,
|
|
WLAN_EID_COLL_IF_REPORT = 96,
|
|
WLAN_EID_CHANNEL_USAGE = 97,
|
|
WLAN_EID_TIME_ZONE = 98,
|
|
WLAN_EID_DMS_REQUEST = 99,
|
|
WLAN_EID_DMS_RESPONSE = 100,
|
|
WLAN_EID_LINK_ID = 101,
|
|
WLAN_EID_WAKEUP_SCHEDUL = 102,
|
|
WLAN_EID_CHAN_SWITCH_TIMING = 104,
|
|
WLAN_EID_PTI_CONTROL = 105,
|
|
WLAN_EID_PU_BUFFER_STATUS = 106,
|
|
WLAN_EID_INTERWORKING = 107,
|
|
WLAN_EID_ADVERTISEMENT_PROTOCOL = 108,
|
|
WLAN_EID_EXPEDITED_BW_REQ = 109,
|
|
WLAN_EID_QOS_MAP_SET = 110,
|
|
WLAN_EID_ROAMING_CONSORTIUM = 111,
|
|
WLAN_EID_EMERGENCY_ALERT = 112,
|
|
WLAN_EID_MESH_CONFIG = 113,
|
|
WLAN_EID_MESH_ID = 114,
|
|
WLAN_EID_LINK_METRIC_REPORT = 115,
|
|
WLAN_EID_CONGESTION_NOTIFICATION = 116,
|
|
WLAN_EID_PEER_MGMT = 117,
|
|
WLAN_EID_CHAN_SWITCH_PARAM = 118,
|
|
WLAN_EID_MESH_AWAKE_WINDOW = 119,
|
|
WLAN_EID_BEACON_TIMING = 120,
|
|
WLAN_EID_MCCAOP_SETUP_REQ = 121,
|
|
WLAN_EID_MCCAOP_SETUP_RESP = 122,
|
|
WLAN_EID_MCCAOP_ADVERT = 123,
|
|
WLAN_EID_MCCAOP_TEARDOWN = 124,
|
|
WLAN_EID_GANN = 125,
|
|
WLAN_EID_RANN = 126,
|
|
WLAN_EID_EXT_CAPABILITY = 127,
|
|
WLAN_EID_PREQ = 130,
|
|
WLAN_EID_PREP = 131,
|
|
WLAN_EID_PERR = 132,
|
|
WLAN_EID_PXU = 137,
|
|
WLAN_EID_PXUC = 138,
|
|
WLAN_EID_AUTH_MESH_PEER_EXCH = 139,
|
|
WLAN_EID_MIC = 140,
|
|
WLAN_EID_DESTINATION_URI = 141,
|
|
WLAN_EID_UAPSD_COEX = 142,
|
|
WLAN_EID_WAKEUP_SCHEDULE = 143,
|
|
WLAN_EID_EXT_SCHEDULE = 144,
|
|
WLAN_EID_STA_AVAILABILITY = 145,
|
|
WLAN_EID_DMG_TSPEC = 146,
|
|
WLAN_EID_DMG_AT = 147,
|
|
WLAN_EID_DMG_CAP = 148,
|
|
WLAN_EID_CISCO_VENDOR_SPECIFIC = 150,
|
|
WLAN_EID_DMG_OPERATION = 151,
|
|
WLAN_EID_DMG_BSS_PARAM_CHANGE = 152,
|
|
WLAN_EID_DMG_BEAM_REFINEMENT = 153,
|
|
WLAN_EID_CHANNEL_MEASURE_FEEDBACK = 154,
|
|
WLAN_EID_AWAKE_WINDOW = 157,
|
|
WLAN_EID_MULTI_BAND = 158,
|
|
WLAN_EID_ADDBA_EXT = 159,
|
|
WLAN_EID_NEXT_PCP_LIST = 160,
|
|
WLAN_EID_PCP_HANDOVER = 161,
|
|
WLAN_EID_DMG_LINK_MARGIN = 162,
|
|
WLAN_EID_SWITCHING_STREAM = 163,
|
|
WLAN_EID_SESSION_TRANSITION = 164,
|
|
WLAN_EID_DYN_TONE_PAIRING_REPORT = 165,
|
|
WLAN_EID_CLUSTER_REPORT = 166,
|
|
WLAN_EID_RELAY_CAP = 167,
|
|
WLAN_EID_RELAY_XFER_PARAM_SET = 168,
|
|
WLAN_EID_BEAM_LINK_MAINT = 169,
|
|
WLAN_EID_MULTIPLE_MAC_ADDR = 170,
|
|
WLAN_EID_U_PID = 171,
|
|
WLAN_EID_DMG_LINK_ADAPT_ACK = 172,
|
|
WLAN_EID_MCCAOP_ADV_OVERVIEW = 174,
|
|
WLAN_EID_QUIET_PERIOD_REQ = 175,
|
|
WLAN_EID_QUIET_PERIOD_RESP = 177,
|
|
WLAN_EID_EPAC_POLICY = 182,
|
|
WLAN_EID_CLISTER_TIME_OFF = 183,
|
|
WLAN_EID_INTER_AC_PRIO = 184,
|
|
WLAN_EID_SCS_DESCRIPTOR = 185,
|
|
WLAN_EID_QLOAD_REPORT = 186,
|
|
WLAN_EID_HCCA_TXOP_UPDATE_COUNT = 187,
|
|
WLAN_EID_HL_STREAM_ID = 188,
|
|
WLAN_EID_GCR_GROUP_ADDR = 189,
|
|
WLAN_EID_ANTENNA_SECTOR_ID_PATTERN = 190,
|
|
WLAN_EID_VHT_CAPABILITY = 191,
|
|
WLAN_EID_VHT_OPERATION = 192,
|
|
WLAN_EID_EXTENDED_BSS_LOAD = 193,
|
|
WLAN_EID_WIDE_BW_CHANNEL_SWITCH = 194,
|
|
WLAN_EID_TX_POWER_ENVELOPE = 195,
|
|
WLAN_EID_CHANNEL_SWITCH_WRAPPER = 196,
|
|
WLAN_EID_AID = 197,
|
|
WLAN_EID_QUIET_CHANNEL = 198,
|
|
WLAN_EID_OPMODE_NOTIF = 199,
|
|
WLAN_EID_REDUCED_NEIGHBOR_REPORT = 201,
|
|
WLAN_EID_AID_REQUEST = 210,
|
|
WLAN_EID_AID_RESPONSE = 211,
|
|
WLAN_EID_S1G_BCN_COMPAT = 213,
|
|
WLAN_EID_S1G_SHORT_BCN_INTERVAL = 214,
|
|
WLAN_EID_S1G_TWT = 216,
|
|
WLAN_EID_S1G_CAPABILITIES = 217,
|
|
WLAN_EID_VENDOR_SPECIFIC = 221,
|
|
WLAN_EID_QOS_PARAMETER = 222,
|
|
WLAN_EID_S1G_OPERATION = 232,
|
|
WLAN_EID_CAG_NUMBER = 237,
|
|
WLAN_EID_AP_CSN = 239,
|
|
WLAN_EID_FILS_INDICATION = 240,
|
|
WLAN_EID_DILS = 241,
|
|
WLAN_EID_FRAGMENT = 242,
|
|
WLAN_EID_RSNX = 244,
|
|
WLAN_EID_EXTENSION = 255,
|
|
};
|
|
|
|
enum nl80211_hidden_ssid {
|
|
NL80211_HIDDEN_SSID_NOT_IN_USE = 0,
|
|
NL80211_HIDDEN_SSID_ZERO_LEN = 1,
|
|
NL80211_HIDDEN_SSID_ZERO_CONTENTS = 2,
|
|
};
|
|
|
|
enum nl80211_sae_pwe_mechanism {
|
|
NL80211_SAE_PWE_UNSPECIFIED = 0,
|
|
NL80211_SAE_PWE_HUNT_AND_PECK = 1,
|
|
NL80211_SAE_PWE_HASH_TO_ELEMENT = 2,
|
|
NL80211_SAE_PWE_BOTH = 3,
|
|
};
|
|
|
|
enum nl80211_auth_type {
|
|
NL80211_AUTHTYPE_OPEN_SYSTEM = 0,
|
|
NL80211_AUTHTYPE_SHARED_KEY = 1,
|
|
NL80211_AUTHTYPE_FT = 2,
|
|
NL80211_AUTHTYPE_NETWORK_EAP = 3,
|
|
NL80211_AUTHTYPE_SAE = 4,
|
|
NL80211_AUTHTYPE_FILS_SK = 5,
|
|
NL80211_AUTHTYPE_FILS_SK_PFS = 6,
|
|
NL80211_AUTHTYPE_FILS_PK = 7,
|
|
__NL80211_AUTHTYPE_NUM = 8,
|
|
NL80211_AUTHTYPE_MAX = 7,
|
|
NL80211_AUTHTYPE_AUTOMATIC = 8,
|
|
};
|
|
|
|
enum nl80211_smps_mode {
|
|
NL80211_SMPS_OFF = 0,
|
|
NL80211_SMPS_STATIC = 1,
|
|
NL80211_SMPS_DYNAMIC = 2,
|
|
__NL80211_SMPS_AFTER_LAST = 3,
|
|
NL80211_SMPS_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_acl_policy {
|
|
NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0,
|
|
NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 1,
|
|
};
|
|
|
|
enum nl80211_txrate_gi {
|
|
NL80211_TXRATE_DEFAULT_GI = 0,
|
|
NL80211_TXRATE_FORCE_SGI = 1,
|
|
NL80211_TXRATE_FORCE_LGI = 2,
|
|
};
|
|
|
|
enum nl80211_he_gi {
|
|
NL80211_RATE_INFO_HE_GI_0_8 = 0,
|
|
NL80211_RATE_INFO_HE_GI_1_6 = 1,
|
|
NL80211_RATE_INFO_HE_GI_3_2 = 2,
|
|
};
|
|
|
|
enum nl80211_he_ltf {
|
|
NL80211_RATE_INFO_HE_1XLTF = 0,
|
|
NL80211_RATE_INFO_HE_2XLTF = 1,
|
|
NL80211_RATE_INFO_HE_4XLTF = 2,
|
|
};
|
|
|
|
enum nl80211_mesh_power_mode {
|
|
NL80211_MESH_POWER_UNKNOWN = 0,
|
|
NL80211_MESH_POWER_ACTIVE = 1,
|
|
NL80211_MESH_POWER_LIGHT_SLEEP = 2,
|
|
NL80211_MESH_POWER_DEEP_SLEEP = 3,
|
|
__NL80211_MESH_POWER_AFTER_LAST = 4,
|
|
NL80211_MESH_POWER_MAX = 3,
|
|
};
|
|
|
|
enum nl80211_tx_power_setting {
|
|
NL80211_TX_POWER_AUTOMATIC = 0,
|
|
NL80211_TX_POWER_LIMITED = 1,
|
|
NL80211_TX_POWER_FIXED = 2,
|
|
};
|
|
|
|
enum nl80211_ac {
|
|
NL80211_AC_VO = 0,
|
|
NL80211_AC_VI = 1,
|
|
NL80211_AC_BE = 2,
|
|
NL80211_AC_BK = 3,
|
|
NL80211_NUM_ACS = 4,
|
|
};
|
|
|
|
enum nl80211_mfp {
|
|
NL80211_MFP_NO = 0,
|
|
NL80211_MFP_REQUIRED = 1,
|
|
NL80211_MFP_OPTIONAL = 2,
|
|
};
|
|
|
|
enum nl80211_bss_select_attr {
|
|
__NL80211_BSS_SELECT_ATTR_INVALID = 0,
|
|
NL80211_BSS_SELECT_ATTR_RSSI = 1,
|
|
NL80211_BSS_SELECT_ATTR_BAND_PREF = 2,
|
|
NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 3,
|
|
__NL80211_BSS_SELECT_ATTR_AFTER_LAST = 4,
|
|
NL80211_BSS_SELECT_ATTR_MAX = 3,
|
|
};
|
|
|
|
enum nl80211_tdls_operation {
|
|
NL80211_TDLS_DISCOVERY_REQ = 0,
|
|
NL80211_TDLS_SETUP = 1,
|
|
NL80211_TDLS_TEARDOWN = 2,
|
|
NL80211_TDLS_ENABLE_LINK = 3,
|
|
NL80211_TDLS_DISABLE_LINK = 4,
|
|
};
|
|
|
|
enum nl80211_crit_proto_id {
|
|
NL80211_CRIT_PROTO_UNSPEC = 0,
|
|
NL80211_CRIT_PROTO_DHCP = 1,
|
|
NL80211_CRIT_PROTO_EAPOL = 2,
|
|
NL80211_CRIT_PROTO_APIPA = 3,
|
|
NUM_NL80211_CRIT_PROTO = 4,
|
|
};
|
|
|
|
enum nl80211_coalesce_condition {
|
|
NL80211_COALESCE_CONDITION_MATCH = 0,
|
|
NL80211_COALESCE_CONDITION_NO_MATCH = 1,
|
|
};
|
|
|
|
enum nl80211_nan_function_type {
|
|
NL80211_NAN_FUNC_PUBLISH = 0,
|
|
NL80211_NAN_FUNC_SUBSCRIBE = 1,
|
|
NL80211_NAN_FUNC_FOLLOW_UP = 2,
|
|
__NL80211_NAN_FUNC_TYPE_AFTER_LAST = 3,
|
|
NL80211_NAN_FUNC_MAX_TYPE = 2,
|
|
};
|
|
|
|
enum nl80211_external_auth_action {
|
|
NL80211_EXTERNAL_AUTH_START = 0,
|
|
NL80211_EXTERNAL_AUTH_ABORT = 1,
|
|
};
|
|
|
|
enum nl80211_preamble {
|
|
NL80211_PREAMBLE_LEGACY = 0,
|
|
NL80211_PREAMBLE_HT = 1,
|
|
NL80211_PREAMBLE_VHT = 2,
|
|
NL80211_PREAMBLE_DMG = 3,
|
|
NL80211_PREAMBLE_HE = 4,
|
|
};
|
|
|
|
enum nl80211_tid_config {
|
|
NL80211_TID_CONFIG_ENABLE = 0,
|
|
NL80211_TID_CONFIG_DISABLE = 1,
|
|
};
|
|
|
|
enum nl80211_tx_rate_setting {
|
|
NL80211_TX_RATE_AUTOMATIC = 0,
|
|
NL80211_TX_RATE_LIMITED = 1,
|
|
NL80211_TX_RATE_FIXED = 2,
|
|
};
|
|
|
|
enum wiphy_flags {
|
|
WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = 1,
|
|
WIPHY_FLAG_SUPPORTS_MLO = 2,
|
|
WIPHY_FLAG_SPLIT_SCAN_6GHZ = 4,
|
|
WIPHY_FLAG_NETNS_OK = 8,
|
|
WIPHY_FLAG_PS_ON_BY_DEFAULT = 16,
|
|
WIPHY_FLAG_4ADDR_AP = 32,
|
|
WIPHY_FLAG_4ADDR_STATION = 64,
|
|
WIPHY_FLAG_CONTROL_PORT_PROTOCOL = 128,
|
|
WIPHY_FLAG_IBSS_RSN = 256,
|
|
WIPHY_FLAG_MESH_AUTH = 1024,
|
|
WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048,
|
|
WIPHY_FLAG_SUPPORTS_FW_ROAM = 8192,
|
|
WIPHY_FLAG_AP_UAPSD = 16384,
|
|
WIPHY_FLAG_SUPPORTS_TDLS = 32768,
|
|
WIPHY_FLAG_TDLS_EXTERNAL_SETUP = 65536,
|
|
WIPHY_FLAG_HAVE_AP_SME = 131072,
|
|
WIPHY_FLAG_REPORTS_OBSS = 262144,
|
|
WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = 524288,
|
|
WIPHY_FLAG_OFFCHAN_TX = 1048576,
|
|
WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = 2097152,
|
|
WIPHY_FLAG_SUPPORTS_5_10_MHZ = 4194304,
|
|
WIPHY_FLAG_HAS_CHANNEL_SWITCH = 8388608,
|
|
WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER = 16777216,
|
|
};
|
|
|
|
enum nl80211_scan_flags {
|
|
NL80211_SCAN_FLAG_LOW_PRIORITY = 1,
|
|
NL80211_SCAN_FLAG_FLUSH = 2,
|
|
NL80211_SCAN_FLAG_AP = 4,
|
|
NL80211_SCAN_FLAG_RANDOM_ADDR = 8,
|
|
NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 16,
|
|
NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 32,
|
|
NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 64,
|
|
NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 128,
|
|
NL80211_SCAN_FLAG_LOW_SPAN = 256,
|
|
NL80211_SCAN_FLAG_LOW_POWER = 512,
|
|
NL80211_SCAN_FLAG_HIGH_ACCURACY = 1024,
|
|
NL80211_SCAN_FLAG_RANDOM_SN = 2048,
|
|
NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 4096,
|
|
NL80211_SCAN_FLAG_FREQ_KHZ = 8192,
|
|
NL80211_SCAN_FLAG_COLOCATED_6GHZ = 16384,
|
|
};
|
|
|
|
enum nl80211_commands {
|
|
NL80211_CMD_UNSPEC = 0,
|
|
NL80211_CMD_GET_WIPHY = 1,
|
|
NL80211_CMD_SET_WIPHY = 2,
|
|
NL80211_CMD_NEW_WIPHY = 3,
|
|
NL80211_CMD_DEL_WIPHY = 4,
|
|
NL80211_CMD_GET_INTERFACE = 5,
|
|
NL80211_CMD_SET_INTERFACE = 6,
|
|
NL80211_CMD_NEW_INTERFACE = 7,
|
|
NL80211_CMD_DEL_INTERFACE = 8,
|
|
NL80211_CMD_GET_KEY = 9,
|
|
NL80211_CMD_SET_KEY = 10,
|
|
NL80211_CMD_NEW_KEY = 11,
|
|
NL80211_CMD_DEL_KEY = 12,
|
|
NL80211_CMD_GET_BEACON = 13,
|
|
NL80211_CMD_SET_BEACON = 14,
|
|
NL80211_CMD_START_AP = 15,
|
|
NL80211_CMD_NEW_BEACON = 15,
|
|
NL80211_CMD_STOP_AP = 16,
|
|
NL80211_CMD_DEL_BEACON = 16,
|
|
NL80211_CMD_GET_STATION = 17,
|
|
NL80211_CMD_SET_STATION = 18,
|
|
NL80211_CMD_NEW_STATION = 19,
|
|
NL80211_CMD_DEL_STATION = 20,
|
|
NL80211_CMD_GET_MPATH = 21,
|
|
NL80211_CMD_SET_MPATH = 22,
|
|
NL80211_CMD_NEW_MPATH = 23,
|
|
NL80211_CMD_DEL_MPATH = 24,
|
|
NL80211_CMD_SET_BSS = 25,
|
|
NL80211_CMD_SET_REG = 26,
|
|
NL80211_CMD_REQ_SET_REG = 27,
|
|
NL80211_CMD_GET_MESH_CONFIG = 28,
|
|
NL80211_CMD_SET_MESH_CONFIG = 29,
|
|
NL80211_CMD_SET_MGMT_EXTRA_IE = 30,
|
|
NL80211_CMD_GET_REG = 31,
|
|
NL80211_CMD_GET_SCAN = 32,
|
|
NL80211_CMD_TRIGGER_SCAN = 33,
|
|
NL80211_CMD_NEW_SCAN_RESULTS = 34,
|
|
NL80211_CMD_SCAN_ABORTED = 35,
|
|
NL80211_CMD_REG_CHANGE = 36,
|
|
NL80211_CMD_AUTHENTICATE = 37,
|
|
NL80211_CMD_ASSOCIATE = 38,
|
|
NL80211_CMD_DEAUTHENTICATE = 39,
|
|
NL80211_CMD_DISASSOCIATE = 40,
|
|
NL80211_CMD_MICHAEL_MIC_FAILURE = 41,
|
|
NL80211_CMD_REG_BEACON_HINT = 42,
|
|
NL80211_CMD_JOIN_IBSS = 43,
|
|
NL80211_CMD_LEAVE_IBSS = 44,
|
|
NL80211_CMD_TESTMODE = 45,
|
|
NL80211_CMD_CONNECT = 46,
|
|
NL80211_CMD_ROAM = 47,
|
|
NL80211_CMD_DISCONNECT = 48,
|
|
NL80211_CMD_SET_WIPHY_NETNS = 49,
|
|
NL80211_CMD_GET_SURVEY = 50,
|
|
NL80211_CMD_NEW_SURVEY_RESULTS = 51,
|
|
NL80211_CMD_SET_PMKSA = 52,
|
|
NL80211_CMD_DEL_PMKSA = 53,
|
|
NL80211_CMD_FLUSH_PMKSA = 54,
|
|
NL80211_CMD_REMAIN_ON_CHANNEL = 55,
|
|
NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 56,
|
|
NL80211_CMD_SET_TX_BITRATE_MASK = 57,
|
|
NL80211_CMD_REGISTER_FRAME = 58,
|
|
NL80211_CMD_REGISTER_ACTION = 58,
|
|
NL80211_CMD_FRAME = 59,
|
|
NL80211_CMD_ACTION = 59,
|
|
NL80211_CMD_FRAME_TX_STATUS = 60,
|
|
NL80211_CMD_ACTION_TX_STATUS = 60,
|
|
NL80211_CMD_SET_POWER_SAVE = 61,
|
|
NL80211_CMD_GET_POWER_SAVE = 62,
|
|
NL80211_CMD_SET_CQM = 63,
|
|
NL80211_CMD_NOTIFY_CQM = 64,
|
|
NL80211_CMD_SET_CHANNEL = 65,
|
|
NL80211_CMD_SET_WDS_PEER = 66,
|
|
NL80211_CMD_FRAME_WAIT_CANCEL = 67,
|
|
NL80211_CMD_JOIN_MESH = 68,
|
|
NL80211_CMD_LEAVE_MESH = 69,
|
|
NL80211_CMD_UNPROT_DEAUTHENTICATE = 70,
|
|
NL80211_CMD_UNPROT_DISASSOCIATE = 71,
|
|
NL80211_CMD_NEW_PEER_CANDIDATE = 72,
|
|
NL80211_CMD_GET_WOWLAN = 73,
|
|
NL80211_CMD_SET_WOWLAN = 74,
|
|
NL80211_CMD_START_SCHED_SCAN = 75,
|
|
NL80211_CMD_STOP_SCHED_SCAN = 76,
|
|
NL80211_CMD_SCHED_SCAN_RESULTS = 77,
|
|
NL80211_CMD_SCHED_SCAN_STOPPED = 78,
|
|
NL80211_CMD_SET_REKEY_OFFLOAD = 79,
|
|
NL80211_CMD_PMKSA_CANDIDATE = 80,
|
|
NL80211_CMD_TDLS_OPER = 81,
|
|
NL80211_CMD_TDLS_MGMT = 82,
|
|
NL80211_CMD_UNEXPECTED_FRAME = 83,
|
|
NL80211_CMD_PROBE_CLIENT = 84,
|
|
NL80211_CMD_REGISTER_BEACONS = 85,
|
|
NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 86,
|
|
NL80211_CMD_SET_NOACK_MAP = 87,
|
|
NL80211_CMD_CH_SWITCH_NOTIFY = 88,
|
|
NL80211_CMD_START_P2P_DEVICE = 89,
|
|
NL80211_CMD_STOP_P2P_DEVICE = 90,
|
|
NL80211_CMD_CONN_FAILED = 91,
|
|
NL80211_CMD_SET_MCAST_RATE = 92,
|
|
NL80211_CMD_SET_MAC_ACL = 93,
|
|
NL80211_CMD_RADAR_DETECT = 94,
|
|
NL80211_CMD_GET_PROTOCOL_FEATURES = 95,
|
|
NL80211_CMD_UPDATE_FT_IES = 96,
|
|
NL80211_CMD_FT_EVENT = 97,
|
|
NL80211_CMD_CRIT_PROTOCOL_START = 98,
|
|
NL80211_CMD_CRIT_PROTOCOL_STOP = 99,
|
|
NL80211_CMD_GET_COALESCE = 100,
|
|
NL80211_CMD_SET_COALESCE = 101,
|
|
NL80211_CMD_CHANNEL_SWITCH = 102,
|
|
NL80211_CMD_VENDOR = 103,
|
|
NL80211_CMD_SET_QOS_MAP = 104,
|
|
NL80211_CMD_ADD_TX_TS = 105,
|
|
NL80211_CMD_DEL_TX_TS = 106,
|
|
NL80211_CMD_GET_MPP = 107,
|
|
NL80211_CMD_JOIN_OCB = 108,
|
|
NL80211_CMD_LEAVE_OCB = 109,
|
|
NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 110,
|
|
NL80211_CMD_TDLS_CHANNEL_SWITCH = 111,
|
|
NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 112,
|
|
NL80211_CMD_WIPHY_REG_CHANGE = 113,
|
|
NL80211_CMD_ABORT_SCAN = 114,
|
|
NL80211_CMD_START_NAN = 115,
|
|
NL80211_CMD_STOP_NAN = 116,
|
|
NL80211_CMD_ADD_NAN_FUNCTION = 117,
|
|
NL80211_CMD_DEL_NAN_FUNCTION = 118,
|
|
NL80211_CMD_CHANGE_NAN_CONFIG = 119,
|
|
NL80211_CMD_NAN_MATCH = 120,
|
|
NL80211_CMD_SET_MULTICAST_TO_UNICAST = 121,
|
|
NL80211_CMD_UPDATE_CONNECT_PARAMS = 122,
|
|
NL80211_CMD_SET_PMK = 123,
|
|
NL80211_CMD_DEL_PMK = 124,
|
|
NL80211_CMD_PORT_AUTHORIZED = 125,
|
|
NL80211_CMD_RELOAD_REGDB = 126,
|
|
NL80211_CMD_EXTERNAL_AUTH = 127,
|
|
NL80211_CMD_STA_OPMODE_CHANGED = 128,
|
|
NL80211_CMD_CONTROL_PORT_FRAME = 129,
|
|
NL80211_CMD_GET_FTM_RESPONDER_STATS = 130,
|
|
NL80211_CMD_PEER_MEASUREMENT_START = 131,
|
|
NL80211_CMD_PEER_MEASUREMENT_RESULT = 132,
|
|
NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 133,
|
|
NL80211_CMD_NOTIFY_RADAR = 134,
|
|
NL80211_CMD_UPDATE_OWE_INFO = 135,
|
|
NL80211_CMD_PROBE_MESH_LINK = 136,
|
|
NL80211_CMD_SET_TID_CONFIG = 137,
|
|
NL80211_CMD_UNPROT_BEACON = 138,
|
|
NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 139,
|
|
NL80211_CMD_SET_SAR_SPECS = 140,
|
|
NL80211_CMD_OBSS_COLOR_COLLISION = 141,
|
|
NL80211_CMD_COLOR_CHANGE_REQUEST = 142,
|
|
NL80211_CMD_COLOR_CHANGE_STARTED = 143,
|
|
NL80211_CMD_COLOR_CHANGE_ABORTED = 144,
|
|
NL80211_CMD_COLOR_CHANGE_COMPLETED = 145,
|
|
NL80211_CMD_SET_FILS_AAD = 146,
|
|
NL80211_CMD_ASSOC_COMEBACK = 147,
|
|
NL80211_CMD_ADD_LINK = 148,
|
|
NL80211_CMD_REMOVE_LINK = 149,
|
|
NL80211_CMD_ADD_LINK_STA = 150,
|
|
NL80211_CMD_MODIFY_LINK_STA = 151,
|
|
NL80211_CMD_REMOVE_LINK_STA = 152,
|
|
__NL80211_CMD_AFTER_LAST = 153,
|
|
NL80211_CMD_MAX = 152,
|
|
};
|
|
|
|
enum ieee80211_privacy {
|
|
IEEE80211_PRIVACY_ON = 0,
|
|
IEEE80211_PRIVACY_OFF = 1,
|
|
IEEE80211_PRIVACY_ANY = 2,
|
|
};
|
|
|
|
enum bss_compare_mode {
|
|
BSS_CMP_REGULAR = 0,
|
|
BSS_CMP_HIDE_ZLEN = 1,
|
|
BSS_CMP_HIDE_NUL = 2,
|
|
};
|
|
|
|
enum cfg80211_bss_frame_type {
|
|
CFG80211_BSS_FTYPE_UNKNOWN = 0,
|
|
CFG80211_BSS_FTYPE_BEACON = 1,
|
|
CFG80211_BSS_FTYPE_PRESP = 2,
|
|
};
|
|
|
|
enum ieee80211_eid_ext {
|
|
WLAN_EID_EXT_ASSOC_DELAY_INFO = 1,
|
|
WLAN_EID_EXT_FILS_REQ_PARAMS = 2,
|
|
WLAN_EID_EXT_FILS_KEY_CONFIRM = 3,
|
|
WLAN_EID_EXT_FILS_SESSION = 4,
|
|
WLAN_EID_EXT_FILS_HLP_CONTAINER = 5,
|
|
WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN = 6,
|
|
WLAN_EID_EXT_KEY_DELIVERY = 7,
|
|
WLAN_EID_EXT_FILS_WRAPPED_DATA = 8,
|
|
WLAN_EID_EXT_FILS_PUBLIC_KEY = 12,
|
|
WLAN_EID_EXT_FILS_NONCE = 13,
|
|
WLAN_EID_EXT_FUTURE_CHAN_GUIDANCE = 14,
|
|
WLAN_EID_EXT_HE_CAPABILITY = 35,
|
|
WLAN_EID_EXT_HE_OPERATION = 36,
|
|
WLAN_EID_EXT_UORA = 37,
|
|
WLAN_EID_EXT_HE_MU_EDCA = 38,
|
|
WLAN_EID_EXT_HE_SPR = 39,
|
|
WLAN_EID_EXT_NDP_FEEDBACK_REPORT_PARAMSET = 41,
|
|
WLAN_EID_EXT_BSS_COLOR_CHG_ANN = 42,
|
|
WLAN_EID_EXT_QUIET_TIME_PERIOD_SETUP = 43,
|
|
WLAN_EID_EXT_ESS_REPORT = 45,
|
|
WLAN_EID_EXT_OPS = 46,
|
|
WLAN_EID_EXT_HE_BSS_LOAD = 47,
|
|
WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME = 52,
|
|
WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION = 55,
|
|
WLAN_EID_EXT_NON_INHERITANCE = 56,
|
|
WLAN_EID_EXT_KNOWN_BSSID = 57,
|
|
WLAN_EID_EXT_SHORT_SSID_LIST = 58,
|
|
WLAN_EID_EXT_HE_6GHZ_CAPA = 59,
|
|
WLAN_EID_EXT_UL_MU_POWER_CAPA = 60,
|
|
WLAN_EID_EXT_EHT_OPERATION = 106,
|
|
WLAN_EID_EXT_EHT_MULTI_LINK = 107,
|
|
WLAN_EID_EXT_EHT_CAPABILITY = 108,
|
|
};
|
|
|
|
enum ieee80211_channel_flags {
|
|
IEEE80211_CHAN_DISABLED = 1,
|
|
IEEE80211_CHAN_NO_IR = 2,
|
|
IEEE80211_CHAN_RADAR = 8,
|
|
IEEE80211_CHAN_NO_HT40PLUS = 16,
|
|
IEEE80211_CHAN_NO_HT40MINUS = 32,
|
|
IEEE80211_CHAN_NO_OFDM = 64,
|
|
IEEE80211_CHAN_NO_80MHZ = 128,
|
|
IEEE80211_CHAN_NO_160MHZ = 256,
|
|
IEEE80211_CHAN_INDOOR_ONLY = 512,
|
|
IEEE80211_CHAN_IR_CONCURRENT = 1024,
|
|
IEEE80211_CHAN_NO_20MHZ = 2048,
|
|
IEEE80211_CHAN_NO_10MHZ = 4096,
|
|
IEEE80211_CHAN_NO_HE = 8192,
|
|
IEEE80211_CHAN_1MHZ = 16384,
|
|
IEEE80211_CHAN_2MHZ = 32768,
|
|
IEEE80211_CHAN_4MHZ = 65536,
|
|
IEEE80211_CHAN_8MHZ = 131072,
|
|
IEEE80211_CHAN_16MHZ = 262144,
|
|
IEEE80211_CHAN_NO_320MHZ = 524288,
|
|
IEEE80211_CHAN_NO_EHT = 1048576,
|
|
};
|
|
|
|
struct rfkill_ops {
|
|
void (*poll)(struct rfkill *, void *);
|
|
void (*query)(struct rfkill *, void *);
|
|
int (*set_block)(void *, bool);
|
|
};
|
|
|
|
struct cfg80211_ops;
|
|
|
|
struct cfg80211_scan_request;
|
|
|
|
struct cfg80211_coalesce;
|
|
|
|
struct cfg80211_registered_device {
|
|
const struct cfg80211_ops *ops;
|
|
struct list_head list;
|
|
struct rfkill_ops rfkill_ops;
|
|
struct work_struct rfkill_block;
|
|
char country_ie_alpha2[2];
|
|
const struct ieee80211_regdomain *requested_regd;
|
|
enum environment_cap env;
|
|
int wiphy_idx;
|
|
int devlist_generation;
|
|
int wdev_id;
|
|
int opencount;
|
|
wait_queue_head_t dev_wait;
|
|
struct list_head beacon_registrations;
|
|
spinlock_t beacon_registrations_lock;
|
|
int num_running_ifaces;
|
|
int num_running_monitor_ifaces;
|
|
u64 cookie_counter;
|
|
spinlock_t bss_lock;
|
|
struct list_head bss_list;
|
|
struct rb_root bss_tree;
|
|
u32 bss_generation;
|
|
u32 bss_entries;
|
|
struct cfg80211_scan_request *scan_req;
|
|
struct cfg80211_scan_request *int_scan_req;
|
|
struct sk_buff *scan_msg;
|
|
struct list_head sched_scan_req_list;
|
|
time64_t suspend_at;
|
|
struct work_struct scan_done_wk;
|
|
struct genl_info *cur_cmd_info;
|
|
struct work_struct conn_work;
|
|
struct work_struct event_work;
|
|
struct delayed_work dfs_update_channels_wk;
|
|
struct wireless_dev *background_radar_wdev;
|
|
struct cfg80211_chan_def background_radar_chandef;
|
|
struct delayed_work background_cac_done_wk;
|
|
struct work_struct background_cac_abort_wk;
|
|
u32 crit_proto_nlportid;
|
|
struct cfg80211_coalesce *coalesce;
|
|
struct work_struct destroy_work;
|
|
struct work_struct sched_scan_stop_wk;
|
|
struct work_struct sched_scan_res_wk;
|
|
struct cfg80211_chan_def radar_chandef;
|
|
struct work_struct propagate_radar_detect_wk;
|
|
struct cfg80211_chan_def cac_done_chandef;
|
|
struct work_struct propagate_cac_done_wk;
|
|
struct work_struct mgmt_registrations_update_wk;
|
|
spinlock_t mgmt_registrations_lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct wiphy wiphy;
|
|
};
|
|
|
|
struct vif_params;
|
|
|
|
struct cfg80211_ap_settings;
|
|
|
|
struct cfg80211_beacon_data;
|
|
|
|
struct station_parameters;
|
|
|
|
struct station_del_parameters;
|
|
|
|
struct station_info;
|
|
|
|
struct mpath_info;
|
|
|
|
struct mesh_config;
|
|
|
|
struct mesh_setup;
|
|
|
|
struct ocb_setup;
|
|
|
|
struct bss_parameters;
|
|
|
|
struct ieee80211_txq_params;
|
|
|
|
struct cfg80211_auth_request;
|
|
|
|
struct cfg80211_assoc_request;
|
|
|
|
struct cfg80211_deauth_request;
|
|
|
|
struct cfg80211_disassoc_request;
|
|
|
|
struct cfg80211_connect_params;
|
|
|
|
struct cfg80211_ibss_params;
|
|
|
|
struct cfg80211_bitrate_mask;
|
|
|
|
struct survey_info;
|
|
|
|
struct cfg80211_pmksa;
|
|
|
|
struct cfg80211_mgmt_tx_params;
|
|
|
|
struct mgmt_frame_regs;
|
|
|
|
struct cfg80211_gtk_rekey_data;
|
|
|
|
struct cfg80211_acl_data;
|
|
|
|
struct cfg80211_update_ft_ies_params;
|
|
|
|
struct cfg80211_csa_settings;
|
|
|
|
struct cfg80211_qos_map;
|
|
|
|
struct cfg80211_nan_conf;
|
|
|
|
struct cfg80211_nan_func;
|
|
|
|
struct cfg80211_txq_stats;
|
|
|
|
struct cfg80211_pmk_conf;
|
|
|
|
struct cfg80211_external_auth_params;
|
|
|
|
struct cfg80211_ftm_responder_stats;
|
|
|
|
struct cfg80211_pmsr_request;
|
|
|
|
struct cfg80211_update_owe_info;
|
|
|
|
struct cfg80211_tid_config;
|
|
|
|
struct cfg80211_sar_specs;
|
|
|
|
struct cfg80211_color_change_settings;
|
|
|
|
struct cfg80211_fils_aad;
|
|
|
|
struct link_station_parameters;
|
|
|
|
struct link_station_del_parameters;
|
|
|
|
struct cfg80211_ops {
|
|
int (*suspend)(struct wiphy *, struct cfg80211_wowlan *);
|
|
int (*resume)(struct wiphy *);
|
|
void (*set_wakeup)(struct wiphy *, bool);
|
|
struct wireless_dev * (*add_virtual_intf)(struct wiphy *, const char *, unsigned char, enum nl80211_iftype, struct vif_params *);
|
|
int (*del_virtual_intf)(struct wiphy *, struct wireless_dev *);
|
|
int (*change_virtual_intf)(struct wiphy *, struct net_device *, enum nl80211_iftype, struct vif_params *);
|
|
int (*add_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int);
|
|
void (*del_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int);
|
|
int (*add_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, struct key_params *);
|
|
int (*get_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, void *, void (*)(void *, struct key_params *));
|
|
int (*del_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *);
|
|
int (*set_default_key)(struct wiphy *, struct net_device *, int, u8, bool, bool);
|
|
int (*set_default_mgmt_key)(struct wiphy *, struct net_device *, int, u8);
|
|
int (*set_default_beacon_key)(struct wiphy *, struct net_device *, int, u8);
|
|
int (*start_ap)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *);
|
|
int (*change_beacon)(struct wiphy *, struct net_device *, struct cfg80211_beacon_data *);
|
|
int (*stop_ap)(struct wiphy *, struct net_device *, unsigned int);
|
|
int (*add_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *);
|
|
int (*del_station)(struct wiphy *, struct net_device *, struct station_del_parameters *);
|
|
int (*change_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *);
|
|
int (*get_station)(struct wiphy *, struct net_device *, const u8 *, struct station_info *);
|
|
int (*dump_station)(struct wiphy *, struct net_device *, int, u8 *, struct station_info *);
|
|
int (*add_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *);
|
|
int (*del_mpath)(struct wiphy *, struct net_device *, const u8 *);
|
|
int (*change_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *);
|
|
int (*get_mpath)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *);
|
|
int (*dump_mpath)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *);
|
|
int (*get_mpp)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *);
|
|
int (*dump_mpp)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *);
|
|
int (*get_mesh_config)(struct wiphy *, struct net_device *, struct mesh_config *);
|
|
int (*update_mesh_config)(struct wiphy *, struct net_device *, u32, const struct mesh_config *);
|
|
int (*join_mesh)(struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *);
|
|
int (*leave_mesh)(struct wiphy *, struct net_device *);
|
|
int (*join_ocb)(struct wiphy *, struct net_device *, struct ocb_setup *);
|
|
int (*leave_ocb)(struct wiphy *, struct net_device *);
|
|
int (*change_bss)(struct wiphy *, struct net_device *, struct bss_parameters *);
|
|
int (*set_txq_params)(struct wiphy *, struct net_device *, struct ieee80211_txq_params *);
|
|
int (*libertas_set_mesh_channel)(struct wiphy *, struct net_device *, struct ieee80211_channel *);
|
|
int (*set_monitor_channel)(struct wiphy *, struct cfg80211_chan_def *);
|
|
int (*scan)(struct wiphy *, struct cfg80211_scan_request *);
|
|
void (*abort_scan)(struct wiphy *, struct wireless_dev *);
|
|
int (*auth)(struct wiphy *, struct net_device *, struct cfg80211_auth_request *);
|
|
int (*assoc)(struct wiphy *, struct net_device *, struct cfg80211_assoc_request *);
|
|
int (*deauth)(struct wiphy *, struct net_device *, struct cfg80211_deauth_request *);
|
|
int (*disassoc)(struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *);
|
|
int (*connect)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *);
|
|
int (*update_connect_params)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32);
|
|
int (*disconnect)(struct wiphy *, struct net_device *, u16);
|
|
int (*join_ibss)(struct wiphy *, struct net_device *, struct cfg80211_ibss_params *);
|
|
int (*leave_ibss)(struct wiphy *, struct net_device *);
|
|
int (*set_mcast_rate)(struct wiphy *, struct net_device *, int *);
|
|
int (*set_wiphy_params)(struct wiphy *, u32);
|
|
int (*set_tx_power)(struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int);
|
|
int (*get_tx_power)(struct wiphy *, struct wireless_dev *, int *);
|
|
void (*rfkill_poll)(struct wiphy *);
|
|
int (*set_bitrate_mask)(struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *);
|
|
int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *);
|
|
int (*set_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
|
|
int (*del_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
|
|
int (*flush_pmksa)(struct wiphy *, struct net_device *);
|
|
int (*remain_on_channel)(struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int, u64 *);
|
|
int (*cancel_remain_on_channel)(struct wiphy *, struct wireless_dev *, u64);
|
|
int (*mgmt_tx)(struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *, u64 *);
|
|
int (*mgmt_tx_cancel_wait)(struct wiphy *, struct wireless_dev *, u64);
|
|
int (*set_power_mgmt)(struct wiphy *, struct net_device *, bool, int);
|
|
int (*set_cqm_rssi_config)(struct wiphy *, struct net_device *, s32, u32);
|
|
int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, s32, s32);
|
|
int (*set_cqm_txe_config)(struct wiphy *, struct net_device *, u32, u32, u32);
|
|
void (*update_mgmt_frame_registrations)(struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *);
|
|
int (*set_antenna)(struct wiphy *, u32, u32);
|
|
int (*get_antenna)(struct wiphy *, u32 *, u32 *);
|
|
int (*sched_scan_start)(struct wiphy *, struct net_device *, struct cfg80211_sched_scan_request *);
|
|
int (*sched_scan_stop)(struct wiphy *, struct net_device *, u64);
|
|
int (*set_rekey_data)(struct wiphy *, struct net_device *, struct cfg80211_gtk_rekey_data *);
|
|
int (*tdls_mgmt)(struct wiphy *, struct net_device *, const u8 *, u8, u8, u16, u32, bool, const u8 *, size_t);
|
|
int (*tdls_oper)(struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation);
|
|
int (*probe_client)(struct wiphy *, struct net_device *, const u8 *, u64 *);
|
|
int (*set_noack_map)(struct wiphy *, struct net_device *, u16);
|
|
int (*get_channel)(struct wiphy *, struct wireless_dev *, unsigned int, struct cfg80211_chan_def *);
|
|
int (*start_p2p_device)(struct wiphy *, struct wireless_dev *);
|
|
void (*stop_p2p_device)(struct wiphy *, struct wireless_dev *);
|
|
int (*set_mac_acl)(struct wiphy *, struct net_device *, const struct cfg80211_acl_data *);
|
|
int (*start_radar_detection)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32);
|
|
void (*end_cac)(struct wiphy *, struct net_device *);
|
|
int (*update_ft_ies)(struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *);
|
|
int (*crit_proto_start)(struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16);
|
|
void (*crit_proto_stop)(struct wiphy *, struct wireless_dev *);
|
|
int (*set_coalesce)(struct wiphy *, struct cfg80211_coalesce *);
|
|
int (*channel_switch)(struct wiphy *, struct net_device *, struct cfg80211_csa_settings *);
|
|
int (*set_qos_map)(struct wiphy *, struct net_device *, struct cfg80211_qos_map *);
|
|
int (*set_ap_chanwidth)(struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *);
|
|
int (*add_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *, u8, u16);
|
|
int (*del_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *);
|
|
int (*tdls_channel_switch)(struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *);
|
|
void (*tdls_cancel_channel_switch)(struct wiphy *, struct net_device *, const u8 *);
|
|
int (*start_nan)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *);
|
|
void (*stop_nan)(struct wiphy *, struct wireless_dev *);
|
|
int (*add_nan_func)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_func *);
|
|
void (*del_nan_func)(struct wiphy *, struct wireless_dev *, u64);
|
|
int (*nan_change_conf)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32);
|
|
int (*set_multicast_to_unicast)(struct wiphy *, struct net_device *, const bool);
|
|
int (*get_txq_stats)(struct wiphy *, struct wireless_dev *, struct cfg80211_txq_stats *);
|
|
int (*set_pmk)(struct wiphy *, struct net_device *, const struct cfg80211_pmk_conf *);
|
|
int (*del_pmk)(struct wiphy *, struct net_device *, const u8 *);
|
|
int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *);
|
|
int (*tx_control_port)(struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, const __be16, const bool, int, u64 *);
|
|
int (*get_ftm_responder_stats)(struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *);
|
|
int (*start_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *);
|
|
void (*abort_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *);
|
|
int (*update_owe_info)(struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *);
|
|
int (*probe_mesh_link)(struct wiphy *, struct net_device *, const u8 *, size_t);
|
|
int (*set_tid_config)(struct wiphy *, struct net_device *, struct cfg80211_tid_config *);
|
|
int (*reset_tid_config)(struct wiphy *, struct net_device *, const u8 *, u8);
|
|
int (*set_sar_specs)(struct wiphy *, struct cfg80211_sar_specs *);
|
|
int (*color_change)(struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *);
|
|
int (*set_fils_aad)(struct wiphy *, struct net_device *, struct cfg80211_fils_aad *);
|
|
int (*set_radar_background)(struct wiphy *, struct cfg80211_chan_def *);
|
|
int (*add_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *);
|
|
int (*mod_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *);
|
|
int (*del_link_station)(struct wiphy *, struct net_device *, struct link_station_del_parameters *);
|
|
};
|
|
|
|
struct vif_params {
|
|
u32 flags;
|
|
int use_4addr;
|
|
u8 macaddr[6];
|
|
const u8 *vht_mumimo_groups;
|
|
const u8 *vht_mumimo_follow_addr;
|
|
};
|
|
|
|
struct cfg80211_he_bss_color {
|
|
u8 color;
|
|
bool enabled;
|
|
bool partial;
|
|
};
|
|
|
|
struct cfg80211_mbssid_elems;
|
|
|
|
struct cfg80211_beacon_data {
|
|
unsigned int link_id;
|
|
const u8 *head;
|
|
const u8 *tail;
|
|
const u8 *beacon_ies;
|
|
const u8 *proberesp_ies;
|
|
const u8 *assocresp_ies;
|
|
const u8 *probe_resp;
|
|
const u8 *lci;
|
|
const u8 *civicloc;
|
|
struct cfg80211_mbssid_elems *mbssid_ies;
|
|
s8 ftm_responder;
|
|
size_t head_len;
|
|
size_t tail_len;
|
|
size_t beacon_ies_len;
|
|
size_t proberesp_ies_len;
|
|
size_t assocresp_ies_len;
|
|
size_t probe_resp_len;
|
|
size_t lci_len;
|
|
size_t civicloc_len;
|
|
struct cfg80211_he_bss_color he_bss_color;
|
|
bool he_bss_color_valid;
|
|
};
|
|
|
|
struct cfg80211_crypto_settings {
|
|
u32 wpa_versions;
|
|
u32 cipher_group;
|
|
int n_ciphers_pairwise;
|
|
u32 ciphers_pairwise[5];
|
|
int n_akm_suites;
|
|
u32 akm_suites[10];
|
|
bool control_port;
|
|
__be16 control_port_ethertype;
|
|
bool control_port_no_encrypt;
|
|
bool control_port_over_nl80211;
|
|
bool control_port_no_preauth;
|
|
const u8 *psk;
|
|
const u8 *sae_pwd;
|
|
u8 sae_pwd_len;
|
|
enum nl80211_sae_pwe_mechanism sae_pwe;
|
|
};
|
|
|
|
struct cfg80211_bitrate_mask {
|
|
struct {
|
|
u32 legacy;
|
|
u8 ht_mcs[10];
|
|
u16 vht_mcs[8];
|
|
u16 he_mcs[8];
|
|
enum nl80211_txrate_gi gi;
|
|
enum nl80211_he_gi he_gi;
|
|
enum nl80211_he_ltf he_ltf;
|
|
} control[6];
|
|
};
|
|
|
|
struct ieee80211_he_obss_pd {
|
|
bool enable;
|
|
u8 sr_ctrl;
|
|
u8 non_srg_max_offset;
|
|
u8 min_offset;
|
|
u8 max_offset;
|
|
u8 bss_color_bitmap[8];
|
|
u8 partial_bssid_bitmap[8];
|
|
};
|
|
|
|
struct cfg80211_fils_discovery {
|
|
u32 min_interval;
|
|
u32 max_interval;
|
|
size_t tmpl_len;
|
|
const u8 *tmpl;
|
|
};
|
|
|
|
struct cfg80211_unsol_bcast_probe_resp {
|
|
u32 interval;
|
|
size_t tmpl_len;
|
|
const u8 *tmpl;
|
|
};
|
|
|
|
struct cfg80211_mbssid_config {
|
|
struct wireless_dev *tx_wdev;
|
|
u8 index;
|
|
bool ema;
|
|
};
|
|
|
|
struct ieee80211_he_operation;
|
|
|
|
struct ieee80211_eht_cap_elem;
|
|
|
|
struct ieee80211_eht_operation;
|
|
|
|
struct cfg80211_ap_settings {
|
|
struct cfg80211_chan_def chandef;
|
|
struct cfg80211_beacon_data beacon;
|
|
int beacon_interval;
|
|
int dtim_period;
|
|
const u8 *ssid;
|
|
size_t ssid_len;
|
|
enum nl80211_hidden_ssid hidden_ssid;
|
|
struct cfg80211_crypto_settings crypto;
|
|
bool privacy;
|
|
enum nl80211_auth_type auth_type;
|
|
enum nl80211_smps_mode smps_mode;
|
|
int inactivity_timeout;
|
|
u8 p2p_ctwindow;
|
|
bool p2p_opp_ps;
|
|
const struct cfg80211_acl_data *acl;
|
|
bool pbss;
|
|
struct cfg80211_bitrate_mask beacon_rate;
|
|
const struct ieee80211_ht_cap *ht_cap;
|
|
const struct ieee80211_vht_cap *vht_cap;
|
|
const struct ieee80211_he_cap_elem *he_cap;
|
|
const struct ieee80211_he_operation *he_oper;
|
|
const struct ieee80211_eht_cap_elem *eht_cap;
|
|
const struct ieee80211_eht_operation *eht_oper;
|
|
bool ht_required;
|
|
bool vht_required;
|
|
bool he_required;
|
|
bool sae_h2e_required;
|
|
bool twt_responder;
|
|
u32 flags;
|
|
struct ieee80211_he_obss_pd he_obss_pd;
|
|
struct cfg80211_fils_discovery fils_discovery;
|
|
struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
|
|
struct cfg80211_mbssid_config mbssid_config;
|
|
u16 punct_bitmap;
|
|
};
|
|
|
|
struct cfg80211_mbssid_elems {
|
|
u8 cnt;
|
|
struct {
|
|
const u8 *data;
|
|
size_t len;
|
|
} elem[0];
|
|
};
|
|
|
|
struct cfg80211_acl_data {
|
|
enum nl80211_acl_policy acl_policy;
|
|
int n_acl_entries;
|
|
struct mac_address mac_addrs[0];
|
|
};
|
|
|
|
struct ieee80211_he_operation {
|
|
__le32 he_oper_params;
|
|
__le16 he_mcs_nss_set;
|
|
u8 optional[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_eht_cap_elem {
|
|
struct ieee80211_eht_cap_elem_fixed fixed;
|
|
u8 optional[0];
|
|
};
|
|
|
|
struct ieee80211_eht_operation {
|
|
u8 params;
|
|
__le32 basic_mcs_nss;
|
|
u8 optional[0];
|
|
} __attribute__((packed));
|
|
|
|
struct sta_txpwr {
|
|
s16 power;
|
|
enum nl80211_tx_power_setting type;
|
|
};
|
|
|
|
struct link_station_parameters {
|
|
const u8 *mld_mac;
|
|
int link_id;
|
|
const u8 *link_mac;
|
|
const u8 *supported_rates;
|
|
u8 supported_rates_len;
|
|
const struct ieee80211_ht_cap *ht_capa;
|
|
const struct ieee80211_vht_cap *vht_capa;
|
|
u8 opmode_notif;
|
|
bool opmode_notif_used;
|
|
const struct ieee80211_he_cap_elem *he_capa;
|
|
u8 he_capa_len;
|
|
struct sta_txpwr txpwr;
|
|
bool txpwr_set;
|
|
const struct ieee80211_he_6ghz_capa *he_6ghz_capa;
|
|
const struct ieee80211_eht_cap_elem *eht_capa;
|
|
u8 eht_capa_len;
|
|
};
|
|
|
|
struct station_parameters {
|
|
struct net_device *vlan;
|
|
u32 sta_flags_mask;
|
|
u32 sta_flags_set;
|
|
u32 sta_modify_mask;
|
|
int listen_interval;
|
|
u16 aid;
|
|
u16 vlan_id;
|
|
u16 peer_aid;
|
|
u8 plink_action;
|
|
u8 plink_state;
|
|
u8 uapsd_queues;
|
|
u8 max_sp;
|
|
enum nl80211_mesh_power_mode local_pm;
|
|
u16 capability;
|
|
const u8 *ext_capab;
|
|
u8 ext_capab_len;
|
|
const u8 *supported_channels;
|
|
u8 supported_channels_len;
|
|
const u8 *supported_oper_classes;
|
|
u8 supported_oper_classes_len;
|
|
int support_p2p_ps;
|
|
u16 airtime_weight;
|
|
struct link_station_parameters link_sta_params;
|
|
};
|
|
|
|
struct station_del_parameters {
|
|
const u8 *mac;
|
|
u8 subtype;
|
|
u16 reason_code;
|
|
};
|
|
|
|
struct rate_info {
|
|
u8 flags;
|
|
u8 mcs;
|
|
u16 legacy;
|
|
u8 nss;
|
|
u8 bw;
|
|
u8 he_gi;
|
|
u8 he_dcm;
|
|
u8 he_ru_alloc;
|
|
u8 n_bonded_ch;
|
|
u8 eht_gi;
|
|
u8 eht_ru_alloc;
|
|
};
|
|
|
|
struct sta_bss_parameters {
|
|
u8 flags;
|
|
u8 dtim_period;
|
|
u16 beacon_interval;
|
|
};
|
|
|
|
struct nl80211_sta_flag_update {
|
|
__u32 mask;
|
|
__u32 set;
|
|
};
|
|
|
|
struct cfg80211_tid_stats;
|
|
|
|
struct station_info {
|
|
u64 filled;
|
|
u32 connected_time;
|
|
u32 inactive_time;
|
|
u64 assoc_at;
|
|
u64 rx_bytes;
|
|
u64 tx_bytes;
|
|
u16 llid;
|
|
u16 plid;
|
|
u8 plink_state;
|
|
s8 signal;
|
|
s8 signal_avg;
|
|
u8 chains;
|
|
s8 chain_signal[4];
|
|
s8 chain_signal_avg[4];
|
|
struct rate_info txrate;
|
|
struct rate_info rxrate;
|
|
u32 rx_packets;
|
|
u32 tx_packets;
|
|
u32 tx_retries;
|
|
u32 tx_failed;
|
|
u32 rx_dropped_misc;
|
|
struct sta_bss_parameters bss_param;
|
|
struct nl80211_sta_flag_update sta_flags;
|
|
int generation;
|
|
const u8 *assoc_req_ies;
|
|
size_t assoc_req_ies_len;
|
|
u32 beacon_loss_count;
|
|
s64 t_offset;
|
|
enum nl80211_mesh_power_mode local_pm;
|
|
enum nl80211_mesh_power_mode peer_pm;
|
|
enum nl80211_mesh_power_mode nonpeer_pm;
|
|
u32 expected_throughput;
|
|
u64 tx_duration;
|
|
u64 rx_duration;
|
|
u64 rx_beacon;
|
|
u8 rx_beacon_signal_avg;
|
|
u8 connected_to_gate;
|
|
struct cfg80211_tid_stats *pertid;
|
|
s8 ack_signal;
|
|
s8 avg_ack_signal;
|
|
u16 airtime_weight;
|
|
u32 rx_mpdu_count;
|
|
u32 fcs_err_count;
|
|
u32 airtime_link_metric;
|
|
u8 connected_to_as;
|
|
bool mlo_params_valid;
|
|
u8 assoc_link_id;
|
|
char: 8;
|
|
u8 mld_addr[6];
|
|
const u8 *assoc_resp_ies;
|
|
size_t assoc_resp_ies_len;
|
|
};
|
|
|
|
struct cfg80211_txq_stats {
|
|
u32 filled;
|
|
u32 backlog_bytes;
|
|
u32 backlog_packets;
|
|
u32 flows;
|
|
u32 drops;
|
|
u32 ecn_marks;
|
|
u32 overlimit;
|
|
u32 overmemory;
|
|
u32 collisions;
|
|
u32 tx_bytes;
|
|
u32 tx_packets;
|
|
u32 max_flows;
|
|
};
|
|
|
|
struct cfg80211_tid_stats {
|
|
u32 filled;
|
|
u64 rx_msdu;
|
|
u64 tx_msdu;
|
|
u64 tx_msdu_retries;
|
|
u64 tx_msdu_failed;
|
|
struct cfg80211_txq_stats txq_stats;
|
|
};
|
|
|
|
struct mpath_info {
|
|
u32 filled;
|
|
u32 frame_qlen;
|
|
u32 sn;
|
|
u32 metric;
|
|
u32 exptime;
|
|
u32 discovery_timeout;
|
|
u8 discovery_retries;
|
|
u8 flags;
|
|
u8 hop_count;
|
|
u32 path_change_count;
|
|
int generation;
|
|
};
|
|
|
|
struct mesh_config {
|
|
u16 dot11MeshRetryTimeout;
|
|
u16 dot11MeshConfirmTimeout;
|
|
u16 dot11MeshHoldingTimeout;
|
|
u16 dot11MeshMaxPeerLinks;
|
|
u8 dot11MeshMaxRetries;
|
|
u8 dot11MeshTTL;
|
|
u8 element_ttl;
|
|
bool auto_open_plinks;
|
|
u32 dot11MeshNbrOffsetMaxNeighbor;
|
|
u8 dot11MeshHWMPmaxPREQretries;
|
|
u32 path_refresh_time;
|
|
u16 min_discovery_timeout;
|
|
u32 dot11MeshHWMPactivePathTimeout;
|
|
u16 dot11MeshHWMPpreqMinInterval;
|
|
u16 dot11MeshHWMPperrMinInterval;
|
|
u16 dot11MeshHWMPnetDiameterTraversalTime;
|
|
u8 dot11MeshHWMPRootMode;
|
|
bool dot11MeshConnectedToMeshGate;
|
|
bool dot11MeshConnectedToAuthServer;
|
|
u16 dot11MeshHWMPRannInterval;
|
|
bool dot11MeshGateAnnouncementProtocol;
|
|
bool dot11MeshForwarding;
|
|
s32 rssi_threshold;
|
|
u16 ht_opmode;
|
|
u32 dot11MeshHWMPactivePathToRootTimeout;
|
|
u16 dot11MeshHWMProotInterval;
|
|
u16 dot11MeshHWMPconfirmationInterval;
|
|
enum nl80211_mesh_power_mode power_mode;
|
|
u16 dot11MeshAwakeWindowDuration;
|
|
u32 plink_timeout;
|
|
bool dot11MeshNolearn;
|
|
};
|
|
|
|
struct mesh_setup {
|
|
struct cfg80211_chan_def chandef;
|
|
const u8 *mesh_id;
|
|
u8 mesh_id_len;
|
|
u8 sync_method;
|
|
u8 path_sel_proto;
|
|
u8 path_metric;
|
|
u8 auth_id;
|
|
const u8 *ie;
|
|
u8 ie_len;
|
|
bool is_authenticated;
|
|
bool is_secure;
|
|
bool user_mpm;
|
|
u8 dtim_period;
|
|
u16 beacon_interval;
|
|
int mcast_rate[6];
|
|
u32 basic_rates;
|
|
struct cfg80211_bitrate_mask beacon_rate;
|
|
bool userspace_handles_dfs;
|
|
bool control_port_over_nl80211;
|
|
};
|
|
|
|
struct ocb_setup {
|
|
struct cfg80211_chan_def chandef;
|
|
};
|
|
|
|
struct bss_parameters {
|
|
int link_id;
|
|
int use_cts_prot;
|
|
int use_short_preamble;
|
|
int use_short_slot_time;
|
|
const u8 *basic_rates;
|
|
u8 basic_rates_len;
|
|
int ap_isolate;
|
|
int ht_opmode;
|
|
s8 p2p_ctwindow;
|
|
s8 p2p_opp_ps;
|
|
};
|
|
|
|
struct ieee80211_txq_params {
|
|
enum nl80211_ac ac;
|
|
u16 txop;
|
|
u16 cwmin;
|
|
u16 cwmax;
|
|
u8 aifs;
|
|
int link_id;
|
|
};
|
|
|
|
struct cfg80211_scan_info {
|
|
u64 scan_start_tsf;
|
|
u8 tsf_bssid[6];
|
|
bool aborted;
|
|
};
|
|
|
|
struct cfg80211_scan_6ghz_params;
|
|
|
|
struct cfg80211_scan_request {
|
|
struct cfg80211_ssid *ssids;
|
|
int n_ssids;
|
|
u32 n_channels;
|
|
enum nl80211_bss_scan_width scan_width;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
u16 duration;
|
|
bool duration_mandatory;
|
|
u32 flags;
|
|
u32 rates[6];
|
|
struct wireless_dev *wdev;
|
|
u8 mac_addr[6];
|
|
u8 mac_addr_mask[6];
|
|
u8 bssid[6];
|
|
struct wiphy *wiphy;
|
|
unsigned long scan_start;
|
|
struct cfg80211_scan_info info;
|
|
bool notified;
|
|
bool no_cck;
|
|
bool scan_6ghz;
|
|
u32 n_6ghz_params;
|
|
struct cfg80211_scan_6ghz_params *scan_6ghz_params;
|
|
struct ieee80211_channel *channels[0];
|
|
};
|
|
|
|
struct cfg80211_scan_6ghz_params {
|
|
u32 short_ssid;
|
|
u32 channel_idx;
|
|
u8 bssid[6];
|
|
bool unsolicited_probe;
|
|
bool short_ssid_valid;
|
|
bool psc_no_listen;
|
|
};
|
|
|
|
struct cfg80211_auth_request {
|
|
struct cfg80211_bss *bss;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
enum nl80211_auth_type auth_type;
|
|
const u8 *key;
|
|
u8 key_len;
|
|
s8 key_idx;
|
|
const u8 *auth_data;
|
|
size_t auth_data_len;
|
|
s8 link_id;
|
|
const u8 *ap_mld_addr;
|
|
};
|
|
|
|
struct ieee80211_s1g_cap {
|
|
u8 capab_info[10];
|
|
u8 supp_mcs_nss[5];
|
|
};
|
|
|
|
struct cfg80211_assoc_link {
|
|
struct cfg80211_bss *bss;
|
|
const u8 *elems;
|
|
size_t elems_len;
|
|
};
|
|
|
|
struct cfg80211_assoc_request {
|
|
struct cfg80211_bss *bss;
|
|
const u8 *ie;
|
|
const u8 *prev_bssid;
|
|
size_t ie_len;
|
|
struct cfg80211_crypto_settings crypto;
|
|
bool use_mfp;
|
|
int: 24;
|
|
u32 flags;
|
|
struct ieee80211_ht_cap ht_capa;
|
|
struct ieee80211_ht_cap ht_capa_mask;
|
|
struct ieee80211_vht_cap vht_capa;
|
|
struct ieee80211_vht_cap vht_capa_mask;
|
|
int: 32;
|
|
const u8 *fils_kek;
|
|
size_t fils_kek_len;
|
|
const u8 *fils_nonces;
|
|
struct ieee80211_s1g_cap s1g_capa;
|
|
struct ieee80211_s1g_cap s1g_capa_mask;
|
|
short: 16;
|
|
struct cfg80211_assoc_link links[15];
|
|
const u8 *ap_mld_addr;
|
|
s8 link_id;
|
|
long: 56;
|
|
} __attribute__((packed));
|
|
|
|
struct cfg80211_deauth_request {
|
|
const u8 *bssid;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
u16 reason_code;
|
|
bool local_state_change;
|
|
};
|
|
|
|
struct cfg80211_disassoc_request {
|
|
const u8 *ap_addr;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
u16 reason_code;
|
|
bool local_state_change;
|
|
};
|
|
|
|
struct cfg80211_bss_selection {
|
|
enum nl80211_bss_select_attr behaviour;
|
|
union {
|
|
enum nl80211_band band_pref;
|
|
struct cfg80211_bss_select_adjust adjust;
|
|
} param;
|
|
};
|
|
|
|
struct cfg80211_connect_params {
|
|
struct ieee80211_channel *channel;
|
|
struct ieee80211_channel *channel_hint;
|
|
const u8 *bssid;
|
|
const u8 *bssid_hint;
|
|
const u8 *ssid;
|
|
size_t ssid_len;
|
|
enum nl80211_auth_type auth_type;
|
|
int: 32;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
bool privacy;
|
|
int: 24;
|
|
enum nl80211_mfp mfp;
|
|
struct cfg80211_crypto_settings crypto;
|
|
const u8 *key;
|
|
u8 key_len;
|
|
u8 key_idx;
|
|
short: 16;
|
|
u32 flags;
|
|
int bg_scan_period;
|
|
struct ieee80211_ht_cap ht_capa;
|
|
struct ieee80211_ht_cap ht_capa_mask;
|
|
struct ieee80211_vht_cap vht_capa;
|
|
struct ieee80211_vht_cap vht_capa_mask;
|
|
bool pbss;
|
|
int: 24;
|
|
struct cfg80211_bss_selection bss_select;
|
|
const u8 *prev_bssid;
|
|
const u8 *fils_erp_username;
|
|
size_t fils_erp_username_len;
|
|
const u8 *fils_erp_realm;
|
|
size_t fils_erp_realm_len;
|
|
u16 fils_erp_next_seq_num;
|
|
long: 48;
|
|
const u8 *fils_erp_rrk;
|
|
size_t fils_erp_rrk_len;
|
|
bool want_1x;
|
|
int: 24;
|
|
struct ieee80211_edmg edmg;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct cfg80211_ibss_params {
|
|
const u8 *ssid;
|
|
const u8 *bssid;
|
|
struct cfg80211_chan_def chandef;
|
|
const u8 *ie;
|
|
u8 ssid_len;
|
|
u8 ie_len;
|
|
u16 beacon_interval;
|
|
u32 basic_rates;
|
|
bool channel_fixed;
|
|
bool privacy;
|
|
bool control_port;
|
|
bool control_port_over_nl80211;
|
|
bool userspace_handles_dfs;
|
|
int: 24;
|
|
int mcast_rate[6];
|
|
struct ieee80211_ht_cap ht_capa;
|
|
struct ieee80211_ht_cap ht_capa_mask;
|
|
int: 32;
|
|
struct key_params *wep_keys;
|
|
int wep_tx_key;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct survey_info {
|
|
struct ieee80211_channel *channel;
|
|
u64 time;
|
|
u64 time_busy;
|
|
u64 time_ext_busy;
|
|
u64 time_rx;
|
|
u64 time_tx;
|
|
u64 time_scan;
|
|
u64 time_bss_rx;
|
|
u32 filled;
|
|
s8 noise;
|
|
};
|
|
|
|
struct cfg80211_pmksa {
|
|
const u8 *bssid;
|
|
const u8 *pmkid;
|
|
const u8 *pmk;
|
|
size_t pmk_len;
|
|
const u8 *ssid;
|
|
size_t ssid_len;
|
|
const u8 *cache_id;
|
|
u32 pmk_lifetime;
|
|
u8 pmk_reauth_threshold;
|
|
};
|
|
|
|
struct cfg80211_mgmt_tx_params {
|
|
struct ieee80211_channel *chan;
|
|
bool offchan;
|
|
unsigned int wait;
|
|
const u8 *buf;
|
|
size_t len;
|
|
bool no_cck;
|
|
bool dont_wait_for_ack;
|
|
int n_csa_offsets;
|
|
const u16 *csa_offsets;
|
|
int link_id;
|
|
};
|
|
|
|
struct mgmt_frame_regs {
|
|
u32 global_stypes;
|
|
u32 interface_stypes;
|
|
u32 global_mcast_stypes;
|
|
u32 interface_mcast_stypes;
|
|
};
|
|
|
|
struct cfg80211_gtk_rekey_data {
|
|
const u8 *kek;
|
|
const u8 *kck;
|
|
const u8 *replay_ctr;
|
|
u32 akm;
|
|
u8 kek_len;
|
|
u8 kck_len;
|
|
};
|
|
|
|
struct cfg80211_update_ft_ies_params {
|
|
u16 md;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
};
|
|
|
|
struct cfg80211_coalesce_rules;
|
|
|
|
struct cfg80211_coalesce {
|
|
struct cfg80211_coalesce_rules *rules;
|
|
int n_rules;
|
|
};
|
|
|
|
struct cfg80211_coalesce_rules {
|
|
int delay;
|
|
enum nl80211_coalesce_condition condition;
|
|
struct cfg80211_pkt_pattern *patterns;
|
|
int n_patterns;
|
|
};
|
|
|
|
struct cfg80211_csa_settings {
|
|
struct cfg80211_chan_def chandef;
|
|
struct cfg80211_beacon_data beacon_csa;
|
|
const u16 *counter_offsets_beacon;
|
|
const u16 *counter_offsets_presp;
|
|
unsigned int n_counter_offsets_beacon;
|
|
unsigned int n_counter_offsets_presp;
|
|
struct cfg80211_beacon_data beacon_after;
|
|
bool radar_required;
|
|
bool block_tx;
|
|
u8 count;
|
|
u16 punct_bitmap;
|
|
};
|
|
|
|
struct cfg80211_dscp_exception {
|
|
u8 dscp;
|
|
u8 up;
|
|
};
|
|
|
|
struct cfg80211_dscp_range {
|
|
u8 low;
|
|
u8 high;
|
|
};
|
|
|
|
struct cfg80211_qos_map {
|
|
u8 num_des;
|
|
struct cfg80211_dscp_exception dscp_exception[21];
|
|
struct cfg80211_dscp_range up[8];
|
|
};
|
|
|
|
struct cfg80211_nan_conf {
|
|
u8 master_pref;
|
|
u8 bands;
|
|
};
|
|
|
|
struct cfg80211_nan_func_filter;
|
|
|
|
struct cfg80211_nan_func {
|
|
enum nl80211_nan_function_type type;
|
|
u8 service_id[6];
|
|
u8 publish_type;
|
|
bool close_range;
|
|
bool publish_bcast;
|
|
bool subscribe_active;
|
|
u8 followup_id;
|
|
u8 followup_reqid;
|
|
struct mac_address followup_dest;
|
|
u32 ttl;
|
|
const u8 *serv_spec_info;
|
|
u8 serv_spec_info_len;
|
|
bool srf_include;
|
|
const u8 *srf_bf;
|
|
u8 srf_bf_len;
|
|
u8 srf_bf_idx;
|
|
struct mac_address *srf_macs;
|
|
int srf_num_macs;
|
|
struct cfg80211_nan_func_filter *rx_filters;
|
|
struct cfg80211_nan_func_filter *tx_filters;
|
|
u8 num_tx_filters;
|
|
u8 num_rx_filters;
|
|
u8 instance_id;
|
|
u64 cookie;
|
|
};
|
|
|
|
struct cfg80211_nan_func_filter {
|
|
const u8 *filter;
|
|
u8 len;
|
|
};
|
|
|
|
struct cfg80211_pmk_conf {
|
|
const u8 *aa;
|
|
u8 pmk_len;
|
|
const u8 *pmk;
|
|
const u8 *pmk_r0_name;
|
|
};
|
|
|
|
struct cfg80211_external_auth_params {
|
|
enum nl80211_external_auth_action action;
|
|
u8 bssid[6];
|
|
struct cfg80211_ssid ssid;
|
|
unsigned int key_mgmt_suite;
|
|
u16 status;
|
|
const u8 *pmkid;
|
|
u8 mld_addr[6];
|
|
};
|
|
|
|
struct cfg80211_ftm_responder_stats {
|
|
u32 filled;
|
|
u32 success_num;
|
|
u32 partial_num;
|
|
u32 failed_num;
|
|
u32 asap_num;
|
|
u32 non_asap_num;
|
|
u64 total_duration_ms;
|
|
u32 unknown_triggers_num;
|
|
u32 reschedule_requests_num;
|
|
u32 out_of_window_triggers_num;
|
|
};
|
|
|
|
struct cfg80211_pmsr_ftm_request_peer {
|
|
enum nl80211_preamble preamble;
|
|
u16 burst_period;
|
|
u8 requested: 1;
|
|
u8 asap: 1;
|
|
u8 request_lci: 1;
|
|
u8 request_civicloc: 1;
|
|
u8 trigger_based: 1;
|
|
u8 non_trigger_based: 1;
|
|
u8 lmr_feedback: 1;
|
|
u8 num_bursts_exp;
|
|
u8 burst_duration;
|
|
u8 ftms_per_burst;
|
|
u8 ftmr_retries;
|
|
u8 bss_color;
|
|
};
|
|
|
|
struct cfg80211_pmsr_request_peer {
|
|
u8 addr[6];
|
|
struct cfg80211_chan_def chandef;
|
|
u8 report_ap_tsf: 1;
|
|
struct cfg80211_pmsr_ftm_request_peer ftm;
|
|
};
|
|
|
|
struct cfg80211_pmsr_request {
|
|
u64 cookie;
|
|
void *drv_data;
|
|
u32 n_peers;
|
|
u32 nl_portid;
|
|
u32 timeout;
|
|
u8 mac_addr[6];
|
|
u8 mac_addr_mask[6];
|
|
struct list_head list;
|
|
struct cfg80211_pmsr_request_peer peers[0];
|
|
};
|
|
|
|
struct cfg80211_update_owe_info {
|
|
u8 peer[6];
|
|
u16 status;
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
int assoc_link_id;
|
|
u8 peer_mld_addr[6];
|
|
};
|
|
|
|
struct cfg80211_tid_cfg {
|
|
bool config_override;
|
|
u8 tids;
|
|
u64 mask;
|
|
enum nl80211_tid_config noack;
|
|
u8 retry_long;
|
|
u8 retry_short;
|
|
enum nl80211_tid_config ampdu;
|
|
enum nl80211_tid_config rtscts;
|
|
enum nl80211_tid_config amsdu;
|
|
enum nl80211_tx_rate_setting txrate_type;
|
|
struct cfg80211_bitrate_mask txrate_mask;
|
|
};
|
|
|
|
struct cfg80211_tid_config {
|
|
const u8 *peer;
|
|
u32 n_tid_conf;
|
|
struct cfg80211_tid_cfg tid_conf[0];
|
|
};
|
|
|
|
struct cfg80211_sar_sub_specs {
|
|
s32 power;
|
|
u32 freq_range_index;
|
|
};
|
|
|
|
struct cfg80211_sar_specs {
|
|
enum nl80211_sar_type type;
|
|
u32 num_sub_specs;
|
|
struct cfg80211_sar_sub_specs sub_specs[0];
|
|
};
|
|
|
|
struct cfg80211_color_change_settings {
|
|
struct cfg80211_beacon_data beacon_color_change;
|
|
u16 counter_offset_beacon;
|
|
u16 counter_offset_presp;
|
|
struct cfg80211_beacon_data beacon_next;
|
|
u8 count;
|
|
u8 color;
|
|
};
|
|
|
|
struct cfg80211_fils_aad {
|
|
const u8 *macaddr;
|
|
const u8 *kek;
|
|
u8 kek_len;
|
|
const u8 *snonce;
|
|
const u8 *anonce;
|
|
};
|
|
|
|
struct link_station_del_parameters {
|
|
const u8 *mld_mac;
|
|
u32 link_id;
|
|
};
|
|
|
|
struct element {
|
|
u8 id;
|
|
u8 datalen;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct cfg80211_colocated_ap {
|
|
struct list_head list;
|
|
u8 bssid[6];
|
|
u8 ssid[32];
|
|
size_t ssid_len;
|
|
u32 short_ssid;
|
|
u32 center_freq;
|
|
u8 unsolicited_probe: 1;
|
|
u8 oct_recommended: 1;
|
|
u8 same_ssid: 1;
|
|
u8 multi_bss: 1;
|
|
u8 transmitted_bssid: 1;
|
|
u8 colocated_ess: 1;
|
|
u8 short_ssid_valid: 1;
|
|
};
|
|
|
|
struct ieee80211_neighbor_ap_info {
|
|
u8 tbtt_info_hdr;
|
|
u8 tbtt_info_len;
|
|
u8 op_class;
|
|
u8 channel;
|
|
};
|
|
|
|
struct ieee80211_he_6ghz_oper {
|
|
u8 primary;
|
|
u8 control;
|
|
u8 ccfs0;
|
|
u8 ccfs1;
|
|
u8 minrate;
|
|
};
|
|
|
|
struct cfg80211_inform_bss {
|
|
struct ieee80211_channel *chan;
|
|
enum nl80211_bss_scan_width scan_width;
|
|
s32 signal;
|
|
u64 boottime_ns;
|
|
u64 parent_tsf;
|
|
u8 parent_bssid[6];
|
|
u8 chains;
|
|
s8 chain_signal[4];
|
|
};
|
|
|
|
struct ieee80211_ext_chansw_ie {
|
|
u8 mode;
|
|
u8 new_operating_class;
|
|
u8 new_ch_num;
|
|
u8 count;
|
|
};
|
|
|
|
struct ieee80211_msrment_ie {
|
|
u8 token;
|
|
u8 mode;
|
|
u8 type;
|
|
u8 request[0];
|
|
};
|
|
|
|
struct ieee80211_tpc_report_ie {
|
|
u8 tx_power;
|
|
u8 link_margin;
|
|
};
|
|
|
|
struct ieee80211_mgmt {
|
|
__le16 frame_control;
|
|
__le16 duration;
|
|
u8 da[6];
|
|
u8 sa[6];
|
|
u8 bssid[6];
|
|
__le16 seq_ctrl;
|
|
union {
|
|
struct {
|
|
__le16 auth_alg;
|
|
__le16 auth_transaction;
|
|
__le16 status_code;
|
|
u8 variable[0];
|
|
} auth;
|
|
struct {
|
|
__le16 reason_code;
|
|
} deauth;
|
|
struct {
|
|
__le16 capab_info;
|
|
__le16 listen_interval;
|
|
u8 variable[0];
|
|
} assoc_req;
|
|
struct {
|
|
__le16 capab_info;
|
|
__le16 status_code;
|
|
__le16 aid;
|
|
u8 variable[0];
|
|
} assoc_resp;
|
|
struct {
|
|
__le16 capab_info;
|
|
__le16 status_code;
|
|
__le16 aid;
|
|
u8 variable[0];
|
|
} reassoc_resp;
|
|
struct {
|
|
__le16 capab_info;
|
|
__le16 status_code;
|
|
u8 variable[0];
|
|
} s1g_assoc_resp;
|
|
struct {
|
|
__le16 capab_info;
|
|
__le16 status_code;
|
|
u8 variable[0];
|
|
} s1g_reassoc_resp;
|
|
struct {
|
|
__le16 capab_info;
|
|
__le16 listen_interval;
|
|
u8 current_ap[6];
|
|
u8 variable[0];
|
|
} reassoc_req;
|
|
struct {
|
|
__le16 reason_code;
|
|
} disassoc;
|
|
struct {
|
|
__le64 timestamp;
|
|
__le16 beacon_int;
|
|
__le16 capab_info;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) beacon;
|
|
struct {
|
|
struct {
|
|
struct { } __empty_variable;
|
|
u8 variable[0];
|
|
};
|
|
} probe_req;
|
|
struct {
|
|
__le64 timestamp;
|
|
__le16 beacon_int;
|
|
__le16 capab_info;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) probe_resp;
|
|
struct {
|
|
u8 category;
|
|
union {
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
u8 status_code;
|
|
u8 variable[0];
|
|
} wme_action;
|
|
struct {
|
|
u8 action_code;
|
|
u8 variable[0];
|
|
} chan_switch;
|
|
struct {
|
|
u8 action_code;
|
|
struct ieee80211_ext_chansw_ie data;
|
|
u8 variable[0];
|
|
} ext_chan_switch;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
u8 element_id;
|
|
u8 length;
|
|
struct ieee80211_msrment_ie msr_elem;
|
|
} measurement;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
__le16 capab;
|
|
__le16 timeout;
|
|
__le16 start_seq_num;
|
|
u8 variable[0];
|
|
} addba_req;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
__le16 status;
|
|
__le16 capab;
|
|
__le16 timeout;
|
|
} addba_resp;
|
|
struct {
|
|
u8 action_code;
|
|
__le16 params;
|
|
__le16 reason_code;
|
|
} __attribute__((packed)) delba;
|
|
struct {
|
|
u8 action_code;
|
|
u8 variable[0];
|
|
} self_prot;
|
|
struct {
|
|
u8 action_code;
|
|
u8 variable[0];
|
|
} mesh_action;
|
|
struct {
|
|
u8 action;
|
|
u8 trans_id[2];
|
|
} sa_query;
|
|
struct {
|
|
u8 action;
|
|
u8 smps_control;
|
|
} ht_smps;
|
|
struct {
|
|
u8 action_code;
|
|
u8 chanwidth;
|
|
} ht_notify_cw;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
__le16 capability;
|
|
u8 variable[0];
|
|
} tdls_discover_resp;
|
|
struct {
|
|
u8 action_code;
|
|
u8 operating_mode;
|
|
} vht_opmode_notif;
|
|
struct {
|
|
u8 action_code;
|
|
u8 membership[8];
|
|
u8 position[16];
|
|
} vht_group_notif;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
u8 tpc_elem_id;
|
|
u8 tpc_elem_length;
|
|
struct ieee80211_tpc_report_ie tpc;
|
|
} tpc_report;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
u8 follow_up;
|
|
u8 tod[6];
|
|
u8 toa[6];
|
|
__le16 tod_error;
|
|
__le16 toa_error;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) ftm;
|
|
struct {
|
|
u8 action_code;
|
|
u8 variable[0];
|
|
} s1g;
|
|
struct {
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
u8 follow_up;
|
|
u32 tod;
|
|
u32 toa;
|
|
u8 max_tod_error;
|
|
u8 max_toa_error;
|
|
} __attribute__((packed)) wnm_timing_msr;
|
|
} u;
|
|
} __attribute__((packed)) action;
|
|
struct {
|
|
struct { } __empty_body;
|
|
u8 body[0];
|
|
};
|
|
} u;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_ext {
|
|
__le16 frame_control;
|
|
__le16 duration;
|
|
union {
|
|
struct {
|
|
u8 sa[6];
|
|
__le32 timestamp;
|
|
u8 change_seq;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) s1g_beacon;
|
|
struct {
|
|
u8 sa[6];
|
|
__le32 timestamp;
|
|
u8 change_seq;
|
|
u8 next_tbtt[3];
|
|
u8 variable[0];
|
|
} __attribute__((packed)) s1g_short_beacon;
|
|
} u;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_s1g_bcn_compat_ie {
|
|
__le16 compat_info;
|
|
__le16 beacon_int;
|
|
__le32 tsf_completion;
|
|
};
|
|
|
|
struct cfg80211_non_tx_bss {
|
|
struct cfg80211_bss *tx_bss;
|
|
u8 max_bssid_indicator;
|
|
u8 bssid_index;
|
|
};
|
|
|
|
struct ieee80211_s1g_oper_ie {
|
|
u8 ch_width;
|
|
u8 oper_class;
|
|
u8 primary_ch;
|
|
u8 oper_ch;
|
|
__le16 basic_mcs_nss;
|
|
};
|
|
|
|
struct ieee80211_ht_operation {
|
|
u8 primary_chan;
|
|
u8 ht_param;
|
|
__le16 operation_mode;
|
|
__le16 stbc_param;
|
|
u8 basic_set[16];
|
|
};
|
|
|
|
enum ieee80211_smps_mode {
|
|
IEEE80211_SMPS_AUTOMATIC = 0,
|
|
IEEE80211_SMPS_OFF = 1,
|
|
IEEE80211_SMPS_STATIC = 2,
|
|
IEEE80211_SMPS_DYNAMIC = 3,
|
|
IEEE80211_SMPS_NUM_MODES = 4,
|
|
};
|
|
|
|
struct rhash_lock_head {};
|
|
|
|
enum ieee80211_ap_reg_power {
|
|
IEEE80211_REG_UNSET_AP = 0,
|
|
IEEE80211_REG_LPI_AP = 1,
|
|
IEEE80211_REG_SP_AP = 2,
|
|
IEEE80211_REG_VLP_AP = 3,
|
|
IEEE80211_REG_AP_POWER_AFTER_LAST = 4,
|
|
IEEE80211_REG_AP_POWER_MAX = 3,
|
|
};
|
|
|
|
enum ieee80211_sta_rx_bandwidth {
|
|
IEEE80211_STA_RX_BW_20 = 0,
|
|
IEEE80211_STA_RX_BW_40 = 1,
|
|
IEEE80211_STA_RX_BW_80 = 2,
|
|
IEEE80211_STA_RX_BW_160 = 3,
|
|
IEEE80211_STA_RX_BW_320 = 4,
|
|
};
|
|
|
|
enum set_key_cmd {
|
|
SET_KEY = 0,
|
|
DISABLE_KEY = 1,
|
|
};
|
|
|
|
enum sta_notify_cmd {
|
|
STA_NOTIFY_SLEEP = 0,
|
|
STA_NOTIFY_AWAKE = 1,
|
|
};
|
|
|
|
enum ieee80211_sta_state {
|
|
IEEE80211_STA_NOTEXIST = 0,
|
|
IEEE80211_STA_NONE = 1,
|
|
IEEE80211_STA_AUTH = 2,
|
|
IEEE80211_STA_ASSOC = 3,
|
|
IEEE80211_STA_AUTHORIZED = 4,
|
|
};
|
|
|
|
enum ieee80211_ampdu_mlme_action {
|
|
IEEE80211_AMPDU_RX_START = 0,
|
|
IEEE80211_AMPDU_RX_STOP = 1,
|
|
IEEE80211_AMPDU_TX_START = 2,
|
|
IEEE80211_AMPDU_TX_STOP_CONT = 3,
|
|
IEEE80211_AMPDU_TX_STOP_FLUSH = 4,
|
|
IEEE80211_AMPDU_TX_STOP_FLUSH_CONT = 5,
|
|
IEEE80211_AMPDU_TX_OPERATIONAL = 6,
|
|
};
|
|
|
|
enum ieee80211_roc_type {
|
|
IEEE80211_ROC_TYPE_NORMAL = 0,
|
|
IEEE80211_ROC_TYPE_MGMT_TX = 1,
|
|
};
|
|
|
|
enum ieee80211_event_type {
|
|
RSSI_EVENT = 0,
|
|
MLME_EVENT = 1,
|
|
BAR_RX_EVENT = 2,
|
|
BA_FRAME_TIMEOUT = 3,
|
|
};
|
|
|
|
enum ieee80211_rssi_event_data {
|
|
RSSI_EVENT_HIGH = 0,
|
|
RSSI_EVENT_LOW = 1,
|
|
};
|
|
|
|
enum ieee80211_mlme_event_data {
|
|
AUTH_EVENT = 0,
|
|
ASSOC_EVENT = 1,
|
|
DEAUTH_RX_EVENT = 2,
|
|
DEAUTH_TX_EVENT = 3,
|
|
};
|
|
|
|
enum ieee80211_mlme_event_status {
|
|
MLME_SUCCESS = 0,
|
|
MLME_DENIED = 1,
|
|
MLME_TIMEOUT = 2,
|
|
};
|
|
|
|
enum ieee80211_frame_release_type {
|
|
IEEE80211_FRAME_RELEASE_PSPOLL = 0,
|
|
IEEE80211_FRAME_RELEASE_UAPSD = 1,
|
|
};
|
|
|
|
enum ieee80211_chanctx_switch_mode {
|
|
CHANCTX_SWMODE_REASSIGN_VIF = 0,
|
|
CHANCTX_SWMODE_SWAP_CONTEXTS = 1,
|
|
};
|
|
|
|
enum ieee80211_reconfig_type {
|
|
IEEE80211_RECONFIG_TYPE_RESTART = 0,
|
|
IEEE80211_RECONFIG_TYPE_SUSPEND = 1,
|
|
};
|
|
|
|
struct ieee80211_sta_tx_tspec {
|
|
unsigned long time_slice_start;
|
|
u32 admitted_time;
|
|
u8 tsid;
|
|
s8 up;
|
|
u32 consumed_tx_time;
|
|
enum {
|
|
TX_TSPEC_ACTION_NONE = 0,
|
|
TX_TSPEC_ACTION_DOWNGRADE = 1,
|
|
TX_TSPEC_ACTION_STOP_DOWNGRADE = 2,
|
|
} action;
|
|
bool downgraded;
|
|
};
|
|
|
|
struct ieee80211_mgd_auth_data;
|
|
|
|
struct ieee80211_mgd_assoc_data;
|
|
|
|
struct ieee80211_if_managed {
|
|
struct timer_list timer;
|
|
struct timer_list conn_mon_timer;
|
|
struct timer_list bcn_mon_timer;
|
|
struct work_struct monitor_work;
|
|
struct work_struct beacon_connection_loss_work;
|
|
struct work_struct csa_connection_drop_work;
|
|
unsigned long beacon_timeout;
|
|
unsigned long probe_timeout;
|
|
int probe_send_count;
|
|
bool nullfunc_failed;
|
|
u8 connection_loss: 1;
|
|
u8 driver_disconnect: 1;
|
|
u8 reconnect: 1;
|
|
u8 associated: 1;
|
|
int: 20;
|
|
struct ieee80211_mgd_auth_data *auth_data;
|
|
struct ieee80211_mgd_assoc_data *assoc_data;
|
|
bool powersave;
|
|
bool broken_ap;
|
|
short: 16;
|
|
unsigned int flags;
|
|
bool status_acked;
|
|
bool status_received;
|
|
__le16 status_fc;
|
|
enum {
|
|
IEEE80211_MFP_DISABLED = 0,
|
|
IEEE80211_MFP_OPTIONAL = 1,
|
|
IEEE80211_MFP_REQUIRED = 2,
|
|
} mfp;
|
|
unsigned int uapsd_queues;
|
|
unsigned int uapsd_max_sp_len;
|
|
u8 use_4addr;
|
|
int: 24;
|
|
int rssi_min_thold;
|
|
int rssi_max_thold;
|
|
struct ieee80211_ht_cap ht_capa;
|
|
struct ieee80211_ht_cap ht_capa_mask;
|
|
struct ieee80211_vht_cap vht_capa;
|
|
struct ieee80211_vht_cap vht_capa_mask;
|
|
struct ieee80211_s1g_cap s1g_capa;
|
|
struct ieee80211_s1g_cap s1g_capa_mask;
|
|
u8 tdls_peer[6];
|
|
int: 32;
|
|
struct delayed_work tdls_peer_del_work;
|
|
struct sk_buff *orig_teardown_skb;
|
|
struct sk_buff *teardown_skb;
|
|
spinlock_t teardown_lock;
|
|
bool tdls_wider_bw_prohibited;
|
|
int: 24;
|
|
struct ieee80211_sta_tx_tspec tx_tspec[4];
|
|
struct delayed_work tx_tspec_wk;
|
|
u8 *assoc_req_ies;
|
|
size_t assoc_req_ies_len;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_mgd_auth_data {
|
|
struct cfg80211_bss *bss;
|
|
unsigned long timeout;
|
|
int tries;
|
|
u16 algorithm;
|
|
u16 expected_transaction;
|
|
u8 key[13];
|
|
u8 key_len;
|
|
u8 key_idx;
|
|
bool done;
|
|
bool waiting;
|
|
bool peer_confirmed;
|
|
bool timeout_started;
|
|
int link_id;
|
|
u8 ap_addr[6];
|
|
u16 sae_trans;
|
|
u16 sae_status;
|
|
size_t data_len;
|
|
u8 data[0];
|
|
};
|
|
|
|
typedef u32 ieee80211_conn_flags_t;
|
|
|
|
struct ieee80211_mgd_assoc_data {
|
|
struct {
|
|
struct cfg80211_bss *bss;
|
|
u8 addr[6];
|
|
u8 ap_ht_param;
|
|
struct ieee80211_vht_cap ap_vht_cap;
|
|
long: 40;
|
|
size_t elems_len;
|
|
u8 *elems;
|
|
ieee80211_conn_flags_t conn_flags;
|
|
u16 status;
|
|
short: 16;
|
|
} __attribute__((packed)) link[15];
|
|
u8 ap_addr[6];
|
|
const u8 *supp_rates;
|
|
u8 supp_rates_len;
|
|
unsigned long timeout;
|
|
int tries;
|
|
u8 prev_ap_addr[6];
|
|
u8 ssid[32];
|
|
u8 ssid_len;
|
|
bool wmm;
|
|
bool uapsd;
|
|
bool need_beacon;
|
|
bool synced;
|
|
bool timeout_started;
|
|
bool s1g;
|
|
unsigned int assoc_link_id;
|
|
u8 fils_nonces[32];
|
|
u8 fils_kek[64];
|
|
size_t fils_kek_len;
|
|
size_t ie_len;
|
|
u8 *ie_pos;
|
|
u8 ie[0];
|
|
};
|
|
|
|
struct beacon_data;
|
|
|
|
struct ieee80211_if_ibss {
|
|
struct timer_list timer;
|
|
struct work_struct csa_connection_drop_work;
|
|
unsigned long last_scan_completed;
|
|
u32 basic_rates;
|
|
bool fixed_bssid;
|
|
bool fixed_channel;
|
|
bool privacy;
|
|
bool control_port;
|
|
bool userspace_handles_dfs;
|
|
char: 8;
|
|
u8 bssid[6];
|
|
u8 ssid[32];
|
|
u8 ssid_len;
|
|
u8 ie_len;
|
|
long: 48;
|
|
u8 *ie;
|
|
struct cfg80211_chan_def chandef;
|
|
unsigned long ibss_join_req;
|
|
struct beacon_data __attribute__((btf_type_tag("rcu"))) *presp;
|
|
struct ieee80211_ht_cap ht_capa;
|
|
struct ieee80211_ht_cap ht_capa_mask;
|
|
spinlock_t incomplete_lock;
|
|
struct list_head incomplete_stations;
|
|
enum {
|
|
IEEE80211_IBSS_MLME_SEARCH = 0,
|
|
IEEE80211_IBSS_MLME_JOINED = 1,
|
|
} state;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_meshconf_ie;
|
|
|
|
struct beacon_data {
|
|
u8 *head;
|
|
u8 *tail;
|
|
int head_len;
|
|
int tail_len;
|
|
struct ieee80211_meshconf_ie *meshconf;
|
|
u16 cntdwn_counter_offsets[2];
|
|
u8 cntdwn_current_counter;
|
|
struct cfg80211_mbssid_elems *mbssid_ies;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct ieee80211_meshconf_ie {
|
|
u8 meshconf_psel;
|
|
u8 meshconf_pmetric;
|
|
u8 meshconf_congest;
|
|
u8 meshconf_synch;
|
|
u8 meshconf_auth;
|
|
u8 meshconf_form;
|
|
u8 meshconf_cap;
|
|
};
|
|
|
|
struct mesh_preq_queue {
|
|
struct list_head list;
|
|
u8 dst[6];
|
|
u8 flags;
|
|
};
|
|
|
|
struct mesh_stats {
|
|
__u32 fwded_mcast;
|
|
__u32 fwded_unicast;
|
|
__u32 fwded_frames;
|
|
__u32 dropped_frames_ttl;
|
|
__u32 dropped_frames_no_route;
|
|
};
|
|
|
|
struct ps_data {
|
|
u8 tim[256];
|
|
struct sk_buff_head bc_buf;
|
|
atomic_t num_sta_ps;
|
|
int dtim_count;
|
|
bool dtim_bc_mc;
|
|
};
|
|
|
|
struct mesh_table {
|
|
struct hlist_head known_gates;
|
|
spinlock_t gates_lock;
|
|
struct rhashtable rhead;
|
|
struct hlist_head walk_head;
|
|
spinlock_t walk_lock;
|
|
atomic_t entries;
|
|
};
|
|
|
|
struct mesh_rmc;
|
|
|
|
struct ieee80211_mesh_sync_ops;
|
|
|
|
struct mesh_csa_settings;
|
|
|
|
struct ieee80211_if_mesh {
|
|
struct timer_list housekeeping_timer;
|
|
struct timer_list mesh_path_timer;
|
|
struct timer_list mesh_path_root_timer;
|
|
unsigned long wrkq_flags;
|
|
unsigned long mbss_changed;
|
|
bool userspace_handles_dfs;
|
|
u8 mesh_id[32];
|
|
size_t mesh_id_len;
|
|
u8 mesh_pp_id;
|
|
u8 mesh_pm_id;
|
|
u8 mesh_cc_id;
|
|
u8 mesh_sp_id;
|
|
u8 mesh_auth_id;
|
|
u32 sn;
|
|
u32 preq_id;
|
|
atomic_t mpaths;
|
|
unsigned long last_sn_update;
|
|
unsigned long next_perr;
|
|
unsigned long last_preq;
|
|
struct mesh_rmc *rmc;
|
|
spinlock_t mesh_preq_queue_lock;
|
|
struct mesh_preq_queue preq_queue;
|
|
int preq_queue_len;
|
|
struct mesh_stats mshstats;
|
|
struct mesh_config mshcfg;
|
|
atomic_t estab_plinks;
|
|
u32 mesh_seqnum;
|
|
bool accepting_plinks;
|
|
int num_gates;
|
|
struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon;
|
|
const u8 *ie;
|
|
u8 ie_len;
|
|
enum {
|
|
IEEE80211_MESH_SEC_NONE = 0,
|
|
IEEE80211_MESH_SEC_AUTHED = 1,
|
|
IEEE80211_MESH_SEC_SECURED = 2,
|
|
} security;
|
|
bool user_mpm;
|
|
const struct ieee80211_mesh_sync_ops *sync_ops;
|
|
s64 sync_offset_clockdrift_max;
|
|
spinlock_t sync_offset_lock;
|
|
enum nl80211_mesh_power_mode nonpeer_pm;
|
|
int ps_peers_light_sleep;
|
|
int ps_peers_deep_sleep;
|
|
struct ps_data ps;
|
|
struct mesh_csa_settings __attribute__((btf_type_tag("rcu"))) *csa;
|
|
enum {
|
|
IEEE80211_MESH_CSA_ROLE_NONE = 0,
|
|
IEEE80211_MESH_CSA_ROLE_INIT = 1,
|
|
IEEE80211_MESH_CSA_ROLE_REPEATER = 2,
|
|
} csa_role;
|
|
u8 chsw_ttl;
|
|
u16 pre_value;
|
|
int meshconf_offset;
|
|
struct mesh_table mesh_paths;
|
|
struct mesh_table mpp_paths;
|
|
int mesh_paths_generation;
|
|
int mpp_paths_generation;
|
|
};
|
|
|
|
struct ieee80211_sub_if_data;
|
|
|
|
struct ieee80211_rx_status;
|
|
|
|
struct ieee80211_mesh_sync_ops {
|
|
void (*rx_bcn_presp)(struct ieee80211_sub_if_data *, u16, struct ieee80211_mgmt *, unsigned int, const struct ieee80211_meshconf_ie *, struct ieee80211_rx_status *);
|
|
void (*adjust_tsf)(struct ieee80211_sub_if_data *, struct beacon_data *);
|
|
};
|
|
|
|
struct ieee80211_if_ap {
|
|
struct list_head vlans;
|
|
struct ps_data ps;
|
|
atomic_t num_mcast_sta;
|
|
bool multicast_to_unicast;
|
|
bool active;
|
|
};
|
|
|
|
struct sta_info;
|
|
|
|
struct ieee80211_if_vlan {
|
|
struct list_head list;
|
|
struct sta_info __attribute__((btf_type_tag("rcu"))) *sta;
|
|
atomic_t num_mcast_sta;
|
|
};
|
|
|
|
struct ieee80211_if_ocb {
|
|
struct timer_list housekeeping_timer;
|
|
unsigned long wrkq_flags;
|
|
spinlock_t incomplete_lock;
|
|
struct list_head incomplete_stations;
|
|
bool joined;
|
|
};
|
|
|
|
struct ieee80211_if_mntr {
|
|
u32 flags;
|
|
u8 mu_follow_addr[6];
|
|
struct list_head list;
|
|
};
|
|
|
|
struct ieee80211_if_nan {
|
|
struct cfg80211_nan_conf conf;
|
|
spinlock_t func_lock;
|
|
struct idr function_inst_ids;
|
|
};
|
|
|
|
struct ieee80211_fragment_entry {
|
|
struct sk_buff_head skb_list;
|
|
unsigned long first_frag_time;
|
|
u16 seq;
|
|
u16 extra_len;
|
|
u16 last_frag;
|
|
u8 rx_queue;
|
|
u8 check_sequential_pn: 1;
|
|
u8 is_protected: 1;
|
|
u8 last_pn[6];
|
|
unsigned int key_color;
|
|
};
|
|
|
|
struct ieee80211_fragment_cache {
|
|
struct ieee80211_fragment_entry entries[4];
|
|
unsigned int next;
|
|
};
|
|
|
|
struct ewma_beacon_signal {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct ieee80211_link_data_managed {
|
|
u8 bssid[6];
|
|
u8 dtim_period;
|
|
enum ieee80211_smps_mode req_smps;
|
|
enum ieee80211_smps_mode driver_smps_mode;
|
|
ieee80211_conn_flags_t conn_flags;
|
|
s16 p2p_noa_index;
|
|
bool tdls_chan_switch_prohibited;
|
|
bool have_beacon;
|
|
bool tracking_signal_avg;
|
|
bool disable_wmm_tracking;
|
|
bool operating_11g_mode;
|
|
bool csa_waiting_bcn;
|
|
bool csa_ignored_same_chan;
|
|
struct timer_list chswitch_timer;
|
|
struct work_struct chswitch_work;
|
|
struct work_struct request_smps_work;
|
|
bool beacon_crc_valid;
|
|
u32 beacon_crc;
|
|
struct ewma_beacon_signal ave_beacon_signal;
|
|
int last_ave_beacon_signal;
|
|
unsigned int count_beacon_signal;
|
|
unsigned int beacon_loss_count;
|
|
int last_cqm_event_signal;
|
|
int wmm_last_param_set;
|
|
int mu_edca_last_param_set;
|
|
struct cfg80211_bss *bss;
|
|
};
|
|
|
|
struct probe_resp;
|
|
|
|
struct fils_discovery_data;
|
|
|
|
struct unsol_bcast_probe_resp_data;
|
|
|
|
struct ieee80211_link_data_ap {
|
|
struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon;
|
|
struct probe_resp __attribute__((btf_type_tag("rcu"))) *probe_resp;
|
|
struct fils_discovery_data __attribute__((btf_type_tag("rcu"))) *fils_discovery;
|
|
struct unsol_bcast_probe_resp_data __attribute__((btf_type_tag("rcu"))) *unsol_bcast_probe_resp;
|
|
struct cfg80211_beacon_data *next_beacon;
|
|
};
|
|
|
|
struct ieee80211_he_mu_edca_param_ac_rec {
|
|
u8 aifsn;
|
|
u8 ecw_min_max;
|
|
u8 mu_edca_timer;
|
|
};
|
|
|
|
struct ieee80211_tx_queue_params {
|
|
u16 txop;
|
|
u16 cw_min;
|
|
u16 cw_max;
|
|
u8 aifs;
|
|
bool acm;
|
|
bool uapsd;
|
|
bool mu_edca;
|
|
struct ieee80211_he_mu_edca_param_ac_rec mu_edca_param_rec;
|
|
};
|
|
|
|
struct ieee80211_key;
|
|
|
|
struct ieee80211_chanctx;
|
|
|
|
struct ieee80211_bss_conf;
|
|
|
|
struct ieee80211_link_data {
|
|
struct ieee80211_sub_if_data *sdata;
|
|
unsigned int link_id;
|
|
struct list_head assigned_chanctx_list;
|
|
struct list_head reserved_chanctx_list;
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8];
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_multicast_key;
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_mgmt_key;
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_beacon_key;
|
|
struct work_struct csa_finalize_work;
|
|
bool csa_block_tx;
|
|
bool operating_11g_mode;
|
|
struct cfg80211_chan_def csa_chandef;
|
|
struct work_struct color_change_finalize_work;
|
|
struct delayed_work color_collision_detect_work;
|
|
u64 color_bitmap;
|
|
struct ieee80211_chanctx *reserved_chanctx;
|
|
struct cfg80211_chan_def reserved_chandef;
|
|
bool reserved_radar_required;
|
|
bool reserved_ready;
|
|
u8 needed_rx_chains;
|
|
enum ieee80211_smps_mode smps_mode;
|
|
int user_power_level;
|
|
int ap_power_level;
|
|
bool radar_required;
|
|
struct delayed_work dfs_cac_timer_work;
|
|
union {
|
|
struct ieee80211_link_data_managed mgd;
|
|
struct ieee80211_link_data_ap ap;
|
|
} u;
|
|
struct ieee80211_tx_queue_params tx_conf[4];
|
|
struct ieee80211_bss_conf *conf;
|
|
};
|
|
|
|
struct ieee80211_vif_cfg {
|
|
bool assoc;
|
|
bool ibss_joined;
|
|
bool ibss_creator;
|
|
bool ps;
|
|
u16 aid;
|
|
__be32 arp_addr_list[4];
|
|
int arp_addr_cnt;
|
|
u8 ssid[32];
|
|
size_t ssid_len;
|
|
bool s1g;
|
|
bool idle;
|
|
u8 ap_addr[6];
|
|
};
|
|
|
|
struct ieee80211_mu_group_data {
|
|
u8 membership[8];
|
|
u8 position[16];
|
|
};
|
|
|
|
struct ieee80211_p2p_noa_desc {
|
|
u8 count;
|
|
__le32 duration;
|
|
__le32 interval;
|
|
__le32 start_time;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_p2p_noa_attr {
|
|
u8 index;
|
|
u8 oppps_ctwindow;
|
|
struct ieee80211_p2p_noa_desc desc[4];
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_fils_discovery {
|
|
u32 min_interval;
|
|
u32 max_interval;
|
|
};
|
|
|
|
struct ieee80211_tx_pwr_env {
|
|
u8 tx_power_info;
|
|
s8 tx_power[8];
|
|
};
|
|
|
|
struct ieee80211_ftm_responder_params;
|
|
|
|
struct ieee80211_chanctx_conf;
|
|
|
|
struct ieee80211_bss_conf {
|
|
const u8 *bssid;
|
|
unsigned int link_id;
|
|
u8 addr[6];
|
|
u8 htc_trig_based_pkt_ext;
|
|
bool uora_exists;
|
|
u8 uora_ocw_range;
|
|
u16 frame_time_rts_th;
|
|
bool he_support;
|
|
bool twt_requester;
|
|
bool twt_responder;
|
|
bool twt_protected;
|
|
bool twt_broadcast;
|
|
bool use_cts_prot;
|
|
bool use_short_preamble;
|
|
bool use_short_slot;
|
|
bool enable_beacon;
|
|
u8 dtim_period;
|
|
u16 beacon_int;
|
|
u16 assoc_capability;
|
|
u64 sync_tsf;
|
|
u32 sync_device_ts;
|
|
u8 sync_dtim_count;
|
|
u32 basic_rates;
|
|
struct ieee80211_rate *beacon_rate;
|
|
int mcast_rate[6];
|
|
u16 ht_operation_mode;
|
|
s32 cqm_rssi_thold;
|
|
u32 cqm_rssi_hyst;
|
|
s32 cqm_rssi_low;
|
|
s32 cqm_rssi_high;
|
|
struct cfg80211_chan_def chandef;
|
|
struct ieee80211_mu_group_data mu_group;
|
|
bool qos;
|
|
bool hidden_ssid;
|
|
int txpower;
|
|
enum nl80211_tx_power_setting txpower_type;
|
|
struct ieee80211_p2p_noa_attr p2p_noa_attr;
|
|
bool allow_p2p_go_ps;
|
|
u16 max_idle_period;
|
|
bool protected_keep_alive;
|
|
bool ftm_responder;
|
|
struct ieee80211_ftm_responder_params *ftmr_params;
|
|
bool nontransmitted;
|
|
u8 transmitter_bssid[6];
|
|
u8 bssid_index;
|
|
u8 bssid_indicator;
|
|
bool ema_ap;
|
|
u8 profile_periodicity;
|
|
struct {
|
|
u32 params;
|
|
u16 nss_set;
|
|
} he_oper;
|
|
struct ieee80211_he_obss_pd he_obss_pd;
|
|
struct cfg80211_he_bss_color he_bss_color;
|
|
struct ieee80211_fils_discovery fils_discovery;
|
|
u32 unsol_bcast_probe_resp_interval;
|
|
struct cfg80211_bitrate_mask beacon_tx_rate;
|
|
enum ieee80211_ap_reg_power power_type;
|
|
struct ieee80211_tx_pwr_env tx_pwr_env[8];
|
|
u8 tx_pwr_env_num;
|
|
u8 pwr_reduction;
|
|
bool eht_support;
|
|
u16 eht_puncturing;
|
|
bool csa_active;
|
|
u16 csa_punct_bitmap;
|
|
bool mu_mimo_owner;
|
|
struct ieee80211_chanctx_conf __attribute__((btf_type_tag("rcu"))) *chanctx_conf;
|
|
bool color_change_active;
|
|
u8 color_change_color;
|
|
bool vht_su_beamformer;
|
|
bool vht_su_beamformee;
|
|
bool vht_mu_beamformer;
|
|
bool vht_mu_beamformee;
|
|
bool he_su_beamformer;
|
|
bool he_su_beamformee;
|
|
bool he_mu_beamformer;
|
|
bool he_full_ul_mumimo;
|
|
};
|
|
|
|
struct ieee80211_txq;
|
|
|
|
struct ieee80211_vif {
|
|
enum nl80211_iftype type;
|
|
struct ieee80211_vif_cfg cfg;
|
|
struct ieee80211_bss_conf bss_conf;
|
|
struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_conf[15];
|
|
u16 valid_links;
|
|
u16 active_links;
|
|
u8 addr[6];
|
|
bool p2p;
|
|
u8 cab_queue;
|
|
u8 hw_queue[4];
|
|
struct ieee80211_txq *txq;
|
|
netdev_features_t netdev_features;
|
|
u32 driver_flags;
|
|
u32 offload_flags;
|
|
bool probe_req_reg;
|
|
bool rx_mcast_action_reg;
|
|
struct ieee80211_vif *mbssid_tx_vif;
|
|
u8 drv_priv[0];
|
|
};
|
|
|
|
struct ieee80211_local;
|
|
|
|
struct mac80211_qos_map;
|
|
|
|
struct ieee80211_sub_if_data {
|
|
struct list_head list;
|
|
struct wireless_dev wdev;
|
|
struct list_head key_list;
|
|
int crypto_tx_tailroom_needed_cnt;
|
|
int crypto_tx_tailroom_pending_dec;
|
|
struct delayed_work dec_tailroom_needed_wk;
|
|
struct net_device *dev;
|
|
struct ieee80211_local *local;
|
|
unsigned int flags;
|
|
unsigned long state;
|
|
char name[16];
|
|
struct ieee80211_fragment_cache frags;
|
|
u16 noack_map;
|
|
u8 wmm_acm;
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *keys[4];
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_unicast_key;
|
|
u16 sequence_number;
|
|
u16 mld_mcast_seq;
|
|
__be16 control_port_protocol;
|
|
bool control_port_no_encrypt;
|
|
bool control_port_no_preauth;
|
|
bool control_port_over_nl80211;
|
|
atomic_t num_tx_queued;
|
|
struct mac80211_qos_map __attribute__((btf_type_tag("rcu"))) *qos_map;
|
|
struct work_struct recalc_smps;
|
|
struct work_struct work;
|
|
struct sk_buff_head skb_queue;
|
|
struct sk_buff_head status_queue;
|
|
struct ieee80211_if_ap *bss;
|
|
u32 rc_rateidx_mask[6];
|
|
bool rc_has_mcs_mask[6];
|
|
u8 rc_rateidx_mcs_mask[60];
|
|
bool rc_has_vht_mcs_mask[6];
|
|
u16 rc_rateidx_vht_mcs_mask[48];
|
|
u32 beacon_rateidx_mask[6];
|
|
bool beacon_rate_set;
|
|
union {
|
|
struct ieee80211_if_ap ap;
|
|
struct ieee80211_if_vlan vlan;
|
|
struct ieee80211_if_managed mgd;
|
|
struct ieee80211_if_ibss ibss;
|
|
struct ieee80211_if_mesh mesh;
|
|
struct ieee80211_if_ocb ocb;
|
|
struct ieee80211_if_mntr mntr;
|
|
struct ieee80211_if_nan nan;
|
|
} u;
|
|
struct ieee80211_link_data deflink;
|
|
struct ieee80211_link_data __attribute__((btf_type_tag("rcu"))) *link[15];
|
|
struct work_struct activate_links_work;
|
|
u16 desired_active_links;
|
|
struct ieee80211_vif vif;
|
|
};
|
|
|
|
struct ieee80211_conf {
|
|
u32 flags;
|
|
int power_level;
|
|
int dynamic_ps_timeout;
|
|
u16 listen_interval;
|
|
u8 ps_dtim_period;
|
|
u8 long_frame_max_tx_count;
|
|
u8 short_frame_max_tx_count;
|
|
struct cfg80211_chan_def chandef;
|
|
bool radar_enabled;
|
|
enum ieee80211_smps_mode smps_mode;
|
|
};
|
|
|
|
struct ieee80211_hw {
|
|
struct ieee80211_conf conf;
|
|
struct wiphy *wiphy;
|
|
const char *rate_control_algorithm;
|
|
void *priv;
|
|
unsigned long flags[1];
|
|
unsigned int extra_tx_headroom;
|
|
unsigned int extra_beacon_tailroom;
|
|
int vif_data_size;
|
|
int sta_data_size;
|
|
int chanctx_data_size;
|
|
int txq_data_size;
|
|
u16 queues;
|
|
u16 max_listen_interval;
|
|
s8 max_signal;
|
|
u8 max_rates;
|
|
u8 max_report_rates;
|
|
u8 max_rate_tries;
|
|
u16 max_rx_aggregation_subframes;
|
|
u16 max_tx_aggregation_subframes;
|
|
u8 max_tx_fragments;
|
|
u8 offchannel_tx_hw_queue;
|
|
u8 radiotap_mcs_details;
|
|
u16 radiotap_vht_details;
|
|
struct {
|
|
int units_pos;
|
|
s16 accuracy;
|
|
} radiotap_timestamp;
|
|
netdev_features_t netdev_features;
|
|
u8 uapsd_queues;
|
|
u8 uapsd_max_sp_len;
|
|
u8 max_nan_de_entries;
|
|
u8 tx_sk_pacing_shift;
|
|
u8 weight_multiplier;
|
|
u32 max_mtu;
|
|
const s8 *tx_power_levels;
|
|
u8 max_txpwr_levels_idx;
|
|
};
|
|
|
|
struct fq_flow;
|
|
|
|
struct fq {
|
|
struct fq_flow *flows;
|
|
unsigned long *flows_bitmap;
|
|
struct list_head tin_backlog;
|
|
spinlock_t lock;
|
|
u32 flows_cnt;
|
|
u32 limit;
|
|
u32 memory_limit;
|
|
u32 memory_usage;
|
|
u32 quantum;
|
|
u32 backlog;
|
|
u32 overlimit;
|
|
u32 overmemory;
|
|
u32 collisions;
|
|
};
|
|
|
|
typedef u32 codel_time_t;
|
|
|
|
struct codel_params {
|
|
codel_time_t target;
|
|
codel_time_t ce_threshold;
|
|
codel_time_t interval;
|
|
u32 mtu;
|
|
bool ecn;
|
|
u8 ce_threshold_selector;
|
|
u8 ce_threshold_mask;
|
|
};
|
|
|
|
struct rhltable {
|
|
struct rhashtable ht;
|
|
};
|
|
|
|
struct arc4_ctx {
|
|
u32 S[256];
|
|
u32 x;
|
|
u32 y;
|
|
};
|
|
|
|
enum mac80211_scan_state {
|
|
SCAN_DECISION = 0,
|
|
SCAN_SET_CHANNEL = 1,
|
|
SCAN_SEND_PROBE = 2,
|
|
SCAN_SUSPEND = 3,
|
|
SCAN_RESUME = 4,
|
|
SCAN_ABORT = 5,
|
|
};
|
|
|
|
struct led_classdev;
|
|
|
|
struct led_hw_trigger_type;
|
|
|
|
struct led_trigger {
|
|
const char *name;
|
|
int (*activate)(struct led_classdev *);
|
|
void (*deactivate)(struct led_classdev *);
|
|
struct led_hw_trigger_type *trigger_type;
|
|
spinlock_t leddev_list_lock;
|
|
struct list_head led_cdevs;
|
|
struct list_head next_trig;
|
|
const struct attribute_group **groups;
|
|
};
|
|
|
|
struct codel_vars;
|
|
|
|
struct ieee80211_ops;
|
|
|
|
struct rate_control_ref;
|
|
|
|
struct ieee80211_scan_request;
|
|
|
|
struct tpt_led_trigger;
|
|
|
|
struct ieee80211_local {
|
|
struct ieee80211_hw hw;
|
|
struct fq fq;
|
|
struct codel_vars *cvars;
|
|
struct codel_params cparams;
|
|
spinlock_t active_txq_lock[4];
|
|
struct list_head active_txqs[4];
|
|
u16 schedule_round[4];
|
|
u16 airtime_flags;
|
|
u32 aql_txq_limit_low[4];
|
|
u32 aql_txq_limit_high[4];
|
|
u32 aql_threshold;
|
|
atomic_t aql_total_pending_airtime;
|
|
atomic_t aql_ac_pending_airtime[4];
|
|
const struct ieee80211_ops *ops;
|
|
struct workqueue_struct *workqueue;
|
|
unsigned long queue_stop_reasons[16];
|
|
int q_stop_reasons[176];
|
|
spinlock_t queue_stop_reason_lock;
|
|
int open_count;
|
|
int monitors;
|
|
int cooked_mntrs;
|
|
int fif_fcsfail;
|
|
int fif_plcpfail;
|
|
int fif_control;
|
|
int fif_other_bss;
|
|
int fif_pspoll;
|
|
int fif_probe_req;
|
|
bool probe_req_reg;
|
|
bool rx_mcast_action_reg;
|
|
unsigned int filter_flags;
|
|
bool wiphy_ciphers_allocated;
|
|
bool use_chanctx;
|
|
spinlock_t filter_lock;
|
|
struct work_struct reconfig_filter;
|
|
struct netdev_hw_addr_list mc_list;
|
|
bool tim_in_locked_section;
|
|
bool suspended;
|
|
bool suspending;
|
|
bool resuming;
|
|
bool quiescing;
|
|
bool started;
|
|
bool in_reconfig;
|
|
bool wowlan;
|
|
struct work_struct radar_detected_work;
|
|
u8 rx_chains;
|
|
u8 sband_allocated;
|
|
int tx_headroom;
|
|
struct tasklet_struct tasklet;
|
|
struct sk_buff_head skb_queue;
|
|
struct sk_buff_head skb_queue_unreliable;
|
|
spinlock_t rx_path_lock;
|
|
struct mutex sta_mtx;
|
|
spinlock_t tim_lock;
|
|
unsigned long num_sta;
|
|
struct list_head sta_list;
|
|
struct rhltable sta_hash;
|
|
struct rhltable link_sta_hash;
|
|
struct timer_list sta_cleanup;
|
|
int sta_generation;
|
|
struct sk_buff_head pending[16];
|
|
struct tasklet_struct tx_pending_tasklet;
|
|
struct tasklet_struct wake_txqs_tasklet;
|
|
atomic_t agg_queue_stop[16];
|
|
atomic_t iff_allmultis;
|
|
struct rate_control_ref *rate_ctrl;
|
|
struct arc4_ctx wep_tx_ctx;
|
|
struct arc4_ctx wep_rx_ctx;
|
|
u32 wep_iv;
|
|
struct list_head interfaces;
|
|
struct list_head mon_list;
|
|
struct mutex iflist_mtx;
|
|
struct mutex key_mtx;
|
|
struct mutex mtx;
|
|
unsigned long scanning;
|
|
struct cfg80211_ssid scan_ssid;
|
|
struct cfg80211_scan_request *int_scan_req;
|
|
struct cfg80211_scan_request __attribute__((btf_type_tag("rcu"))) *scan_req;
|
|
struct ieee80211_scan_request *hw_scan_req;
|
|
struct cfg80211_chan_def scan_chandef;
|
|
enum nl80211_band hw_scan_band;
|
|
int scan_channel_idx;
|
|
int scan_ies_len;
|
|
int hw_scan_ies_bufsize;
|
|
struct cfg80211_scan_info scan_info;
|
|
struct work_struct sched_scan_stopped_work;
|
|
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *sched_scan_sdata;
|
|
struct cfg80211_sched_scan_request __attribute__((btf_type_tag("rcu"))) *sched_scan_req;
|
|
u8 scan_addr[6];
|
|
unsigned long leave_oper_channel_time;
|
|
enum mac80211_scan_state next_scan_state;
|
|
struct delayed_work scan_work;
|
|
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *scan_sdata;
|
|
struct cfg80211_chan_def _oper_chandef;
|
|
struct ieee80211_channel *tmp_channel;
|
|
struct list_head chanctx_list;
|
|
struct mutex chanctx_mtx;
|
|
struct led_trigger tx_led;
|
|
struct led_trigger rx_led;
|
|
struct led_trigger assoc_led;
|
|
struct led_trigger radio_led;
|
|
struct led_trigger tpt_led;
|
|
atomic_t tx_led_active;
|
|
atomic_t rx_led_active;
|
|
atomic_t assoc_led_active;
|
|
atomic_t radio_led_active;
|
|
atomic_t tpt_led_active;
|
|
struct tpt_led_trigger *tpt_led_trigger;
|
|
int total_ps_buffered;
|
|
bool pspolling;
|
|
struct ieee80211_sub_if_data *ps_sdata;
|
|
struct work_struct dynamic_ps_enable_work;
|
|
struct work_struct dynamic_ps_disable_work;
|
|
struct timer_list dynamic_ps_timer;
|
|
struct notifier_block ifa_notifier;
|
|
struct notifier_block ifa6_notifier;
|
|
int dynamic_ps_forced_timeout;
|
|
int user_power_level;
|
|
enum ieee80211_smps_mode smps_mode;
|
|
struct work_struct restart_work;
|
|
struct delayed_work roc_work;
|
|
struct list_head roc_list;
|
|
struct work_struct hw_roc_start;
|
|
struct work_struct hw_roc_done;
|
|
unsigned long hw_roc_start_time;
|
|
u64 roc_cookie_counter;
|
|
struct idr ack_status_frames;
|
|
spinlock_t ack_status_lock;
|
|
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *p2p_sdata;
|
|
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *monitor_sdata;
|
|
struct cfg80211_chan_def monitor_chandef;
|
|
u8 ext_capa[8];
|
|
};
|
|
|
|
struct fq_tin;
|
|
|
|
struct fq_flow {
|
|
struct fq_tin *tin;
|
|
struct list_head flowchain;
|
|
struct sk_buff_head queue;
|
|
u32 backlog;
|
|
int deficit;
|
|
};
|
|
|
|
struct fq_tin {
|
|
struct list_head new_flows;
|
|
struct list_head old_flows;
|
|
struct list_head tin_list;
|
|
struct fq_flow default_flow;
|
|
u32 backlog_bytes;
|
|
u32 backlog_packets;
|
|
u32 overlimit;
|
|
u32 collisions;
|
|
u32 flows;
|
|
u32 tx_bytes;
|
|
u32 tx_packets;
|
|
};
|
|
|
|
struct codel_vars {
|
|
u32 count;
|
|
u32 lastcount;
|
|
bool dropping;
|
|
u16 rec_inv_sqrt;
|
|
codel_time_t first_above_time;
|
|
codel_time_t drop_next;
|
|
codel_time_t ldelay;
|
|
};
|
|
|
|
struct ieee80211_tx_control;
|
|
|
|
struct ieee80211_sta;
|
|
|
|
struct ieee80211_key_conf;
|
|
|
|
struct ieee80211_scan_ies;
|
|
|
|
struct ieee80211_low_level_stats;
|
|
|
|
struct ieee80211_key_seq;
|
|
|
|
struct ieee80211_ampdu_params;
|
|
|
|
struct ieee80211_channel_switch;
|
|
|
|
struct ieee80211_event;
|
|
|
|
struct ieee80211_prep_tx_info;
|
|
|
|
struct ieee80211_vif_chanctx_switch;
|
|
|
|
struct ieee80211_tdls_ch_sw_params;
|
|
|
|
struct ieee80211_twt_setup;
|
|
|
|
struct ieee80211_ops {
|
|
void (*tx)(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *);
|
|
int (*start)(struct ieee80211_hw *);
|
|
void (*stop)(struct ieee80211_hw *);
|
|
int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *);
|
|
int (*resume)(struct ieee80211_hw *);
|
|
void (*set_wakeup)(struct ieee80211_hw *, bool);
|
|
int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool);
|
|
void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*config)(struct ieee80211_hw *, u32);
|
|
void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
|
|
void (*vif_cfg_changed)(struct ieee80211_hw *, struct ieee80211_vif *, u64);
|
|
void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
|
|
int (*start_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
|
|
void (*stop_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
|
|
u64 (*prepare_multicast)(struct ieee80211_hw *, struct netdev_hw_addr_list *);
|
|
void (*configure_filter)(struct ieee80211_hw *, unsigned int, unsigned int *, u64);
|
|
void (*config_iface_filter)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, unsigned int);
|
|
int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool);
|
|
int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *);
|
|
void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *);
|
|
void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *);
|
|
void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int);
|
|
int (*hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_scan_request *);
|
|
void (*cancel_hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*sched_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_sched_scan_request *, struct ieee80211_scan_ies *);
|
|
int (*sched_scan_stop)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
void (*sw_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, const u8 *);
|
|
void (*sw_scan_complete)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*get_stats)(struct ieee80211_hw *, struct ieee80211_low_level_stats *);
|
|
void (*get_key_seq)(struct ieee80211_hw *, struct ieee80211_key_conf *, struct ieee80211_key_seq *);
|
|
int (*set_frag_threshold)(struct ieee80211_hw *, u32);
|
|
int (*set_rts_threshold)(struct ieee80211_hw *, u32);
|
|
int (*sta_add)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
|
|
int (*sta_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
|
|
void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *);
|
|
int (*sta_set_txpwr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
|
|
int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state);
|
|
void (*sta_pre_rcu_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
|
|
void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32);
|
|
void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
|
|
void (*sta_statistics)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct station_info *);
|
|
int (*conf_tx)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, u16, const struct ieee80211_tx_queue_params *);
|
|
u64 (*get_tsf)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
void (*set_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, u64);
|
|
void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64);
|
|
void (*reset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*tx_last_beacon)(struct ieee80211_hw *);
|
|
int (*ampdu_action)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_ampdu_params *);
|
|
int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *);
|
|
void (*rfkill_poll)(struct ieee80211_hw *);
|
|
void (*set_coverage_class)(struct ieee80211_hw *, s16);
|
|
void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool);
|
|
void (*channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *);
|
|
int (*set_antenna)(struct ieee80211_hw *, u32, u32);
|
|
int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *);
|
|
int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type);
|
|
int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*set_ringparam)(struct ieee80211_hw *, u32, u32);
|
|
void (*get_ringparam)(struct ieee80211_hw *, u32 *, u32 *, u32 *, u32 *);
|
|
bool (*tx_frames_pending)(struct ieee80211_hw *);
|
|
int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *);
|
|
void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *);
|
|
void (*allow_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
|
|
void (*release_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
|
|
int (*get_et_sset_count)(struct ieee80211_hw *, struct ieee80211_vif *, int);
|
|
void (*get_et_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct ethtool_stats *, u64 *);
|
|
void (*get_et_strings)(struct ieee80211_hw *, struct ieee80211_vif *, u32, u8 *);
|
|
void (*mgd_prepare_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *);
|
|
void (*mgd_complete_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *);
|
|
void (*mgd_protect_tdls_discover)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*add_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *);
|
|
void (*remove_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *);
|
|
void (*change_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *, u32);
|
|
int (*assign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *);
|
|
void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *);
|
|
int (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode);
|
|
void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type);
|
|
void (*ipv6_addr_change)(struct ieee80211_hw *, struct ieee80211_vif *, struct inet6_dev *);
|
|
void (*channel_switch_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_chan_def *);
|
|
int (*pre_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *);
|
|
int (*post_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
void (*abort_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
void (*channel_switch_rx_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *);
|
|
int (*join_ibss)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
void (*leave_ibss)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
u32 (*get_expected_throughput)(struct ieee80211_hw *, struct ieee80211_sta *);
|
|
int (*get_txpower)(struct ieee80211_hw *, struct ieee80211_vif *, int *);
|
|
int (*tdls_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *, struct sk_buff *, u32);
|
|
void (*tdls_cancel_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
|
|
void (*tdls_recv_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_tdls_ch_sw_params *);
|
|
void (*wake_tx_queue)(struct ieee80211_hw *, struct ieee80211_txq *);
|
|
void (*sync_rx_queues)(struct ieee80211_hw *);
|
|
int (*start_nan)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *);
|
|
int (*stop_nan)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
int (*nan_change_conf)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *, u32);
|
|
int (*add_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_nan_func *);
|
|
void (*del_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, u8);
|
|
bool (*can_aggregate_in_amsdu)(struct ieee80211_hw *, struct sk_buff *, struct sk_buff *);
|
|
int (*get_ftm_responder_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_ftm_responder_stats *);
|
|
int (*start_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *);
|
|
void (*abort_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *);
|
|
int (*set_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct cfg80211_tid_config *);
|
|
int (*reset_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8);
|
|
void (*update_vif_offload)(struct ieee80211_hw *, struct ieee80211_vif *);
|
|
void (*sta_set_4addr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool);
|
|
int (*set_sar_specs)(struct ieee80211_hw *, const struct cfg80211_sar_specs *);
|
|
void (*sta_set_decap_offload)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool);
|
|
void (*add_twt_setup)(struct ieee80211_hw *, struct ieee80211_sta *, struct ieee80211_twt_setup *);
|
|
void (*twt_teardown_request)(struct ieee80211_hw *, struct ieee80211_sta *, u8);
|
|
int (*set_radar_background)(struct ieee80211_hw *, struct cfg80211_chan_def *);
|
|
int (*net_fill_forward_path)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct net_device_path_ctx *, struct net_device_path *);
|
|
int (*change_vif_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16, u16, struct ieee80211_bss_conf **);
|
|
int (*change_sta_links)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u16, u16);
|
|
};
|
|
|
|
struct ieee80211_tx_control {
|
|
struct ieee80211_sta *sta;
|
|
};
|
|
|
|
struct ieee80211_sta_aggregates {
|
|
u16 max_amsdu_len;
|
|
u16 max_rc_amsdu_len;
|
|
u16 max_tid_amsdu_len[16];
|
|
};
|
|
|
|
struct ieee80211_sta_txpwr {
|
|
s16 power;
|
|
enum nl80211_tx_power_setting type;
|
|
};
|
|
|
|
struct ieee80211_link_sta {
|
|
struct ieee80211_sta *sta;
|
|
u8 addr[6];
|
|
u8 link_id;
|
|
char: 8;
|
|
enum ieee80211_smps_mode smps_mode;
|
|
u32 supp_rates[6];
|
|
struct ieee80211_sta_ht_cap ht_cap;
|
|
short: 16;
|
|
struct ieee80211_sta_vht_cap vht_cap;
|
|
struct ieee80211_sta_he_cap he_cap;
|
|
struct ieee80211_he_6ghz_capa he_6ghz_capa;
|
|
struct ieee80211_sta_eht_cap eht_cap;
|
|
struct ieee80211_sta_aggregates agg;
|
|
u8 rx_nss;
|
|
char: 8;
|
|
enum ieee80211_sta_rx_bandwidth bandwidth;
|
|
struct ieee80211_sta_txpwr txpwr;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_sta_rates;
|
|
|
|
struct ieee80211_sta {
|
|
u8 addr[6];
|
|
u16 aid;
|
|
u16 max_rx_aggregation_subframes;
|
|
bool wme;
|
|
u8 uapsd_queues;
|
|
u8 max_sp;
|
|
struct ieee80211_sta_rates __attribute__((btf_type_tag("rcu"))) *rates;
|
|
bool tdls;
|
|
bool tdls_initiator;
|
|
bool mfp;
|
|
bool mlo;
|
|
u8 max_amsdu_subframes;
|
|
struct ieee80211_sta_aggregates *cur;
|
|
bool support_p2p_ps;
|
|
struct ieee80211_txq *txq[17];
|
|
u16 valid_links;
|
|
struct ieee80211_link_sta deflink;
|
|
struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *link[15];
|
|
u8 drv_priv[0];
|
|
};
|
|
|
|
struct ieee80211_sta_rates {
|
|
struct callback_head callback_head;
|
|
struct {
|
|
s8 idx;
|
|
u8 count;
|
|
u8 count_cts;
|
|
u8 count_rts;
|
|
u16 flags;
|
|
} rate[4];
|
|
};
|
|
|
|
struct ieee80211_txq {
|
|
struct ieee80211_vif *vif;
|
|
struct ieee80211_sta *sta;
|
|
u8 tid;
|
|
u8 ac;
|
|
long: 48;
|
|
u8 drv_priv[0];
|
|
};
|
|
|
|
struct ieee80211_ftm_responder_params {
|
|
const u8 *lci;
|
|
const u8 *civicloc;
|
|
size_t lci_len;
|
|
size_t civicloc_len;
|
|
};
|
|
|
|
struct ieee80211_chanctx_conf {
|
|
struct cfg80211_chan_def def;
|
|
struct cfg80211_chan_def min_def;
|
|
u8 rx_chains_static;
|
|
u8 rx_chains_dynamic;
|
|
bool radar_enabled;
|
|
long: 40;
|
|
u8 drv_priv[0];
|
|
};
|
|
|
|
struct ieee80211_key_conf {
|
|
atomic64_t tx_pn;
|
|
u32 cipher;
|
|
u8 icv_len;
|
|
u8 iv_len;
|
|
u8 hw_key_idx;
|
|
s8 keyidx;
|
|
u16 flags;
|
|
s8 link_id;
|
|
u8 keylen;
|
|
u8 key[0];
|
|
};
|
|
|
|
struct ieee80211_scan_ies {
|
|
const u8 *ies[6];
|
|
size_t len[6];
|
|
const u8 *common_ies;
|
|
size_t common_ie_len;
|
|
};
|
|
|
|
struct ieee80211_scan_request {
|
|
struct ieee80211_scan_ies ies;
|
|
struct cfg80211_scan_request req;
|
|
};
|
|
|
|
struct ieee80211_low_level_stats {
|
|
unsigned int dot11ACKFailureCount;
|
|
unsigned int dot11RTSFailureCount;
|
|
unsigned int dot11FCSErrorCount;
|
|
unsigned int dot11RTSSuccessCount;
|
|
};
|
|
|
|
struct ieee80211_key_seq {
|
|
union {
|
|
struct {
|
|
u32 iv32;
|
|
u16 iv16;
|
|
} tkip;
|
|
struct {
|
|
u8 pn[6];
|
|
} ccmp;
|
|
struct {
|
|
u8 pn[6];
|
|
} aes_cmac;
|
|
struct {
|
|
u8 pn[6];
|
|
} aes_gmac;
|
|
struct {
|
|
u8 pn[6];
|
|
} gcmp;
|
|
struct {
|
|
u8 seq[16];
|
|
u8 seq_len;
|
|
} hw;
|
|
};
|
|
};
|
|
|
|
struct ieee80211_ampdu_params {
|
|
enum ieee80211_ampdu_mlme_action action;
|
|
struct ieee80211_sta *sta;
|
|
u16 tid;
|
|
u16 ssn;
|
|
u16 buf_size;
|
|
bool amsdu;
|
|
u16 timeout;
|
|
};
|
|
|
|
struct ieee80211_channel_switch {
|
|
u64 timestamp;
|
|
u32 device_timestamp;
|
|
bool block_tx;
|
|
struct cfg80211_chan_def chandef;
|
|
u8 count;
|
|
u32 delay;
|
|
};
|
|
|
|
struct ieee80211_rssi_event {
|
|
enum ieee80211_rssi_event_data data;
|
|
};
|
|
|
|
struct ieee80211_mlme_event {
|
|
enum ieee80211_mlme_event_data data;
|
|
enum ieee80211_mlme_event_status status;
|
|
u16 reason;
|
|
};
|
|
|
|
struct ieee80211_ba_event {
|
|
struct ieee80211_sta *sta;
|
|
u16 tid;
|
|
u16 ssn;
|
|
};
|
|
|
|
struct ieee80211_event {
|
|
enum ieee80211_event_type type;
|
|
union {
|
|
struct ieee80211_rssi_event rssi;
|
|
struct ieee80211_mlme_event mlme;
|
|
struct ieee80211_ba_event ba;
|
|
} u;
|
|
};
|
|
|
|
struct ieee80211_prep_tx_info {
|
|
u16 duration;
|
|
u16 subtype;
|
|
u8 success: 1;
|
|
};
|
|
|
|
struct ieee80211_vif_chanctx_switch {
|
|
struct ieee80211_vif *vif;
|
|
struct ieee80211_bss_conf *link_conf;
|
|
struct ieee80211_chanctx_conf *old_ctx;
|
|
struct ieee80211_chanctx_conf *new_ctx;
|
|
};
|
|
|
|
struct ieee80211_tdls_ch_sw_params {
|
|
struct ieee80211_sta *sta;
|
|
struct cfg80211_chan_def *chandef;
|
|
u8 action_code;
|
|
u32 status;
|
|
u32 timestamp;
|
|
u16 switch_time;
|
|
u16 switch_timeout;
|
|
struct sk_buff *tmpl_skb;
|
|
u32 ch_sw_tm_ie;
|
|
};
|
|
|
|
struct ieee80211_twt_setup {
|
|
u8 dialog_token;
|
|
u8 element_id;
|
|
u8 length;
|
|
u8 control;
|
|
u8 params[0];
|
|
};
|
|
|
|
enum led_brightness {
|
|
LED_OFF = 0,
|
|
LED_ON = 1,
|
|
LED_HALF = 127,
|
|
LED_FULL = 255,
|
|
};
|
|
|
|
struct led_pattern;
|
|
|
|
struct led_classdev {
|
|
const char *name;
|
|
unsigned int brightness;
|
|
unsigned int max_brightness;
|
|
int flags;
|
|
unsigned long work_flags;
|
|
void (*brightness_set)(struct led_classdev *, enum led_brightness);
|
|
int (*brightness_set_blocking)(struct led_classdev *, enum led_brightness);
|
|
enum led_brightness (*brightness_get)(struct led_classdev *);
|
|
int (*blink_set)(struct led_classdev *, unsigned long *, unsigned long *);
|
|
int (*pattern_set)(struct led_classdev *, struct led_pattern *, u32, int);
|
|
int (*pattern_clear)(struct led_classdev *);
|
|
struct device *dev;
|
|
const struct attribute_group **groups;
|
|
struct list_head node;
|
|
const char *default_trigger;
|
|
unsigned long blink_delay_on;
|
|
unsigned long blink_delay_off;
|
|
struct timer_list blink_timer;
|
|
int blink_brightness;
|
|
int new_blink_brightness;
|
|
void (*flash_resume)(struct led_classdev *);
|
|
struct work_struct set_brightness_work;
|
|
int delayed_set_value;
|
|
struct rw_semaphore trigger_lock;
|
|
struct led_trigger *trigger;
|
|
struct list_head trig_list;
|
|
void *trigger_data;
|
|
bool activated;
|
|
struct led_hw_trigger_type *trigger_type;
|
|
struct mutex led_access;
|
|
};
|
|
|
|
struct led_pattern {
|
|
u32 delta_t;
|
|
int brightness;
|
|
};
|
|
|
|
struct led_hw_trigger_type {
|
|
int dummy;
|
|
};
|
|
|
|
struct ieee80211_tpt_blink;
|
|
|
|
struct tpt_led_trigger {
|
|
char name[32];
|
|
const struct ieee80211_tpt_blink *blink_table;
|
|
unsigned int blink_table_len;
|
|
struct timer_list timer;
|
|
struct ieee80211_local *local;
|
|
unsigned long prev_traffic;
|
|
unsigned long tx_bytes;
|
|
unsigned long rx_bytes;
|
|
unsigned int active;
|
|
unsigned int want;
|
|
bool running;
|
|
};
|
|
|
|
struct ieee80211_tpt_blink {
|
|
int throughput;
|
|
int blink_time;
|
|
};
|
|
|
|
enum ieee80211_internal_tkip_state {
|
|
TKIP_STATE_NOT_INIT = 0,
|
|
TKIP_STATE_PHASE1_DONE = 1,
|
|
TKIP_STATE_PHASE1_HW_UPLOADED = 2,
|
|
};
|
|
|
|
struct tkip_ctx {
|
|
u16 p1k[5];
|
|
u32 p1k_iv32;
|
|
enum ieee80211_internal_tkip_state state;
|
|
};
|
|
|
|
struct tkip_ctx_rx {
|
|
struct tkip_ctx ctx;
|
|
u32 iv32;
|
|
u16 iv16;
|
|
};
|
|
|
|
struct crypto_aead;
|
|
|
|
struct ieee80211_key {
|
|
struct ieee80211_local *local;
|
|
struct ieee80211_sub_if_data *sdata;
|
|
struct sta_info *sta;
|
|
struct list_head list;
|
|
unsigned int flags;
|
|
union {
|
|
struct {
|
|
spinlock_t txlock;
|
|
struct tkip_ctx tx;
|
|
struct tkip_ctx_rx rx[16];
|
|
u32 mic_failures;
|
|
} tkip;
|
|
struct {
|
|
u8 rx_pn[102];
|
|
struct crypto_aead *tfm;
|
|
u32 replays;
|
|
} ccmp;
|
|
struct {
|
|
u8 rx_pn[6];
|
|
struct crypto_shash *tfm;
|
|
u32 replays;
|
|
u32 icverrors;
|
|
} aes_cmac;
|
|
struct {
|
|
u8 rx_pn[6];
|
|
struct crypto_aead *tfm;
|
|
u32 replays;
|
|
u32 icverrors;
|
|
} aes_gmac;
|
|
struct {
|
|
u8 rx_pn[102];
|
|
struct crypto_aead *tfm;
|
|
u32 replays;
|
|
} gcmp;
|
|
struct {
|
|
u8 rx_pn[272];
|
|
} gen;
|
|
} u;
|
|
unsigned int color;
|
|
struct ieee80211_key_conf conf;
|
|
};
|
|
|
|
struct airtime_info {
|
|
u64 rx_airtime;
|
|
u64 tx_airtime;
|
|
u32 last_active;
|
|
s32 deficit;
|
|
atomic_t aql_tx_pending;
|
|
u32 aql_limit_low;
|
|
u32 aql_limit_high;
|
|
};
|
|
|
|
struct tid_ampdu_rx;
|
|
|
|
struct tid_ampdu_tx;
|
|
|
|
struct sta_ampdu_mlme {
|
|
struct mutex mtx;
|
|
struct tid_ampdu_rx __attribute__((btf_type_tag("rcu"))) *tid_rx[16];
|
|
u8 tid_rx_token[16];
|
|
unsigned long tid_rx_timer_expired[1];
|
|
unsigned long tid_rx_stop_requested[1];
|
|
unsigned long tid_rx_manage_offl[1];
|
|
unsigned long agg_session_valid[1];
|
|
unsigned long unexpected_agg[1];
|
|
struct work_struct work;
|
|
struct tid_ampdu_tx __attribute__((btf_type_tag("rcu"))) *tid_tx[16];
|
|
struct tid_ampdu_tx *tid_start_tx[16];
|
|
unsigned long last_addba_req_time[16];
|
|
u8 addba_req_num[16];
|
|
u8 dialog_token_allocator;
|
|
};
|
|
|
|
struct ieee80211_sta_rx_stats {
|
|
unsigned long packets;
|
|
unsigned long last_rx;
|
|
unsigned long num_duplicates;
|
|
unsigned long fragments;
|
|
unsigned long dropped;
|
|
int last_signal;
|
|
u8 chains;
|
|
s8 chain_signal_last[4];
|
|
u32 last_rate;
|
|
struct u64_stats_sync syncp;
|
|
u64 bytes;
|
|
u64 msdu[17];
|
|
};
|
|
|
|
struct ewma_signal {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct ewma_avg_signal {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct ieee80211_tx_rate {
|
|
s8 idx;
|
|
u16 count: 5;
|
|
u16 flags: 11;
|
|
} __attribute__((packed));
|
|
|
|
struct link_sta_info {
|
|
u8 addr[6];
|
|
u8 link_id;
|
|
struct rhlist_head link_hash_node;
|
|
struct sta_info *sta;
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8];
|
|
struct ieee80211_sta_rx_stats __attribute__((btf_type_tag("percpu"))) *pcpu_rx_stats;
|
|
struct ieee80211_sta_rx_stats rx_stats;
|
|
struct {
|
|
struct ewma_signal signal;
|
|
struct ewma_signal chain_signal[4];
|
|
} rx_stats_avg;
|
|
struct {
|
|
unsigned long filtered;
|
|
unsigned long retry_failed;
|
|
unsigned long retry_count;
|
|
unsigned int lost_packets;
|
|
unsigned long last_pkt_time;
|
|
u64 msdu_retries[17];
|
|
u64 msdu_failed[17];
|
|
unsigned long last_ack;
|
|
s8 last_ack_signal;
|
|
bool ack_signal_filled;
|
|
struct ewma_avg_signal avg_ack_signal;
|
|
} status_stats;
|
|
struct {
|
|
u64 packets[4];
|
|
u64 bytes[4];
|
|
struct ieee80211_tx_rate last_rate;
|
|
struct rate_info last_rate_info;
|
|
u64 msdu[17];
|
|
} tx_stats;
|
|
enum ieee80211_sta_rx_bandwidth cur_max_bandwidth;
|
|
struct ieee80211_link_sta *pub;
|
|
};
|
|
|
|
struct ieee80211_fast_tx;
|
|
|
|
struct ieee80211_fast_rx;
|
|
|
|
struct sta_info {
|
|
struct list_head list;
|
|
struct list_head free_list;
|
|
struct callback_head callback_head;
|
|
struct rhlist_head hash_node;
|
|
u8 addr[6];
|
|
struct ieee80211_local *local;
|
|
struct ieee80211_sub_if_data *sdata;
|
|
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *ptk[4];
|
|
u8 ptk_idx;
|
|
struct rate_control_ref *rate_ctrl;
|
|
void *rate_ctrl_priv;
|
|
spinlock_t rate_ctrl_lock;
|
|
spinlock_t lock;
|
|
struct ieee80211_fast_tx __attribute__((btf_type_tag("rcu"))) *fast_tx;
|
|
struct ieee80211_fast_rx __attribute__((btf_type_tag("rcu"))) *fast_rx;
|
|
struct work_struct drv_deliver_wk;
|
|
u16 listen_interval;
|
|
bool dead;
|
|
bool removed;
|
|
bool uploaded;
|
|
enum ieee80211_sta_state sta_state;
|
|
unsigned long _flags;
|
|
spinlock_t ps_lock;
|
|
struct sk_buff_head ps_tx_buf[4];
|
|
struct sk_buff_head tx_filtered[4];
|
|
unsigned long driver_buffered_tids;
|
|
unsigned long txq_buffered_tids;
|
|
u64 assoc_at;
|
|
long last_connected;
|
|
__le16 last_seq_ctrl[17];
|
|
u16 tid_seq[16];
|
|
struct airtime_info airtime[4];
|
|
u16 airtime_weight;
|
|
struct sta_ampdu_mlme ampdu_mlme;
|
|
struct codel_params cparams;
|
|
u8 reserved_tid;
|
|
s8 amsdu_mesh_control;
|
|
struct cfg80211_chan_def tdls_chandef;
|
|
struct ieee80211_fragment_cache frags;
|
|
struct ieee80211_sta_aggregates cur;
|
|
struct link_sta_info deflink;
|
|
struct link_sta_info __attribute__((btf_type_tag("rcu"))) *link[15];
|
|
struct ieee80211_sta sta;
|
|
};
|
|
|
|
struct ieee80211_fast_tx {
|
|
struct ieee80211_key *key;
|
|
u8 hdr_len;
|
|
u8 sa_offs;
|
|
u8 da_offs;
|
|
u8 pn_offs;
|
|
u8 band;
|
|
char: 8;
|
|
u8 hdr[56];
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct ieee80211_fast_rx {
|
|
struct net_device *dev;
|
|
enum nl80211_iftype vif_type;
|
|
u8 vif_addr[6];
|
|
u8 rfc1042_hdr[6];
|
|
__be16 control_port_protocol;
|
|
__le16 expected_ds_bits;
|
|
u8 icv_len;
|
|
u8 key: 1;
|
|
u8 internal_forward: 1;
|
|
u8 uses_rss: 1;
|
|
u8 da_offs;
|
|
u8 sa_offs;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct tid_ampdu_rx {
|
|
struct callback_head callback_head;
|
|
spinlock_t reorder_lock;
|
|
u64 reorder_buf_filtered;
|
|
struct sk_buff_head *reorder_buf;
|
|
unsigned long *reorder_time;
|
|
struct sta_info *sta;
|
|
struct timer_list session_timer;
|
|
struct timer_list reorder_timer;
|
|
unsigned long last_rx;
|
|
u16 head_seq_num;
|
|
u16 stored_mpdu_num;
|
|
u16 ssn;
|
|
u16 buf_size;
|
|
u16 timeout;
|
|
u8 tid;
|
|
u8 auto_seq: 1;
|
|
u8 removed: 1;
|
|
u8 started: 1;
|
|
};
|
|
|
|
struct tid_ampdu_tx {
|
|
struct callback_head callback_head;
|
|
struct timer_list session_timer;
|
|
struct timer_list addba_resp_timer;
|
|
struct sk_buff_head pending;
|
|
struct sta_info *sta;
|
|
unsigned long state;
|
|
unsigned long last_tx;
|
|
u16 timeout;
|
|
u8 dialog_token;
|
|
u8 stop_initiator;
|
|
bool tx_stop;
|
|
u16 buf_size;
|
|
u16 ssn;
|
|
u16 failed_bar_ssn;
|
|
bool bar_pending;
|
|
bool amsdu;
|
|
u8 tid;
|
|
};
|
|
|
|
struct crypto_aead {
|
|
unsigned int authsize;
|
|
unsigned int reqsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct rtattr {
|
|
unsigned short rta_len;
|
|
unsigned short rta_type;
|
|
};
|
|
|
|
struct mac80211_qos_map {
|
|
struct cfg80211_qos_map qos_map;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
enum ieee80211_chanctx_replace_state {
|
|
IEEE80211_CHANCTX_REPLACE_NONE = 0,
|
|
IEEE80211_CHANCTX_WILL_BE_REPLACED = 1,
|
|
IEEE80211_CHANCTX_REPLACES_OTHER = 2,
|
|
};
|
|
|
|
enum ieee80211_chanctx_mode {
|
|
IEEE80211_CHANCTX_SHARED = 0,
|
|
IEEE80211_CHANCTX_EXCLUSIVE = 1,
|
|
};
|
|
|
|
struct ieee80211_chanctx {
|
|
struct list_head list;
|
|
struct callback_head callback_head;
|
|
struct list_head assigned_links;
|
|
struct list_head reserved_links;
|
|
enum ieee80211_chanctx_replace_state replace_state;
|
|
struct ieee80211_chanctx *replace_ctx;
|
|
enum ieee80211_chanctx_mode mode;
|
|
bool driver_present;
|
|
struct ieee80211_chanctx_conf conf;
|
|
};
|
|
|
|
struct probe_resp {
|
|
struct callback_head callback_head;
|
|
int len;
|
|
u16 cntdwn_counter_offsets[2];
|
|
u8 data[0];
|
|
};
|
|
|
|
struct fils_discovery_data {
|
|
struct callback_head callback_head;
|
|
int len;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct unsol_bcast_probe_resp_data {
|
|
struct callback_head callback_head;
|
|
int len;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct ieee80211_rx_status {
|
|
u64 mactime;
|
|
union {
|
|
u64 boottime_ns;
|
|
ktime_t ack_tx_hwtstamp;
|
|
};
|
|
u32 device_timestamp;
|
|
u32 ampdu_reference;
|
|
u32 flag;
|
|
u16 freq: 13;
|
|
u16 freq_offset: 1;
|
|
u8 enc_flags;
|
|
u8 encoding: 3;
|
|
u8 bw: 4;
|
|
union {
|
|
struct {
|
|
u8 he_ru: 3;
|
|
u8 he_gi: 2;
|
|
u8 he_dcm: 1;
|
|
};
|
|
struct {
|
|
u8 ru: 4;
|
|
u8 gi: 2;
|
|
} eht;
|
|
};
|
|
u8 rate_idx;
|
|
u8 nss;
|
|
u8 rx_flags;
|
|
u8 band;
|
|
u8 antenna;
|
|
s8 signal;
|
|
u8 chains;
|
|
s8 chain_signal[4];
|
|
u8 ampdu_delimiter_crc;
|
|
u8 zero_length_psdu_type;
|
|
u8 link_valid: 1;
|
|
u8 link_id: 4;
|
|
};
|
|
|
|
struct mesh_csa_settings {
|
|
struct callback_head callback_head;
|
|
struct cfg80211_csa_settings settings;
|
|
};
|
|
|
|
enum ieee80211_key_flags {
|
|
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = 1,
|
|
IEEE80211_KEY_FLAG_GENERATE_IV = 2,
|
|
IEEE80211_KEY_FLAG_GENERATE_MMIC = 4,
|
|
IEEE80211_KEY_FLAG_PAIRWISE = 8,
|
|
IEEE80211_KEY_FLAG_SW_MGMT_TX = 16,
|
|
IEEE80211_KEY_FLAG_PUT_IV_SPACE = 32,
|
|
IEEE80211_KEY_FLAG_RX_MGMT = 64,
|
|
IEEE80211_KEY_FLAG_RESERVE_TAILROOM = 128,
|
|
IEEE80211_KEY_FLAG_PUT_MIC_SPACE = 256,
|
|
IEEE80211_KEY_FLAG_NO_AUTO_TX = 512,
|
|
IEEE80211_KEY_FLAG_GENERATE_MMIE = 1024,
|
|
};
|
|
|
|
enum ieee80211_internal_key_flags {
|
|
KEY_FLAG_UPLOADED_TO_HARDWARE = 1,
|
|
KEY_FLAG_TAINTED = 2,
|
|
};
|
|
|
|
enum ieee80211_sta_info_flags {
|
|
WLAN_STA_AUTH = 0,
|
|
WLAN_STA_ASSOC = 1,
|
|
WLAN_STA_PS_STA = 2,
|
|
WLAN_STA_AUTHORIZED = 3,
|
|
WLAN_STA_SHORT_PREAMBLE = 4,
|
|
WLAN_STA_WDS = 5,
|
|
WLAN_STA_CLEAR_PS_FILT = 6,
|
|
WLAN_STA_MFP = 7,
|
|
WLAN_STA_BLOCK_BA = 8,
|
|
WLAN_STA_PS_DRIVER = 9,
|
|
WLAN_STA_PSPOLL = 10,
|
|
WLAN_STA_TDLS_PEER = 11,
|
|
WLAN_STA_TDLS_PEER_AUTH = 12,
|
|
WLAN_STA_TDLS_INITIATOR = 13,
|
|
WLAN_STA_TDLS_CHAN_SWITCH = 14,
|
|
WLAN_STA_TDLS_OFF_CHANNEL = 15,
|
|
WLAN_STA_TDLS_WIDER_BW = 16,
|
|
WLAN_STA_UAPSD = 17,
|
|
WLAN_STA_SP = 18,
|
|
WLAN_STA_4ADDR_EVENT = 19,
|
|
WLAN_STA_INSERTED = 20,
|
|
WLAN_STA_RATE_CONTROL = 21,
|
|
WLAN_STA_TOFFSET_KNOWN = 22,
|
|
WLAN_STA_MPSP_OWNER = 23,
|
|
WLAN_STA_MPSP_RECIPIENT = 24,
|
|
WLAN_STA_PS_DELIVER = 25,
|
|
WLAN_STA_USES_ENCRYPTION = 26,
|
|
WLAN_STA_DECAP_OFFLOAD = 27,
|
|
NUM_WLAN_STA_FLAGS = 28,
|
|
};
|
|
|
|
enum ieee80211_hw_flags {
|
|
IEEE80211_HW_HAS_RATE_CONTROL = 0,
|
|
IEEE80211_HW_RX_INCLUDES_FCS = 1,
|
|
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 2,
|
|
IEEE80211_HW_SIGNAL_UNSPEC = 3,
|
|
IEEE80211_HW_SIGNAL_DBM = 4,
|
|
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC = 5,
|
|
IEEE80211_HW_SPECTRUM_MGMT = 6,
|
|
IEEE80211_HW_AMPDU_AGGREGATION = 7,
|
|
IEEE80211_HW_SUPPORTS_PS = 8,
|
|
IEEE80211_HW_PS_NULLFUNC_STACK = 9,
|
|
IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 10,
|
|
IEEE80211_HW_MFP_CAPABLE = 11,
|
|
IEEE80211_HW_WANT_MONITOR_VIF = 12,
|
|
IEEE80211_HW_NO_AUTO_VIF = 13,
|
|
IEEE80211_HW_SW_CRYPTO_CONTROL = 14,
|
|
IEEE80211_HW_SUPPORT_FAST_XMIT = 15,
|
|
IEEE80211_HW_REPORTS_TX_ACK_STATUS = 16,
|
|
IEEE80211_HW_CONNECTION_MONITOR = 17,
|
|
IEEE80211_HW_QUEUE_CONTROL = 18,
|
|
IEEE80211_HW_SUPPORTS_PER_STA_GTK = 19,
|
|
IEEE80211_HW_AP_LINK_PS = 20,
|
|
IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 21,
|
|
IEEE80211_HW_SUPPORTS_RC_TABLE = 22,
|
|
IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 23,
|
|
IEEE80211_HW_TIMING_BEACON_ONLY = 24,
|
|
IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 25,
|
|
IEEE80211_HW_CHANCTX_STA_CSA = 26,
|
|
IEEE80211_HW_SUPPORTS_CLONED_SKBS = 27,
|
|
IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS = 28,
|
|
IEEE80211_HW_TDLS_WIDER_BW = 29,
|
|
IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU = 30,
|
|
IEEE80211_HW_BEACON_TX_STATUS = 31,
|
|
IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR = 32,
|
|
IEEE80211_HW_SUPPORTS_REORDERING_BUFFER = 33,
|
|
IEEE80211_HW_USES_RSS = 34,
|
|
IEEE80211_HW_TX_AMSDU = 35,
|
|
IEEE80211_HW_TX_FRAG_LIST = 36,
|
|
IEEE80211_HW_REPORTS_LOW_ACK = 37,
|
|
IEEE80211_HW_SUPPORTS_TX_FRAG = 38,
|
|
IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA = 39,
|
|
IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP = 40,
|
|
IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP = 41,
|
|
IEEE80211_HW_BUFF_MMPDU_TXQ = 42,
|
|
IEEE80211_HW_SUPPORTS_VHT_EXT_NSS_BW = 43,
|
|
IEEE80211_HW_STA_MMPDU_TXQ = 44,
|
|
IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN = 45,
|
|
IEEE80211_HW_SUPPORTS_MULTI_BSSID = 46,
|
|
IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID = 47,
|
|
IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT = 48,
|
|
IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD = 49,
|
|
IEEE80211_HW_SUPPORTS_RX_DECAP_OFFLOAD = 50,
|
|
IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP = 51,
|
|
IEEE80211_HW_DETECTS_COLOR_COLLISION = 52,
|
|
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX = 53,
|
|
NUM_IEEE80211_HW_FLAGS = 54,
|
|
};
|
|
|
|
enum ieee80211_sub_if_data_flags {
|
|
IEEE80211_SDATA_ALLMULTI = 1,
|
|
IEEE80211_SDATA_DONT_BRIDGE_PACKETS = 8,
|
|
IEEE80211_SDATA_DISCONNECT_RESUME = 16,
|
|
IEEE80211_SDATA_IN_DRIVER = 32,
|
|
IEEE80211_SDATA_DISCONNECT_HW_RESTART = 64,
|
|
};
|
|
|
|
enum ieee80211_key_len {
|
|
WLAN_KEY_LEN_WEP40 = 5,
|
|
WLAN_KEY_LEN_WEP104 = 13,
|
|
WLAN_KEY_LEN_CCMP = 16,
|
|
WLAN_KEY_LEN_CCMP_256 = 32,
|
|
WLAN_KEY_LEN_TKIP = 32,
|
|
WLAN_KEY_LEN_AES_CMAC = 16,
|
|
WLAN_KEY_LEN_SMS4 = 32,
|
|
WLAN_KEY_LEN_GCMP = 16,
|
|
WLAN_KEY_LEN_GCMP_256 = 32,
|
|
WLAN_KEY_LEN_BIP_CMAC_256 = 32,
|
|
WLAN_KEY_LEN_BIP_GMAC_128 = 16,
|
|
WLAN_KEY_LEN_BIP_GMAC_256 = 32,
|
|
};
|
|
|
|
enum ieee80211_agg_stop_reason {
|
|
AGG_STOP_DECLINED = 0,
|
|
AGG_STOP_LOCAL_REQUEST = 1,
|
|
AGG_STOP_PEER_REQUEST = 2,
|
|
AGG_STOP_DESTROY_STA = 3,
|
|
};
|
|
|
|
enum nl80211_ext_feature_index {
|
|
NL80211_EXT_FEATURE_VHT_IBSS = 0,
|
|
NL80211_EXT_FEATURE_RRM = 1,
|
|
NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2,
|
|
NL80211_EXT_FEATURE_SCAN_START_TIME = 3,
|
|
NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4,
|
|
NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5,
|
|
NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6,
|
|
NL80211_EXT_FEATURE_BEACON_RATE_HT = 7,
|
|
NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8,
|
|
NL80211_EXT_FEATURE_FILS_STA = 9,
|
|
NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10,
|
|
NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11,
|
|
NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12,
|
|
NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13,
|
|
NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14,
|
|
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15,
|
|
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16,
|
|
NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17,
|
|
NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18,
|
|
NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19,
|
|
NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20,
|
|
NL80211_EXT_FEATURE_MFP_OPTIONAL = 21,
|
|
NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22,
|
|
NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23,
|
|
NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24,
|
|
NL80211_EXT_FEATURE_DFS_OFFLOAD = 25,
|
|
NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26,
|
|
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27,
|
|
NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27,
|
|
NL80211_EXT_FEATURE_TXQS = 28,
|
|
NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29,
|
|
NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30,
|
|
NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31,
|
|
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32,
|
|
NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33,
|
|
NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34,
|
|
NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35,
|
|
NL80211_EXT_FEATURE_EXT_KEY_ID = 36,
|
|
NL80211_EXT_FEATURE_STA_TX_PWR = 37,
|
|
NL80211_EXT_FEATURE_SAE_OFFLOAD = 38,
|
|
NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39,
|
|
NL80211_EXT_FEATURE_AQL = 40,
|
|
NL80211_EXT_FEATURE_BEACON_PROTECTION = 41,
|
|
NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42,
|
|
NL80211_EXT_FEATURE_PROTECTED_TWT = 43,
|
|
NL80211_EXT_FEATURE_DEL_IBSS_STA = 44,
|
|
NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45,
|
|
NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46,
|
|
NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47,
|
|
NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48,
|
|
NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49,
|
|
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50,
|
|
NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51,
|
|
NL80211_EXT_FEATURE_FILS_DISCOVERY = 52,
|
|
NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53,
|
|
NL80211_EXT_FEATURE_BEACON_RATE_HE = 54,
|
|
NL80211_EXT_FEATURE_SECURE_LTF = 55,
|
|
NL80211_EXT_FEATURE_SECURE_RTT = 56,
|
|
NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57,
|
|
NL80211_EXT_FEATURE_BSS_COLOR = 58,
|
|
NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59,
|
|
NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60,
|
|
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61,
|
|
NL80211_EXT_FEATURE_PUNCT = 62,
|
|
NL80211_EXT_FEATURE_SECURE_NAN = 63,
|
|
NUM_NL80211_EXT_FEATURES = 64,
|
|
MAX_NL80211_EXT_FEATURES = 63,
|
|
};
|
|
|
|
enum ieee80211_sdata_state_bits {
|
|
SDATA_STATE_RUNNING = 0,
|
|
SDATA_STATE_OFFCHANNEL = 1,
|
|
SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2,
|
|
};
|
|
|
|
struct errormap {
|
|
char *name;
|
|
int val;
|
|
int namelen;
|
|
struct hlist_node list;
|
|
};
|
|
|
|
struct __una_u32 {
|
|
u32 x;
|
|
};
|
|
|
|
enum p9_msg_t {
|
|
P9_TLERROR = 6,
|
|
P9_RLERROR = 7,
|
|
P9_TSTATFS = 8,
|
|
P9_RSTATFS = 9,
|
|
P9_TLOPEN = 12,
|
|
P9_RLOPEN = 13,
|
|
P9_TLCREATE = 14,
|
|
P9_RLCREATE = 15,
|
|
P9_TSYMLINK = 16,
|
|
P9_RSYMLINK = 17,
|
|
P9_TMKNOD = 18,
|
|
P9_RMKNOD = 19,
|
|
P9_TRENAME = 20,
|
|
P9_RRENAME = 21,
|
|
P9_TREADLINK = 22,
|
|
P9_RREADLINK = 23,
|
|
P9_TGETATTR = 24,
|
|
P9_RGETATTR = 25,
|
|
P9_TSETATTR = 26,
|
|
P9_RSETATTR = 27,
|
|
P9_TXATTRWALK = 30,
|
|
P9_RXATTRWALK = 31,
|
|
P9_TXATTRCREATE = 32,
|
|
P9_RXATTRCREATE = 33,
|
|
P9_TREADDIR = 40,
|
|
P9_RREADDIR = 41,
|
|
P9_TFSYNC = 50,
|
|
P9_RFSYNC = 51,
|
|
P9_TLOCK = 52,
|
|
P9_RLOCK = 53,
|
|
P9_TGETLOCK = 54,
|
|
P9_RGETLOCK = 55,
|
|
P9_TLINK = 70,
|
|
P9_RLINK = 71,
|
|
P9_TMKDIR = 72,
|
|
P9_RMKDIR = 73,
|
|
P9_TRENAMEAT = 74,
|
|
P9_RRENAMEAT = 75,
|
|
P9_TUNLINKAT = 76,
|
|
P9_RUNLINKAT = 77,
|
|
P9_TVERSION = 100,
|
|
P9_RVERSION = 101,
|
|
P9_TAUTH = 102,
|
|
P9_RAUTH = 103,
|
|
P9_TATTACH = 104,
|
|
P9_RATTACH = 105,
|
|
P9_TERROR = 106,
|
|
P9_RERROR = 107,
|
|
P9_TFLUSH = 108,
|
|
P9_RFLUSH = 109,
|
|
P9_TWALK = 110,
|
|
P9_RWALK = 111,
|
|
P9_TOPEN = 112,
|
|
P9_ROPEN = 113,
|
|
P9_TCREATE = 114,
|
|
P9_RCREATE = 115,
|
|
P9_TREAD = 116,
|
|
P9_RREAD = 117,
|
|
P9_TWRITE = 118,
|
|
P9_RWRITE = 119,
|
|
P9_TCLUNK = 120,
|
|
P9_RCLUNK = 121,
|
|
P9_TREMOVE = 122,
|
|
P9_RREMOVE = 123,
|
|
P9_TSTAT = 124,
|
|
P9_RSTAT = 125,
|
|
P9_TWSTAT = 126,
|
|
P9_RWSTAT = 127,
|
|
};
|
|
|
|
enum p9_proto_versions {
|
|
p9_proto_legacy = 0,
|
|
p9_proto_2000u = 1,
|
|
p9_proto_2000L = 2,
|
|
};
|
|
|
|
struct p9_fcall {
|
|
u32 size;
|
|
u8 id;
|
|
u16 tag;
|
|
size_t offset;
|
|
size_t capacity;
|
|
struct kmem_cache *cache;
|
|
u8 *sdata;
|
|
bool zc;
|
|
};
|
|
|
|
struct p9_stat_dotl {
|
|
u64 st_result_mask;
|
|
struct p9_qid qid;
|
|
u32 st_mode;
|
|
kuid_t st_uid;
|
|
kgid_t st_gid;
|
|
u64 st_nlink;
|
|
u64 st_rdev;
|
|
u64 st_size;
|
|
u64 st_blksize;
|
|
u64 st_blocks;
|
|
u64 st_atime_sec;
|
|
u64 st_atime_nsec;
|
|
u64 st_mtime_sec;
|
|
u64 st_mtime_nsec;
|
|
u64 st_ctime_sec;
|
|
u64 st_ctime_nsec;
|
|
u64 st_btime_sec;
|
|
u64 st_btime_nsec;
|
|
u64 st_gen;
|
|
u64 st_data_version;
|
|
};
|
|
|
|
typedef s64 int64_t;
|
|
|
|
typedef s8 int8_t;
|
|
|
|
typedef s16 int16_t;
|
|
|
|
struct p9_iattr_dotl {
|
|
u32 valid;
|
|
u32 mode;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
u64 size;
|
|
u64 atime_sec;
|
|
u64 atime_nsec;
|
|
u64 mtime_sec;
|
|
u64 mtime_nsec;
|
|
};
|
|
|
|
struct virtio_driver {
|
|
struct device_driver driver;
|
|
const struct virtio_device_id *id_table;
|
|
const unsigned int *feature_table;
|
|
unsigned int feature_table_size;
|
|
const unsigned int *feature_table_legacy;
|
|
unsigned int feature_table_size_legacy;
|
|
int (*validate)(struct virtio_device *);
|
|
int (*probe)(struct virtio_device *);
|
|
void (*scan)(struct virtio_device *);
|
|
void (*remove)(struct virtio_device *);
|
|
void (*config_changed)(struct virtio_device *);
|
|
int (*freeze)(struct virtio_device *);
|
|
int (*restore)(struct virtio_device *);
|
|
};
|
|
|
|
struct p9_req_t;
|
|
|
|
struct p9_trans_module {
|
|
struct list_head list;
|
|
char *name;
|
|
int maxsize;
|
|
bool pooled_rbuffers;
|
|
int def;
|
|
struct module *owner;
|
|
int (*create)(struct p9_client *, const char *, char *);
|
|
void (*close)(struct p9_client *);
|
|
int (*request)(struct p9_client *, struct p9_req_t *);
|
|
int (*cancel)(struct p9_client *, struct p9_req_t *);
|
|
int (*cancelled)(struct p9_client *, struct p9_req_t *);
|
|
int (*zc_request)(struct p9_client *, struct p9_req_t *, struct iov_iter *, struct iov_iter *, int, int, int);
|
|
int (*show_options)(struct seq_file *, struct p9_client *);
|
|
};
|
|
|
|
struct p9_req_t {
|
|
int status;
|
|
int t_err;
|
|
refcount_t refcount;
|
|
wait_queue_head_t wq;
|
|
struct p9_fcall tc;
|
|
struct p9_fcall rc;
|
|
struct list_head req_list;
|
|
};
|
|
|
|
enum p9_req_status_t {
|
|
REQ_STATUS_ALLOC = 0,
|
|
REQ_STATUS_UNSENT = 1,
|
|
REQ_STATUS_SENT = 2,
|
|
REQ_STATUS_RCVD = 3,
|
|
REQ_STATUS_FLSHD = 4,
|
|
REQ_STATUS_ERROR = 5,
|
|
};
|
|
|
|
enum iter_type {
|
|
ITER_IOVEC = 0,
|
|
ITER_KVEC = 1,
|
|
ITER_BVEC = 2,
|
|
ITER_PIPE = 3,
|
|
ITER_XARRAY = 4,
|
|
ITER_DISCARD = 5,
|
|
ITER_UBUF = 6,
|
|
};
|
|
|
|
struct virtio_chan {
|
|
bool inuse;
|
|
spinlock_t lock;
|
|
struct p9_client *client;
|
|
struct virtio_device *vdev;
|
|
struct virtqueue *vq;
|
|
int ring_bufs_avail;
|
|
wait_queue_head_t *vc_wq;
|
|
unsigned long p9_max_pages;
|
|
struct scatterlist sg[128];
|
|
char *tag;
|
|
struct list_head chan_list;
|
|
};
|
|
|
|
struct pci_raw_ops {
|
|
int (*read)(unsigned int, unsigned int, unsigned int, int, int, u32 *);
|
|
int (*write)(unsigned int, unsigned int, unsigned int, int, int, u32);
|
|
};
|
|
|
|
struct pci_mmcfg_region {
|
|
struct list_head list;
|
|
struct resource res;
|
|
u64 address;
|
|
char *virt;
|
|
u16 segment;
|
|
u8 start_bus;
|
|
u8 end_bus;
|
|
char name[30];
|
|
};
|
|
|
|
enum {
|
|
PCI_STD_RESOURCES = 0,
|
|
PCI_STD_RESOURCE_END = 5,
|
|
PCI_ROM_RESOURCE = 6,
|
|
PCI_BRIDGE_RESOURCES = 7,
|
|
PCI_BRIDGE_RESOURCE_END = 10,
|
|
PCI_NUM_RESOURCES = 11,
|
|
DEVICE_COUNT_RESOURCE = 11,
|
|
};
|
|
|
|
enum lockdep_ok {
|
|
LOCKDEP_STILL_OK = 0,
|
|
LOCKDEP_NOW_UNRELIABLE = 1,
|
|
};
|
|
|
|
struct acpi_device;
|
|
|
|
struct pci_sysdata {
|
|
int domain;
|
|
int node;
|
|
struct acpi_device *companion;
|
|
void *iommu;
|
|
void *fwnode;
|
|
};
|
|
|
|
struct printf_spec {
|
|
unsigned int type: 8;
|
|
int field_width: 24;
|
|
unsigned int flags: 8;
|
|
unsigned int base: 8;
|
|
int precision: 16;
|
|
};
|
|
|
|
struct page_flags_fields {
|
|
int width;
|
|
int shift;
|
|
int mask;
|
|
const struct printf_spec *spec;
|
|
const char *name;
|
|
};
|
|
|
|
enum format_type {
|
|
FORMAT_TYPE_NONE = 0,
|
|
FORMAT_TYPE_WIDTH = 1,
|
|
FORMAT_TYPE_PRECISION = 2,
|
|
FORMAT_TYPE_CHAR = 3,
|
|
FORMAT_TYPE_STR = 4,
|
|
FORMAT_TYPE_PTR = 5,
|
|
FORMAT_TYPE_PERCENT_CHAR = 6,
|
|
FORMAT_TYPE_INVALID = 7,
|
|
FORMAT_TYPE_LONG_LONG = 8,
|
|
FORMAT_TYPE_ULONG = 9,
|
|
FORMAT_TYPE_LONG = 10,
|
|
FORMAT_TYPE_UBYTE = 11,
|
|
FORMAT_TYPE_BYTE = 12,
|
|
FORMAT_TYPE_USHORT = 13,
|
|
FORMAT_TYPE_SHORT = 14,
|
|
FORMAT_TYPE_UINT = 15,
|
|
FORMAT_TYPE_INT = 16,
|
|
FORMAT_TYPE_SIZE_T = 17,
|
|
FORMAT_TYPE_PTRDIFF = 18,
|
|
};
|
|
|
|
struct rtc_time {
|
|
int tm_sec;
|
|
int tm_min;
|
|
int tm_hour;
|
|
int tm_mday;
|
|
int tm_mon;
|
|
int tm_year;
|
|
int tm_wday;
|
|
int tm_yday;
|
|
int tm_isdst;
|
|
};
|
|
|
|
struct sockaddr_in6 {
|
|
unsigned short sin6_family;
|
|
__be16 sin6_port;
|
|
__be32 sin6_flowinfo;
|
|
struct in6_addr sin6_addr;
|
|
__u32 sin6_scope_id;
|
|
};
|
|
|
|
struct trace_print_flags {
|
|
unsigned long mask;
|
|
const char *name;
|
|
};
|
|
|
|
struct tm {
|
|
int tm_sec;
|
|
int tm_min;
|
|
int tm_hour;
|
|
int tm_mday;
|
|
int tm_mon;
|
|
long tm_year;
|
|
int tm_wday;
|
|
int tm_yday;
|
|
};
|
|
|
|
struct linux_binprm;
|
|
|
|
struct coredump_params;
|
|
|
|
struct linux_binfmt {
|
|
struct list_head lh;
|
|
struct module *module;
|
|
int (*load_binary)(struct linux_binprm *);
|
|
int (*load_shlib)(struct file *);
|
|
int (*core_dump)(struct coredump_params *);
|
|
unsigned long min_coredump;
|
|
};
|
|
|
|
struct linux_binprm {
|
|
struct vm_area_struct *vma;
|
|
unsigned long vma_pages;
|
|
struct mm_struct *mm;
|
|
unsigned long p;
|
|
unsigned long argmin;
|
|
unsigned int have_execfd: 1;
|
|
unsigned int execfd_creds: 1;
|
|
unsigned int secureexec: 1;
|
|
unsigned int point_of_no_return: 1;
|
|
struct file *executable;
|
|
struct file *interpreter;
|
|
struct file *file;
|
|
struct cred *cred;
|
|
int unsafe;
|
|
unsigned int per_clear;
|
|
int argc;
|
|
int envc;
|
|
const char *filename;
|
|
const char *interp;
|
|
const char *fdpath;
|
|
unsigned int interp_flags;
|
|
int execfd;
|
|
unsigned long loader;
|
|
unsigned long exec;
|
|
struct rlimit rlim_stack;
|
|
char buf[256];
|
|
};
|
|
|
|
struct task_delay_info {
|
|
raw_spinlock_t lock;
|
|
u64 blkio_start;
|
|
u64 blkio_delay;
|
|
u64 swapin_start;
|
|
u64 swapin_delay;
|
|
u32 blkio_count;
|
|
u32 swapin_count;
|
|
u64 freepages_start;
|
|
u64 freepages_delay;
|
|
u64 thrashing_start;
|
|
u64 thrashing_delay;
|
|
u64 compact_start;
|
|
u64 compact_delay;
|
|
u64 wpcopy_start;
|
|
u64 wpcopy_delay;
|
|
u32 freepages_count;
|
|
u32 thrashing_count;
|
|
u32 compact_count;
|
|
u32 wpcopy_count;
|
|
};
|
|
|
|
struct nsset {
|
|
unsigned int flags;
|
|
struct nsproxy *nsproxy;
|
|
struct fs_struct *fs;
|
|
const struct cred *cred;
|
|
};
|
|
|
|
struct ldt_struct {
|
|
struct desc_struct *entries;
|
|
unsigned int nr_entries;
|
|
int slot;
|
|
};
|
|
|
|
typedef void (*btf_trace_initcall_level)(void *, const char *);
|
|
|
|
typedef int (*initcall_t)();
|
|
|
|
typedef void (*btf_trace_initcall_start)(void *, initcall_t);
|
|
|
|
typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int);
|
|
|
|
enum system_states {
|
|
SYSTEM_BOOTING = 0,
|
|
SYSTEM_SCHEDULING = 1,
|
|
SYSTEM_FREEING_INITMEM = 2,
|
|
SYSTEM_RUNNING = 3,
|
|
SYSTEM_HALT = 4,
|
|
SYSTEM_POWER_OFF = 5,
|
|
SYSTEM_RESTART = 6,
|
|
SYSTEM_SUSPEND = 7,
|
|
};
|
|
|
|
typedef int initcall_entry_t;
|
|
|
|
enum {
|
|
EVENT_FILE_FL_ENABLED = 1,
|
|
EVENT_FILE_FL_RECORDED_CMD = 2,
|
|
EVENT_FILE_FL_RECORDED_TGID = 4,
|
|
EVENT_FILE_FL_FILTERED = 8,
|
|
EVENT_FILE_FL_NO_SET_FILTER = 16,
|
|
EVENT_FILE_FL_SOFT_MODE = 32,
|
|
EVENT_FILE_FL_SOFT_DISABLED = 64,
|
|
EVENT_FILE_FL_TRIGGER_MODE = 128,
|
|
EVENT_FILE_FL_TRIGGER_COND = 256,
|
|
EVENT_FILE_FL_PID_FILTER = 512,
|
|
EVENT_FILE_FL_WAS_ENABLED = 1024,
|
|
};
|
|
|
|
struct trace_event_raw_initcall_level {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_level;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_initcall_start {
|
|
struct trace_entry ent;
|
|
initcall_t func;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_initcall_finish {
|
|
struct trace_entry ent;
|
|
initcall_t func;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct blacklist_entry {
|
|
struct list_head next;
|
|
char *buf;
|
|
};
|
|
|
|
struct trace_event_data_offsets_initcall_level {
|
|
u32 level;
|
|
};
|
|
|
|
struct ring_buffer_event;
|
|
|
|
struct trace_event_buffer {
|
|
struct trace_buffer *buffer;
|
|
struct ring_buffer_event *event;
|
|
struct trace_event_file *trace_file;
|
|
void *entry;
|
|
unsigned int trace_ctx;
|
|
struct pt_regs *regs;
|
|
};
|
|
|
|
struct ring_buffer_event {
|
|
u32 type_len: 5;
|
|
u32 time_delta: 27;
|
|
u32 array[0];
|
|
};
|
|
|
|
typedef struct pglist_data pg_data_t;
|
|
|
|
struct trace_event_data_offsets_initcall_start {};
|
|
|
|
struct trace_event_data_offsets_initcall_finish {};
|
|
|
|
typedef struct irq_desc *vector_irq_t[256];
|
|
|
|
struct io_bitmap {
|
|
u64 sequence;
|
|
refcount_t refcnt;
|
|
unsigned int max;
|
|
unsigned long bitmap[1024];
|
|
};
|
|
|
|
enum {
|
|
IRQ_TYPE_NONE = 0,
|
|
IRQ_TYPE_EDGE_RISING = 1,
|
|
IRQ_TYPE_EDGE_FALLING = 2,
|
|
IRQ_TYPE_EDGE_BOTH = 3,
|
|
IRQ_TYPE_LEVEL_HIGH = 4,
|
|
IRQ_TYPE_LEVEL_LOW = 8,
|
|
IRQ_TYPE_LEVEL_MASK = 12,
|
|
IRQ_TYPE_SENSE_MASK = 15,
|
|
IRQ_TYPE_DEFAULT = 15,
|
|
IRQ_TYPE_PROBE = 16,
|
|
IRQ_LEVEL = 256,
|
|
IRQ_PER_CPU = 512,
|
|
IRQ_NOPROBE = 1024,
|
|
IRQ_NOREQUEST = 2048,
|
|
IRQ_NOAUTOEN = 4096,
|
|
IRQ_NO_BALANCING = 8192,
|
|
IRQ_MOVE_PCNTXT = 16384,
|
|
IRQ_NESTED_THREAD = 32768,
|
|
IRQ_NOTHREAD = 65536,
|
|
IRQ_PER_CPU_DEVID = 131072,
|
|
IRQ_IS_POLLED = 262144,
|
|
IRQ_DISABLE_UNLAZY = 524288,
|
|
IRQ_HIDDEN = 1048576,
|
|
IRQ_NO_DEBUG = 2097152,
|
|
};
|
|
|
|
struct cpuid_dep {
|
|
unsigned int feature;
|
|
unsigned int depends;
|
|
};
|
|
|
|
struct cpuinfo_x86 {
|
|
__u8 x86;
|
|
__u8 x86_vendor;
|
|
__u8 x86_model;
|
|
__u8 x86_stepping;
|
|
int x86_tlbsize;
|
|
__u32 vmx_capability[5];
|
|
__u8 x86_virt_bits;
|
|
__u8 x86_phys_bits;
|
|
__u8 x86_coreid_bits;
|
|
__u8 cu_id;
|
|
__u32 extended_cpuid_level;
|
|
int cpuid_level;
|
|
union {
|
|
__u32 x86_capability[22];
|
|
unsigned long x86_capability_alignment;
|
|
};
|
|
char x86_vendor_id[16];
|
|
char x86_model_id[64];
|
|
unsigned int x86_cache_size;
|
|
int x86_cache_alignment;
|
|
int x86_cache_max_rmid;
|
|
int x86_cache_occ_scale;
|
|
int x86_cache_mbm_width_offset;
|
|
int x86_power;
|
|
unsigned long loops_per_jiffy;
|
|
u64 ppin;
|
|
u16 x86_max_cores;
|
|
u16 apicid;
|
|
u16 initial_apicid;
|
|
u16 x86_clflush_size;
|
|
u16 booted_cores;
|
|
u16 phys_proc_id;
|
|
u16 logical_proc_id;
|
|
u16 cpu_core_id;
|
|
u16 cpu_die_id;
|
|
u16 logical_die_id;
|
|
u16 cpu_index;
|
|
bool smt_active;
|
|
u32 microcode;
|
|
u8 x86_cache_bits;
|
|
unsigned int initialized: 1;
|
|
};
|
|
|
|
struct cpu_dev {
|
|
const char *c_vendor;
|
|
const char *c_ident[2];
|
|
void (*c_early_init)(struct cpuinfo_x86 *);
|
|
void (*c_bsp_init)(struct cpuinfo_x86 *);
|
|
void (*c_init)(struct cpuinfo_x86 *);
|
|
void (*c_identify)(struct cpuinfo_x86 *);
|
|
void (*c_detect_tlb)(struct cpuinfo_x86 *);
|
|
int c_x86_vendor;
|
|
};
|
|
|
|
struct sku_microcode {
|
|
u8 model;
|
|
u8 stepping;
|
|
u32 microcode;
|
|
};
|
|
|
|
struct _tlb_table {
|
|
unsigned char descriptor;
|
|
char tlb_type;
|
|
unsigned int entries;
|
|
char info[128];
|
|
};
|
|
|
|
enum split_lock_detect_state {
|
|
sld_off = 0,
|
|
sld_warn = 1,
|
|
sld_fatal = 2,
|
|
sld_ratelimit = 3,
|
|
};
|
|
|
|
struct x86_cpu_id {
|
|
__u16 vendor;
|
|
__u16 family;
|
|
__u16 model;
|
|
__u16 steppings;
|
|
__u16 feature;
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
enum tlb_infos {
|
|
ENTRIES = 0,
|
|
NR_INFO = 1,
|
|
};
|
|
|
|
struct microcode_header_intel {
|
|
unsigned int hdrver;
|
|
unsigned int rev;
|
|
unsigned int date;
|
|
unsigned int sig;
|
|
unsigned int cksum;
|
|
unsigned int ldrver;
|
|
unsigned int pf;
|
|
unsigned int datasize;
|
|
unsigned int totalsize;
|
|
unsigned int metasize;
|
|
unsigned int reserved[2];
|
|
};
|
|
|
|
struct microcode_intel {
|
|
struct microcode_header_intel hdr;
|
|
unsigned int bits[0];
|
|
};
|
|
|
|
struct cpu_signature {
|
|
unsigned int sig;
|
|
unsigned int pf;
|
|
unsigned int rev;
|
|
};
|
|
|
|
struct ucode_cpu_info {
|
|
struct cpu_signature cpu_sig;
|
|
void *mc;
|
|
};
|
|
|
|
struct extended_signature {
|
|
unsigned int sig;
|
|
unsigned int pf;
|
|
unsigned int cksum;
|
|
};
|
|
|
|
struct extended_sigtable {
|
|
unsigned int count;
|
|
unsigned int cksum;
|
|
unsigned int reserved[3];
|
|
struct extended_signature sigs[0];
|
|
};
|
|
|
|
struct sched_domain_attr {
|
|
int relax_domain_level;
|
|
};
|
|
|
|
struct kcore_list {
|
|
struct list_head list;
|
|
unsigned long addr;
|
|
size_t size;
|
|
int type;
|
|
};
|
|
|
|
enum page_cache_mode {
|
|
_PAGE_CACHE_MODE_WB = 0,
|
|
_PAGE_CACHE_MODE_WC = 1,
|
|
_PAGE_CACHE_MODE_UC_MINUS = 2,
|
|
_PAGE_CACHE_MODE_UC = 3,
|
|
_PAGE_CACHE_MODE_WT = 4,
|
|
_PAGE_CACHE_MODE_WP = 5,
|
|
_PAGE_CACHE_MODE_NUM = 8,
|
|
};
|
|
|
|
enum memblock_flags {
|
|
MEMBLOCK_NONE = 0,
|
|
MEMBLOCK_HOTPLUG = 1,
|
|
MEMBLOCK_MIRROR = 2,
|
|
MEMBLOCK_NOMAP = 4,
|
|
MEMBLOCK_DRIVER_MANAGED = 8,
|
|
};
|
|
|
|
enum kcore_type {
|
|
KCORE_TEXT = 0,
|
|
KCORE_VMALLOC = 1,
|
|
KCORE_RAM = 2,
|
|
KCORE_VMEMMAP = 3,
|
|
KCORE_USER = 4,
|
|
};
|
|
|
|
enum {
|
|
UNAME26 = 131072,
|
|
ADDR_NO_RANDOMIZE = 262144,
|
|
FDPIC_FUNCPTRS = 524288,
|
|
MMAP_PAGE_ZERO = 1048576,
|
|
ADDR_COMPAT_LAYOUT = 2097152,
|
|
READ_IMPLIES_EXEC = 4194304,
|
|
ADDR_LIMIT_32BIT = 8388608,
|
|
SHORT_INODE = 16777216,
|
|
WHOLE_SECONDS = 33554432,
|
|
STICKY_TIMEOUTS = 67108864,
|
|
ADDR_LIMIT_3GB = 134217728,
|
|
};
|
|
|
|
enum e820_type {
|
|
E820_TYPE_RAM = 1,
|
|
E820_TYPE_RESERVED = 2,
|
|
E820_TYPE_ACPI = 3,
|
|
E820_TYPE_NVS = 4,
|
|
E820_TYPE_UNUSABLE = 5,
|
|
E820_TYPE_PMEM = 7,
|
|
E820_TYPE_PRAM = 12,
|
|
E820_TYPE_SOFT_RESERVED = 4026531839,
|
|
E820_TYPE_RESERVED_KERN = 128,
|
|
};
|
|
|
|
enum pg_level {
|
|
PG_LEVEL_NONE = 0,
|
|
PG_LEVEL_4K = 1,
|
|
PG_LEVEL_2M = 2,
|
|
PG_LEVEL_1G = 3,
|
|
PG_LEVEL_512G = 4,
|
|
PG_LEVEL_NUM = 5,
|
|
};
|
|
|
|
typedef unsigned long p4dval_t;
|
|
|
|
typedef struct {
|
|
p4dval_t p4d;
|
|
} p4d_t;
|
|
|
|
struct memblock_region;
|
|
|
|
struct memblock_type {
|
|
unsigned long cnt;
|
|
unsigned long max;
|
|
phys_addr_t total_size;
|
|
struct memblock_region *regions;
|
|
char *name;
|
|
};
|
|
|
|
struct memblock_region {
|
|
phys_addr_t base;
|
|
phys_addr_t size;
|
|
enum memblock_flags flags;
|
|
};
|
|
|
|
struct x86_mapping_info {
|
|
void * (*alloc_pgt_page)(void *);
|
|
void *context;
|
|
unsigned long page_flag;
|
|
unsigned long offset;
|
|
bool direct_gbpages;
|
|
unsigned long kernpg_flag;
|
|
};
|
|
|
|
struct sched_param {
|
|
int sched_priority;
|
|
};
|
|
|
|
enum KTHREAD_BITS {
|
|
KTHREAD_IS_PER_CPU = 0,
|
|
KTHREAD_SHOULD_STOP = 1,
|
|
KTHREAD_SHOULD_PARK = 2,
|
|
};
|
|
|
|
enum hk_type {
|
|
HK_TYPE_TIMER = 0,
|
|
HK_TYPE_RCU = 1,
|
|
HK_TYPE_MISC = 2,
|
|
HK_TYPE_SCHED = 3,
|
|
HK_TYPE_TICK = 4,
|
|
HK_TYPE_DOMAIN = 5,
|
|
HK_TYPE_WQ = 6,
|
|
HK_TYPE_MANAGED_IRQ = 7,
|
|
HK_TYPE_KTHREAD = 8,
|
|
HK_TYPE_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
KTW_FREEZABLE = 1,
|
|
};
|
|
|
|
enum {
|
|
TASK_COMM_LEN = 16,
|
|
};
|
|
|
|
enum {
|
|
CSS_NO_REF = 1,
|
|
CSS_ONLINE = 2,
|
|
CSS_RELEASED = 4,
|
|
CSS_VISIBLE = 8,
|
|
CSS_DYING = 16,
|
|
};
|
|
|
|
struct kthread_create_info {
|
|
int (*threadfn)(void *);
|
|
void *data;
|
|
int node;
|
|
struct task_struct *result;
|
|
struct completion *done;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct kthread_flush_work {
|
|
struct kthread_work work;
|
|
struct completion done;
|
|
};
|
|
|
|
struct kthread {
|
|
unsigned long flags;
|
|
unsigned int cpu;
|
|
int result;
|
|
int (*threadfn)(void *);
|
|
void *data;
|
|
struct completion parked;
|
|
struct completion exited;
|
|
struct cgroup_subsys_state *blkcg_css;
|
|
char *full_name;
|
|
};
|
|
|
|
struct snapshot_handle {
|
|
unsigned int cur;
|
|
void *buffer;
|
|
int sync_read;
|
|
};
|
|
|
|
struct snapshot_data {
|
|
struct snapshot_handle handle;
|
|
int swap;
|
|
int mode;
|
|
bool frozen;
|
|
bool ready;
|
|
bool platform_support;
|
|
bool free_bitmaps;
|
|
dev_t dev;
|
|
};
|
|
|
|
struct miscdevice {
|
|
int minor;
|
|
const char *name;
|
|
const struct file_operations *fops;
|
|
struct list_head list;
|
|
struct device *parent;
|
|
struct device *this_device;
|
|
const struct attribute_group **groups;
|
|
const char *nodename;
|
|
umode_t mode;
|
|
};
|
|
|
|
typedef int suspend_state_t;
|
|
|
|
struct rcu_cblist {
|
|
struct callback_head *head;
|
|
struct callback_head **tail;
|
|
long len;
|
|
};
|
|
|
|
struct klp_object;
|
|
|
|
struct klp_state;
|
|
|
|
struct klp_patch {
|
|
struct module *mod;
|
|
struct klp_object *objs;
|
|
struct klp_state *states;
|
|
bool replace;
|
|
struct list_head list;
|
|
struct kobject kobj;
|
|
struct list_head obj_list;
|
|
bool enabled;
|
|
bool forced;
|
|
struct work_struct free_work;
|
|
struct completion finish;
|
|
};
|
|
|
|
struct klp_callbacks {
|
|
int (*pre_patch)(struct klp_object *);
|
|
void (*post_patch)(struct klp_object *);
|
|
void (*pre_unpatch)(struct klp_object *);
|
|
void (*post_unpatch)(struct klp_object *);
|
|
bool post_unpatch_enabled;
|
|
};
|
|
|
|
struct klp_func;
|
|
|
|
struct klp_object {
|
|
const char *name;
|
|
struct klp_func *funcs;
|
|
struct klp_callbacks callbacks;
|
|
struct kobject kobj;
|
|
struct list_head func_list;
|
|
struct list_head node;
|
|
struct module *mod;
|
|
bool dynamic;
|
|
bool patched;
|
|
};
|
|
|
|
struct klp_func {
|
|
const char *old_name;
|
|
void *new_func;
|
|
unsigned long old_sympos;
|
|
void *old_func;
|
|
struct kobject kobj;
|
|
struct list_head node;
|
|
struct list_head stack_node;
|
|
unsigned long old_size;
|
|
unsigned long new_size;
|
|
bool nop;
|
|
bool patched;
|
|
bool transition;
|
|
};
|
|
|
|
struct klp_state {
|
|
unsigned long id;
|
|
unsigned int version;
|
|
void *data;
|
|
};
|
|
|
|
enum class_map_type {
|
|
DD_CLASS_TYPE_DISJOINT_BITS = 0,
|
|
DD_CLASS_TYPE_LEVEL_NUM = 1,
|
|
DD_CLASS_TYPE_DISJOINT_NAMES = 2,
|
|
DD_CLASS_TYPE_LEVEL_NAMES = 3,
|
|
};
|
|
|
|
enum mod_license {
|
|
NOT_GPL_ONLY = 0,
|
|
GPL_ONLY = 1,
|
|
};
|
|
|
|
struct find_symbol_arg {
|
|
const char *name;
|
|
bool gplok;
|
|
bool warn;
|
|
struct module *owner;
|
|
const s32 *crc;
|
|
const struct kernel_symbol *sym;
|
|
enum mod_license license;
|
|
};
|
|
|
|
struct ddebug_class_map;
|
|
|
|
struct _ddebug_info {
|
|
struct _ddebug *descs;
|
|
struct ddebug_class_map *classes;
|
|
unsigned int num_descs;
|
|
unsigned int num_classes;
|
|
};
|
|
|
|
struct load_info {
|
|
const char *name;
|
|
struct module *mod;
|
|
Elf64_Ehdr *hdr;
|
|
unsigned long len;
|
|
Elf64_Shdr *sechdrs;
|
|
char *secstrings;
|
|
char *strtab;
|
|
unsigned long symoffs;
|
|
unsigned long stroffs;
|
|
unsigned long init_typeoffs;
|
|
unsigned long core_typeoffs;
|
|
struct _ddebug_info dyndbg;
|
|
bool sig_ok;
|
|
unsigned long mod_kallsyms_init_off;
|
|
struct {
|
|
unsigned int sym;
|
|
unsigned int str;
|
|
unsigned int mod;
|
|
unsigned int vers;
|
|
unsigned int info;
|
|
unsigned int pcpu;
|
|
} index;
|
|
};
|
|
|
|
struct ddebug_class_map {
|
|
struct list_head link;
|
|
struct module *mod;
|
|
const char *mod_name;
|
|
const char **class_names;
|
|
const int length;
|
|
const int base;
|
|
enum class_map_type map_type;
|
|
};
|
|
|
|
struct modversion_info {
|
|
unsigned long crc;
|
|
char name[56];
|
|
};
|
|
|
|
enum tick_device_mode {
|
|
TICKDEV_MODE_PERIODIC = 0,
|
|
TICKDEV_MODE_ONESHOT = 1,
|
|
};
|
|
|
|
struct clock_event_device;
|
|
|
|
struct tick_device {
|
|
struct clock_event_device *evtdev;
|
|
enum tick_device_mode mode;
|
|
};
|
|
|
|
enum clock_event_state {
|
|
CLOCK_EVT_STATE_DETACHED = 0,
|
|
CLOCK_EVT_STATE_SHUTDOWN = 1,
|
|
CLOCK_EVT_STATE_PERIODIC = 2,
|
|
CLOCK_EVT_STATE_ONESHOT = 3,
|
|
CLOCK_EVT_STATE_ONESHOT_STOPPED = 4,
|
|
};
|
|
|
|
struct clock_event_device {
|
|
void (*event_handler)(struct clock_event_device *);
|
|
int (*set_next_event)(unsigned long, struct clock_event_device *);
|
|
int (*set_next_ktime)(ktime_t, struct clock_event_device *);
|
|
ktime_t next_event;
|
|
u64 max_delta_ns;
|
|
u64 min_delta_ns;
|
|
u32 mult;
|
|
u32 shift;
|
|
enum clock_event_state state_use_accessors;
|
|
unsigned int features;
|
|
unsigned long retries;
|
|
int (*set_state_periodic)(struct clock_event_device *);
|
|
int (*set_state_oneshot)(struct clock_event_device *);
|
|
int (*set_state_oneshot_stopped)(struct clock_event_device *);
|
|
int (*set_state_shutdown)(struct clock_event_device *);
|
|
int (*tick_resume)(struct clock_event_device *);
|
|
void (*broadcast)(const struct cpumask *);
|
|
void (*suspend)(struct clock_event_device *);
|
|
void (*resume)(struct clock_event_device *);
|
|
unsigned long min_delta_ticks;
|
|
unsigned long max_delta_ticks;
|
|
const char *name;
|
|
int rating;
|
|
int irq;
|
|
int bound_on;
|
|
const struct cpumask *cpumask;
|
|
struct list_head list;
|
|
struct module *owner;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
enum tick_broadcast_mode {
|
|
TICK_BROADCAST_OFF = 0,
|
|
TICK_BROADCAST_ON = 1,
|
|
TICK_BROADCAST_FORCE = 2,
|
|
};
|
|
|
|
enum tick_broadcast_state {
|
|
TICK_BROADCAST_EXIT = 0,
|
|
TICK_BROADCAST_ENTER = 1,
|
|
};
|
|
|
|
struct timens_offsets {
|
|
struct timespec64 monotonic;
|
|
struct timespec64 boottime;
|
|
};
|
|
|
|
struct time_namespace {
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
struct ns_common ns;
|
|
struct timens_offsets offsets;
|
|
struct page *vvar_page;
|
|
bool frozen_offsets;
|
|
};
|
|
|
|
enum ucount_type {
|
|
UCOUNT_USER_NAMESPACES = 0,
|
|
UCOUNT_PID_NAMESPACES = 1,
|
|
UCOUNT_UTS_NAMESPACES = 2,
|
|
UCOUNT_IPC_NAMESPACES = 3,
|
|
UCOUNT_NET_NAMESPACES = 4,
|
|
UCOUNT_MNT_NAMESPACES = 5,
|
|
UCOUNT_CGROUP_NAMESPACES = 6,
|
|
UCOUNT_TIME_NAMESPACES = 7,
|
|
UCOUNT_INOTIFY_INSTANCES = 8,
|
|
UCOUNT_INOTIFY_WATCHES = 9,
|
|
UCOUNT_COUNTS = 10,
|
|
};
|
|
|
|
enum vdso_clock_mode {
|
|
VDSO_CLOCKMODE_NONE = 0,
|
|
VDSO_CLOCKMODE_TSC = 1,
|
|
VDSO_CLOCKMODE_PVCLOCK = 2,
|
|
VDSO_CLOCKMODE_HVCLOCK = 3,
|
|
VDSO_CLOCKMODE_MAX = 4,
|
|
VDSO_CLOCKMODE_TIMENS = 2147483647,
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long bits[1];
|
|
} nodemask_t;
|
|
|
|
struct vdso_timestamp {
|
|
u64 sec;
|
|
u64 nsec;
|
|
};
|
|
|
|
struct timens_offset {
|
|
s64 sec;
|
|
u64 nsec;
|
|
};
|
|
|
|
struct arch_vdso_data {};
|
|
|
|
struct vdso_data {
|
|
u32 seq;
|
|
s32 clock_mode;
|
|
u64 cycle_last;
|
|
u64 mask;
|
|
u32 mult;
|
|
u32 shift;
|
|
union {
|
|
struct vdso_timestamp basetime[12];
|
|
struct timens_offset offset[12];
|
|
};
|
|
s32 tz_minuteswest;
|
|
s32 tz_dsttime;
|
|
u32 hrtimer_res;
|
|
u32 __unused;
|
|
struct arch_vdso_data arch_data;
|
|
};
|
|
|
|
struct proc_timens_offset {
|
|
int clockid;
|
|
struct timespec64 val;
|
|
};
|
|
|
|
enum {
|
|
CGRP_NOTIFY_ON_RELEASE = 0,
|
|
CGRP_CPUSET_CLONE_CHILDREN = 1,
|
|
CGRP_FREEZE = 2,
|
|
CGRP_FROZEN = 3,
|
|
CGRP_KILL = 4,
|
|
};
|
|
|
|
struct css_task_iter {
|
|
struct cgroup_subsys *ss;
|
|
unsigned int flags;
|
|
struct list_head *cset_pos;
|
|
struct list_head *cset_head;
|
|
struct list_head *tcset_pos;
|
|
struct list_head *tcset_head;
|
|
struct list_head *task_pos;
|
|
struct list_head *cur_tasks_head;
|
|
struct css_set *cur_cset;
|
|
struct css_set *cur_dcset;
|
|
struct task_struct *cur_task;
|
|
struct list_head iters_node;
|
|
};
|
|
|
|
struct ftrace_page;
|
|
|
|
struct ftrace_rec_iter {
|
|
struct ftrace_page *pg;
|
|
int index;
|
|
};
|
|
|
|
struct dyn_ftrace;
|
|
|
|
struct ftrace_page {
|
|
struct ftrace_page *next;
|
|
struct dyn_ftrace *records;
|
|
int index;
|
|
int order;
|
|
};
|
|
|
|
struct dyn_arch_ftrace {};
|
|
|
|
struct dyn_ftrace {
|
|
unsigned long ip;
|
|
unsigned long flags;
|
|
struct dyn_arch_ftrace arch;
|
|
};
|
|
|
|
enum ftrace_bug_type {
|
|
FTRACE_BUG_UNKNOWN = 0,
|
|
FTRACE_BUG_INIT = 1,
|
|
FTRACE_BUG_NOP = 2,
|
|
FTRACE_BUG_CALL = 3,
|
|
FTRACE_BUG_UPDATE = 4,
|
|
};
|
|
|
|
struct ftrace_func_command {
|
|
struct list_head list;
|
|
char *name;
|
|
int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int);
|
|
};
|
|
|
|
enum {
|
|
FTRACE_OPS_FL_ENABLED = 1,
|
|
FTRACE_OPS_FL_DYNAMIC = 2,
|
|
FTRACE_OPS_FL_SAVE_REGS = 4,
|
|
FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8,
|
|
FTRACE_OPS_FL_RECURSION = 16,
|
|
FTRACE_OPS_FL_STUB = 32,
|
|
FTRACE_OPS_FL_INITIALIZED = 64,
|
|
FTRACE_OPS_FL_DELETED = 128,
|
|
FTRACE_OPS_FL_ADDING = 256,
|
|
FTRACE_OPS_FL_REMOVING = 512,
|
|
FTRACE_OPS_FL_MODIFYING = 1024,
|
|
FTRACE_OPS_FL_ALLOC_TRAMP = 2048,
|
|
FTRACE_OPS_FL_IPMODIFY = 4096,
|
|
FTRACE_OPS_FL_PID = 8192,
|
|
FTRACE_OPS_FL_RCU = 16384,
|
|
FTRACE_OPS_FL_TRACE_ARRAY = 32768,
|
|
FTRACE_OPS_FL_PERMANENT = 65536,
|
|
FTRACE_OPS_FL_DIRECT = 131072,
|
|
};
|
|
|
|
enum {
|
|
FTRACE_FL_ENABLED = 2147483648,
|
|
FTRACE_FL_REGS = 1073741824,
|
|
FTRACE_FL_REGS_EN = 536870912,
|
|
FTRACE_FL_TRAMP = 268435456,
|
|
FTRACE_FL_TRAMP_EN = 134217728,
|
|
FTRACE_FL_IPMODIFY = 67108864,
|
|
FTRACE_FL_DISABLED = 33554432,
|
|
FTRACE_FL_DIRECT = 16777216,
|
|
FTRACE_FL_DIRECT_EN = 8388608,
|
|
FTRACE_FL_CALL_OPS = 4194304,
|
|
FTRACE_FL_CALL_OPS_EN = 2097152,
|
|
};
|
|
|
|
enum {
|
|
FTRACE_MODIFY_ENABLE_FL = 1,
|
|
FTRACE_MODIFY_MAY_SLEEP_FL = 2,
|
|
};
|
|
|
|
enum {
|
|
FTRACE_UPDATE_CALLS = 1,
|
|
FTRACE_DISABLE_CALLS = 2,
|
|
FTRACE_UPDATE_TRACE_FUNC = 4,
|
|
FTRACE_START_FUNC_RET = 8,
|
|
FTRACE_STOP_FUNC_RET = 16,
|
|
FTRACE_MAY_SLEEP = 32,
|
|
};
|
|
|
|
enum {
|
|
FTRACE_ITER_FILTER = 1,
|
|
FTRACE_ITER_NOTRACE = 2,
|
|
FTRACE_ITER_PRINTALL = 4,
|
|
FTRACE_ITER_DO_PROBES = 8,
|
|
FTRACE_ITER_PROBE = 16,
|
|
FTRACE_ITER_MOD = 32,
|
|
FTRACE_ITER_ENABLED = 64,
|
|
};
|
|
|
|
enum regex_type {
|
|
MATCH_FULL = 0,
|
|
MATCH_FRONT_ONLY = 1,
|
|
MATCH_MIDDLE_ONLY = 2,
|
|
MATCH_END_ONLY = 3,
|
|
MATCH_GLOB = 4,
|
|
MATCH_INDEX = 5,
|
|
};
|
|
|
|
enum {
|
|
FTRACE_HASH_FL_MOD = 1,
|
|
};
|
|
|
|
enum {
|
|
TRACE_ARRAY_FL_GLOBAL = 1,
|
|
};
|
|
|
|
enum {
|
|
TRACE_PIDS = 1,
|
|
TRACE_NO_PIDS = 2,
|
|
};
|
|
|
|
enum {
|
|
FTRACE_UPDATE_IGNORE = 0,
|
|
FTRACE_UPDATE_MAKE_CALL = 1,
|
|
FTRACE_UPDATE_MODIFY_CALL = 2,
|
|
FTRACE_UPDATE_MAKE_NOP = 3,
|
|
};
|
|
|
|
enum perf_record_ksymbol_type {
|
|
PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0,
|
|
PERF_RECORD_KSYMBOL_TYPE_BPF = 1,
|
|
PERF_RECORD_KSYMBOL_TYPE_OOL = 2,
|
|
PERF_RECORD_KSYMBOL_TYPE_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
WQ_UNBOUND = 2,
|
|
WQ_FREEZABLE = 4,
|
|
WQ_MEM_RECLAIM = 8,
|
|
WQ_HIGHPRI = 16,
|
|
WQ_CPU_INTENSIVE = 32,
|
|
WQ_SYSFS = 64,
|
|
WQ_POWER_EFFICIENT = 128,
|
|
__WQ_DESTROYING = 32768,
|
|
__WQ_DRAINING = 65536,
|
|
__WQ_ORDERED = 131072,
|
|
__WQ_LEGACY = 262144,
|
|
__WQ_ORDERED_EXPLICIT = 524288,
|
|
WQ_MAX_ACTIVE = 512,
|
|
WQ_MAX_UNBOUND_PER_CPU = 4,
|
|
WQ_DFL_ACTIVE = 256,
|
|
};
|
|
|
|
enum {
|
|
TRACE_FTRACE_BIT = 0,
|
|
TRACE_FTRACE_NMI_BIT = 1,
|
|
TRACE_FTRACE_IRQ_BIT = 2,
|
|
TRACE_FTRACE_SIRQ_BIT = 3,
|
|
TRACE_FTRACE_TRANSITION_BIT = 4,
|
|
TRACE_INTERNAL_BIT = 5,
|
|
TRACE_INTERNAL_NMI_BIT = 6,
|
|
TRACE_INTERNAL_IRQ_BIT = 7,
|
|
TRACE_INTERNAL_SIRQ_BIT = 8,
|
|
TRACE_INTERNAL_TRANSITION_BIT = 9,
|
|
TRACE_BRANCH_BIT = 10,
|
|
TRACE_IRQ_BIT = 11,
|
|
TRACE_GRAPH_BIT = 12,
|
|
TRACE_GRAPH_DEPTH_START_BIT = 13,
|
|
TRACE_GRAPH_DEPTH_END_BIT = 14,
|
|
TRACE_GRAPH_NOTRACE_BIT = 15,
|
|
TRACE_RECORD_RECURSION_BIT = 16,
|
|
};
|
|
|
|
enum {
|
|
TRACE_CTX_NMI = 0,
|
|
TRACE_CTX_IRQ = 1,
|
|
TRACE_CTX_SOFTIRQ = 2,
|
|
TRACE_CTX_NORMAL = 3,
|
|
TRACE_CTX_TRANSITION = 4,
|
|
};
|
|
|
|
enum lockdown_reason {
|
|
LOCKDOWN_NONE = 0,
|
|
LOCKDOWN_MODULE_SIGNATURE = 1,
|
|
LOCKDOWN_DEV_MEM = 2,
|
|
LOCKDOWN_EFI_TEST = 3,
|
|
LOCKDOWN_KEXEC = 4,
|
|
LOCKDOWN_HIBERNATION = 5,
|
|
LOCKDOWN_PCI_ACCESS = 6,
|
|
LOCKDOWN_IOPORT = 7,
|
|
LOCKDOWN_MSR = 8,
|
|
LOCKDOWN_ACPI_TABLES = 9,
|
|
LOCKDOWN_DEVICE_TREE = 10,
|
|
LOCKDOWN_PCMCIA_CIS = 11,
|
|
LOCKDOWN_TIOCSSERIAL = 12,
|
|
LOCKDOWN_MODULE_PARAMETERS = 13,
|
|
LOCKDOWN_MMIOTRACE = 14,
|
|
LOCKDOWN_DEBUGFS = 15,
|
|
LOCKDOWN_XMON_WR = 16,
|
|
LOCKDOWN_BPF_WRITE_USER = 17,
|
|
LOCKDOWN_DBG_WRITE_KERNEL = 18,
|
|
LOCKDOWN_RTAS_ERROR_INJECTION = 19,
|
|
LOCKDOWN_INTEGRITY_MAX = 20,
|
|
LOCKDOWN_KCORE = 21,
|
|
LOCKDOWN_KPROBES = 22,
|
|
LOCKDOWN_BPF_READ_KERNEL = 23,
|
|
LOCKDOWN_DBG_READ_KERNEL = 24,
|
|
LOCKDOWN_PERF = 25,
|
|
LOCKDOWN_TRACEFS = 26,
|
|
LOCKDOWN_XMON_RW = 27,
|
|
LOCKDOWN_XFRM_SECRET = 28,
|
|
LOCKDOWN_CONFIDENTIALITY_MAX = 29,
|
|
};
|
|
|
|
enum graph_filter_type {
|
|
GRAPH_FILTER_NOTRACE = 0,
|
|
GRAPH_FILTER_FUNCTION = 1,
|
|
};
|
|
|
|
struct ftrace_func_mapper {
|
|
struct ftrace_hash hash;
|
|
};
|
|
|
|
struct ftrace_func_entry {
|
|
struct hlist_node hlist;
|
|
unsigned long ip;
|
|
unsigned long direct;
|
|
};
|
|
|
|
struct ftrace_func_map {
|
|
struct ftrace_func_entry entry;
|
|
void *data;
|
|
};
|
|
|
|
struct ftrace_probe_ops;
|
|
|
|
struct ftrace_func_probe {
|
|
struct ftrace_probe_ops *probe_ops;
|
|
struct ftrace_ops ops;
|
|
struct trace_array *tr;
|
|
struct list_head list;
|
|
void *data;
|
|
int ref;
|
|
};
|
|
|
|
struct ftrace_probe_ops {
|
|
void (*func)(unsigned long, unsigned long, struct trace_array *, struct ftrace_probe_ops *, void *);
|
|
int (*init)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *, void **);
|
|
void (*free)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *);
|
|
int (*print)(struct seq_file *, unsigned long, struct ftrace_probe_ops *, void *);
|
|
};
|
|
|
|
struct ftrace_direct_func {
|
|
struct list_head next;
|
|
unsigned long addr;
|
|
int count;
|
|
};
|
|
|
|
struct ftrace_mod_map {
|
|
struct callback_head rcu;
|
|
struct list_head list;
|
|
struct module *mod;
|
|
unsigned long start_addr;
|
|
unsigned long end_addr;
|
|
struct list_head funcs;
|
|
unsigned int num_funcs;
|
|
};
|
|
|
|
struct ftrace_mod_func {
|
|
struct list_head list;
|
|
char *name;
|
|
unsigned long ip;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct ftrace_init_func {
|
|
struct list_head list;
|
|
unsigned long ip;
|
|
};
|
|
|
|
struct ftrace_mod_load {
|
|
struct list_head list;
|
|
char *func;
|
|
char *module;
|
|
int enable;
|
|
};
|
|
|
|
typedef int (*cmp_func_t)(const void *, const void *);
|
|
|
|
typedef int (*cpu_stop_fn_t)(void *);
|
|
|
|
struct trace_parser {
|
|
bool cont;
|
|
char *buffer;
|
|
unsigned int idx;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct ftrace_iterator {
|
|
loff_t pos;
|
|
loff_t func_pos;
|
|
loff_t mod_pos;
|
|
struct ftrace_page *pg;
|
|
struct dyn_ftrace *func;
|
|
struct ftrace_func_probe *probe;
|
|
struct ftrace_func_entry *probe_entry;
|
|
struct trace_parser parser;
|
|
struct ftrace_hash *hash;
|
|
struct ftrace_ops *ops;
|
|
struct trace_array *tr;
|
|
struct list_head *mod_list;
|
|
int pidx;
|
|
int idx;
|
|
unsigned int flags;
|
|
};
|
|
|
|
typedef void (*swap_func_t)(void *, void *, int);
|
|
|
|
struct ftrace_glob {
|
|
char *search;
|
|
unsigned int len;
|
|
int type;
|
|
};
|
|
|
|
typedef bool (*smp_cond_func_t)(int, void *);
|
|
|
|
struct ftrace_graph_data {
|
|
struct ftrace_hash *hash;
|
|
struct ftrace_func_entry *entry;
|
|
int idx;
|
|
enum graph_filter_type type;
|
|
struct ftrace_hash *new_hash;
|
|
const struct seq_operations *seq_ops;
|
|
struct trace_parser parser;
|
|
};
|
|
|
|
typedef int (*ftrace_mapper_func)(void *);
|
|
|
|
struct kallsyms_data {
|
|
unsigned long *addrs;
|
|
const char **syms;
|
|
size_t cnt;
|
|
size_t found;
|
|
};
|
|
|
|
enum bpf_return_type {
|
|
RET_INTEGER = 0,
|
|
RET_VOID = 1,
|
|
RET_PTR_TO_MAP_VALUE = 2,
|
|
RET_PTR_TO_SOCKET = 3,
|
|
RET_PTR_TO_TCP_SOCK = 4,
|
|
RET_PTR_TO_SOCK_COMMON = 5,
|
|
RET_PTR_TO_MEM = 6,
|
|
RET_PTR_TO_MEM_OR_BTF_ID = 7,
|
|
RET_PTR_TO_BTF_ID = 8,
|
|
__BPF_RET_TYPE_MAX = 9,
|
|
RET_PTR_TO_MAP_VALUE_OR_NULL = 258,
|
|
RET_PTR_TO_SOCKET_OR_NULL = 259,
|
|
RET_PTR_TO_TCP_SOCK_OR_NULL = 260,
|
|
RET_PTR_TO_SOCK_COMMON_OR_NULL = 261,
|
|
RET_PTR_TO_RINGBUF_MEM_OR_NULL = 1286,
|
|
RET_PTR_TO_DYNPTR_MEM_OR_NULL = 262,
|
|
RET_PTR_TO_BTF_ID_OR_NULL = 264,
|
|
RET_PTR_TO_BTF_ID_TRUSTED = 1048584,
|
|
__BPF_RET_TYPE_LIMIT = 33554431,
|
|
};
|
|
|
|
enum bpf_arg_type {
|
|
ARG_DONTCARE = 0,
|
|
ARG_CONST_MAP_PTR = 1,
|
|
ARG_PTR_TO_MAP_KEY = 2,
|
|
ARG_PTR_TO_MAP_VALUE = 3,
|
|
ARG_PTR_TO_MEM = 4,
|
|
ARG_CONST_SIZE = 5,
|
|
ARG_CONST_SIZE_OR_ZERO = 6,
|
|
ARG_PTR_TO_CTX = 7,
|
|
ARG_ANYTHING = 8,
|
|
ARG_PTR_TO_SPIN_LOCK = 9,
|
|
ARG_PTR_TO_SOCK_COMMON = 10,
|
|
ARG_PTR_TO_INT = 11,
|
|
ARG_PTR_TO_LONG = 12,
|
|
ARG_PTR_TO_SOCKET = 13,
|
|
ARG_PTR_TO_BTF_ID = 14,
|
|
ARG_PTR_TO_RINGBUF_MEM = 15,
|
|
ARG_CONST_ALLOC_SIZE_OR_ZERO = 16,
|
|
ARG_PTR_TO_BTF_ID_SOCK_COMMON = 17,
|
|
ARG_PTR_TO_PERCPU_BTF_ID = 18,
|
|
ARG_PTR_TO_FUNC = 19,
|
|
ARG_PTR_TO_STACK = 20,
|
|
ARG_PTR_TO_CONST_STR = 21,
|
|
ARG_PTR_TO_TIMER = 22,
|
|
ARG_PTR_TO_KPTR = 23,
|
|
ARG_PTR_TO_DYNPTR = 24,
|
|
__BPF_ARG_TYPE_MAX = 25,
|
|
ARG_PTR_TO_MAP_VALUE_OR_NULL = 259,
|
|
ARG_PTR_TO_MEM_OR_NULL = 260,
|
|
ARG_PTR_TO_CTX_OR_NULL = 263,
|
|
ARG_PTR_TO_SOCKET_OR_NULL = 269,
|
|
ARG_PTR_TO_STACK_OR_NULL = 276,
|
|
ARG_PTR_TO_BTF_ID_OR_NULL = 270,
|
|
ARG_PTR_TO_UNINIT_MEM = 32772,
|
|
ARG_PTR_TO_FIXED_SIZE_MEM = 262148,
|
|
__BPF_ARG_TYPE_LIMIT = 33554431,
|
|
};
|
|
|
|
struct bpf_func_proto {
|
|
u64 (*func)(u64, u64, u64, u64, u64);
|
|
bool gpl_only;
|
|
bool pkt_access;
|
|
bool might_sleep;
|
|
enum bpf_return_type ret_type;
|
|
union {
|
|
struct {
|
|
enum bpf_arg_type arg1_type;
|
|
enum bpf_arg_type arg2_type;
|
|
enum bpf_arg_type arg3_type;
|
|
enum bpf_arg_type arg4_type;
|
|
enum bpf_arg_type arg5_type;
|
|
};
|
|
enum bpf_arg_type arg_type[5];
|
|
};
|
|
union {
|
|
struct {
|
|
u32 *arg1_btf_id;
|
|
u32 *arg2_btf_id;
|
|
u32 *arg3_btf_id;
|
|
u32 *arg4_btf_id;
|
|
u32 *arg5_btf_id;
|
|
};
|
|
u32 *arg_btf_id[5];
|
|
struct {
|
|
size_t arg1_size;
|
|
size_t arg2_size;
|
|
size_t arg3_size;
|
|
size_t arg4_size;
|
|
size_t arg5_size;
|
|
};
|
|
size_t arg_size[5];
|
|
};
|
|
int *ret_btf_id;
|
|
bool (*allowed)(const struct bpf_prog *);
|
|
};
|
|
|
|
enum {
|
|
BPF_F_NO_PREALLOC = 1,
|
|
BPF_F_NO_COMMON_LRU = 2,
|
|
BPF_F_NUMA_NODE = 4,
|
|
BPF_F_RDONLY = 8,
|
|
BPF_F_WRONLY = 16,
|
|
BPF_F_STACK_BUILD_ID = 32,
|
|
BPF_F_ZERO_SEED = 64,
|
|
BPF_F_RDONLY_PROG = 128,
|
|
BPF_F_WRONLY_PROG = 256,
|
|
BPF_F_CLONE = 512,
|
|
BPF_F_MMAPABLE = 1024,
|
|
BPF_F_PRESERVE_ELEMS = 2048,
|
|
BPF_F_INNER_MAP = 4096,
|
|
};
|
|
|
|
enum {
|
|
BPF_RINGBUF_BUSY_BIT = 2147483648,
|
|
BPF_RINGBUF_DISCARD_BIT = 1073741824,
|
|
BPF_RINGBUF_HDR_SZ = 8,
|
|
};
|
|
|
|
enum {
|
|
BPF_RB_NO_WAKEUP = 1,
|
|
BPF_RB_FORCE_WAKEUP = 2,
|
|
};
|
|
|
|
enum {
|
|
BPF_RB_AVAIL_DATA = 0,
|
|
BPF_RB_RING_SIZE = 1,
|
|
BPF_RB_CONS_POS = 2,
|
|
BPF_RB_PROD_POS = 3,
|
|
};
|
|
|
|
enum bpf_dynptr_type {
|
|
BPF_DYNPTR_TYPE_INVALID = 0,
|
|
BPF_DYNPTR_TYPE_LOCAL = 1,
|
|
BPF_DYNPTR_TYPE_RINGBUF = 2,
|
|
BPF_DYNPTR_TYPE_SKB = 3,
|
|
BPF_DYNPTR_TYPE_XDP = 4,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64);
|
|
|
|
struct bpf_dynptr_kern;
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *);
|
|
|
|
struct bpf_dynptr_kern {
|
|
void *data;
|
|
u32 size;
|
|
u32 offset;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64);
|
|
|
|
typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64);
|
|
|
|
typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64);
|
|
|
|
struct bpf_ringbuf {
|
|
wait_queue_head_t waitq;
|
|
struct irq_work work;
|
|
u64 mask;
|
|
struct page **pages;
|
|
int nr_pages;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t spinlock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
atomic_t busy;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned long consumer_pos;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned long producer_pos;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
char data[0];
|
|
};
|
|
|
|
struct bpf_ringbuf_map {
|
|
struct bpf_map map;
|
|
struct bpf_ringbuf *rb;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_ringbuf_hdr {
|
|
u32 len;
|
|
u32 pg_off;
|
|
};
|
|
|
|
enum perf_event_type {
|
|
PERF_RECORD_MMAP = 1,
|
|
PERF_RECORD_LOST = 2,
|
|
PERF_RECORD_COMM = 3,
|
|
PERF_RECORD_EXIT = 4,
|
|
PERF_RECORD_THROTTLE = 5,
|
|
PERF_RECORD_UNTHROTTLE = 6,
|
|
PERF_RECORD_FORK = 7,
|
|
PERF_RECORD_READ = 8,
|
|
PERF_RECORD_SAMPLE = 9,
|
|
PERF_RECORD_MMAP2 = 10,
|
|
PERF_RECORD_AUX = 11,
|
|
PERF_RECORD_ITRACE_START = 12,
|
|
PERF_RECORD_LOST_SAMPLES = 13,
|
|
PERF_RECORD_SWITCH = 14,
|
|
PERF_RECORD_SWITCH_CPU_WIDE = 15,
|
|
PERF_RECORD_NAMESPACES = 16,
|
|
PERF_RECORD_KSYMBOL = 17,
|
|
PERF_RECORD_BPF_EVENT = 18,
|
|
PERF_RECORD_CGROUP = 19,
|
|
PERF_RECORD_TEXT_POKE = 20,
|
|
PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
|
|
PERF_RECORD_MAX = 22,
|
|
};
|
|
|
|
struct perf_event_mmap_page;
|
|
|
|
struct perf_buffer {
|
|
refcount_t refcount;
|
|
struct callback_head callback_head;
|
|
int nr_pages;
|
|
int overwrite;
|
|
int paused;
|
|
atomic_t poll;
|
|
local_t head;
|
|
unsigned int nest;
|
|
local_t events;
|
|
local_t wakeup;
|
|
local_t lost;
|
|
long watermark;
|
|
long aux_watermark;
|
|
spinlock_t event_lock;
|
|
struct list_head event_list;
|
|
atomic_t mmap_count;
|
|
unsigned long mmap_locked;
|
|
struct user_struct *mmap_user;
|
|
long aux_head;
|
|
unsigned int aux_nest;
|
|
long aux_wakeup;
|
|
unsigned long aux_pgoff;
|
|
int aux_nr_pages;
|
|
int aux_overwrite;
|
|
atomic_t aux_mmap_count;
|
|
unsigned long aux_mmap_locked;
|
|
void (*free_aux)(void *);
|
|
refcount_t aux_refcount;
|
|
int aux_in_sampling;
|
|
void **aux_pages;
|
|
void *aux_priv;
|
|
struct perf_event_mmap_page *user_page;
|
|
void *data_pages[0];
|
|
};
|
|
|
|
struct perf_event_mmap_page {
|
|
__u32 version;
|
|
__u32 compat_version;
|
|
__u32 lock;
|
|
__u32 index;
|
|
__s64 offset;
|
|
__u64 time_enabled;
|
|
__u64 time_running;
|
|
union {
|
|
__u64 capabilities;
|
|
struct {
|
|
__u64 cap_bit0: 1;
|
|
__u64 cap_bit0_is_deprecated: 1;
|
|
__u64 cap_user_rdpmc: 1;
|
|
__u64 cap_user_time: 1;
|
|
__u64 cap_user_time_zero: 1;
|
|
__u64 cap_user_time_short: 1;
|
|
__u64 cap_____res: 58;
|
|
};
|
|
};
|
|
__u16 pmc_width;
|
|
__u16 time_shift;
|
|
__u32 time_mult;
|
|
__u64 time_offset;
|
|
__u64 time_zero;
|
|
__u32 size;
|
|
__u32 __reserved_1;
|
|
__u64 time_cycles;
|
|
__u64 time_mask;
|
|
__u8 __reserved[928];
|
|
__u64 data_head;
|
|
__u64 data_tail;
|
|
__u64 data_offset;
|
|
__u64 data_size;
|
|
__u64 aux_head;
|
|
__u64 aux_tail;
|
|
__u64 aux_offset;
|
|
__u64 aux_size;
|
|
};
|
|
|
|
struct perf_event_header {
|
|
__u32 type;
|
|
__u16 misc;
|
|
__u16 size;
|
|
};
|
|
|
|
struct reciprocal_value {
|
|
u32 m;
|
|
u8 sh1;
|
|
u8 sh2;
|
|
};
|
|
|
|
struct kmem_cache_order_objects {
|
|
unsigned int x;
|
|
};
|
|
|
|
struct kmem_cache_cpu;
|
|
|
|
struct kmem_cache_node;
|
|
|
|
struct kmem_cache {
|
|
struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab;
|
|
slab_flags_t flags;
|
|
unsigned long min_partial;
|
|
unsigned int size;
|
|
unsigned int object_size;
|
|
struct reciprocal_value reciprocal_size;
|
|
unsigned int offset;
|
|
unsigned int cpu_partial;
|
|
unsigned int cpu_partial_slabs;
|
|
struct kmem_cache_order_objects oo;
|
|
struct kmem_cache_order_objects min;
|
|
gfp_t allocflags;
|
|
int refcount;
|
|
void (*ctor)(void *);
|
|
unsigned int inuse;
|
|
unsigned int align;
|
|
unsigned int red_left_pad;
|
|
const char *name;
|
|
struct list_head list;
|
|
struct kobject kobj;
|
|
struct kmem_cache_node *node[1];
|
|
};
|
|
|
|
typedef struct {} local_lock_t;
|
|
|
|
struct slab;
|
|
|
|
struct kmem_cache_cpu {
|
|
void **freelist;
|
|
unsigned long tid;
|
|
struct slab *slab;
|
|
struct slab *partial;
|
|
local_lock_t lock;
|
|
};
|
|
|
|
struct slab {
|
|
unsigned long __page_flags;
|
|
struct kmem_cache *slab_cache;
|
|
union {
|
|
struct {
|
|
union {
|
|
struct list_head slab_list;
|
|
struct {
|
|
struct slab *next;
|
|
int slabs;
|
|
};
|
|
};
|
|
void *freelist;
|
|
union {
|
|
unsigned long counters;
|
|
struct {
|
|
unsigned int inuse: 16;
|
|
unsigned int objects: 15;
|
|
unsigned int frozen: 1;
|
|
};
|
|
};
|
|
};
|
|
struct callback_head callback_head;
|
|
};
|
|
unsigned int __unused;
|
|
atomic_t __page_refcount;
|
|
};
|
|
|
|
struct kmem_cache_node {
|
|
spinlock_t list_lock;
|
|
unsigned long nr_partial;
|
|
struct list_head partial;
|
|
atomic_long_t nr_slabs;
|
|
atomic_long_t total_objects;
|
|
struct list_head full;
|
|
};
|
|
|
|
typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int);
|
|
|
|
typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int);
|
|
|
|
typedef void (*btf_trace_kfree)(void *, unsigned long, const void *);
|
|
|
|
typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *);
|
|
|
|
typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int);
|
|
|
|
typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *);
|
|
|
|
typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int);
|
|
|
|
typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int);
|
|
|
|
typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int);
|
|
|
|
typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int);
|
|
|
|
struct kmalloc_info_struct {
|
|
const char *name[3];
|
|
unsigned int size;
|
|
};
|
|
|
|
enum slab_state {
|
|
DOWN = 0,
|
|
PARTIAL = 1,
|
|
PARTIAL_NODE = 2,
|
|
UP = 3,
|
|
FULL = 4,
|
|
};
|
|
|
|
struct proc_ops {
|
|
unsigned int proc_flags;
|
|
int (*proc_open)(struct inode *, struct file *);
|
|
ssize_t (*proc_read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *);
|
|
ssize_t (*proc_write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
loff_t (*proc_lseek)(struct file *, loff_t, int);
|
|
int (*proc_release)(struct inode *, struct file *);
|
|
__poll_t (*proc_poll)(struct file *, struct poll_table_struct *);
|
|
long (*proc_ioctl)(struct file *, unsigned int, unsigned long);
|
|
long (*proc_compat_ioctl)(struct file *, unsigned int, unsigned long);
|
|
int (*proc_mmap)(struct file *, struct vm_area_struct *);
|
|
unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
};
|
|
|
|
enum node_stat_item {
|
|
NR_LRU_BASE = 0,
|
|
NR_INACTIVE_ANON = 0,
|
|
NR_ACTIVE_ANON = 1,
|
|
NR_INACTIVE_FILE = 2,
|
|
NR_ACTIVE_FILE = 3,
|
|
NR_UNEVICTABLE = 4,
|
|
NR_SLAB_RECLAIMABLE_B = 5,
|
|
NR_SLAB_UNRECLAIMABLE_B = 6,
|
|
NR_ISOLATED_ANON = 7,
|
|
NR_ISOLATED_FILE = 8,
|
|
WORKINGSET_NODES = 9,
|
|
WORKINGSET_REFAULT_BASE = 10,
|
|
WORKINGSET_REFAULT_ANON = 10,
|
|
WORKINGSET_REFAULT_FILE = 11,
|
|
WORKINGSET_ACTIVATE_BASE = 12,
|
|
WORKINGSET_ACTIVATE_ANON = 12,
|
|
WORKINGSET_ACTIVATE_FILE = 13,
|
|
WORKINGSET_RESTORE_BASE = 14,
|
|
WORKINGSET_RESTORE_ANON = 14,
|
|
WORKINGSET_RESTORE_FILE = 15,
|
|
WORKINGSET_NODERECLAIM = 16,
|
|
NR_ANON_MAPPED = 17,
|
|
NR_FILE_MAPPED = 18,
|
|
NR_FILE_PAGES = 19,
|
|
NR_FILE_DIRTY = 20,
|
|
NR_WRITEBACK = 21,
|
|
NR_WRITEBACK_TEMP = 22,
|
|
NR_SHMEM = 23,
|
|
NR_SHMEM_THPS = 24,
|
|
NR_SHMEM_PMDMAPPED = 25,
|
|
NR_FILE_THPS = 26,
|
|
NR_FILE_PMDMAPPED = 27,
|
|
NR_ANON_THPS = 28,
|
|
NR_VMSCAN_WRITE = 29,
|
|
NR_VMSCAN_IMMEDIATE = 30,
|
|
NR_DIRTIED = 31,
|
|
NR_WRITTEN = 32,
|
|
NR_THROTTLED_WRITTEN = 33,
|
|
NR_KERNEL_MISC_RECLAIMABLE = 34,
|
|
NR_FOLL_PIN_ACQUIRED = 35,
|
|
NR_FOLL_PIN_RELEASED = 36,
|
|
NR_KERNEL_STACK_KB = 37,
|
|
NR_PAGETABLE = 38,
|
|
NR_SECONDARY_PAGETABLE = 39,
|
|
NR_SWAPCACHE = 40,
|
|
NR_VM_NODE_STAT_ITEMS = 41,
|
|
};
|
|
|
|
struct trace_event_raw_kmem_cache_alloc {
|
|
struct trace_entry ent;
|
|
unsigned long call_site;
|
|
const void *ptr;
|
|
size_t bytes_req;
|
|
size_t bytes_alloc;
|
|
unsigned long gfp_flags;
|
|
int node;
|
|
bool accounted;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_kmalloc {
|
|
struct trace_entry ent;
|
|
unsigned long call_site;
|
|
const void *ptr;
|
|
size_t bytes_req;
|
|
size_t bytes_alloc;
|
|
unsigned long gfp_flags;
|
|
int node;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_kfree {
|
|
struct trace_entry ent;
|
|
unsigned long call_site;
|
|
const void *ptr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_kmem_cache_free {
|
|
struct trace_entry ent;
|
|
unsigned long call_site;
|
|
const void *ptr;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_page_free {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
unsigned int order;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_page_free_batched {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_page_alloc {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
unsigned int order;
|
|
unsigned long gfp_flags;
|
|
int migratetype;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_page {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
unsigned int order;
|
|
int migratetype;
|
|
int percpu_refill;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_page_pcpu_drain {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
unsigned int order;
|
|
int migratetype;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_page_alloc_extfrag {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
int alloc_order;
|
|
int fallback_order;
|
|
int alloc_migratetype;
|
|
int fallback_migratetype;
|
|
int change_ownership;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rss_stat {
|
|
struct trace_entry ent;
|
|
unsigned int mm_id;
|
|
unsigned int curr;
|
|
int member;
|
|
long size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_kmem_cache_free {
|
|
u32 name;
|
|
};
|
|
|
|
struct kmem_obj_info {
|
|
void *kp_ptr;
|
|
struct slab *kp_slab;
|
|
void *kp_objp;
|
|
unsigned long kp_data_offset;
|
|
struct kmem_cache *kp_slab_cache;
|
|
void *kp_ret;
|
|
void *kp_stack[16];
|
|
void *kp_free_stack[16];
|
|
};
|
|
|
|
struct slabinfo {
|
|
unsigned long active_objs;
|
|
unsigned long num_objs;
|
|
unsigned long active_slabs;
|
|
unsigned long num_slabs;
|
|
unsigned long shared_avail;
|
|
unsigned int limit;
|
|
unsigned int batchcount;
|
|
unsigned int shared;
|
|
unsigned int objects_per_slab;
|
|
unsigned int cache_order;
|
|
};
|
|
|
|
struct trace_event_data_offsets_kmem_cache_alloc {};
|
|
|
|
struct trace_event_data_offsets_kmalloc {};
|
|
|
|
struct trace_event_data_offsets_kfree {};
|
|
|
|
struct trace_event_data_offsets_mm_page_free {};
|
|
|
|
struct trace_event_data_offsets_mm_page_free_batched {};
|
|
|
|
struct trace_event_data_offsets_mm_page_alloc {};
|
|
|
|
struct trace_event_data_offsets_mm_page {};
|
|
|
|
struct trace_event_data_offsets_mm_page_pcpu_drain {};
|
|
|
|
struct trace_event_data_offsets_mm_page_alloc_extfrag {};
|
|
|
|
struct trace_event_data_offsets_rss_stat {};
|
|
|
|
enum fixed_addresses {
|
|
VSYSCALL_PAGE = 511,
|
|
FIX_DBGP_BASE = 512,
|
|
FIX_EARLYCON_MEM_BASE = 513,
|
|
FIX_OHCI1394_BASE = 514,
|
|
FIX_APIC_BASE = 515,
|
|
FIX_IO_APIC_BASE_0 = 516,
|
|
FIX_IO_APIC_BASE_END = 643,
|
|
__end_of_permanent_fixed_addresses = 644,
|
|
FIX_BTMAP_END = 1024,
|
|
FIX_BTMAP_BEGIN = 1535,
|
|
__end_of_fixed_addresses = 1536,
|
|
};
|
|
|
|
struct kstatfs {
|
|
long f_type;
|
|
long f_bsize;
|
|
u64 f_blocks;
|
|
u64 f_bfree;
|
|
u64 f_bavail;
|
|
u64 f_files;
|
|
u64 f_ffree;
|
|
__kernel_fsid_t f_fsid;
|
|
long f_namelen;
|
|
long f_frsize;
|
|
long f_flags;
|
|
long f_spare[4];
|
|
};
|
|
|
|
struct syscall_metadata {
|
|
const char *name;
|
|
int syscall_nr;
|
|
int nb_args;
|
|
const char **types;
|
|
const char **args;
|
|
struct list_head enter_fields;
|
|
struct trace_event_call *enter_event;
|
|
struct trace_event_call *exit_event;
|
|
};
|
|
|
|
enum {
|
|
XA_CHECK_SCHED = 4096,
|
|
};
|
|
|
|
enum {
|
|
HUGETLB_SHMFS_INODE = 1,
|
|
HUGETLB_ANONHUGE_INODE = 2,
|
|
};
|
|
|
|
struct shared_policy {};
|
|
|
|
struct simple_xattrs {
|
|
struct rb_root rb_root;
|
|
rwlock_t lock;
|
|
};
|
|
|
|
struct shmem_inode_info {
|
|
spinlock_t lock;
|
|
unsigned int seals;
|
|
unsigned long flags;
|
|
unsigned long alloced;
|
|
unsigned long swapped;
|
|
unsigned long fallocend;
|
|
struct list_head shrinklist;
|
|
struct list_head swaplist;
|
|
struct shared_policy policy;
|
|
struct simple_xattrs xattrs;
|
|
atomic_t stop_eviction;
|
|
struct timespec64 i_crtime;
|
|
unsigned int fsflags;
|
|
struct inode vfs_inode;
|
|
};
|
|
|
|
struct hugetlbfs_inode_info {
|
|
struct shared_policy policy;
|
|
struct inode vfs_inode;
|
|
unsigned int seals;
|
|
};
|
|
|
|
struct xa_node {
|
|
unsigned char shift;
|
|
unsigned char offset;
|
|
unsigned char count;
|
|
unsigned char nr_values;
|
|
struct xa_node __attribute__((btf_type_tag("rcu"))) *parent;
|
|
struct xarray *array;
|
|
union {
|
|
struct list_head private_list;
|
|
struct callback_head callback_head;
|
|
};
|
|
void __attribute__((btf_type_tag("rcu"))) *slots[64];
|
|
union {
|
|
unsigned long tags[3];
|
|
unsigned long marks[3];
|
|
};
|
|
};
|
|
|
|
typedef unsigned int xa_mark_t;
|
|
|
|
typedef void (*xa_update_node_t)(struct xa_node *);
|
|
|
|
struct xa_state {
|
|
struct xarray *xa;
|
|
unsigned long xa_index;
|
|
unsigned char xa_shift;
|
|
unsigned char xa_sibs;
|
|
unsigned char xa_offset;
|
|
unsigned char xa_pad;
|
|
struct xa_node *xa_node;
|
|
struct xa_node *xa_alloc;
|
|
xa_update_node_t xa_update;
|
|
struct list_lru *xa_lru;
|
|
};
|
|
|
|
struct fid {
|
|
union {
|
|
struct {
|
|
u32 ino;
|
|
u32 gen;
|
|
u32 parent_ino;
|
|
u32 parent_gen;
|
|
} i32;
|
|
struct {
|
|
u32 block;
|
|
u16 partref;
|
|
u16 parent_partref;
|
|
u32 generation;
|
|
u32 parent_block;
|
|
u32 parent_generation;
|
|
} udf;
|
|
struct {
|
|
struct { } __empty_raw;
|
|
__u32 raw[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
enum dentry_d_lock_class {
|
|
DENTRY_D_LOCK_NORMAL = 0,
|
|
DENTRY_D_LOCK_NESTED = 1,
|
|
};
|
|
|
|
enum fid_type {
|
|
FILEID_ROOT = 0,
|
|
FILEID_INO32_GEN = 1,
|
|
FILEID_INO32_GEN_PARENT = 2,
|
|
FILEID_BTRFS_WITHOUT_PARENT = 77,
|
|
FILEID_BTRFS_WITH_PARENT = 78,
|
|
FILEID_BTRFS_WITH_PARENT_ROOT = 79,
|
|
FILEID_UDF_WITHOUT_PARENT = 81,
|
|
FILEID_UDF_WITH_PARENT = 82,
|
|
FILEID_NILFS_WITHOUT_PARENT = 97,
|
|
FILEID_NILFS_WITH_PARENT = 98,
|
|
FILEID_FAT_WITHOUT_PARENT = 113,
|
|
FILEID_FAT_WITH_PARENT = 114,
|
|
FILEID_LUSTRE = 151,
|
|
FILEID_KERNFS = 254,
|
|
FILEID_INVALID = 255,
|
|
};
|
|
|
|
enum fsnotify_data_type {
|
|
FSNOTIFY_EVENT_NONE = 0,
|
|
FSNOTIFY_EVENT_PATH = 1,
|
|
FSNOTIFY_EVENT_INODE = 2,
|
|
FSNOTIFY_EVENT_DENTRY = 3,
|
|
FSNOTIFY_EVENT_ERROR = 4,
|
|
};
|
|
|
|
struct simple_transaction_argresp {
|
|
ssize_t size;
|
|
char data[0];
|
|
};
|
|
|
|
struct pseudo_fs_context {
|
|
const struct super_operations *ops;
|
|
const struct xattr_handler **xattr;
|
|
const struct dentry_operations *dops;
|
|
unsigned long magic;
|
|
};
|
|
|
|
struct tree_descr {
|
|
const char *name;
|
|
const struct file_operations *ops;
|
|
int mode;
|
|
};
|
|
|
|
struct simple_attr {
|
|
int (*get)(void *, u64 *);
|
|
int (*set)(void *, u64);
|
|
char get_buf[24];
|
|
char set_buf[24];
|
|
void *data;
|
|
const char *fmt;
|
|
struct mutex mutex;
|
|
};
|
|
|
|
enum fsnotify_obj_type {
|
|
FSNOTIFY_OBJ_TYPE_ANY = -1,
|
|
FSNOTIFY_OBJ_TYPE_INODE = 0,
|
|
FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1,
|
|
FSNOTIFY_OBJ_TYPE_SB = 2,
|
|
FSNOTIFY_OBJ_TYPE_COUNT = 3,
|
|
FSNOTIFY_OBJ_TYPE_DETACHED = 3,
|
|
};
|
|
|
|
enum fsnotify_iter_type {
|
|
FSNOTIFY_ITER_TYPE_INODE = 0,
|
|
FSNOTIFY_ITER_TYPE_VFSMOUNT = 1,
|
|
FSNOTIFY_ITER_TYPE_SB = 2,
|
|
FSNOTIFY_ITER_TYPE_PARENT = 3,
|
|
FSNOTIFY_ITER_TYPE_INODE2 = 4,
|
|
FSNOTIFY_ITER_TYPE_COUNT = 5,
|
|
};
|
|
|
|
enum {
|
|
QUOTA_NL_C_UNSPEC = 0,
|
|
QUOTA_NL_C_WARNING = 1,
|
|
__QUOTA_NL_C_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
QUOTA_NL_A_UNSPEC = 0,
|
|
QUOTA_NL_A_QTYPE = 1,
|
|
QUOTA_NL_A_EXCESS_ID = 2,
|
|
QUOTA_NL_A_WARNING = 3,
|
|
QUOTA_NL_A_DEV_MAJOR = 4,
|
|
QUOTA_NL_A_DEV_MINOR = 5,
|
|
QUOTA_NL_A_CAUSED_ID = 6,
|
|
QUOTA_NL_A_PAD = 7,
|
|
__QUOTA_NL_A_MAX = 8,
|
|
};
|
|
|
|
enum kernfs_root_flag {
|
|
KERNFS_ROOT_CREATE_DEACTIVATED = 1,
|
|
KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2,
|
|
KERNFS_ROOT_SUPPORT_EXPORTOP = 4,
|
|
KERNFS_ROOT_SUPPORT_USER_XATTR = 8,
|
|
};
|
|
|
|
struct kernfs_syscall_ops {
|
|
int (*show_options)(struct seq_file *, struct kernfs_root *);
|
|
int (*mkdir)(struct kernfs_node *, const char *, umode_t);
|
|
int (*rmdir)(struct kernfs_node *);
|
|
int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *);
|
|
int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *);
|
|
};
|
|
|
|
struct kernfs_fs_context {
|
|
struct kernfs_root *root;
|
|
void *ns_tag;
|
|
unsigned long magic;
|
|
bool new_sb_created;
|
|
};
|
|
|
|
enum {
|
|
EXT4_INODE_SECRM = 0,
|
|
EXT4_INODE_UNRM = 1,
|
|
EXT4_INODE_COMPR = 2,
|
|
EXT4_INODE_SYNC = 3,
|
|
EXT4_INODE_IMMUTABLE = 4,
|
|
EXT4_INODE_APPEND = 5,
|
|
EXT4_INODE_NODUMP = 6,
|
|
EXT4_INODE_NOATIME = 7,
|
|
EXT4_INODE_DIRTY = 8,
|
|
EXT4_INODE_COMPRBLK = 9,
|
|
EXT4_INODE_NOCOMPR = 10,
|
|
EXT4_INODE_ENCRYPT = 11,
|
|
EXT4_INODE_INDEX = 12,
|
|
EXT4_INODE_IMAGIC = 13,
|
|
EXT4_INODE_JOURNAL_DATA = 14,
|
|
EXT4_INODE_NOTAIL = 15,
|
|
EXT4_INODE_DIRSYNC = 16,
|
|
EXT4_INODE_TOPDIR = 17,
|
|
EXT4_INODE_HUGE_FILE = 18,
|
|
EXT4_INODE_EXTENTS = 19,
|
|
EXT4_INODE_VERITY = 20,
|
|
EXT4_INODE_EA_INODE = 21,
|
|
EXT4_INODE_DAX = 25,
|
|
EXT4_INODE_INLINE_DATA = 28,
|
|
EXT4_INODE_PROJINHERIT = 29,
|
|
EXT4_INODE_CASEFOLD = 30,
|
|
EXT4_INODE_RESERVED = 31,
|
|
};
|
|
|
|
typedef unsigned int ext4_group_t;
|
|
|
|
struct extent_status;
|
|
|
|
struct ext4_es_tree {
|
|
struct rb_root root;
|
|
struct extent_status *cache_es;
|
|
};
|
|
|
|
struct ext4_pending_tree {
|
|
struct rb_root root;
|
|
};
|
|
|
|
struct ext4_inode_info {
|
|
__le32 i_data[15];
|
|
__u32 i_dtime;
|
|
ext4_fsblk_t i_file_acl;
|
|
ext4_group_t i_block_group;
|
|
ext4_lblk_t i_dir_start_lookup;
|
|
unsigned long i_flags;
|
|
struct rw_semaphore xattr_sem;
|
|
union {
|
|
struct list_head i_orphan;
|
|
unsigned int i_orphan_idx;
|
|
};
|
|
struct list_head i_fc_dilist;
|
|
struct list_head i_fc_list;
|
|
ext4_lblk_t i_fc_lblk_start;
|
|
ext4_lblk_t i_fc_lblk_len;
|
|
atomic_t i_fc_updates;
|
|
wait_queue_head_t i_fc_wait;
|
|
struct mutex i_fc_lock;
|
|
loff_t i_disksize;
|
|
struct rw_semaphore i_data_sem;
|
|
struct inode vfs_inode;
|
|
struct jbd2_inode *jinode;
|
|
spinlock_t i_raw_lock;
|
|
struct timespec64 i_crtime;
|
|
atomic_t i_prealloc_active;
|
|
struct list_head i_prealloc_list;
|
|
spinlock_t i_prealloc_lock;
|
|
struct ext4_es_tree i_es_tree;
|
|
rwlock_t i_es_lock;
|
|
struct list_head i_es_list;
|
|
unsigned int i_es_all_nr;
|
|
unsigned int i_es_shk_nr;
|
|
ext4_lblk_t i_es_shrink_lblk;
|
|
ext4_group_t i_last_alloc_group;
|
|
unsigned int i_reserved_data_blocks;
|
|
struct ext4_pending_tree i_pending_tree;
|
|
__u16 i_extra_isize;
|
|
u16 i_inline_off;
|
|
u16 i_inline_size;
|
|
qsize_t i_reserved_quota;
|
|
spinlock_t i_completed_io_lock;
|
|
struct list_head i_rsv_conversion_list;
|
|
struct work_struct i_rsv_conversion_work;
|
|
atomic_t i_unwritten;
|
|
spinlock_t i_block_reservation_lock;
|
|
tid_t i_sync_tid;
|
|
tid_t i_datasync_tid;
|
|
struct dquot *i_dquot[3];
|
|
__u32 i_csum_seed;
|
|
kprojid_t i_projid;
|
|
};
|
|
|
|
struct extent_status {
|
|
struct rb_node rb_node;
|
|
ext4_lblk_t es_lblk;
|
|
ext4_lblk_t es_len;
|
|
ext4_fsblk_t es_pblk;
|
|
};
|
|
|
|
struct msdos_inode_info {
|
|
spinlock_t cache_lru_lock;
|
|
struct list_head cache_lru;
|
|
int nr_caches;
|
|
unsigned int cache_valid_id;
|
|
loff_t mmu_private;
|
|
int i_start;
|
|
int i_logstart;
|
|
int i_attrs;
|
|
loff_t i_pos;
|
|
struct hlist_node i_fat_hash;
|
|
struct hlist_node i_dir_hash;
|
|
struct rw_semaphore truncate_lock;
|
|
struct timespec64 i_crtime;
|
|
struct inode vfs_inode;
|
|
};
|
|
|
|
struct pnfs_layout_range {
|
|
u32 iomode;
|
|
u64 offset;
|
|
u64 length;
|
|
};
|
|
|
|
struct pnfs_layout_segment {
|
|
struct list_head pls_list;
|
|
struct list_head pls_lc_list;
|
|
struct list_head pls_commits;
|
|
struct pnfs_layout_range pls_range;
|
|
refcount_t pls_refcount;
|
|
u32 pls_seq;
|
|
unsigned long pls_flags;
|
|
struct pnfs_layout_hdr *pls_layout;
|
|
};
|
|
|
|
struct nfs_io_completion {
|
|
void (*complete)(void *);
|
|
void *data;
|
|
struct kref refcount;
|
|
};
|
|
|
|
enum positive_aop_returns {
|
|
AOP_WRITEPAGE_ACTIVATE = 524288,
|
|
AOP_TRUNCATED_PAGE = 524289,
|
|
};
|
|
|
|
enum nfs_stat_eventcounters {
|
|
NFSIOS_INODEREVALIDATE = 0,
|
|
NFSIOS_DENTRYREVALIDATE = 1,
|
|
NFSIOS_DATAINVALIDATE = 2,
|
|
NFSIOS_ATTRINVALIDATE = 3,
|
|
NFSIOS_VFSOPEN = 4,
|
|
NFSIOS_VFSLOOKUP = 5,
|
|
NFSIOS_VFSACCESS = 6,
|
|
NFSIOS_VFSUPDATEPAGE = 7,
|
|
NFSIOS_VFSREADPAGE = 8,
|
|
NFSIOS_VFSREADPAGES = 9,
|
|
NFSIOS_VFSWRITEPAGE = 10,
|
|
NFSIOS_VFSWRITEPAGES = 11,
|
|
NFSIOS_VFSGETDENTS = 12,
|
|
NFSIOS_VFSSETATTR = 13,
|
|
NFSIOS_VFSFLUSH = 14,
|
|
NFSIOS_VFSFSYNC = 15,
|
|
NFSIOS_VFSLOCK = 16,
|
|
NFSIOS_VFSRELEASE = 17,
|
|
NFSIOS_CONGESTIONWAIT = 18,
|
|
NFSIOS_SETATTRTRUNC = 19,
|
|
NFSIOS_EXTENDWRITE = 20,
|
|
NFSIOS_SILLYRENAME = 21,
|
|
NFSIOS_SHORTREAD = 22,
|
|
NFSIOS_SHORTWRITE = 23,
|
|
NFSIOS_DELAY = 24,
|
|
NFSIOS_PNFS_READ = 25,
|
|
NFSIOS_PNFS_WRITE = 26,
|
|
__NFSIOS_COUNTSMAX = 27,
|
|
};
|
|
|
|
enum {
|
|
PG_BUSY = 0,
|
|
PG_MAPPED = 1,
|
|
PG_FOLIO = 2,
|
|
PG_CLEAN = 3,
|
|
PG_COMMIT_TO_DS = 4,
|
|
PG_INODE_REF = 5,
|
|
PG_HEADLOCK = 6,
|
|
PG_TEARDOWN = 7,
|
|
PG_UNLOCKPAGE = 8,
|
|
PG_UPTODATE = 9,
|
|
PG_WB_END = 10,
|
|
PG_REMOVE = 11,
|
|
PG_CONTENDED1 = 12,
|
|
PG_CONTENDED2 = 13,
|
|
};
|
|
|
|
enum pnfs_try_status {
|
|
PNFS_ATTEMPTED = 0,
|
|
PNFS_NOT_ATTEMPTED = 1,
|
|
PNFS_TRY_AGAIN = 2,
|
|
};
|
|
|
|
enum nfs_stat_bytecounters {
|
|
NFSIOS_NORMALREADBYTES = 0,
|
|
NFSIOS_NORMALWRITTENBYTES = 1,
|
|
NFSIOS_DIRECTREADBYTES = 2,
|
|
NFSIOS_DIRECTWRITTENBYTES = 3,
|
|
NFSIOS_SERVERREADBYTES = 4,
|
|
NFSIOS_SERVERWRITTENBYTES = 5,
|
|
NFSIOS_READPAGES = 6,
|
|
NFSIOS_WRITEPAGES = 7,
|
|
__NFSIOS_BYTESMAX = 8,
|
|
};
|
|
|
|
enum wb_stat_item {
|
|
WB_RECLAIMABLE = 0,
|
|
WB_WRITEBACK = 1,
|
|
WB_DIRTIED = 2,
|
|
WB_WRITTEN = 3,
|
|
NR_WB_STAT_ITEMS = 4,
|
|
};
|
|
|
|
enum {
|
|
NFS_IOHDR_ERROR = 0,
|
|
NFS_IOHDR_EOF = 1,
|
|
NFS_IOHDR_REDO = 2,
|
|
NFS_IOHDR_STAT = 3,
|
|
NFS_IOHDR_RESEND_PNFS = 4,
|
|
NFS_IOHDR_RESEND_MDS = 5,
|
|
NFS_IOHDR_UNSTABLE_WRITES = 6,
|
|
};
|
|
|
|
struct nfs_pgio_mirror {
|
|
struct list_head pg_list;
|
|
unsigned long pg_bytes_written;
|
|
size_t pg_count;
|
|
size_t pg_bsize;
|
|
unsigned int pg_base;
|
|
unsigned char pg_recoalesce: 1;
|
|
};
|
|
|
|
struct nfs_pageio_ops;
|
|
|
|
struct nfs_pageio_descriptor {
|
|
struct inode *pg_inode;
|
|
const struct nfs_pageio_ops *pg_ops;
|
|
const struct nfs_rw_ops *pg_rw_ops;
|
|
int pg_ioflags;
|
|
int pg_error;
|
|
const struct rpc_call_ops *pg_rpc_callops;
|
|
const struct nfs_pgio_completion_ops *pg_completion_ops;
|
|
struct pnfs_layout_segment *pg_lseg;
|
|
struct nfs_io_completion *pg_io_completion;
|
|
struct nfs_direct_req *pg_dreq;
|
|
unsigned int pg_bsize;
|
|
u32 pg_mirror_count;
|
|
struct nfs_pgio_mirror *pg_mirrors;
|
|
struct nfs_pgio_mirror pg_mirrors_static[1];
|
|
struct nfs_pgio_mirror *pg_mirrors_dynamic;
|
|
u32 pg_mirror_idx;
|
|
unsigned short pg_maxretrans;
|
|
unsigned char pg_moreio: 1;
|
|
};
|
|
|
|
struct nfs_pageio_ops {
|
|
void (*pg_init)(struct nfs_pageio_descriptor *, struct nfs_page *);
|
|
size_t (*pg_test)(struct nfs_pageio_descriptor *, struct nfs_page *, struct nfs_page *);
|
|
int (*pg_doio)(struct nfs_pageio_descriptor *);
|
|
unsigned int (*pg_get_mirror_count)(struct nfs_pageio_descriptor *, struct nfs_page *);
|
|
void (*pg_cleanup)(struct nfs_pageio_descriptor *);
|
|
struct nfs_pgio_mirror * (*pg_get_mirror)(struct nfs_pageio_descriptor *, u32);
|
|
u32 (*pg_set_mirror)(struct nfs_pageio_descriptor *, u32);
|
|
};
|
|
|
|
typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *);
|
|
|
|
struct blk_ia_range_sysfs_entry {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct blk_independent_access_range *, char *);
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned char op;
|
|
unsigned char bits;
|
|
unsigned short val;
|
|
} code;
|
|
|
|
typedef enum {
|
|
HEAD = 0,
|
|
FLAGS = 1,
|
|
TIME = 2,
|
|
OS = 3,
|
|
EXLEN = 4,
|
|
EXTRA = 5,
|
|
NAME = 6,
|
|
COMMENT = 7,
|
|
HCRC = 8,
|
|
DICTID = 9,
|
|
DICT = 10,
|
|
TYPE = 11,
|
|
TYPEDO = 12,
|
|
STORED = 13,
|
|
COPY = 14,
|
|
TABLE = 15,
|
|
LENLENS = 16,
|
|
CODELENS = 17,
|
|
LEN = 18,
|
|
LENEXT = 19,
|
|
DIST = 20,
|
|
DISTEXT = 21,
|
|
MATCH = 22,
|
|
LIT = 23,
|
|
CHECK = 24,
|
|
LENGTH = 25,
|
|
DONE = 26,
|
|
BAD = 27,
|
|
MEM = 28,
|
|
SYNC = 29,
|
|
} inflate_mode;
|
|
|
|
struct inflate_state {
|
|
inflate_mode mode;
|
|
int last;
|
|
int wrap;
|
|
int havedict;
|
|
int flags;
|
|
unsigned int dmax;
|
|
unsigned long check;
|
|
unsigned long total;
|
|
unsigned int wbits;
|
|
unsigned int wsize;
|
|
unsigned int whave;
|
|
unsigned int write;
|
|
unsigned char *window;
|
|
unsigned long hold;
|
|
unsigned int bits;
|
|
unsigned int length;
|
|
unsigned int offset;
|
|
unsigned int extra;
|
|
const code *lencode;
|
|
const code *distcode;
|
|
unsigned int lenbits;
|
|
unsigned int distbits;
|
|
unsigned int ncode;
|
|
unsigned int nlen;
|
|
unsigned int ndist;
|
|
unsigned int have;
|
|
code *next;
|
|
unsigned short lens[320];
|
|
unsigned short work[288];
|
|
code codes[2048];
|
|
};
|
|
|
|
struct inflate_workspace {
|
|
struct inflate_state inflate_state;
|
|
unsigned char working_window[32768];
|
|
};
|
|
|
|
struct z_stream_s;
|
|
|
|
typedef struct z_stream_s z_stream;
|
|
|
|
typedef z_stream *z_streamp;
|
|
|
|
typedef unsigned char Byte;
|
|
|
|
typedef unsigned long uLong;
|
|
|
|
struct internal_state;
|
|
|
|
struct z_stream_s {
|
|
const Byte *next_in;
|
|
uLong avail_in;
|
|
uLong total_in;
|
|
Byte *next_out;
|
|
uLong avail_out;
|
|
uLong total_out;
|
|
char *msg;
|
|
struct internal_state *state;
|
|
void *workspace;
|
|
int data_type;
|
|
uLong adler;
|
|
uLong reserved;
|
|
};
|
|
|
|
typedef enum {
|
|
CODES = 0,
|
|
LENS = 1,
|
|
DISTS = 2,
|
|
} codetype;
|
|
|
|
typedef unsigned int uInt;
|
|
|
|
typedef uint8_t BYTE;
|
|
|
|
typedef uintptr_t uptrval;
|
|
|
|
typedef uint32_t U32;
|
|
|
|
typedef uint64_t U64;
|
|
|
|
typedef enum {
|
|
endOnOutputSize = 0,
|
|
endOnInputSize = 1,
|
|
} endCondition_directive;
|
|
|
|
typedef enum {
|
|
decode_full_block = 0,
|
|
partial_decode = 1,
|
|
} earlyEnd_directive;
|
|
|
|
typedef enum {
|
|
noDict = 0,
|
|
withPrefix64k = 1,
|
|
usingExtDict = 2,
|
|
} dict_directive;
|
|
|
|
typedef struct {
|
|
const uint8_t *externalDict;
|
|
size_t extDictSize;
|
|
const uint8_t *prefixEnd;
|
|
size_t prefixSize;
|
|
} LZ4_streamDecode_t_internal;
|
|
|
|
typedef union {
|
|
unsigned long long table[4];
|
|
LZ4_streamDecode_t_internal internal_donotuse;
|
|
} LZ4_streamDecode_t;
|
|
|
|
enum xz_ret {
|
|
XZ_OK = 0,
|
|
XZ_STREAM_END = 1,
|
|
XZ_UNSUPPORTED_CHECK = 2,
|
|
XZ_MEM_ERROR = 3,
|
|
XZ_MEMLIMIT_ERROR = 4,
|
|
XZ_FORMAT_ERROR = 5,
|
|
XZ_OPTIONS_ERROR = 6,
|
|
XZ_DATA_ERROR = 7,
|
|
XZ_BUF_ERROR = 8,
|
|
};
|
|
|
|
struct xz_dec_bcj {
|
|
enum {
|
|
BCJ_X86 = 4,
|
|
BCJ_POWERPC = 5,
|
|
BCJ_IA64 = 6,
|
|
BCJ_ARM = 7,
|
|
BCJ_ARMTHUMB = 8,
|
|
BCJ_SPARC = 9,
|
|
} type;
|
|
enum xz_ret ret;
|
|
bool single_call;
|
|
uint32_t pos;
|
|
uint32_t x86_prev_mask;
|
|
uint8_t *out;
|
|
size_t out_pos;
|
|
size_t out_size;
|
|
struct {
|
|
size_t filtered;
|
|
size_t size;
|
|
uint8_t buf[16];
|
|
} temp;
|
|
};
|
|
|
|
struct xz_buf {
|
|
const uint8_t *in;
|
|
size_t in_pos;
|
|
size_t in_size;
|
|
uint8_t *out;
|
|
size_t out_pos;
|
|
size_t out_size;
|
|
};
|
|
|
|
struct xz_dec_lzma2;
|
|
|
|
struct seccomp_data {
|
|
int nr;
|
|
__u32 arch;
|
|
__u64 instruction_pointer;
|
|
__u64 args[6];
|
|
};
|
|
|
|
struct syscall_info {
|
|
__u64 sp;
|
|
struct seccomp_data data;
|
|
};
|
|
|
|
struct msi_domain_template {
|
|
char name[48];
|
|
struct irq_chip chip;
|
|
struct msi_domain_ops ops;
|
|
struct msi_domain_info info;
|
|
};
|
|
|
|
enum {
|
|
IRQCHIP_SET_TYPE_MASKED = 1,
|
|
IRQCHIP_EOI_IF_HANDLED = 2,
|
|
IRQCHIP_MASK_ON_SUSPEND = 4,
|
|
IRQCHIP_ONOFFLINE_ENABLED = 8,
|
|
IRQCHIP_SKIP_SET_WAKE = 16,
|
|
IRQCHIP_ONESHOT_SAFE = 32,
|
|
IRQCHIP_EOI_THREADED = 64,
|
|
IRQCHIP_SUPPORTS_LEVEL_MSI = 128,
|
|
IRQCHIP_SUPPORTS_NMI = 256,
|
|
IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512,
|
|
IRQCHIP_AFFINITY_PRE_STARTUP = 1024,
|
|
IRQCHIP_IMMUTABLE = 2048,
|
|
};
|
|
|
|
enum {
|
|
IRQ_DOMAIN_FLAG_HIERARCHY = 1,
|
|
IRQ_DOMAIN_NAME_ALLOCATED = 2,
|
|
IRQ_DOMAIN_FLAG_IPI_PER_CPU = 4,
|
|
IRQ_DOMAIN_FLAG_IPI_SINGLE = 8,
|
|
IRQ_DOMAIN_FLAG_MSI = 16,
|
|
IRQ_DOMAIN_FLAG_ISOLATED_MSI = 32,
|
|
IRQ_DOMAIN_FLAG_NO_MAP = 64,
|
|
IRQ_DOMAIN_FLAG_MSI_PARENT = 256,
|
|
IRQ_DOMAIN_FLAG_MSI_DEVICE = 512,
|
|
IRQ_DOMAIN_FLAG_NONCORE = 65536,
|
|
};
|
|
|
|
struct acpi_device_status {
|
|
u32 present: 1;
|
|
u32 enabled: 1;
|
|
u32 show_in_ui: 1;
|
|
u32 functional: 1;
|
|
u32 battery_present: 1;
|
|
u32 reserved: 27;
|
|
};
|
|
|
|
struct acpi_device_flags {
|
|
u32 dynamic_status: 1;
|
|
u32 removable: 1;
|
|
u32 ejectable: 1;
|
|
u32 power_manageable: 1;
|
|
u32 match_driver: 1;
|
|
u32 initialized: 1;
|
|
u32 visited: 1;
|
|
u32 hotplug_notify: 1;
|
|
u32 is_dock_station: 1;
|
|
u32 of_compatible_ok: 1;
|
|
u32 coherent_dma: 1;
|
|
u32 cca_seen: 1;
|
|
u32 enumeration_by_parent: 1;
|
|
u32 honor_deps: 1;
|
|
u32 reserved: 18;
|
|
};
|
|
|
|
typedef char acpi_bus_id[8];
|
|
|
|
struct acpi_pnp_type {
|
|
u32 hardware_id: 1;
|
|
u32 bus_address: 1;
|
|
u32 platform_id: 1;
|
|
u32 backlight: 1;
|
|
u32 reserved: 28;
|
|
};
|
|
|
|
typedef u64 acpi_bus_address;
|
|
|
|
typedef char acpi_device_name[40];
|
|
|
|
typedef char acpi_device_class[20];
|
|
|
|
union acpi_object;
|
|
|
|
struct acpi_device_pnp {
|
|
acpi_bus_id bus_id;
|
|
int instance_no;
|
|
struct acpi_pnp_type type;
|
|
acpi_bus_address bus_address;
|
|
char *unique_id;
|
|
struct list_head ids;
|
|
acpi_device_name device_name;
|
|
acpi_device_class device_class;
|
|
union acpi_object *str_obj;
|
|
};
|
|
|
|
struct acpi_device_power_flags {
|
|
u32 explicit_get: 1;
|
|
u32 power_resources: 1;
|
|
u32 inrush_current: 1;
|
|
u32 power_removed: 1;
|
|
u32 ignore_parent: 1;
|
|
u32 dsw_present: 1;
|
|
u32 reserved: 26;
|
|
};
|
|
|
|
struct acpi_device_power_state {
|
|
struct {
|
|
u8 valid: 1;
|
|
u8 explicit_set: 1;
|
|
u8 reserved: 6;
|
|
} flags;
|
|
int power;
|
|
int latency;
|
|
struct list_head resources;
|
|
};
|
|
|
|
struct acpi_device_power {
|
|
int state;
|
|
struct acpi_device_power_flags flags;
|
|
struct acpi_device_power_state states[5];
|
|
u8 state_for_enumeration;
|
|
};
|
|
|
|
struct acpi_device_wakeup_flags {
|
|
u8 valid: 1;
|
|
u8 notifier_present: 1;
|
|
};
|
|
|
|
struct acpi_device_wakeup_context {
|
|
void (*func)(struct acpi_device_wakeup_context *);
|
|
struct device *dev;
|
|
};
|
|
|
|
struct acpi_device_wakeup {
|
|
acpi_handle gpe_device;
|
|
u64 gpe_number;
|
|
u64 sleep_state;
|
|
struct list_head resources;
|
|
struct acpi_device_wakeup_flags flags;
|
|
struct acpi_device_wakeup_context context;
|
|
struct wakeup_source *ws;
|
|
int prepare_count;
|
|
int enable_count;
|
|
};
|
|
|
|
struct acpi_device_perf_flags {
|
|
u8 reserved: 8;
|
|
};
|
|
|
|
struct acpi_device_perf_state;
|
|
|
|
struct acpi_device_perf {
|
|
int state;
|
|
struct acpi_device_perf_flags flags;
|
|
int state_count;
|
|
struct acpi_device_perf_state *states;
|
|
};
|
|
|
|
struct acpi_device_dir {
|
|
struct proc_dir_entry *entry;
|
|
};
|
|
|
|
struct acpi_device_data {
|
|
const union acpi_object *pointer;
|
|
struct list_head properties;
|
|
const union acpi_object *of_compatible;
|
|
struct list_head subnodes;
|
|
};
|
|
|
|
struct acpi_scan_handler;
|
|
|
|
struct acpi_hotplug_context;
|
|
|
|
struct acpi_gpio_mapping;
|
|
|
|
struct acpi_device {
|
|
u32 pld_crc;
|
|
int device_type;
|
|
acpi_handle handle;
|
|
struct fwnode_handle fwnode;
|
|
struct list_head wakeup_list;
|
|
struct list_head del_list;
|
|
struct acpi_device_status status;
|
|
struct acpi_device_flags flags;
|
|
struct acpi_device_pnp pnp;
|
|
struct acpi_device_power power;
|
|
struct acpi_device_wakeup wakeup;
|
|
struct acpi_device_perf performance;
|
|
struct acpi_device_dir dir;
|
|
struct acpi_device_data data;
|
|
struct acpi_scan_handler *handler;
|
|
struct acpi_hotplug_context *hp;
|
|
const struct acpi_gpio_mapping *driver_gpios;
|
|
void *driver_data;
|
|
struct device dev;
|
|
unsigned int physical_node_count;
|
|
unsigned int dep_unmet;
|
|
struct list_head physical_node_list;
|
|
struct mutex physical_node_lock;
|
|
void (*remove)(struct acpi_device *);
|
|
};
|
|
|
|
union acpi_object {
|
|
acpi_object_type type;
|
|
struct {
|
|
acpi_object_type type;
|
|
u64 value;
|
|
} integer;
|
|
struct {
|
|
acpi_object_type type;
|
|
u32 length;
|
|
char *pointer;
|
|
} string;
|
|
struct {
|
|
acpi_object_type type;
|
|
u32 length;
|
|
u8 *pointer;
|
|
} buffer;
|
|
struct {
|
|
acpi_object_type type;
|
|
u32 count;
|
|
union acpi_object *elements;
|
|
} package;
|
|
struct {
|
|
acpi_object_type type;
|
|
acpi_object_type actual_type;
|
|
acpi_handle handle;
|
|
} reference;
|
|
struct {
|
|
acpi_object_type type;
|
|
u32 proc_id;
|
|
acpi_io_address pblk_address;
|
|
u32 pblk_length;
|
|
} processor;
|
|
struct {
|
|
acpi_object_type type;
|
|
u32 system_level;
|
|
u32 resource_order;
|
|
} power_resource;
|
|
};
|
|
|
|
struct acpi_device_perf_state {
|
|
struct {
|
|
u8 valid: 1;
|
|
u8 reserved: 7;
|
|
} flags;
|
|
u8 power;
|
|
u8 performance;
|
|
int latency;
|
|
};
|
|
|
|
struct acpi_hotplug_profile {
|
|
struct kobject kobj;
|
|
int (*scan_dependent)(struct acpi_device *);
|
|
void (*notify_online)(struct acpi_device *);
|
|
bool enabled: 1;
|
|
bool demand_offline: 1;
|
|
};
|
|
|
|
struct acpi_scan_handler {
|
|
const struct acpi_device_id *ids;
|
|
struct list_head list_node;
|
|
bool (*match)(const char *, const struct acpi_device_id **);
|
|
int (*attach)(struct acpi_device *, const struct acpi_device_id *);
|
|
void (*detach)(struct acpi_device *);
|
|
void (*bind)(struct device *);
|
|
void (*unbind)(struct device *);
|
|
struct acpi_hotplug_profile hotplug;
|
|
};
|
|
|
|
struct acpi_hotplug_context {
|
|
struct acpi_device *self;
|
|
int (*notify)(struct acpi_device *, u32);
|
|
void (*uevent)(struct acpi_device *, u32);
|
|
void (*fixup)(struct acpi_device *);
|
|
};
|
|
|
|
struct acpi_gpio_params;
|
|
|
|
struct acpi_gpio_mapping {
|
|
const char *name;
|
|
const struct acpi_gpio_params *data;
|
|
unsigned int size;
|
|
unsigned int quirks;
|
|
};
|
|
|
|
enum acpi_bus_device_type {
|
|
ACPI_BUS_TYPE_DEVICE = 0,
|
|
ACPI_BUS_TYPE_POWER = 1,
|
|
ACPI_BUS_TYPE_PROCESSOR = 2,
|
|
ACPI_BUS_TYPE_THERMAL = 3,
|
|
ACPI_BUS_TYPE_POWER_BUTTON = 4,
|
|
ACPI_BUS_TYPE_SLEEP_BUTTON = 5,
|
|
ACPI_BUS_TYPE_ECDT_EC = 6,
|
|
ACPI_BUS_DEVICE_TYPE_COUNT = 7,
|
|
};
|
|
|
|
enum acpi_irq_model_id {
|
|
ACPI_IRQ_MODEL_PIC = 0,
|
|
ACPI_IRQ_MODEL_IOAPIC = 1,
|
|
ACPI_IRQ_MODEL_IOSAPIC = 2,
|
|
ACPI_IRQ_MODEL_PLATFORM = 3,
|
|
ACPI_IRQ_MODEL_GIC = 4,
|
|
ACPI_IRQ_MODEL_LPIC = 5,
|
|
ACPI_IRQ_MODEL_COUNT = 6,
|
|
};
|
|
|
|
struct acpi_device_physical_node {
|
|
unsigned int node_id;
|
|
struct list_head node;
|
|
struct device *dev;
|
|
bool put_online: 1;
|
|
};
|
|
|
|
struct acpi_hardware_id {
|
|
struct list_head list;
|
|
const char *id;
|
|
};
|
|
|
|
typedef int (*acpi_op_add)(struct acpi_device *);
|
|
|
|
typedef void (*acpi_op_remove)(struct acpi_device *);
|
|
|
|
typedef void (*acpi_op_notify)(struct acpi_device *, u32);
|
|
|
|
struct acpi_device_ops {
|
|
acpi_op_add add;
|
|
acpi_op_remove remove;
|
|
acpi_op_notify notify;
|
|
};
|
|
|
|
struct acpi_driver {
|
|
char name[80];
|
|
char class[80];
|
|
const struct acpi_device_id *ids;
|
|
unsigned int flags;
|
|
struct acpi_device_ops ops;
|
|
struct device_driver drv;
|
|
struct module *owner;
|
|
};
|
|
|
|
typedef char *acpi_string;
|
|
|
|
struct acpi_object_list {
|
|
u32 count;
|
|
union acpi_object *pointer;
|
|
};
|
|
|
|
typedef struct {
|
|
__u8 b[16];
|
|
} guid_t;
|
|
|
|
struct acpi_buffer {
|
|
acpi_size length;
|
|
void *pointer;
|
|
};
|
|
|
|
typedef u32 (*acpi_event_handler)(void *);
|
|
|
|
typedef enum {
|
|
OSL_GLOBAL_LOCK_HANDLER = 0,
|
|
OSL_NOTIFY_HANDLER = 1,
|
|
OSL_GPE_HANDLER = 2,
|
|
OSL_DEBUGGER_MAIN_THREAD = 3,
|
|
OSL_DEBUGGER_EXEC_THREAD = 4,
|
|
OSL_EC_POLL_HANDLER = 5,
|
|
OSL_EC_BURST_HANDLER = 6,
|
|
} acpi_execute_type;
|
|
|
|
typedef void (*acpi_osd_exec_callback)(void *);
|
|
|
|
struct acpi_osc_context {
|
|
char *uuid_str;
|
|
int rev;
|
|
struct acpi_buffer cap;
|
|
struct acpi_buffer ret;
|
|
};
|
|
|
|
typedef acpi_status (*acpi_table_handler)(u32, void *, void *);
|
|
|
|
struct acpi_dev_walk_context {
|
|
int (*fn)(struct acpi_device *, void *);
|
|
void *data;
|
|
};
|
|
|
|
typedef enum {
|
|
ACPI_IMODE_LOAD_PASS1 = 1,
|
|
ACPI_IMODE_LOAD_PASS2 = 2,
|
|
ACPI_IMODE_EXECUTE = 3,
|
|
} acpi_interpreter_mode;
|
|
|
|
enum power_supply_property {
|
|
POWER_SUPPLY_PROP_STATUS = 0,
|
|
POWER_SUPPLY_PROP_CHARGE_TYPE = 1,
|
|
POWER_SUPPLY_PROP_HEALTH = 2,
|
|
POWER_SUPPLY_PROP_PRESENT = 3,
|
|
POWER_SUPPLY_PROP_ONLINE = 4,
|
|
POWER_SUPPLY_PROP_AUTHENTIC = 5,
|
|
POWER_SUPPLY_PROP_TECHNOLOGY = 6,
|
|
POWER_SUPPLY_PROP_CYCLE_COUNT = 7,
|
|
POWER_SUPPLY_PROP_VOLTAGE_MAX = 8,
|
|
POWER_SUPPLY_PROP_VOLTAGE_MIN = 9,
|
|
POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10,
|
|
POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11,
|
|
POWER_SUPPLY_PROP_VOLTAGE_NOW = 12,
|
|
POWER_SUPPLY_PROP_VOLTAGE_AVG = 13,
|
|
POWER_SUPPLY_PROP_VOLTAGE_OCV = 14,
|
|
POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15,
|
|
POWER_SUPPLY_PROP_CURRENT_MAX = 16,
|
|
POWER_SUPPLY_PROP_CURRENT_NOW = 17,
|
|
POWER_SUPPLY_PROP_CURRENT_AVG = 18,
|
|
POWER_SUPPLY_PROP_CURRENT_BOOT = 19,
|
|
POWER_SUPPLY_PROP_POWER_NOW = 20,
|
|
POWER_SUPPLY_PROP_POWER_AVG = 21,
|
|
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22,
|
|
POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23,
|
|
POWER_SUPPLY_PROP_CHARGE_FULL = 24,
|
|
POWER_SUPPLY_PROP_CHARGE_EMPTY = 25,
|
|
POWER_SUPPLY_PROP_CHARGE_NOW = 26,
|
|
POWER_SUPPLY_PROP_CHARGE_AVG = 27,
|
|
POWER_SUPPLY_PROP_CHARGE_COUNTER = 28,
|
|
POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29,
|
|
POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30,
|
|
POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31,
|
|
POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32,
|
|
POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33,
|
|
POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34,
|
|
POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35,
|
|
POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36,
|
|
POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 37,
|
|
POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 38,
|
|
POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 39,
|
|
POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 40,
|
|
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 41,
|
|
POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 42,
|
|
POWER_SUPPLY_PROP_ENERGY_FULL = 43,
|
|
POWER_SUPPLY_PROP_ENERGY_EMPTY = 44,
|
|
POWER_SUPPLY_PROP_ENERGY_NOW = 45,
|
|
POWER_SUPPLY_PROP_ENERGY_AVG = 46,
|
|
POWER_SUPPLY_PROP_CAPACITY = 47,
|
|
POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 48,
|
|
POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 49,
|
|
POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 50,
|
|
POWER_SUPPLY_PROP_CAPACITY_LEVEL = 51,
|
|
POWER_SUPPLY_PROP_TEMP = 52,
|
|
POWER_SUPPLY_PROP_TEMP_MAX = 53,
|
|
POWER_SUPPLY_PROP_TEMP_MIN = 54,
|
|
POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 55,
|
|
POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 56,
|
|
POWER_SUPPLY_PROP_TEMP_AMBIENT = 57,
|
|
POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 58,
|
|
POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 59,
|
|
POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 60,
|
|
POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 61,
|
|
POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 62,
|
|
POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 63,
|
|
POWER_SUPPLY_PROP_TYPE = 64,
|
|
POWER_SUPPLY_PROP_USB_TYPE = 65,
|
|
POWER_SUPPLY_PROP_SCOPE = 66,
|
|
POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 67,
|
|
POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 68,
|
|
POWER_SUPPLY_PROP_CALIBRATE = 69,
|
|
POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 70,
|
|
POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 71,
|
|
POWER_SUPPLY_PROP_MANUFACTURE_DAY = 72,
|
|
POWER_SUPPLY_PROP_MODEL_NAME = 73,
|
|
POWER_SUPPLY_PROP_MANUFACTURER = 74,
|
|
POWER_SUPPLY_PROP_SERIAL_NUMBER = 75,
|
|
};
|
|
|
|
enum power_supply_type {
|
|
POWER_SUPPLY_TYPE_UNKNOWN = 0,
|
|
POWER_SUPPLY_TYPE_BATTERY = 1,
|
|
POWER_SUPPLY_TYPE_UPS = 2,
|
|
POWER_SUPPLY_TYPE_MAINS = 3,
|
|
POWER_SUPPLY_TYPE_USB = 4,
|
|
POWER_SUPPLY_TYPE_USB_DCP = 5,
|
|
POWER_SUPPLY_TYPE_USB_CDP = 6,
|
|
POWER_SUPPLY_TYPE_USB_ACA = 7,
|
|
POWER_SUPPLY_TYPE_USB_TYPE_C = 8,
|
|
POWER_SUPPLY_TYPE_USB_PD = 9,
|
|
POWER_SUPPLY_TYPE_USB_PD_DRP = 10,
|
|
POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11,
|
|
POWER_SUPPLY_TYPE_WIRELESS = 12,
|
|
};
|
|
|
|
enum power_supply_usb_type {
|
|
POWER_SUPPLY_USB_TYPE_UNKNOWN = 0,
|
|
POWER_SUPPLY_USB_TYPE_SDP = 1,
|
|
POWER_SUPPLY_USB_TYPE_DCP = 2,
|
|
POWER_SUPPLY_USB_TYPE_CDP = 3,
|
|
POWER_SUPPLY_USB_TYPE_ACA = 4,
|
|
POWER_SUPPLY_USB_TYPE_C = 5,
|
|
POWER_SUPPLY_USB_TYPE_PD = 6,
|
|
POWER_SUPPLY_USB_TYPE_PD_DRP = 7,
|
|
POWER_SUPPLY_USB_TYPE_PD_PPS = 8,
|
|
POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9,
|
|
};
|
|
|
|
struct power_supply;
|
|
|
|
union power_supply_propval;
|
|
|
|
struct power_supply_desc {
|
|
const char *name;
|
|
enum power_supply_type type;
|
|
const enum power_supply_usb_type *usb_types;
|
|
size_t num_usb_types;
|
|
const enum power_supply_property *properties;
|
|
size_t num_properties;
|
|
int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *);
|
|
int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *);
|
|
int (*property_is_writeable)(struct power_supply *, enum power_supply_property);
|
|
void (*external_power_changed)(struct power_supply *);
|
|
void (*set_charged)(struct power_supply *);
|
|
bool no_thermal;
|
|
int use_for_apm;
|
|
};
|
|
|
|
struct acpi_ac {
|
|
struct power_supply *charger;
|
|
struct power_supply_desc charger_desc;
|
|
struct acpi_device *device;
|
|
unsigned long long state;
|
|
struct notifier_block battery_nb;
|
|
};
|
|
|
|
struct thermal_zone_device;
|
|
|
|
struct power_supply {
|
|
const struct power_supply_desc *desc;
|
|
char **supplied_to;
|
|
size_t num_supplicants;
|
|
char **supplied_from;
|
|
size_t num_supplies;
|
|
struct device_node *of_node;
|
|
void *drv_data;
|
|
struct device dev;
|
|
struct work_struct changed_work;
|
|
struct delayed_work deferred_register_work;
|
|
spinlock_t changed_lock;
|
|
bool changed;
|
|
bool initialized;
|
|
bool removing;
|
|
atomic_t use_cnt;
|
|
struct thermal_zone_device *tzd;
|
|
struct thermal_cooling_device *tcd;
|
|
struct led_trigger *charging_full_trig;
|
|
char *charging_full_trig_name;
|
|
struct led_trigger *charging_trig;
|
|
char *charging_trig_name;
|
|
struct led_trigger *full_trig;
|
|
char *full_trig_name;
|
|
struct led_trigger *online_trig;
|
|
char *online_trig_name;
|
|
struct led_trigger *charging_blink_full_solid_trig;
|
|
char *charging_blink_full_solid_trig_name;
|
|
};
|
|
|
|
union power_supply_propval {
|
|
int intval;
|
|
const char *strval;
|
|
};
|
|
|
|
struct acpi_bus_event {
|
|
struct list_head node;
|
|
acpi_device_class device_class;
|
|
acpi_bus_id bus_id;
|
|
u32 type;
|
|
u32 data;
|
|
};
|
|
|
|
struct power_supply_config {
|
|
struct device_node *of_node;
|
|
struct fwnode_handle *fwnode;
|
|
void *drv_data;
|
|
const struct attribute_group **attr_grp;
|
|
char **supplied_to;
|
|
size_t num_supplicants;
|
|
};
|
|
|
|
struct vring_desc;
|
|
|
|
typedef struct vring_desc vring_desc_t;
|
|
|
|
struct vring_avail;
|
|
|
|
typedef struct vring_avail vring_avail_t;
|
|
|
|
struct vring_used;
|
|
|
|
typedef struct vring_used vring_used_t;
|
|
|
|
struct vring {
|
|
unsigned int num;
|
|
vring_desc_t *desc;
|
|
vring_avail_t *avail;
|
|
vring_used_t *used;
|
|
};
|
|
|
|
struct vring_desc_state_split;
|
|
|
|
struct vring_desc_extra;
|
|
|
|
struct vring_virtqueue_split {
|
|
struct vring vring;
|
|
u16 avail_flags_shadow;
|
|
u16 avail_idx_shadow;
|
|
struct vring_desc_state_split *desc_state;
|
|
struct vring_desc_extra *desc_extra;
|
|
dma_addr_t queue_dma_addr;
|
|
size_t queue_size_in_bytes;
|
|
u32 vring_align;
|
|
bool may_reduce_num;
|
|
};
|
|
|
|
struct vring_packed_desc;
|
|
|
|
struct vring_packed_desc_event;
|
|
|
|
struct vring_desc_state_packed;
|
|
|
|
struct vring_virtqueue_packed {
|
|
struct {
|
|
unsigned int num;
|
|
struct vring_packed_desc *desc;
|
|
struct vring_packed_desc_event *driver;
|
|
struct vring_packed_desc_event *device;
|
|
} vring;
|
|
bool avail_wrap_counter;
|
|
u16 avail_used_flags;
|
|
u16 next_avail_idx;
|
|
u16 event_flags_shadow;
|
|
struct vring_desc_state_packed *desc_state;
|
|
struct vring_desc_extra *desc_extra;
|
|
dma_addr_t ring_dma_addr;
|
|
dma_addr_t driver_event_dma_addr;
|
|
dma_addr_t device_event_dma_addr;
|
|
size_t ring_size_in_bytes;
|
|
size_t event_size_in_bytes;
|
|
};
|
|
|
|
struct vring_virtqueue {
|
|
struct virtqueue vq;
|
|
bool packed_ring;
|
|
bool use_dma_api;
|
|
bool weak_barriers;
|
|
bool broken;
|
|
bool indirect;
|
|
bool event;
|
|
unsigned int free_head;
|
|
unsigned int num_added;
|
|
u16 last_used_idx;
|
|
bool event_triggered;
|
|
union {
|
|
struct vring_virtqueue_split split;
|
|
struct vring_virtqueue_packed packed;
|
|
};
|
|
bool (*notify)(struct virtqueue *);
|
|
bool we_own_ring;
|
|
struct device *dma_dev;
|
|
};
|
|
|
|
typedef __u64 __virtio64;
|
|
|
|
typedef __u32 __virtio32;
|
|
|
|
struct vring_desc {
|
|
__virtio64 addr;
|
|
__virtio32 len;
|
|
__virtio16 flags;
|
|
__virtio16 next;
|
|
};
|
|
|
|
struct vring_avail {
|
|
__virtio16 flags;
|
|
__virtio16 idx;
|
|
__virtio16 ring[0];
|
|
};
|
|
|
|
struct vring_used_elem {
|
|
__virtio32 id;
|
|
__virtio32 len;
|
|
};
|
|
|
|
typedef struct vring_used_elem vring_used_elem_t;
|
|
|
|
struct vring_used {
|
|
__virtio16 flags;
|
|
__virtio16 idx;
|
|
vring_used_elem_t ring[0];
|
|
};
|
|
|
|
struct vring_desc_state_split {
|
|
void *data;
|
|
struct vring_desc *indir_desc;
|
|
};
|
|
|
|
struct vring_desc_extra {
|
|
dma_addr_t addr;
|
|
u32 len;
|
|
u16 flags;
|
|
u16 next;
|
|
};
|
|
|
|
struct vring_packed_desc {
|
|
__le64 addr;
|
|
__le32 len;
|
|
__le16 id;
|
|
__le16 flags;
|
|
};
|
|
|
|
struct vring_packed_desc_event {
|
|
__le16 off_wrap;
|
|
__le16 flags;
|
|
};
|
|
|
|
struct vring_desc_state_packed {
|
|
void *data;
|
|
struct vring_packed_desc *indir_desc;
|
|
u16 num;
|
|
u16 last;
|
|
};
|
|
|
|
struct io_pgtable;
|
|
|
|
struct io_pgtable_cfg;
|
|
|
|
struct io_pgtable_init_fns {
|
|
struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *);
|
|
void (*free)(struct io_pgtable *);
|
|
};
|
|
|
|
enum io_pgtable_fmt {
|
|
ARM_32_LPAE_S1 = 0,
|
|
ARM_32_LPAE_S2 = 1,
|
|
ARM_64_LPAE_S1 = 2,
|
|
ARM_64_LPAE_S2 = 3,
|
|
ARM_V7S = 4,
|
|
ARM_MALI_LPAE = 5,
|
|
AMD_IOMMU_V1 = 6,
|
|
AMD_IOMMU_V2 = 7,
|
|
APPLE_DART = 8,
|
|
APPLE_DART2 = 9,
|
|
IO_PGTABLE_NUM_FMTS = 10,
|
|
};
|
|
|
|
struct iommu_flush_ops;
|
|
|
|
struct io_pgtable_cfg {
|
|
unsigned long quirks;
|
|
unsigned long pgsize_bitmap;
|
|
unsigned int ias;
|
|
unsigned int oas;
|
|
bool coherent_walk;
|
|
const struct iommu_flush_ops *tlb;
|
|
struct device *iommu_dev;
|
|
union {
|
|
struct {
|
|
u64 ttbr;
|
|
struct {
|
|
u32 ips: 3;
|
|
u32 tg: 2;
|
|
u32 sh: 2;
|
|
u32 orgn: 2;
|
|
u32 irgn: 2;
|
|
u32 tsz: 6;
|
|
} tcr;
|
|
u64 mair;
|
|
} arm_lpae_s1_cfg;
|
|
struct {
|
|
u64 vttbr;
|
|
struct {
|
|
u32 ps: 3;
|
|
u32 tg: 2;
|
|
u32 sh: 2;
|
|
u32 orgn: 2;
|
|
u32 irgn: 2;
|
|
u32 sl: 2;
|
|
u32 tsz: 6;
|
|
} vtcr;
|
|
} arm_lpae_s2_cfg;
|
|
struct {
|
|
u32 ttbr;
|
|
u32 tcr;
|
|
u32 nmrr;
|
|
u32 prrr;
|
|
} arm_v7s_cfg;
|
|
struct {
|
|
u64 transtab;
|
|
u64 memattr;
|
|
} arm_mali_lpae_cfg;
|
|
struct {
|
|
u64 ttbr[4];
|
|
u32 n_ttbrs;
|
|
} apple_dart_cfg;
|
|
};
|
|
};
|
|
|
|
struct iommu_iotlb_gather;
|
|
|
|
struct io_pgtable_ops {
|
|
int (*map_pages)(struct io_pgtable_ops *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *);
|
|
size_t (*unmap_pages)(struct io_pgtable_ops *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *);
|
|
phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *, unsigned long);
|
|
};
|
|
|
|
struct io_pgtable {
|
|
enum io_pgtable_fmt fmt;
|
|
void *cookie;
|
|
struct io_pgtable_cfg cfg;
|
|
struct io_pgtable_ops ops;
|
|
};
|
|
|
|
struct iommu_flush_ops {
|
|
void (*tlb_flush_all)(void *);
|
|
void (*tlb_flush_walk)(unsigned long, size_t, size_t, void *);
|
|
void (*tlb_add_page)(struct iommu_iotlb_gather *, unsigned long, size_t, void *);
|
|
};
|
|
|
|
struct iommu_iotlb_gather {
|
|
unsigned long start;
|
|
unsigned long end;
|
|
size_t pgsize;
|
|
struct list_head freelist;
|
|
bool queued;
|
|
};
|
|
|
|
typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *);
|
|
|
|
struct iommu_domain_geometry {
|
|
dma_addr_t aperture_start;
|
|
dma_addr_t aperture_end;
|
|
bool force_aperture;
|
|
};
|
|
|
|
enum iommu_page_response_code {
|
|
IOMMU_PAGE_RESP_SUCCESS = 0,
|
|
IOMMU_PAGE_RESP_INVALID = 1,
|
|
IOMMU_PAGE_RESP_FAILURE = 2,
|
|
};
|
|
|
|
struct iommu_dma_cookie;
|
|
|
|
struct iommu_fault;
|
|
|
|
struct iommu_domain {
|
|
unsigned int type;
|
|
const struct iommu_domain_ops *ops;
|
|
unsigned long pgsize_bitmap;
|
|
struct iommu_domain_geometry geometry;
|
|
struct iommu_dma_cookie *iova_cookie;
|
|
enum iommu_page_response_code (*iopf_handler)(struct iommu_fault *, void *);
|
|
void *fault_data;
|
|
union {
|
|
struct {
|
|
iommu_fault_handler_t handler;
|
|
void *handler_token;
|
|
};
|
|
struct {
|
|
struct mm_struct *mm;
|
|
int users;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct iommu_domain_ops {
|
|
int (*attach_dev)(struct iommu_domain *, struct device *);
|
|
int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t);
|
|
int (*map)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, int, gfp_t);
|
|
int (*map_pages)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *);
|
|
size_t (*unmap)(struct iommu_domain *, unsigned long, size_t, struct iommu_iotlb_gather *);
|
|
size_t (*unmap_pages)(struct iommu_domain *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *);
|
|
void (*flush_iotlb_all)(struct iommu_domain *);
|
|
void (*iotlb_sync_map)(struct iommu_domain *, unsigned long, size_t);
|
|
void (*iotlb_sync)(struct iommu_domain *, struct iommu_iotlb_gather *);
|
|
phys_addr_t (*iova_to_phys)(struct iommu_domain *, dma_addr_t);
|
|
bool (*enforce_cache_coherency)(struct iommu_domain *);
|
|
int (*enable_nesting)(struct iommu_domain *);
|
|
int (*set_pgtable_quirks)(struct iommu_domain *, unsigned long);
|
|
void (*free)(struct iommu_domain *);
|
|
};
|
|
|
|
struct iommu_fault_unrecoverable {
|
|
__u32 reason;
|
|
__u32 flags;
|
|
__u32 pasid;
|
|
__u32 perm;
|
|
__u64 addr;
|
|
__u64 fetch_addr;
|
|
};
|
|
|
|
struct iommu_fault_page_request {
|
|
__u32 flags;
|
|
__u32 pasid;
|
|
__u32 grpid;
|
|
__u32 perm;
|
|
__u64 addr;
|
|
__u64 private_data[2];
|
|
};
|
|
|
|
struct iommu_fault {
|
|
__u32 type;
|
|
__u32 padding;
|
|
union {
|
|
struct iommu_fault_unrecoverable event;
|
|
struct iommu_fault_page_request prm;
|
|
__u8 padding2[56];
|
|
};
|
|
};
|
|
|
|
struct iommu_device {
|
|
struct list_head list;
|
|
const struct iommu_ops *ops;
|
|
struct fwnode_handle *fwnode;
|
|
struct device *dev;
|
|
u32 max_pasids;
|
|
};
|
|
|
|
struct iommu_fault_event {
|
|
struct iommu_fault fault;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct iommu_page_response {
|
|
__u32 argsz;
|
|
__u32 version;
|
|
__u32 flags;
|
|
__u32 pasid;
|
|
__u32 grpid;
|
|
__u32 code;
|
|
};
|
|
|
|
struct iopf_device_param;
|
|
|
|
struct iommu_fault_param;
|
|
|
|
struct iommu_fwspec;
|
|
|
|
struct dev_iommu {
|
|
struct mutex lock;
|
|
struct iommu_fault_param *fault_param;
|
|
struct iopf_device_param *iopf_param;
|
|
struct iommu_fwspec *fwspec;
|
|
struct iommu_device *iommu_dev;
|
|
void *priv;
|
|
u32 max_pasids;
|
|
u32 attach_deferred: 1;
|
|
};
|
|
|
|
typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *);
|
|
|
|
struct iommu_fault_param {
|
|
iommu_dev_fault_handler_t handler;
|
|
void *data;
|
|
struct list_head faults;
|
|
struct mutex lock;
|
|
};
|
|
|
|
struct iommu_fwspec {
|
|
const struct iommu_ops *ops;
|
|
struct fwnode_handle *iommu_fwnode;
|
|
u32 flags;
|
|
unsigned int num_ids;
|
|
u32 ids[0];
|
|
};
|
|
|
|
struct amd_io_pgtable {
|
|
struct io_pgtable_cfg pgtbl_cfg;
|
|
struct io_pgtable iop;
|
|
int mode;
|
|
u64 *root;
|
|
atomic64_t pt_root;
|
|
u64 *pgd;
|
|
};
|
|
|
|
struct protection_domain {
|
|
struct list_head dev_list;
|
|
struct iommu_domain domain;
|
|
struct amd_io_pgtable iop;
|
|
spinlock_t lock;
|
|
u16 id;
|
|
int glx;
|
|
u64 *gcr3_tbl;
|
|
unsigned long flags;
|
|
unsigned int dev_cnt;
|
|
unsigned int dev_iommu[32];
|
|
};
|
|
|
|
enum dma_resv_usage {
|
|
DMA_RESV_USAGE_KERNEL = 0,
|
|
DMA_RESV_USAGE_WRITE = 1,
|
|
DMA_RESV_USAGE_READ = 2,
|
|
DMA_RESV_USAGE_BOOKKEEP = 3,
|
|
};
|
|
|
|
enum mapping_flags {
|
|
AS_EIO = 0,
|
|
AS_ENOSPC = 1,
|
|
AS_MM_ALL_LOCKS = 2,
|
|
AS_UNEVICTABLE = 3,
|
|
AS_EXITING = 4,
|
|
AS_NO_WRITEBACK_TAGS = 5,
|
|
AS_LARGE_FOLIO_SUPPORT = 6,
|
|
};
|
|
|
|
typedef void (*drmres_release_t)(struct drm_device *, void *);
|
|
|
|
struct pagevec {
|
|
unsigned char nr;
|
|
bool percpu_pvec_drained;
|
|
struct page *pages[15];
|
|
};
|
|
|
|
struct ww_class {
|
|
atomic_long_t stamp;
|
|
struct lock_class_key acquire_key;
|
|
struct lock_class_key mutex_key;
|
|
const char *acquire_name;
|
|
const char *mutex_name;
|
|
unsigned int is_wait_die;
|
|
};
|
|
|
|
struct drm_gem_close {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_gem_flink {
|
|
__u32 handle;
|
|
__u32 name;
|
|
};
|
|
|
|
struct drm_gem_open {
|
|
__u32 name;
|
|
__u32 handle;
|
|
__u64 size;
|
|
};
|
|
|
|
struct dpcd_quirk {
|
|
u8 oui[3];
|
|
u8 device_id[6];
|
|
bool is_branch;
|
|
u32 quirks;
|
|
};
|
|
|
|
struct fb_info;
|
|
|
|
struct backlight_ops {
|
|
unsigned int options;
|
|
int (*update_status)(struct backlight_device *);
|
|
int (*get_brightness)(struct backlight_device *);
|
|
int (*check_fb)(struct backlight_device *, struct fb_info *);
|
|
};
|
|
|
|
enum backlight_type {
|
|
BACKLIGHT_RAW = 1,
|
|
BACKLIGHT_PLATFORM = 2,
|
|
BACKLIGHT_FIRMWARE = 3,
|
|
BACKLIGHT_TYPE_MAX = 4,
|
|
};
|
|
|
|
enum backlight_scale {
|
|
BACKLIGHT_SCALE_UNKNOWN = 0,
|
|
BACKLIGHT_SCALE_LINEAR = 1,
|
|
BACKLIGHT_SCALE_NON_LINEAR = 2,
|
|
};
|
|
|
|
struct backlight_properties {
|
|
int brightness;
|
|
int max_brightness;
|
|
int power;
|
|
int fb_blank;
|
|
enum backlight_type type;
|
|
unsigned int state;
|
|
enum backlight_scale scale;
|
|
};
|
|
|
|
struct backlight_device {
|
|
struct backlight_properties props;
|
|
struct mutex update_lock;
|
|
struct mutex ops_lock;
|
|
const struct backlight_ops *ops;
|
|
struct notifier_block fb_notif;
|
|
struct list_head entry;
|
|
struct device dev;
|
|
bool fb_bl_on[32];
|
|
int use_count;
|
|
};
|
|
|
|
struct fb_bitfield {
|
|
__u32 offset;
|
|
__u32 length;
|
|
__u32 msb_right;
|
|
};
|
|
|
|
struct fb_var_screeninfo {
|
|
__u32 xres;
|
|
__u32 yres;
|
|
__u32 xres_virtual;
|
|
__u32 yres_virtual;
|
|
__u32 xoffset;
|
|
__u32 yoffset;
|
|
__u32 bits_per_pixel;
|
|
__u32 grayscale;
|
|
struct fb_bitfield red;
|
|
struct fb_bitfield green;
|
|
struct fb_bitfield blue;
|
|
struct fb_bitfield transp;
|
|
__u32 nonstd;
|
|
__u32 activate;
|
|
__u32 height;
|
|
__u32 width;
|
|
__u32 accel_flags;
|
|
__u32 pixclock;
|
|
__u32 left_margin;
|
|
__u32 right_margin;
|
|
__u32 upper_margin;
|
|
__u32 lower_margin;
|
|
__u32 hsync_len;
|
|
__u32 vsync_len;
|
|
__u32 sync;
|
|
__u32 vmode;
|
|
__u32 rotate;
|
|
__u32 colorspace;
|
|
__u32 reserved[4];
|
|
};
|
|
|
|
struct fb_fix_screeninfo {
|
|
char id[16];
|
|
unsigned long smem_start;
|
|
__u32 smem_len;
|
|
__u32 type;
|
|
__u32 type_aux;
|
|
__u32 visual;
|
|
__u16 xpanstep;
|
|
__u16 ypanstep;
|
|
__u16 ywrapstep;
|
|
__u32 line_length;
|
|
unsigned long mmio_start;
|
|
__u32 mmio_len;
|
|
__u32 accel;
|
|
__u16 capabilities;
|
|
__u16 reserved[2];
|
|
};
|
|
|
|
struct fb_chroma {
|
|
__u32 redx;
|
|
__u32 greenx;
|
|
__u32 bluex;
|
|
__u32 whitex;
|
|
__u32 redy;
|
|
__u32 greeny;
|
|
__u32 bluey;
|
|
__u32 whitey;
|
|
};
|
|
|
|
struct fb_videomode;
|
|
|
|
struct fb_monspecs {
|
|
struct fb_chroma chroma;
|
|
struct fb_videomode *modedb;
|
|
__u8 manufacturer[4];
|
|
__u8 monitor[14];
|
|
__u8 serial_no[14];
|
|
__u8 ascii[14];
|
|
__u32 modedb_len;
|
|
__u32 model;
|
|
__u32 serial;
|
|
__u32 year;
|
|
__u32 week;
|
|
__u32 hfmin;
|
|
__u32 hfmax;
|
|
__u32 dclkmin;
|
|
__u32 dclkmax;
|
|
__u16 input;
|
|
__u16 dpms;
|
|
__u16 signal;
|
|
__u16 vfmin;
|
|
__u16 vfmax;
|
|
__u16 gamma;
|
|
__u16 gtf: 1;
|
|
__u16 misc;
|
|
__u8 version;
|
|
__u8 revision;
|
|
__u8 max_x;
|
|
__u8 max_y;
|
|
};
|
|
|
|
struct fb_pixmap {
|
|
u8 *addr;
|
|
u32 size;
|
|
u32 offset;
|
|
u32 buf_align;
|
|
u32 scan_align;
|
|
u32 access_align;
|
|
u32 flags;
|
|
u32 blit_x;
|
|
u32 blit_y;
|
|
void (*writeio)(struct fb_info *, void *, void *, unsigned int);
|
|
void (*readio)(struct fb_info *, void *, void *, unsigned int);
|
|
};
|
|
|
|
struct fb_cmap {
|
|
__u32 start;
|
|
__u32 len;
|
|
__u16 *red;
|
|
__u16 *green;
|
|
__u16 *blue;
|
|
__u16 *transp;
|
|
};
|
|
|
|
struct fb_ops;
|
|
|
|
struct fb_info {
|
|
refcount_t count;
|
|
int node;
|
|
int flags;
|
|
int fbcon_rotate_hint;
|
|
struct mutex lock;
|
|
struct mutex mm_lock;
|
|
struct fb_var_screeninfo var;
|
|
struct fb_fix_screeninfo fix;
|
|
struct fb_monspecs monspecs;
|
|
struct fb_pixmap pixmap;
|
|
struct fb_pixmap sprite;
|
|
struct fb_cmap cmap;
|
|
struct list_head modelist;
|
|
struct fb_videomode *mode;
|
|
const struct fb_ops *fbops;
|
|
struct device *device;
|
|
struct device *dev;
|
|
int class_flag;
|
|
union {
|
|
char *screen_base;
|
|
char *screen_buffer;
|
|
};
|
|
unsigned long screen_size;
|
|
void *pseudo_palette;
|
|
u32 state;
|
|
void *fbcon_par;
|
|
void *par;
|
|
bool skip_vt_switch;
|
|
};
|
|
|
|
struct fb_videomode {
|
|
const char *name;
|
|
u32 refresh;
|
|
u32 xres;
|
|
u32 yres;
|
|
u32 pixclock;
|
|
u32 left_margin;
|
|
u32 right_margin;
|
|
u32 upper_margin;
|
|
u32 lower_margin;
|
|
u32 hsync_len;
|
|
u32 vsync_len;
|
|
u32 sync;
|
|
u32 vmode;
|
|
u32 flag;
|
|
};
|
|
|
|
struct fb_fillrect;
|
|
|
|
struct fb_copyarea;
|
|
|
|
struct fb_image;
|
|
|
|
struct fb_cursor;
|
|
|
|
struct fb_blit_caps;
|
|
|
|
struct fb_ops {
|
|
struct module *owner;
|
|
int (*fb_open)(struct fb_info *, int);
|
|
int (*fb_release)(struct fb_info *, int);
|
|
ssize_t (*fb_read)(struct fb_info *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
ssize_t (*fb_write)(struct fb_info *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
|
|
int (*fb_check_var)(struct fb_var_screeninfo *, struct fb_info *);
|
|
int (*fb_set_par)(struct fb_info *);
|
|
int (*fb_setcolreg)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, struct fb_info *);
|
|
int (*fb_setcmap)(struct fb_cmap *, struct fb_info *);
|
|
int (*fb_blank)(int, struct fb_info *);
|
|
int (*fb_pan_display)(struct fb_var_screeninfo *, struct fb_info *);
|
|
void (*fb_fillrect)(struct fb_info *, const struct fb_fillrect *);
|
|
void (*fb_copyarea)(struct fb_info *, const struct fb_copyarea *);
|
|
void (*fb_imageblit)(struct fb_info *, const struct fb_image *);
|
|
int (*fb_cursor)(struct fb_info *, struct fb_cursor *);
|
|
int (*fb_sync)(struct fb_info *);
|
|
int (*fb_ioctl)(struct fb_info *, unsigned int, unsigned long);
|
|
int (*fb_compat_ioctl)(struct fb_info *, unsigned int, unsigned long);
|
|
int (*fb_mmap)(struct fb_info *, struct vm_area_struct *);
|
|
void (*fb_get_caps)(struct fb_info *, struct fb_blit_caps *, struct fb_var_screeninfo *);
|
|
void (*fb_destroy)(struct fb_info *);
|
|
int (*fb_debug_enter)(struct fb_info *);
|
|
int (*fb_debug_leave)(struct fb_info *);
|
|
};
|
|
|
|
struct fb_fillrect {
|
|
__u32 dx;
|
|
__u32 dy;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 color;
|
|
__u32 rop;
|
|
};
|
|
|
|
struct fb_copyarea {
|
|
__u32 dx;
|
|
__u32 dy;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 sx;
|
|
__u32 sy;
|
|
};
|
|
|
|
struct fb_image {
|
|
__u32 dx;
|
|
__u32 dy;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 fg_color;
|
|
__u32 bg_color;
|
|
__u8 depth;
|
|
const char *data;
|
|
struct fb_cmap cmap;
|
|
};
|
|
|
|
struct fbcurpos {
|
|
__u16 x;
|
|
__u16 y;
|
|
};
|
|
|
|
struct fb_cursor {
|
|
__u16 set;
|
|
__u16 enable;
|
|
__u16 rop;
|
|
const char *mask;
|
|
struct fbcurpos hot;
|
|
struct fb_image image;
|
|
};
|
|
|
|
struct fb_blit_caps {
|
|
u32 x;
|
|
u32 y;
|
|
u32 len;
|
|
u32 flags;
|
|
};
|
|
|
|
enum drm_dp_phy {
|
|
DP_PHY_DPRX = 0,
|
|
DP_PHY_LTTPR1 = 1,
|
|
DP_PHY_LTTPR2 = 2,
|
|
DP_PHY_LTTPR3 = 3,
|
|
DP_PHY_LTTPR4 = 4,
|
|
DP_PHY_LTTPR5 = 5,
|
|
DP_PHY_LTTPR6 = 6,
|
|
DP_PHY_LTTPR7 = 7,
|
|
DP_PHY_LTTPR8 = 8,
|
|
DP_MAX_LTTPR_COUNT = 8,
|
|
};
|
|
|
|
enum drm_dp_quirk {
|
|
DP_DPCD_QUIRK_CONSTANT_N = 0,
|
|
DP_DPCD_QUIRK_NO_PSR = 1,
|
|
DP_DPCD_QUIRK_NO_SINK_COUNT = 2,
|
|
DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD = 3,
|
|
DP_DPCD_QUIRK_CAN_DO_MAX_LINK_RATE_3_24_GBPS = 4,
|
|
};
|
|
|
|
enum {
|
|
FB_BLANK_UNBLANK = 0,
|
|
FB_BLANK_NORMAL = 1,
|
|
FB_BLANK_VSYNC_SUSPEND = 2,
|
|
FB_BLANK_HSYNC_SUSPEND = 3,
|
|
FB_BLANK_POWERDOWN = 4,
|
|
};
|
|
|
|
struct est_timings {
|
|
u8 t1;
|
|
u8 t2;
|
|
u8 mfg_rsvd;
|
|
};
|
|
|
|
struct std_timing {
|
|
u8 hsize;
|
|
u8 vfreq_aspect;
|
|
};
|
|
|
|
struct detailed_pixel_timing {
|
|
u8 hactive_lo;
|
|
u8 hblank_lo;
|
|
u8 hactive_hblank_hi;
|
|
u8 vactive_lo;
|
|
u8 vblank_lo;
|
|
u8 vactive_vblank_hi;
|
|
u8 hsync_offset_lo;
|
|
u8 hsync_pulse_width_lo;
|
|
u8 vsync_offset_pulse_width_lo;
|
|
u8 hsync_vsync_offset_pulse_width_hi;
|
|
u8 width_mm_lo;
|
|
u8 height_mm_lo;
|
|
u8 width_height_mm_hi;
|
|
u8 hborder;
|
|
u8 vborder;
|
|
u8 misc;
|
|
};
|
|
|
|
struct detailed_data_string {
|
|
u8 str[13];
|
|
};
|
|
|
|
struct detailed_data_monitor_range {
|
|
u8 min_vfreq;
|
|
u8 max_vfreq;
|
|
u8 min_hfreq_khz;
|
|
u8 max_hfreq_khz;
|
|
u8 pixel_clock_mhz;
|
|
u8 flags;
|
|
union {
|
|
struct {
|
|
u8 reserved;
|
|
u8 hfreq_start_khz;
|
|
u8 c;
|
|
__le16 m;
|
|
u8 k;
|
|
u8 j;
|
|
} __attribute__((packed)) gtf2;
|
|
struct {
|
|
u8 version;
|
|
u8 data1;
|
|
u8 data2;
|
|
u8 supported_aspects;
|
|
u8 flags;
|
|
u8 supported_scalings;
|
|
u8 preferred_refresh;
|
|
} cvt;
|
|
} formula;
|
|
} __attribute__((packed));
|
|
|
|
struct detailed_data_wpindex {
|
|
u8 white_yx_lo;
|
|
u8 white_x_hi;
|
|
u8 white_y_hi;
|
|
u8 gamma;
|
|
};
|
|
|
|
struct cvt_timing {
|
|
u8 code[3];
|
|
};
|
|
|
|
struct detailed_non_pixel {
|
|
u8 pad1;
|
|
u8 type;
|
|
u8 pad2;
|
|
union {
|
|
struct detailed_data_string str;
|
|
struct detailed_data_monitor_range range;
|
|
struct detailed_data_wpindex color;
|
|
struct std_timing timings[6];
|
|
struct cvt_timing cvt[4];
|
|
} data;
|
|
} __attribute__((packed));
|
|
|
|
struct detailed_timing {
|
|
__le16 pixel_clock;
|
|
union {
|
|
struct detailed_pixel_timing pixel_data;
|
|
struct detailed_non_pixel other_data;
|
|
} data;
|
|
};
|
|
|
|
struct edid {
|
|
u8 header[8];
|
|
u8 mfg_id[2];
|
|
u8 prod_code[2];
|
|
u32 serial;
|
|
u8 mfg_week;
|
|
u8 mfg_year;
|
|
u8 version;
|
|
u8 revision;
|
|
u8 input;
|
|
u8 width_cm;
|
|
u8 height_cm;
|
|
u8 gamma;
|
|
u8 features;
|
|
u8 red_green_lo;
|
|
u8 blue_white_lo;
|
|
u8 red_x;
|
|
u8 red_y;
|
|
u8 green_x;
|
|
u8 green_y;
|
|
u8 blue_x;
|
|
u8 blue_y;
|
|
u8 white_x;
|
|
u8 white_y;
|
|
struct est_timings established_timings;
|
|
struct std_timing standard_timings[8];
|
|
struct detailed_timing detailed_timings[4];
|
|
u8 extensions;
|
|
u8 checksum;
|
|
};
|
|
|
|
struct drm_panel_funcs;
|
|
|
|
struct drm_panel {
|
|
struct device *dev;
|
|
struct backlight_device *backlight;
|
|
const struct drm_panel_funcs *funcs;
|
|
int connector_type;
|
|
struct list_head list;
|
|
bool prepare_prev_first;
|
|
};
|
|
|
|
struct display_timing;
|
|
|
|
struct drm_panel_funcs {
|
|
int (*prepare)(struct drm_panel *);
|
|
int (*enable)(struct drm_panel *);
|
|
int (*disable)(struct drm_panel *);
|
|
int (*unprepare)(struct drm_panel *);
|
|
int (*get_modes)(struct drm_panel *, struct drm_connector *);
|
|
enum drm_panel_orientation (*get_orientation)(struct drm_panel *);
|
|
int (*get_timings)(struct drm_panel *, unsigned int, struct display_timing *);
|
|
void (*debugfs_init)(struct drm_panel *, struct dentry *);
|
|
};
|
|
|
|
struct dp_aux_backlight {
|
|
struct backlight_device *base;
|
|
struct drm_dp_aux *aux;
|
|
struct drm_edp_backlight_info info;
|
|
bool enabled;
|
|
};
|
|
|
|
struct i915_syncmap {
|
|
u64 prefix;
|
|
unsigned int height;
|
|
unsigned int bitmap;
|
|
struct i915_syncmap *parent;
|
|
};
|
|
|
|
struct drm_i915_getparam32 {
|
|
s32 param;
|
|
u32 value;
|
|
};
|
|
|
|
struct drm_i915_getparam {
|
|
__s32 param;
|
|
int __attribute__((btf_type_tag("user"))) *value;
|
|
};
|
|
|
|
struct drm_device___3;
|
|
|
|
struct drm_file___3;
|
|
|
|
typedef int drm_ioctl_t___2(struct drm_device___3 *, void *, struct drm_file___3 *);
|
|
|
|
struct drm_mode_config_funcs___3;
|
|
|
|
struct drm_mode_config___3 {
|
|
struct mutex mutex;
|
|
struct drm_modeset_lock connection_mutex;
|
|
struct drm_modeset_acquire_ctx *acquire_ctx;
|
|
struct mutex idr_mutex;
|
|
struct idr object_idr;
|
|
struct idr tile_idr;
|
|
struct mutex fb_lock;
|
|
int num_fb;
|
|
struct list_head fb_list;
|
|
spinlock_t connector_list_lock;
|
|
int num_connector;
|
|
struct ida connector_ida;
|
|
struct list_head connector_list;
|
|
struct llist_head connector_free_list;
|
|
struct work_struct connector_free_work;
|
|
int num_encoder;
|
|
struct list_head encoder_list;
|
|
int num_total_plane;
|
|
struct list_head plane_list;
|
|
int num_crtc;
|
|
struct list_head crtc_list;
|
|
struct list_head property_list;
|
|
struct list_head privobj_list;
|
|
int min_width;
|
|
int min_height;
|
|
int max_width;
|
|
int max_height;
|
|
const struct drm_mode_config_funcs___3 *funcs;
|
|
bool poll_enabled;
|
|
bool poll_running;
|
|
bool delayed_event;
|
|
struct delayed_work output_poll_work;
|
|
struct mutex blob_lock;
|
|
struct list_head property_blob_list;
|
|
struct drm_property *edid_property;
|
|
struct drm_property *dpms_property;
|
|
struct drm_property *path_property;
|
|
struct drm_property *tile_property;
|
|
struct drm_property *link_status_property;
|
|
struct drm_property *plane_type_property;
|
|
struct drm_property *prop_src_x;
|
|
struct drm_property *prop_src_y;
|
|
struct drm_property *prop_src_w;
|
|
struct drm_property *prop_src_h;
|
|
struct drm_property *prop_crtc_x;
|
|
struct drm_property *prop_crtc_y;
|
|
struct drm_property *prop_crtc_w;
|
|
struct drm_property *prop_crtc_h;
|
|
struct drm_property *prop_fb_id;
|
|
struct drm_property *prop_in_fence_fd;
|
|
struct drm_property *prop_out_fence_ptr;
|
|
struct drm_property *prop_crtc_id;
|
|
struct drm_property *prop_fb_damage_clips;
|
|
struct drm_property *prop_active;
|
|
struct drm_property *prop_mode_id;
|
|
struct drm_property *prop_vrr_enabled;
|
|
struct drm_property *dvi_i_subconnector_property;
|
|
struct drm_property *dvi_i_select_subconnector_property;
|
|
struct drm_property *dp_subconnector_property;
|
|
struct drm_property *tv_subconnector_property;
|
|
struct drm_property *tv_select_subconnector_property;
|
|
struct drm_property *legacy_tv_mode_property;
|
|
struct drm_property *tv_mode_property;
|
|
struct drm_property *tv_left_margin_property;
|
|
struct drm_property *tv_right_margin_property;
|
|
struct drm_property *tv_top_margin_property;
|
|
struct drm_property *tv_bottom_margin_property;
|
|
struct drm_property *tv_brightness_property;
|
|
struct drm_property *tv_contrast_property;
|
|
struct drm_property *tv_flicker_reduction_property;
|
|
struct drm_property *tv_overscan_property;
|
|
struct drm_property *tv_saturation_property;
|
|
struct drm_property *tv_hue_property;
|
|
struct drm_property *scaling_mode_property;
|
|
struct drm_property *aspect_ratio_property;
|
|
struct drm_property *content_type_property;
|
|
struct drm_property *degamma_lut_property;
|
|
struct drm_property *degamma_lut_size_property;
|
|
struct drm_property *ctm_property;
|
|
struct drm_property *gamma_lut_property;
|
|
struct drm_property *gamma_lut_size_property;
|
|
struct drm_property *suggested_x_property;
|
|
struct drm_property *suggested_y_property;
|
|
struct drm_property *non_desktop_property;
|
|
struct drm_property *panel_orientation_property;
|
|
struct drm_property *writeback_fb_id_property;
|
|
struct drm_property *writeback_pixel_formats_property;
|
|
struct drm_property *writeback_out_fence_ptr_property;
|
|
struct drm_property *hdr_output_metadata_property;
|
|
struct drm_property *content_protection_property;
|
|
struct drm_property *hdcp_content_type_property;
|
|
uint32_t preferred_depth;
|
|
uint32_t prefer_shadow;
|
|
bool prefer_shadow_fbdev;
|
|
bool quirk_addfb_prefer_xbgr_30bpp;
|
|
bool quirk_addfb_prefer_host_byte_order;
|
|
bool async_page_flip;
|
|
bool fb_modifiers_not_supported;
|
|
bool normalize_zpos;
|
|
struct drm_property *modifiers_property;
|
|
uint32_t cursor_width;
|
|
uint32_t cursor_height;
|
|
struct drm_atomic_state *suspend_state;
|
|
const struct drm_mode_config_helper_funcs *helper_private;
|
|
};
|
|
|
|
struct drm_driver___3;
|
|
|
|
struct drm_minor___3;
|
|
|
|
struct drm_master___3;
|
|
|
|
struct drm_device___3 {
|
|
int if_version;
|
|
struct kref ref;
|
|
struct device *dev;
|
|
struct {
|
|
struct list_head resources;
|
|
void *final_kfree;
|
|
spinlock_t lock;
|
|
} managed;
|
|
const struct drm_driver___3 *driver;
|
|
void *dev_private;
|
|
struct drm_minor___3 *primary;
|
|
struct drm_minor___3 *render;
|
|
struct drm_minor___3 *accel;
|
|
bool registered;
|
|
struct drm_master___3 *master;
|
|
u32 driver_features;
|
|
bool unplugged;
|
|
struct inode *anon_inode;
|
|
char *unique;
|
|
struct mutex struct_mutex;
|
|
struct mutex master_mutex;
|
|
atomic_t open_count;
|
|
struct mutex filelist_mutex;
|
|
struct list_head filelist;
|
|
struct list_head filelist_internal;
|
|
struct mutex clientlist_mutex;
|
|
struct list_head clientlist;
|
|
bool vblank_disable_immediate;
|
|
struct drm_vblank_crtc *vblank;
|
|
spinlock_t vblank_time_lock;
|
|
spinlock_t vbl_lock;
|
|
u32 max_vblank_count;
|
|
struct list_head vblank_event_list;
|
|
spinlock_t event_lock;
|
|
unsigned int num_crtcs;
|
|
struct drm_mode_config___3 mode_config;
|
|
struct mutex object_name_lock;
|
|
struct idr object_name_idr;
|
|
struct drm_vma_offset_manager *vma_offset_manager;
|
|
struct drm_vram_mm *vram_mm;
|
|
enum switch_power_state switch_power_state;
|
|
struct drm_fb_helper *fb_helper;
|
|
struct mutex debugfs_mutex;
|
|
struct list_head debugfs_list;
|
|
};
|
|
|
|
struct drm_gem_object___3;
|
|
|
|
struct drm_ioctl_desc___2;
|
|
|
|
struct drm_driver___3 {
|
|
int (*load)(struct drm_device___3 *, unsigned long);
|
|
int (*open)(struct drm_device___3 *, struct drm_file___3 *);
|
|
void (*postclose)(struct drm_device___3 *, struct drm_file___3 *);
|
|
void (*lastclose)(struct drm_device___3 *);
|
|
void (*unload)(struct drm_device___3 *);
|
|
void (*release)(struct drm_device___3 *);
|
|
void (*master_set)(struct drm_device___3 *, struct drm_file___3 *, bool);
|
|
void (*master_drop)(struct drm_device___3 *, struct drm_file___3 *);
|
|
void (*debugfs_init)(struct drm_minor___3 *);
|
|
struct drm_gem_object___3 * (*gem_create_object)(struct drm_device___3 *, size_t);
|
|
int (*prime_handle_to_fd)(struct drm_device___3 *, struct drm_file___3 *, uint32_t, uint32_t, int *);
|
|
int (*prime_fd_to_handle)(struct drm_device___3 *, struct drm_file___3 *, int, uint32_t *);
|
|
struct drm_gem_object___3 * (*gem_prime_import)(struct drm_device___3 *, struct dma_buf *);
|
|
struct drm_gem_object___3 * (*gem_prime_import_sg_table)(struct drm_device___3 *, struct dma_buf_attachment *, struct sg_table *);
|
|
int (*gem_prime_mmap)(struct drm_gem_object___3 *, struct vm_area_struct *);
|
|
int (*dumb_create)(struct drm_file___3 *, struct drm_device___3 *, struct drm_mode_create_dumb *);
|
|
int (*dumb_map_offset)(struct drm_file___3 *, struct drm_device___3 *, uint32_t, uint64_t *);
|
|
int (*dumb_destroy)(struct drm_file___3 *, struct drm_device___3 *, uint32_t);
|
|
int major;
|
|
int minor;
|
|
int patchlevel;
|
|
char *name;
|
|
char *desc;
|
|
char *date;
|
|
u32 driver_features;
|
|
const struct drm_ioctl_desc___2 *ioctls;
|
|
int num_ioctls;
|
|
const struct file_operations *fops;
|
|
};
|
|
|
|
struct drm_file___3 {
|
|
bool authenticated;
|
|
bool stereo_allowed;
|
|
bool universal_planes;
|
|
bool atomic;
|
|
bool aspect_ratio_allowed;
|
|
bool writeback_connectors;
|
|
bool was_master;
|
|
bool is_master;
|
|
struct drm_master___3 *master;
|
|
spinlock_t master_lookup_lock;
|
|
struct pid *pid;
|
|
drm_magic_t magic;
|
|
struct list_head lhead;
|
|
struct drm_minor___3 *minor;
|
|
struct idr object_idr;
|
|
spinlock_t table_lock;
|
|
struct idr syncobj_idr;
|
|
spinlock_t syncobj_table_lock;
|
|
struct file *filp;
|
|
void *driver_priv;
|
|
struct list_head fbs;
|
|
struct mutex fbs_lock;
|
|
struct list_head blobs;
|
|
wait_queue_head_t event_wait;
|
|
struct list_head pending_event_list;
|
|
struct list_head event_list;
|
|
int event_space;
|
|
struct mutex event_read_lock;
|
|
struct drm_prime_file_private prime;
|
|
};
|
|
|
|
struct drm_master___3 {
|
|
struct kref refcount;
|
|
struct drm_device___3 *dev;
|
|
char *unique;
|
|
int unique_len;
|
|
struct idr magic_map;
|
|
void *driver_priv;
|
|
struct drm_master___3 *lessor;
|
|
int lessee_id;
|
|
struct list_head lessee_list;
|
|
struct list_head lessees;
|
|
struct idr leases;
|
|
struct idr lessee_idr;
|
|
};
|
|
|
|
struct drm_minor___3 {
|
|
int index;
|
|
int type;
|
|
struct device *kdev;
|
|
struct drm_device___3 *dev;
|
|
struct dentry *debugfs_root;
|
|
struct list_head debugfs_list;
|
|
struct mutex debugfs_lock;
|
|
};
|
|
|
|
struct drm_gem_object_funcs___3;
|
|
|
|
struct drm_gem_object___3 {
|
|
struct kref refcount;
|
|
unsigned int handle_count;
|
|
struct drm_device___3 *dev;
|
|
struct file *filp;
|
|
struct drm_vma_offset_node vma_node;
|
|
size_t size;
|
|
int name;
|
|
struct dma_buf *dma_buf;
|
|
struct dma_buf_attachment *import_attach;
|
|
struct dma_resv *resv;
|
|
struct dma_resv _resv;
|
|
const struct drm_gem_object_funcs___3 *funcs;
|
|
struct list_head lru_node;
|
|
struct drm_gem_lru *lru;
|
|
};
|
|
|
|
struct drm_gem_object_funcs___3 {
|
|
void (*free)(struct drm_gem_object___3 *);
|
|
int (*open)(struct drm_gem_object___3 *, struct drm_file___3 *);
|
|
void (*close)(struct drm_gem_object___3 *, struct drm_file___3 *);
|
|
void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object___3 *);
|
|
struct dma_buf * (*export)(struct drm_gem_object___3 *, int);
|
|
int (*pin)(struct drm_gem_object___3 *);
|
|
void (*unpin)(struct drm_gem_object___3 *);
|
|
struct sg_table * (*get_sg_table)(struct drm_gem_object___3 *);
|
|
int (*vmap)(struct drm_gem_object___3 *, struct iosys_map *);
|
|
void (*vunmap)(struct drm_gem_object___3 *, struct iosys_map *);
|
|
int (*mmap)(struct drm_gem_object___3 *, struct vm_area_struct *);
|
|
const struct vm_operations_struct *vm_ops;
|
|
};
|
|
|
|
struct drm_ioctl_desc___2 {
|
|
unsigned int cmd;
|
|
enum drm_ioctl_flags flags;
|
|
drm_ioctl_t___2 *func;
|
|
const char *name;
|
|
};
|
|
|
|
struct drm_mode_config_funcs___3 {
|
|
struct drm_framebuffer * (*fb_create)(struct drm_device___3 *, struct drm_file___3 *, const struct drm_mode_fb_cmd2 *);
|
|
const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *);
|
|
void (*output_poll_changed)(struct drm_device___3 *);
|
|
enum drm_mode_status (*mode_valid)(struct drm_device___3 *, const struct drm_display_mode *);
|
|
int (*atomic_check)(struct drm_device___3 *, struct drm_atomic_state *);
|
|
int (*atomic_commit)(struct drm_device___3 *, struct drm_atomic_state *, bool);
|
|
struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___3 *);
|
|
void (*atomic_state_clear)(struct drm_atomic_state *);
|
|
void (*atomic_state_free)(struct drm_atomic_state *);
|
|
};
|
|
|
|
struct intel_breadcrumbs {
|
|
struct kref ref;
|
|
atomic_t active;
|
|
spinlock_t signalers_lock;
|
|
struct list_head signalers;
|
|
struct llist_head signaled_requests;
|
|
atomic_t signaler_active;
|
|
spinlock_t irq_lock;
|
|
struct irq_work irq_work;
|
|
unsigned int irq_enabled;
|
|
bool irq_armed;
|
|
intel_engine_mask_t engine_mask;
|
|
struct intel_engine_cs *irq_engine;
|
|
bool (*irq_enable)(struct intel_breadcrumbs *);
|
|
void (*irq_disable)(struct intel_breadcrumbs *);
|
|
};
|
|
|
|
enum dma_fence_flag_bits {
|
|
DMA_FENCE_FLAG_SIGNALED_BIT = 0,
|
|
DMA_FENCE_FLAG_TIMESTAMP_BIT = 1,
|
|
DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2,
|
|
DMA_FENCE_FLAG_USER_BITS = 3,
|
|
};
|
|
|
|
enum {
|
|
I915_FENCE_FLAG_ACTIVE = 3,
|
|
I915_FENCE_FLAG_PQUEUE = 4,
|
|
I915_FENCE_FLAG_HOLD = 5,
|
|
I915_FENCE_FLAG_INITIAL_BREADCRUMB = 6,
|
|
I915_FENCE_FLAG_SIGNAL = 7,
|
|
I915_FENCE_FLAG_NOPREEMPT = 8,
|
|
I915_FENCE_FLAG_SENTINEL = 9,
|
|
I915_FENCE_FLAG_BOOST = 10,
|
|
I915_FENCE_FLAG_SUBMIT_PARALLEL = 11,
|
|
I915_FENCE_FLAG_SKIP_PARALLEL = 12,
|
|
I915_FENCE_FLAG_COMPOSITE = 13,
|
|
};
|
|
|
|
enum {
|
|
INTEL_WAKEREF_PUT_ASYNC_BIT = 0,
|
|
__INTEL_WAKEREF_PUT_LAST_BIT__ = 1,
|
|
};
|
|
|
|
struct ttm_placement {
|
|
unsigned int num_placement;
|
|
const struct ttm_place *placement;
|
|
unsigned int num_busy_placement;
|
|
const struct ttm_place *busy_placement;
|
|
};
|
|
|
|
struct ttm_tt {
|
|
struct page **pages;
|
|
uint32_t page_flags;
|
|
uint32_t num_pages;
|
|
struct sg_table *sg;
|
|
dma_addr_t *dma_address;
|
|
struct file *swap_storage;
|
|
enum ttm_caching caching;
|
|
};
|
|
|
|
enum {
|
|
RADIX_TREE_ITER_TAG_MASK = 15,
|
|
RADIX_TREE_ITER_TAGGED = 16,
|
|
RADIX_TREE_ITER_CONTIG = 32,
|
|
};
|
|
|
|
enum intel_memory_type {
|
|
INTEL_MEMORY_SYSTEM = 0,
|
|
INTEL_MEMORY_LOCAL = 1,
|
|
INTEL_MEMORY_STOLEN_SYSTEM = 2,
|
|
INTEL_MEMORY_STOLEN_LOCAL = 3,
|
|
INTEL_MEMORY_MOCK = 4,
|
|
};
|
|
|
|
enum vm_fault_reason {
|
|
VM_FAULT_OOM = 1,
|
|
VM_FAULT_SIGBUS = 2,
|
|
VM_FAULT_MAJOR = 4,
|
|
VM_FAULT_HWPOISON = 16,
|
|
VM_FAULT_HWPOISON_LARGE = 32,
|
|
VM_FAULT_SIGSEGV = 64,
|
|
VM_FAULT_NOPAGE = 256,
|
|
VM_FAULT_LOCKED = 512,
|
|
VM_FAULT_RETRY = 1024,
|
|
VM_FAULT_FALLBACK = 2048,
|
|
VM_FAULT_DONE_COW = 4096,
|
|
VM_FAULT_NEEDDSYNC = 8192,
|
|
VM_FAULT_COMPLETED = 16384,
|
|
VM_FAULT_HINDEX_MASK = 983040,
|
|
};
|
|
|
|
struct i915_ttm_tt {
|
|
struct ttm_tt ttm;
|
|
struct device *dev;
|
|
struct i915_refct_sgt cached_rsgt;
|
|
bool is_shmem;
|
|
struct file *filp;
|
|
};
|
|
|
|
struct drm_buddy;
|
|
|
|
struct i915_ttm_buddy_resource {
|
|
struct ttm_resource base;
|
|
struct list_head blocks;
|
|
unsigned long flags;
|
|
unsigned long used_visible_size;
|
|
struct drm_buddy *mm;
|
|
};
|
|
|
|
struct drm_buddy_block;
|
|
|
|
struct drm_buddy {
|
|
struct list_head *free_list;
|
|
struct drm_buddy_block **roots;
|
|
unsigned int n_roots;
|
|
unsigned int max_order;
|
|
u64 chunk_size;
|
|
u64 size;
|
|
u64 avail;
|
|
};
|
|
|
|
struct drm_buddy_block {
|
|
u64 header;
|
|
struct drm_buddy_block *left;
|
|
struct drm_buddy_block *right;
|
|
struct drm_buddy_block *parent;
|
|
void *private;
|
|
struct list_head link;
|
|
struct list_head tmp_link;
|
|
};
|
|
|
|
struct radix_tree_iter {
|
|
unsigned long index;
|
|
unsigned long next_index;
|
|
unsigned long tags;
|
|
struct xa_node *node;
|
|
};
|
|
|
|
struct sgt_iter {
|
|
struct scatterlist *sgp;
|
|
union {
|
|
unsigned long pfn;
|
|
dma_addr_t dma;
|
|
};
|
|
unsigned int curr;
|
|
unsigned int max;
|
|
};
|
|
|
|
struct buddy_page_mask {
|
|
u32 page_mask;
|
|
u8 type;
|
|
u8 num_channels;
|
|
};
|
|
|
|
struct intel_ddi_port_domains {
|
|
enum port port_start;
|
|
enum port port_end;
|
|
enum aux_ch aux_ch_start;
|
|
enum aux_ch aux_ch_end;
|
|
enum intel_display_power_domain ddi_lanes;
|
|
enum intel_display_power_domain ddi_io;
|
|
enum intel_display_power_domain aux_io;
|
|
enum intel_display_power_domain aux_legacy_usbc;
|
|
enum intel_display_power_domain aux_tbt;
|
|
};
|
|
|
|
struct i915_power_well_desc;
|
|
|
|
struct i915_power_well {
|
|
const struct i915_power_well_desc *desc;
|
|
struct intel_power_domain_mask domains;
|
|
int count;
|
|
bool hw_enabled;
|
|
u8 instance_idx;
|
|
};
|
|
|
|
struct i915_power_well_ops;
|
|
|
|
struct i915_power_well_instance_list;
|
|
|
|
struct i915_power_well_desc {
|
|
const struct i915_power_well_ops *ops;
|
|
const struct i915_power_well_instance_list *instances;
|
|
u16 irq_pipe_mask: 4;
|
|
u16 always_on: 1;
|
|
u16 fixed_enable_delay: 1;
|
|
u16 has_vga: 1;
|
|
u16 has_fuses: 1;
|
|
u16 is_tc_tbt: 1;
|
|
};
|
|
|
|
struct i915_power_well_regs;
|
|
|
|
struct i915_power_well_ops {
|
|
const struct i915_power_well_regs *regs;
|
|
void (*sync_hw)(struct drm_i915_private *, struct i915_power_well *);
|
|
void (*enable)(struct drm_i915_private *, struct i915_power_well *);
|
|
void (*disable)(struct drm_i915_private *, struct i915_power_well *);
|
|
bool (*is_enabled)(struct drm_i915_private *, struct i915_power_well *);
|
|
};
|
|
|
|
struct i915_power_well_instance;
|
|
|
|
struct i915_power_well_instance_list {
|
|
const struct i915_power_well_instance *list;
|
|
u8 count;
|
|
};
|
|
|
|
enum i915_power_well_id {
|
|
DISP_PW_ID_NONE = 0,
|
|
VLV_DISP_PW_DISP2D = 1,
|
|
BXT_DISP_PW_DPIO_CMN_A = 2,
|
|
VLV_DISP_PW_DPIO_CMN_BC = 3,
|
|
GLK_DISP_PW_DPIO_CMN_C = 4,
|
|
CHV_DISP_PW_DPIO_CMN_D = 5,
|
|
HSW_DISP_PW_GLOBAL = 6,
|
|
SKL_DISP_PW_MISC_IO = 7,
|
|
SKL_DISP_PW_1 = 8,
|
|
SKL_DISP_PW_2 = 9,
|
|
ICL_DISP_PW_3 = 10,
|
|
SKL_DISP_DC_OFF = 11,
|
|
TGL_DISP_PW_TC_COLD_OFF = 12,
|
|
};
|
|
|
|
enum dpio_phy {
|
|
DPIO_PHY0 = 0,
|
|
DPIO_PHY1 = 1,
|
|
DPIO_PHY2 = 2,
|
|
};
|
|
|
|
struct i915_power_domain_list;
|
|
|
|
struct i915_power_well_instance {
|
|
const char *name;
|
|
const struct i915_power_domain_list *domain_list;
|
|
enum i915_power_well_id id;
|
|
union {
|
|
struct {
|
|
u8 idx;
|
|
} vlv;
|
|
struct {
|
|
enum dpio_phy phy;
|
|
} bxt;
|
|
struct {
|
|
u8 idx;
|
|
} hsw;
|
|
struct {
|
|
u8 aux_ch;
|
|
} xelpdp;
|
|
};
|
|
};
|
|
|
|
struct i915_power_domain_list {
|
|
const enum intel_display_power_domain *list;
|
|
u8 count;
|
|
};
|
|
|
|
enum i915_drm_suspend_mode {
|
|
I915_DRM_SUSPEND_IDLE = 0,
|
|
I915_DRM_SUSPEND_MEM = 1,
|
|
I915_DRM_SUSPEND_HIBERNATE = 2,
|
|
};
|
|
|
|
enum intel_step {
|
|
STEP_NONE = 0,
|
|
STEP_A0 = 1,
|
|
STEP_A1 = 2,
|
|
STEP_A2 = 3,
|
|
STEP_A3 = 4,
|
|
STEP_B0 = 5,
|
|
STEP_B1 = 6,
|
|
STEP_B2 = 7,
|
|
STEP_B3 = 8,
|
|
STEP_C0 = 9,
|
|
STEP_C1 = 10,
|
|
STEP_C2 = 11,
|
|
STEP_C3 = 12,
|
|
STEP_D0 = 13,
|
|
STEP_D1 = 14,
|
|
STEP_D2 = 15,
|
|
STEP_D3 = 16,
|
|
STEP_E0 = 17,
|
|
STEP_E1 = 18,
|
|
STEP_E2 = 19,
|
|
STEP_E3 = 20,
|
|
STEP_F0 = 21,
|
|
STEP_F1 = 22,
|
|
STEP_F2 = 23,
|
|
STEP_F3 = 24,
|
|
STEP_G0 = 25,
|
|
STEP_G1 = 26,
|
|
STEP_G2 = 27,
|
|
STEP_G3 = 28,
|
|
STEP_H0 = 29,
|
|
STEP_H1 = 30,
|
|
STEP_H2 = 31,
|
|
STEP_H3 = 32,
|
|
STEP_I0 = 33,
|
|
STEP_I1 = 34,
|
|
STEP_I2 = 35,
|
|
STEP_I3 = 36,
|
|
STEP_J0 = 37,
|
|
STEP_J1 = 38,
|
|
STEP_J2 = 39,
|
|
STEP_J3 = 40,
|
|
STEP_FUTURE = 41,
|
|
STEP_FOREVER = 42,
|
|
};
|
|
|
|
enum dpio_channel {
|
|
DPIO_CH0 = 0,
|
|
DPIO_CH1 = 1,
|
|
};
|
|
|
|
struct virtio_gpu_fence;
|
|
|
|
struct virtio_gpu_framebuffer {
|
|
struct drm_framebuffer base;
|
|
struct virtio_gpu_fence *fence;
|
|
};
|
|
|
|
struct virtio_gpu_fence_event;
|
|
|
|
struct virtio_gpu_fence {
|
|
struct dma_fence f;
|
|
uint32_t ring_idx;
|
|
uint64_t fence_id;
|
|
bool emit_fence_info;
|
|
struct virtio_gpu_fence_event *e;
|
|
struct virtio_gpu_fence_driver *drv;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct virtio_gpu_fence_event {
|
|
struct drm_pending_event base;
|
|
struct drm_event event;
|
|
};
|
|
|
|
struct probe;
|
|
|
|
struct kobj_map {
|
|
struct probe *probes[255];
|
|
struct mutex *lock;
|
|
};
|
|
|
|
typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
|
|
|
|
struct probe {
|
|
struct probe *next;
|
|
dev_t dev;
|
|
unsigned long range;
|
|
struct module *owner;
|
|
kobj_probe_t *get;
|
|
int (*lock)(dev_t, void *);
|
|
void *data;
|
|
};
|
|
|
|
enum regcache_type {
|
|
REGCACHE_NONE = 0,
|
|
REGCACHE_RBTREE = 1,
|
|
REGCACHE_COMPRESSED = 2,
|
|
REGCACHE_FLAT = 3,
|
|
};
|
|
|
|
struct regmap;
|
|
|
|
struct regcache_ops {
|
|
const char *name;
|
|
enum regcache_type type;
|
|
int (*init)(struct regmap *);
|
|
int (*exit)(struct regmap *);
|
|
void (*debugfs_init)(struct regmap *);
|
|
int (*read)(struct regmap *, unsigned int, unsigned int *);
|
|
int (*write)(struct regmap *, unsigned int, unsigned int);
|
|
int (*sync)(struct regmap *, unsigned int, unsigned int);
|
|
int (*drop)(struct regmap *, unsigned int, unsigned int);
|
|
};
|
|
|
|
typedef void (*regmap_lock)(void *);
|
|
|
|
typedef void (*regmap_unlock)(void *);
|
|
|
|
struct regmap_format {
|
|
size_t buf_size;
|
|
size_t reg_bytes;
|
|
size_t pad_bytes;
|
|
size_t reg_downshift;
|
|
size_t val_bytes;
|
|
void (*format_write)(struct regmap *, unsigned int, unsigned int);
|
|
void (*format_reg)(void *, unsigned int, unsigned int);
|
|
void (*format_val)(void *, unsigned int, unsigned int);
|
|
unsigned int (*parse_val)(const void *);
|
|
void (*parse_inplace)(void *);
|
|
};
|
|
|
|
struct hwspinlock;
|
|
|
|
struct regmap_bus;
|
|
|
|
struct regmap_access_table;
|
|
|
|
struct reg_default;
|
|
|
|
struct reg_sequence;
|
|
|
|
struct regmap {
|
|
union {
|
|
struct mutex mutex;
|
|
struct {
|
|
spinlock_t spinlock;
|
|
unsigned long spinlock_flags;
|
|
};
|
|
struct {
|
|
raw_spinlock_t raw_spinlock;
|
|
unsigned long raw_spinlock_flags;
|
|
};
|
|
};
|
|
regmap_lock lock;
|
|
regmap_unlock unlock;
|
|
void *lock_arg;
|
|
gfp_t alloc_flags;
|
|
unsigned int reg_base;
|
|
struct device *dev;
|
|
void *work_buf;
|
|
struct regmap_format format;
|
|
const struct regmap_bus *bus;
|
|
void *bus_context;
|
|
const char *name;
|
|
bool async;
|
|
spinlock_t async_lock;
|
|
wait_queue_head_t async_waitq;
|
|
struct list_head async_list;
|
|
struct list_head async_free;
|
|
int async_ret;
|
|
bool debugfs_disable;
|
|
struct dentry *debugfs;
|
|
const char *debugfs_name;
|
|
unsigned int debugfs_reg_len;
|
|
unsigned int debugfs_val_len;
|
|
unsigned int debugfs_tot_len;
|
|
struct list_head debugfs_off_cache;
|
|
struct mutex cache_lock;
|
|
unsigned int max_register;
|
|
bool (*writeable_reg)(struct device *, unsigned int);
|
|
bool (*readable_reg)(struct device *, unsigned int);
|
|
bool (*volatile_reg)(struct device *, unsigned int);
|
|
bool (*precious_reg)(struct device *, unsigned int);
|
|
bool (*writeable_noinc_reg)(struct device *, unsigned int);
|
|
bool (*readable_noinc_reg)(struct device *, unsigned int);
|
|
const struct regmap_access_table *wr_table;
|
|
const struct regmap_access_table *rd_table;
|
|
const struct regmap_access_table *volatile_table;
|
|
const struct regmap_access_table *precious_table;
|
|
const struct regmap_access_table *wr_noinc_table;
|
|
const struct regmap_access_table *rd_noinc_table;
|
|
int (*reg_read)(void *, unsigned int, unsigned int *);
|
|
int (*reg_write)(void *, unsigned int, unsigned int);
|
|
int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int);
|
|
int (*read)(void *, const void *, size_t, void *, size_t);
|
|
int (*write)(void *, const void *, size_t);
|
|
bool defer_caching;
|
|
unsigned long read_flag_mask;
|
|
unsigned long write_flag_mask;
|
|
int reg_shift;
|
|
int reg_stride;
|
|
int reg_stride_order;
|
|
const struct regcache_ops *cache_ops;
|
|
enum regcache_type cache_type;
|
|
unsigned int cache_size_raw;
|
|
unsigned int cache_word_size;
|
|
unsigned int num_reg_defaults;
|
|
unsigned int num_reg_defaults_raw;
|
|
bool cache_only;
|
|
bool cache_bypass;
|
|
bool cache_free;
|
|
struct reg_default *reg_defaults;
|
|
const void *reg_defaults_raw;
|
|
void *cache;
|
|
bool cache_dirty;
|
|
bool no_sync_defaults;
|
|
struct reg_sequence *patch;
|
|
int patch_regs;
|
|
bool use_single_read;
|
|
bool use_single_write;
|
|
bool can_multi_write;
|
|
size_t max_raw_read;
|
|
size_t max_raw_write;
|
|
struct rb_root range_tree;
|
|
void *selector_work_buf;
|
|
struct hwspinlock *hwlock;
|
|
bool can_sleep;
|
|
};
|
|
|
|
typedef int (*regmap_hw_write)(void *, const void *, size_t);
|
|
|
|
typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t);
|
|
|
|
struct regmap_async;
|
|
|
|
typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *);
|
|
|
|
typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int);
|
|
|
|
typedef int (*regmap_hw_reg_noinc_write)(void *, unsigned int, const void *, size_t);
|
|
|
|
typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int);
|
|
|
|
typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t);
|
|
|
|
typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *);
|
|
|
|
typedef int (*regmap_hw_reg_noinc_read)(void *, unsigned int, void *, size_t);
|
|
|
|
typedef void (*regmap_hw_free_context)(void *);
|
|
|
|
typedef struct regmap_async * (*regmap_hw_async_alloc)();
|
|
|
|
enum regmap_endian {
|
|
REGMAP_ENDIAN_DEFAULT = 0,
|
|
REGMAP_ENDIAN_BIG = 1,
|
|
REGMAP_ENDIAN_LITTLE = 2,
|
|
REGMAP_ENDIAN_NATIVE = 3,
|
|
};
|
|
|
|
struct regmap_bus {
|
|
bool fast_io;
|
|
bool free_on_exit;
|
|
regmap_hw_write write;
|
|
regmap_hw_gather_write gather_write;
|
|
regmap_hw_async_write async_write;
|
|
regmap_hw_reg_write reg_write;
|
|
regmap_hw_reg_noinc_write reg_noinc_write;
|
|
regmap_hw_reg_update_bits reg_update_bits;
|
|
regmap_hw_read read;
|
|
regmap_hw_reg_read reg_read;
|
|
regmap_hw_reg_noinc_read reg_noinc_read;
|
|
regmap_hw_free_context free_context;
|
|
regmap_hw_async_alloc async_alloc;
|
|
u8 read_flag_mask;
|
|
enum regmap_endian reg_format_endian_default;
|
|
enum regmap_endian val_format_endian_default;
|
|
size_t max_raw_read;
|
|
size_t max_raw_write;
|
|
};
|
|
|
|
struct regmap_async {
|
|
struct list_head list;
|
|
struct regmap *map;
|
|
void *work_buf;
|
|
};
|
|
|
|
struct regmap_range;
|
|
|
|
struct regmap_access_table {
|
|
const struct regmap_range *yes_ranges;
|
|
unsigned int n_yes_ranges;
|
|
const struct regmap_range *no_ranges;
|
|
unsigned int n_no_ranges;
|
|
};
|
|
|
|
struct regmap_range {
|
|
unsigned int range_min;
|
|
unsigned int range_max;
|
|
};
|
|
|
|
struct reg_default {
|
|
unsigned int reg;
|
|
unsigned int def;
|
|
};
|
|
|
|
struct reg_sequence {
|
|
unsigned int reg;
|
|
unsigned int def;
|
|
unsigned int delay_us;
|
|
};
|
|
|
|
struct regcache_rbtree_node {
|
|
void *block;
|
|
long *cache_present;
|
|
unsigned int base_reg;
|
|
unsigned int blklen;
|
|
struct rb_node node;
|
|
};
|
|
|
|
struct regcache_rbtree_ctx {
|
|
struct rb_root root;
|
|
struct regcache_rbtree_node *cached_rbnode;
|
|
};
|
|
|
|
struct scsi_varlen_cdb_hdr {
|
|
__u8 opcode;
|
|
__u8 control;
|
|
__u8 misc[5];
|
|
__u8 additional_cdb_length;
|
|
__be16 service_action;
|
|
};
|
|
|
|
struct tcf_walker {
|
|
int stop;
|
|
int skip;
|
|
int count;
|
|
bool nonempty;
|
|
unsigned long cookie;
|
|
int (*fn)(struct tcf_proto *, void *, struct tcf_walker *);
|
|
};
|
|
|
|
struct qdisc_walker {
|
|
int stop;
|
|
int skip;
|
|
int count;
|
|
int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *);
|
|
};
|
|
|
|
struct tc_action;
|
|
|
|
struct tcf_exts_miss_cookie_node;
|
|
|
|
struct tcf_exts {
|
|
__u32 type;
|
|
int nr_actions;
|
|
struct tc_action **actions;
|
|
struct net *net;
|
|
netns_tracker ns_tracker;
|
|
struct tcf_exts_miss_cookie_node *miss_cookie_node;
|
|
int action;
|
|
int police;
|
|
};
|
|
|
|
struct tcf_t {
|
|
__u64 install;
|
|
__u64 lastuse;
|
|
__u64 expires;
|
|
__u64 firstuse;
|
|
};
|
|
|
|
struct tc_action_ops;
|
|
|
|
struct tcf_idrinfo;
|
|
|
|
struct tc_cookie;
|
|
|
|
struct tc_action {
|
|
const struct tc_action_ops *ops;
|
|
__u32 type;
|
|
struct tcf_idrinfo *idrinfo;
|
|
u32 tcfa_index;
|
|
refcount_t tcfa_refcnt;
|
|
atomic_t tcfa_bindcnt;
|
|
int tcfa_action;
|
|
struct tcf_t tcfa_tm;
|
|
long: 64;
|
|
struct gnet_stats_basic_sync tcfa_bstats;
|
|
struct gnet_stats_basic_sync tcfa_bstats_hw;
|
|
struct gnet_stats_queue tcfa_qstats;
|
|
struct net_rate_estimator __attribute__((btf_type_tag("rcu"))) *tcfa_rate_est;
|
|
spinlock_t tcfa_lock;
|
|
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
|
|
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats_hw;
|
|
struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats;
|
|
struct tc_cookie __attribute__((btf_type_tag("rcu"))) *user_cookie;
|
|
struct tcf_chain __attribute__((btf_type_tag("rcu"))) *goto_chain;
|
|
u32 tcfa_flags;
|
|
u8 hw_stats;
|
|
u8 used_hw_stats;
|
|
bool used_hw_stats_valid;
|
|
u32 in_hw_count;
|
|
};
|
|
|
|
enum tca_id {
|
|
TCA_ID_UNSPEC = 0,
|
|
TCA_ID_POLICE = 1,
|
|
TCA_ID_GACT = 5,
|
|
TCA_ID_IPT = 6,
|
|
TCA_ID_PEDIT = 7,
|
|
TCA_ID_MIRRED = 8,
|
|
TCA_ID_NAT = 9,
|
|
TCA_ID_XT = 10,
|
|
TCA_ID_SKBEDIT = 11,
|
|
TCA_ID_VLAN = 12,
|
|
TCA_ID_BPF = 13,
|
|
TCA_ID_CONNMARK = 14,
|
|
TCA_ID_SKBMOD = 15,
|
|
TCA_ID_CSUM = 16,
|
|
TCA_ID_TUNNEL_KEY = 17,
|
|
TCA_ID_SIMP = 22,
|
|
TCA_ID_IFE = 25,
|
|
TCA_ID_SAMPLE = 26,
|
|
TCA_ID_CTINFO = 27,
|
|
TCA_ID_MPLS = 28,
|
|
TCA_ID_CT = 29,
|
|
TCA_ID_GATE = 30,
|
|
__TCA_ID_MAX = 255,
|
|
};
|
|
|
|
typedef void (*tc_action_priv_destructor)(void *);
|
|
|
|
struct psample_group;
|
|
|
|
struct tc_action_ops {
|
|
struct list_head head;
|
|
char kind[16];
|
|
enum tca_id id;
|
|
unsigned int net_id;
|
|
size_t size;
|
|
struct module *owner;
|
|
int (*act)(struct sk_buff *, const struct tc_action *, struct tcf_result *);
|
|
int (*dump)(struct sk_buff *, struct tc_action *, int, int);
|
|
void (*cleanup)(struct tc_action *);
|
|
int (*lookup)(struct net *, struct tc_action **, u32);
|
|
int (*init)(struct net *, struct nlattr *, struct nlattr *, struct tc_action **, struct tcf_proto *, u32, struct netlink_ext_ack *);
|
|
int (*walk)(struct net *, struct sk_buff *, struct netlink_callback *, int, const struct tc_action_ops *, struct netlink_ext_ack *);
|
|
void (*stats_update)(struct tc_action *, u64, u64, u64, u64, bool);
|
|
size_t (*get_fill_size)(const struct tc_action *);
|
|
struct net_device * (*get_dev)(const struct tc_action *, tc_action_priv_destructor *);
|
|
struct psample_group * (*get_psample_group)(const struct tc_action *, tc_action_priv_destructor *);
|
|
int (*offload_act_setup)(struct tc_action *, void *, u32 *, bool, struct netlink_ext_ack *);
|
|
};
|
|
|
|
struct tcf_idrinfo {
|
|
struct mutex lock;
|
|
struct idr action_idr;
|
|
struct net *net;
|
|
};
|
|
|
|
struct tc_cookie {
|
|
u8 *data;
|
|
u32 len;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
enum netdev_xdp_act {
|
|
NETDEV_XDP_ACT_BASIC = 1,
|
|
NETDEV_XDP_ACT_REDIRECT = 2,
|
|
NETDEV_XDP_ACT_NDO_XMIT = 4,
|
|
NETDEV_XDP_ACT_XSK_ZEROCOPY = 8,
|
|
NETDEV_XDP_ACT_HW_OFFLOAD = 16,
|
|
NETDEV_XDP_ACT_RX_SG = 32,
|
|
NETDEV_XDP_ACT_NDO_XMIT_SG = 64,
|
|
};
|
|
|
|
enum devlink_eswitch_mode {
|
|
DEVLINK_ESWITCH_MODE_LEGACY = 0,
|
|
DEVLINK_ESWITCH_MODE_SWITCHDEV = 1,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VF_LINK_STATE_AUTO = 0,
|
|
IFLA_VF_LINK_STATE_ENABLE = 1,
|
|
IFLA_VF_LINK_STATE_DISABLE = 2,
|
|
__IFLA_VF_LINK_STATE_MAX = 3,
|
|
};
|
|
|
|
enum flow_block_command {
|
|
FLOW_BLOCK_BIND = 0,
|
|
FLOW_BLOCK_UNBIND = 1,
|
|
};
|
|
|
|
enum flow_block_binder_type {
|
|
FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0,
|
|
FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1,
|
|
FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2,
|
|
FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3,
|
|
FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4,
|
|
};
|
|
|
|
struct devlink_region;
|
|
|
|
struct devlink_health_reporter;
|
|
|
|
struct nsim_dev_health {
|
|
struct devlink_health_reporter *empty_reporter;
|
|
struct devlink_health_reporter *dummy_reporter;
|
|
struct dentry *ddir;
|
|
char *recovered_break_msg;
|
|
u32 binary_len;
|
|
bool fail_recover;
|
|
};
|
|
|
|
struct nsim_dev_hwstats {
|
|
struct dentry *ddir;
|
|
struct dentry *l3_ddir;
|
|
struct mutex hwsdev_list_lock;
|
|
struct list_head l3_list;
|
|
struct notifier_block netdevice_nb;
|
|
struct delayed_work traffic_dw;
|
|
};
|
|
|
|
struct nsim_dev_psample;
|
|
|
|
struct nsim_fib_data;
|
|
|
|
struct nsim_trap_data;
|
|
|
|
struct nsim_vf_config;
|
|
|
|
struct flow_action_cookie;
|
|
|
|
struct nsim_dev {
|
|
struct nsim_bus_dev *nsim_bus_dev;
|
|
struct nsim_fib_data *fib_data;
|
|
struct nsim_trap_data *trap_data;
|
|
struct dentry *ddir;
|
|
struct dentry *ports_ddir;
|
|
struct dentry *take_snapshot;
|
|
struct dentry *nodes_ddir;
|
|
struct nsim_vf_config *vfconfigs;
|
|
struct bpf_offload_dev *bpf_dev;
|
|
bool bpf_bind_accept;
|
|
bool bpf_bind_verifier_accept;
|
|
u32 bpf_bind_verifier_delay;
|
|
struct dentry *ddir_bpf_bound_progs;
|
|
u32 prog_id_gen;
|
|
struct list_head bpf_bound_progs;
|
|
struct list_head bpf_bound_maps;
|
|
struct netdev_phys_item_id switch_id;
|
|
struct list_head port_list;
|
|
bool fw_update_status;
|
|
u32 fw_update_overwrite_mask;
|
|
u32 max_macs;
|
|
bool test1;
|
|
bool dont_allow_reload;
|
|
bool fail_reload;
|
|
struct devlink_region *dummy_region;
|
|
struct nsim_dev_health health;
|
|
struct nsim_dev_hwstats hwstats;
|
|
struct flow_action_cookie *fa_cookie;
|
|
spinlock_t fa_cookie_lock;
|
|
bool fail_trap_group_set;
|
|
bool fail_trap_policer_set;
|
|
bool fail_trap_policer_counter_get;
|
|
bool fail_trap_drop_counter_get;
|
|
struct {
|
|
struct udp_tunnel_nic_shared utn_shared;
|
|
u32 __ports[8];
|
|
bool sync_all;
|
|
bool open_only;
|
|
bool ipv4_only;
|
|
bool shared;
|
|
bool static_iana_vxlan;
|
|
u32 sleep;
|
|
} udp_ports;
|
|
struct nsim_dev_psample *psample;
|
|
u16 esw_mode;
|
|
};
|
|
|
|
struct nsim_vf_config {
|
|
int link_state;
|
|
u16 min_tx_rate;
|
|
u16 max_tx_rate;
|
|
u16 vlan;
|
|
__be16 vlan_proto;
|
|
u16 qos;
|
|
u8 vf_mac[6];
|
|
bool spoofchk_enabled;
|
|
bool trusted;
|
|
bool rss_query_enabled;
|
|
};
|
|
|
|
struct flow_action_cookie {
|
|
u32 cookie_len;
|
|
u8 cookie[0];
|
|
};
|
|
|
|
struct netdevsim;
|
|
|
|
struct nsim_dev_port {
|
|
struct list_head list;
|
|
struct devlink_port devlink_port;
|
|
unsigned int port_index;
|
|
enum nsim_dev_port_type port_type;
|
|
struct dentry *ddir;
|
|
struct dentry *rate_parent;
|
|
char *parent_name;
|
|
struct netdevsim *ns;
|
|
};
|
|
|
|
struct debugfs_u32_array {
|
|
u32 *array;
|
|
u32 n_elements;
|
|
};
|
|
|
|
struct xdp_attachment_info {
|
|
struct bpf_prog *prog;
|
|
u32 flags;
|
|
};
|
|
|
|
struct nsim_sa {
|
|
struct xfrm_state *xs;
|
|
__be32 ipaddr[4];
|
|
u32 key[4];
|
|
u32 salt;
|
|
bool used;
|
|
bool crypt;
|
|
bool rx;
|
|
};
|
|
|
|
struct nsim_ipsec {
|
|
struct nsim_sa sa[33];
|
|
struct dentry *pfile;
|
|
u32 count;
|
|
u32 tx;
|
|
u32 ok;
|
|
};
|
|
|
|
struct nsim_ethtool_pauseparam {
|
|
bool rx;
|
|
bool tx;
|
|
bool report_stats_rx;
|
|
bool report_stats_tx;
|
|
};
|
|
|
|
struct nsim_ethtool {
|
|
u32 get_err;
|
|
u32 set_err;
|
|
u32 channels;
|
|
struct nsim_ethtool_pauseparam pauseparam;
|
|
struct ethtool_coalesce coalesce;
|
|
struct ethtool_ringparam ring;
|
|
struct ethtool_fecparam fec;
|
|
};
|
|
|
|
struct netdevsim {
|
|
struct net_device *netdev;
|
|
struct nsim_dev *nsim_dev;
|
|
struct nsim_dev_port *nsim_dev_port;
|
|
u64 tx_packets;
|
|
u64 tx_bytes;
|
|
struct u64_stats_sync syncp;
|
|
struct nsim_bus_dev *nsim_bus_dev;
|
|
struct bpf_prog *bpf_offloaded;
|
|
u32 bpf_offloaded_id;
|
|
struct xdp_attachment_info xdp;
|
|
struct xdp_attachment_info xdp_hw;
|
|
bool bpf_tc_accept;
|
|
bool bpf_tc_non_bound_accept;
|
|
bool bpf_xdpdrv_accept;
|
|
bool bpf_xdpoffload_accept;
|
|
bool bpf_map_accept;
|
|
struct nsim_ipsec ipsec;
|
|
struct {
|
|
u32 inject_error;
|
|
u32 sleep;
|
|
u32 __ports[8];
|
|
u32 (*ports)[4];
|
|
struct debugfs_u32_array dfs_ports[2];
|
|
} udp_ports;
|
|
struct nsim_ethtool ethtool;
|
|
};
|
|
|
|
struct devlink_dev_stats {
|
|
u32 reload_stats[6];
|
|
u32 remote_reload_stats[6];
|
|
};
|
|
|
|
struct devlink_dpipe_headers;
|
|
|
|
struct devlink_ops;
|
|
|
|
struct devlink {
|
|
u32 index;
|
|
struct xarray ports;
|
|
struct list_head rate_list;
|
|
struct list_head sb_list;
|
|
struct list_head dpipe_table_list;
|
|
struct list_head resource_list;
|
|
struct xarray params;
|
|
struct list_head region_list;
|
|
struct list_head reporter_list;
|
|
struct devlink_dpipe_headers *dpipe_headers;
|
|
struct list_head trap_list;
|
|
struct list_head trap_group_list;
|
|
struct list_head trap_policer_list;
|
|
struct list_head linecard_list;
|
|
const struct devlink_ops *ops;
|
|
struct xarray snapshot_ids;
|
|
struct devlink_dev_stats stats;
|
|
struct device *dev;
|
|
possible_net_t _net;
|
|
struct mutex lock;
|
|
struct lock_class_key lock_key;
|
|
u8 reload_failed: 1;
|
|
refcount_t refcount;
|
|
struct rcu_work rwork;
|
|
struct notifier_block netdevice_nb;
|
|
char priv[0];
|
|
};
|
|
|
|
struct flow_block_offload {
|
|
enum flow_block_command command;
|
|
enum flow_block_binder_type binder_type;
|
|
bool block_shared;
|
|
bool unlocked_driver_cb;
|
|
struct net *net;
|
|
struct flow_block *block;
|
|
struct list_head cb_list;
|
|
struct list_head *driver_block_list;
|
|
struct netlink_ext_ack *extack;
|
|
struct Qdisc *sch;
|
|
struct list_head *cb_list_head;
|
|
};
|
|
|
|
struct usb_dev_cap_header {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDevCapabilityType;
|
|
};
|
|
|
|
struct usb_descriptor_header {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
};
|
|
|
|
enum usb_phy_type {
|
|
USB_PHY_TYPE_UNDEFINED = 0,
|
|
USB_PHY_TYPE_USB2 = 1,
|
|
USB_PHY_TYPE_USB3 = 2,
|
|
};
|
|
|
|
enum usb_phy_events {
|
|
USB_EVENT_NONE = 0,
|
|
USB_EVENT_VBUS = 1,
|
|
USB_EVENT_ID = 2,
|
|
USB_EVENT_CHARGER = 3,
|
|
USB_EVENT_ENUMERATED = 4,
|
|
};
|
|
|
|
struct extcon_dev;
|
|
|
|
enum usb_charger_type {
|
|
UNKNOWN_TYPE = 0,
|
|
SDP_TYPE = 1,
|
|
DCP_TYPE = 2,
|
|
CDP_TYPE = 3,
|
|
ACA_TYPE = 4,
|
|
};
|
|
|
|
enum usb_charger_state {
|
|
USB_CHARGER_DEFAULT = 0,
|
|
USB_CHARGER_PRESENT = 1,
|
|
USB_CHARGER_ABSENT = 2,
|
|
};
|
|
|
|
struct usb_charger_current {
|
|
unsigned int sdp_min;
|
|
unsigned int sdp_max;
|
|
unsigned int dcp_min;
|
|
unsigned int dcp_max;
|
|
unsigned int cdp_min;
|
|
unsigned int cdp_max;
|
|
unsigned int aca_min;
|
|
unsigned int aca_max;
|
|
};
|
|
|
|
struct usb_otg;
|
|
|
|
struct usb_phy_io_ops;
|
|
|
|
struct usb_phy {
|
|
struct device *dev;
|
|
const char *label;
|
|
unsigned int flags;
|
|
enum usb_phy_type type;
|
|
enum usb_phy_events last_event;
|
|
struct usb_otg *otg;
|
|
struct device *io_dev;
|
|
struct usb_phy_io_ops *io_ops;
|
|
void *io_priv;
|
|
struct extcon_dev *edev;
|
|
struct extcon_dev *id_edev;
|
|
struct notifier_block vbus_nb;
|
|
struct notifier_block id_nb;
|
|
struct notifier_block type_nb;
|
|
enum usb_charger_type chg_type;
|
|
enum usb_charger_state chg_state;
|
|
struct usb_charger_current chg_cur;
|
|
struct work_struct chg_work;
|
|
struct atomic_notifier_head notifier;
|
|
u16 port_status;
|
|
u16 port_change;
|
|
struct list_head head;
|
|
int (*init)(struct usb_phy *);
|
|
void (*shutdown)(struct usb_phy *);
|
|
int (*set_vbus)(struct usb_phy *, int);
|
|
int (*set_power)(struct usb_phy *, unsigned int);
|
|
int (*set_suspend)(struct usb_phy *, int);
|
|
int (*set_wakeup)(struct usb_phy *, bool);
|
|
int (*notify_connect)(struct usb_phy *, enum usb_device_speed);
|
|
int (*notify_disconnect)(struct usb_phy *, enum usb_device_speed);
|
|
enum usb_charger_type (*charger_detect)(struct usb_phy *);
|
|
};
|
|
|
|
struct usb_gadget;
|
|
|
|
enum usb_otg_state {
|
|
OTG_STATE_UNDEFINED = 0,
|
|
OTG_STATE_B_IDLE = 1,
|
|
OTG_STATE_B_SRP_INIT = 2,
|
|
OTG_STATE_B_PERIPHERAL = 3,
|
|
OTG_STATE_B_WAIT_ACON = 4,
|
|
OTG_STATE_B_HOST = 5,
|
|
OTG_STATE_A_IDLE = 6,
|
|
OTG_STATE_A_WAIT_VRISE = 7,
|
|
OTG_STATE_A_WAIT_BCON = 8,
|
|
OTG_STATE_A_HOST = 9,
|
|
OTG_STATE_A_SUSPEND = 10,
|
|
OTG_STATE_A_PERIPHERAL = 11,
|
|
OTG_STATE_A_WAIT_VFALL = 12,
|
|
OTG_STATE_A_VBUS_ERR = 13,
|
|
};
|
|
|
|
struct phy;
|
|
|
|
struct usb_otg {
|
|
u8 default_a;
|
|
struct phy *phy;
|
|
struct usb_phy *usb_phy;
|
|
struct usb_bus *host;
|
|
struct usb_gadget *gadget;
|
|
enum usb_otg_state state;
|
|
int (*set_host)(struct usb_otg *, struct usb_bus *);
|
|
int (*set_peripheral)(struct usb_otg *, struct usb_gadget *);
|
|
int (*set_vbus)(struct usb_otg *, bool);
|
|
int (*start_srp)(struct usb_otg *);
|
|
int (*start_hnp)(struct usb_otg *);
|
|
};
|
|
|
|
enum phy_mode {
|
|
PHY_MODE_INVALID = 0,
|
|
PHY_MODE_USB_HOST = 1,
|
|
PHY_MODE_USB_HOST_LS = 2,
|
|
PHY_MODE_USB_HOST_FS = 3,
|
|
PHY_MODE_USB_HOST_HS = 4,
|
|
PHY_MODE_USB_HOST_SS = 5,
|
|
PHY_MODE_USB_DEVICE = 6,
|
|
PHY_MODE_USB_DEVICE_LS = 7,
|
|
PHY_MODE_USB_DEVICE_FS = 8,
|
|
PHY_MODE_USB_DEVICE_HS = 9,
|
|
PHY_MODE_USB_DEVICE_SS = 10,
|
|
PHY_MODE_USB_OTG = 11,
|
|
PHY_MODE_UFS_HS_A = 12,
|
|
PHY_MODE_UFS_HS_B = 13,
|
|
PHY_MODE_PCIE = 14,
|
|
PHY_MODE_ETHERNET = 15,
|
|
PHY_MODE_MIPI_DPHY = 16,
|
|
PHY_MODE_SATA = 17,
|
|
PHY_MODE_LVDS = 18,
|
|
PHY_MODE_DP = 19,
|
|
};
|
|
|
|
struct phy_attrs {
|
|
u32 bus_width;
|
|
u32 max_link_rate;
|
|
enum phy_mode mode;
|
|
};
|
|
|
|
struct phy_ops;
|
|
|
|
struct phy {
|
|
struct device dev;
|
|
int id;
|
|
const struct phy_ops *ops;
|
|
struct mutex mutex;
|
|
int init_count;
|
|
int power_count;
|
|
struct phy_attrs attrs;
|
|
struct regulator *pwr;
|
|
};
|
|
|
|
enum phy_media {
|
|
PHY_MEDIA_DEFAULT = 0,
|
|
PHY_MEDIA_SR = 1,
|
|
PHY_MEDIA_DAC = 2,
|
|
};
|
|
|
|
union phy_configure_opts;
|
|
|
|
struct phy_ops {
|
|
int (*init)(struct phy *);
|
|
int (*exit)(struct phy *);
|
|
int (*power_on)(struct phy *);
|
|
int (*power_off)(struct phy *);
|
|
int (*set_mode)(struct phy *, enum phy_mode, int);
|
|
int (*set_media)(struct phy *, enum phy_media);
|
|
int (*set_speed)(struct phy *, int);
|
|
int (*configure)(struct phy *, union phy_configure_opts *);
|
|
int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *);
|
|
int (*reset)(struct phy *);
|
|
int (*calibrate)(struct phy *);
|
|
void (*release)(struct phy *);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct phy_configure_opts_mipi_dphy {
|
|
unsigned int clk_miss;
|
|
unsigned int clk_post;
|
|
unsigned int clk_pre;
|
|
unsigned int clk_prepare;
|
|
unsigned int clk_settle;
|
|
unsigned int clk_term_en;
|
|
unsigned int clk_trail;
|
|
unsigned int clk_zero;
|
|
unsigned int d_term_en;
|
|
unsigned int eot;
|
|
unsigned int hs_exit;
|
|
unsigned int hs_prepare;
|
|
unsigned int hs_settle;
|
|
unsigned int hs_skip;
|
|
unsigned int hs_trail;
|
|
unsigned int hs_zero;
|
|
unsigned int init;
|
|
unsigned int lpx;
|
|
unsigned int ta_get;
|
|
unsigned int ta_go;
|
|
unsigned int ta_sure;
|
|
unsigned int wakeup;
|
|
unsigned long hs_clk_rate;
|
|
unsigned long lp_clk_rate;
|
|
unsigned char lanes;
|
|
};
|
|
|
|
struct phy_configure_opts_dp {
|
|
unsigned int link_rate;
|
|
unsigned int lanes;
|
|
unsigned int voltage[4];
|
|
unsigned int pre[4];
|
|
u8 ssc: 1;
|
|
u8 set_rate: 1;
|
|
u8 set_lanes: 1;
|
|
u8 set_voltages: 1;
|
|
};
|
|
|
|
struct phy_configure_opts_lvds {
|
|
unsigned int bits_per_lane_and_dclk_cycle;
|
|
unsigned long differential_clk_rate;
|
|
unsigned int lanes;
|
|
bool is_slave;
|
|
};
|
|
|
|
union phy_configure_opts {
|
|
struct phy_configure_opts_mipi_dphy mipi_dphy;
|
|
struct phy_configure_opts_dp dp;
|
|
struct phy_configure_opts_lvds lvds;
|
|
};
|
|
|
|
struct usb_phy_io_ops {
|
|
int (*read)(struct usb_phy *, u32);
|
|
int (*write)(struct usb_phy *, u32, u32);
|
|
};
|
|
|
|
typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long);
|
|
|
|
struct gen_pool {
|
|
spinlock_t lock;
|
|
struct list_head chunks;
|
|
int min_alloc_order;
|
|
genpool_algo_t algo;
|
|
void *data;
|
|
const char *name;
|
|
};
|
|
|
|
enum ohci_rh_state {
|
|
OHCI_RH_HALTED = 0,
|
|
OHCI_RH_SUSPENDED = 1,
|
|
OHCI_RH_RUNNING = 2,
|
|
};
|
|
|
|
struct usb_hub_descriptor {
|
|
__u8 bDescLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bNbrPorts;
|
|
__le16 wHubCharacteristics;
|
|
__u8 bPwrOn2PwrGood;
|
|
__u8 bHubContrCurrent;
|
|
union {
|
|
struct {
|
|
__u8 DeviceRemovable[4];
|
|
__u8 PortPwrCtrlMask[4];
|
|
} hs;
|
|
struct {
|
|
__u8 bHubHdrDecLat;
|
|
__le16 wHubDelay;
|
|
__le16 DeviceRemovable;
|
|
} __attribute__((packed)) ss;
|
|
} u;
|
|
} __attribute__((packed));
|
|
|
|
struct ed;
|
|
|
|
struct td;
|
|
|
|
struct urb_priv___2 {
|
|
struct ed *ed;
|
|
u16 length;
|
|
u16 td_cnt;
|
|
struct list_head pending;
|
|
struct td *td[0];
|
|
};
|
|
|
|
typedef __u32 __hc32;
|
|
|
|
struct ed {
|
|
__hc32 hwINFO;
|
|
__hc32 hwTailP;
|
|
__hc32 hwHeadP;
|
|
__hc32 hwNextED;
|
|
dma_addr_t dma;
|
|
struct td *dummy;
|
|
struct ed *ed_next;
|
|
struct ed *ed_prev;
|
|
struct list_head td_list;
|
|
struct list_head in_use_list;
|
|
u8 state;
|
|
u8 type;
|
|
u8 branch;
|
|
u16 interval;
|
|
u16 load;
|
|
u16 last_iso;
|
|
u16 tick;
|
|
unsigned int takeback_wdh_cnt;
|
|
struct td *pending_td;
|
|
long: 64;
|
|
};
|
|
|
|
typedef __u16 __hc16;
|
|
|
|
struct td {
|
|
__hc32 hwINFO;
|
|
__hc32 hwCBP;
|
|
__hc32 hwNextTD;
|
|
__hc32 hwBE;
|
|
__hc16 hwPSW[2];
|
|
__u8 index;
|
|
struct ed *ed;
|
|
struct td *td_hash;
|
|
struct td *next_dl_td;
|
|
struct urb *urb;
|
|
dma_addr_t td_dma;
|
|
dma_addr_t data_dma;
|
|
struct list_head td_list;
|
|
long: 64;
|
|
};
|
|
|
|
struct ohci_regs;
|
|
|
|
struct ohci_hcca;
|
|
|
|
struct ohci_hcd {
|
|
spinlock_t lock;
|
|
struct ohci_regs *regs;
|
|
struct ohci_hcca *hcca;
|
|
dma_addr_t hcca_dma;
|
|
struct ed *ed_rm_list;
|
|
struct ed *ed_bulktail;
|
|
struct ed *ed_controltail;
|
|
struct ed *periodic[32];
|
|
void (*start_hnp)(struct ohci_hcd *);
|
|
struct dma_pool *td_cache;
|
|
struct dma_pool *ed_cache;
|
|
struct td *td_hash[64];
|
|
struct td *dl_start;
|
|
struct td *dl_end;
|
|
struct list_head pending;
|
|
struct list_head eds_in_use;
|
|
enum ohci_rh_state rh_state;
|
|
int num_ports;
|
|
int load[32];
|
|
u32 hc_control;
|
|
unsigned long next_statechange;
|
|
u32 fminterval;
|
|
unsigned int autostop: 1;
|
|
unsigned int working: 1;
|
|
unsigned int restart_work: 1;
|
|
unsigned long flags;
|
|
unsigned int prev_frame_no;
|
|
unsigned int wdh_cnt;
|
|
unsigned int prev_wdh_cnt;
|
|
u32 prev_donehead;
|
|
struct timer_list io_watchdog;
|
|
struct work_struct nec_work;
|
|
struct dentry *debug_dir;
|
|
unsigned long priv[0];
|
|
};
|
|
|
|
struct ohci_roothub_regs {
|
|
__hc32 a;
|
|
__hc32 b;
|
|
__hc32 status;
|
|
__hc32 portstatus[15];
|
|
};
|
|
|
|
struct ohci_regs {
|
|
__hc32 revision;
|
|
__hc32 control;
|
|
__hc32 cmdstatus;
|
|
__hc32 intrstatus;
|
|
__hc32 intrenable;
|
|
__hc32 intrdisable;
|
|
__hc32 hcca;
|
|
__hc32 ed_periodcurrent;
|
|
__hc32 ed_controlhead;
|
|
__hc32 ed_controlcurrent;
|
|
__hc32 ed_bulkhead;
|
|
__hc32 ed_bulkcurrent;
|
|
__hc32 donehead;
|
|
__hc32 fminterval;
|
|
__hc32 fmremaining;
|
|
__hc32 fmnumber;
|
|
__hc32 periodicstart;
|
|
__hc32 lsthresh;
|
|
struct ohci_roothub_regs roothub;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct ohci_hcca {
|
|
__hc32 int_table[32];
|
|
__hc32 frame_no;
|
|
__hc32 done_head;
|
|
u8 reserved_for_hc[116];
|
|
u8 what[4];
|
|
};
|
|
|
|
typedef struct urb_priv___2 urb_priv_t;
|
|
|
|
struct debug_buffer {
|
|
ssize_t (*fill_func)(struct debug_buffer *);
|
|
struct ohci_hcd *ohci;
|
|
struct mutex mutex;
|
|
size_t count;
|
|
char *page;
|
|
};
|
|
|
|
struct ohci_driver_overrides {
|
|
const char *product_desc;
|
|
size_t extra_priv_size;
|
|
int (*reset)(struct usb_hcd *);
|
|
};
|
|
|
|
struct trackpoint_attr_data {
|
|
size_t field_offset;
|
|
u8 command;
|
|
u8 mask;
|
|
bool inverted;
|
|
u8 power_on_default;
|
|
};
|
|
|
|
struct psmouse_attribute {
|
|
struct device_attribute dattr;
|
|
void *data;
|
|
ssize_t (*show)(struct psmouse *, void *, char *);
|
|
ssize_t (*set)(struct psmouse *, void *, const char *, size_t);
|
|
bool protect;
|
|
};
|
|
|
|
struct trackpoint_data {
|
|
u8 variant_id;
|
|
u8 firmware_id;
|
|
u8 sensitivity;
|
|
u8 speed;
|
|
u8 inertia;
|
|
u8 reach;
|
|
u8 draghys;
|
|
u8 mindrag;
|
|
u8 thresh;
|
|
u8 upthresh;
|
|
u8 ztime;
|
|
u8 jenks;
|
|
u8 drift_time;
|
|
bool press_to_select;
|
|
bool skipback;
|
|
bool ext_dev;
|
|
};
|
|
|
|
struct hd_geometry {
|
|
unsigned char heads;
|
|
unsigned char sectors;
|
|
unsigned short cylinders;
|
|
unsigned long start;
|
|
};
|
|
|
|
enum {
|
|
DM_TIO_INSIDE_DM_IO = 0,
|
|
DM_TIO_IS_DUPLICATE_BIO = 1,
|
|
};
|
|
|
|
enum dm_queue_mode {
|
|
DM_TYPE_NONE = 0,
|
|
DM_TYPE_BIO_BASED = 1,
|
|
DM_TYPE_REQUEST_BASED = 2,
|
|
DM_TYPE_DAX_BIO_BASED = 3,
|
|
};
|
|
|
|
enum dax_access_mode {
|
|
DAX_ACCESS = 0,
|
|
DAX_RECOVERY_WRITE = 1,
|
|
};
|
|
|
|
enum {
|
|
DM_IO_ACCOUNTED = 0,
|
|
DM_IO_WAS_SPLIT = 1,
|
|
};
|
|
|
|
enum {
|
|
GENHD_FL_REMOVABLE = 1,
|
|
GENHD_FL_HIDDEN = 2,
|
|
GENHD_FL_NO_PART = 4,
|
|
};
|
|
|
|
typedef u16 blk_short_t;
|
|
|
|
struct dm_stats_aux {
|
|
bool merged;
|
|
unsigned long long duration_ns;
|
|
};
|
|
|
|
struct dm_io;
|
|
|
|
struct dm_target;
|
|
|
|
struct dm_target_io {
|
|
unsigned short magic;
|
|
blk_short_t flags;
|
|
unsigned int target_bio_nr;
|
|
struct dm_io *io;
|
|
struct dm_target *ti;
|
|
unsigned int *len_ptr;
|
|
sector_t old_sector;
|
|
struct bio clone;
|
|
};
|
|
|
|
struct mapped_device;
|
|
|
|
struct dm_io {
|
|
unsigned short magic;
|
|
blk_short_t flags;
|
|
spinlock_t lock;
|
|
unsigned long start_time;
|
|
void *data;
|
|
struct dm_io *next;
|
|
struct dm_stats_aux stats_aux;
|
|
blk_status_t status;
|
|
atomic_t io_count;
|
|
struct mapped_device *md;
|
|
struct bio *orig_bio;
|
|
unsigned int sector_offset;
|
|
unsigned int sectors;
|
|
struct dm_target_io tio;
|
|
};
|
|
|
|
struct dax_device;
|
|
|
|
struct dm_stats_last_position;
|
|
|
|
struct dm_stats {
|
|
struct mutex mutex;
|
|
struct list_head list;
|
|
struct dm_stats_last_position __attribute__((btf_type_tag("percpu"))) *last;
|
|
bool precise_timestamps;
|
|
};
|
|
|
|
struct dm_kobject_holder {
|
|
struct kobject kobj;
|
|
struct completion completion;
|
|
};
|
|
|
|
struct dm_ima_device_table_metadata {
|
|
char *device_metadata;
|
|
unsigned int device_metadata_len;
|
|
unsigned int num_targets;
|
|
char *hash;
|
|
unsigned int hash_len;
|
|
};
|
|
|
|
struct dm_ima_measurements {
|
|
struct dm_ima_device_table_metadata active_table;
|
|
struct dm_ima_device_table_metadata inactive_table;
|
|
unsigned int dm_version_str_len;
|
|
};
|
|
|
|
struct target_type;
|
|
|
|
struct dm_md_mempools;
|
|
|
|
struct mapped_device {
|
|
struct mutex suspend_lock;
|
|
struct mutex table_devices_lock;
|
|
struct list_head table_devices;
|
|
void __attribute__((btf_type_tag("rcu"))) *map;
|
|
unsigned long flags;
|
|
struct mutex type_lock;
|
|
enum dm_queue_mode type;
|
|
int numa_node_id;
|
|
struct request_queue *queue;
|
|
atomic_t holders;
|
|
atomic_t open_count;
|
|
struct dm_target *immutable_target;
|
|
struct target_type *immutable_target_type;
|
|
char name[16];
|
|
struct gendisk *disk;
|
|
struct dax_device *dax_dev;
|
|
wait_queue_head_t wait;
|
|
unsigned long __attribute__((btf_type_tag("percpu"))) *pending_io;
|
|
struct hd_geometry geometry;
|
|
struct workqueue_struct *wq;
|
|
struct work_struct work;
|
|
spinlock_t deferred_lock;
|
|
struct bio_list deferred;
|
|
struct work_struct requeue_work;
|
|
struct dm_io *requeue_list;
|
|
void *interface_ptr;
|
|
wait_queue_head_t eventq;
|
|
atomic_t event_nr;
|
|
atomic_t uevent_seq;
|
|
struct list_head uevent_list;
|
|
spinlock_t uevent_lock;
|
|
bool init_tio_pdu: 1;
|
|
struct blk_mq_tag_set *tag_set;
|
|
struct dm_stats stats;
|
|
unsigned int internal_suspend_count;
|
|
int swap_bios;
|
|
struct semaphore swap_bios_semaphore;
|
|
struct mutex swap_bios_lock;
|
|
struct dm_md_mempools *mempools;
|
|
struct dm_kobject_holder kobj_holder;
|
|
struct srcu_struct io_barrier;
|
|
struct dm_ima_measurements ima;
|
|
};
|
|
|
|
struct dm_table;
|
|
|
|
struct dm_target {
|
|
struct dm_table *table;
|
|
struct target_type *type;
|
|
sector_t begin;
|
|
sector_t len;
|
|
uint32_t max_io_len;
|
|
unsigned int num_flush_bios;
|
|
unsigned int num_discard_bios;
|
|
unsigned int num_secure_erase_bios;
|
|
unsigned int num_write_zeroes_bios;
|
|
unsigned int per_io_data_size;
|
|
void *private;
|
|
char *error;
|
|
bool flush_supported: 1;
|
|
bool discards_supported: 1;
|
|
bool limit_swap_bios: 1;
|
|
bool emulate_zone_append: 1;
|
|
bool accounts_remapped_io: 1;
|
|
bool needs_bio_set_dev: 1;
|
|
};
|
|
|
|
struct dm_table {
|
|
struct mapped_device *md;
|
|
enum dm_queue_mode type;
|
|
unsigned int depth;
|
|
unsigned int counts[16];
|
|
sector_t *index[16];
|
|
unsigned int num_targets;
|
|
unsigned int num_allocated;
|
|
sector_t *highs;
|
|
struct dm_target *targets;
|
|
struct target_type *immutable_target_type;
|
|
bool integrity_supported: 1;
|
|
bool singleton: 1;
|
|
unsigned int integrity_added: 1;
|
|
fmode_t mode;
|
|
struct list_head devices;
|
|
void (*event_fn)(void *);
|
|
void *event_context;
|
|
struct dm_md_mempools *mempools;
|
|
};
|
|
|
|
typedef int (*dm_ctr_fn)(struct dm_target *, unsigned int, char **);
|
|
|
|
typedef void (*dm_dtr_fn)(struct dm_target *);
|
|
|
|
typedef int (*dm_map_fn)(struct dm_target *, struct bio *);
|
|
|
|
union map_info;
|
|
|
|
typedef int (*dm_clone_and_map_request_fn)(struct dm_target *, struct request *, union map_info *, struct request **);
|
|
|
|
typedef void (*dm_release_clone_request_fn)(struct request *, union map_info *);
|
|
|
|
typedef int (*dm_endio_fn)(struct dm_target *, struct bio *, blk_status_t *);
|
|
|
|
typedef int (*dm_request_endio_fn)(struct dm_target *, struct request *, blk_status_t, union map_info *);
|
|
|
|
typedef void (*dm_presuspend_fn)(struct dm_target *);
|
|
|
|
typedef void (*dm_presuspend_undo_fn)(struct dm_target *);
|
|
|
|
typedef void (*dm_postsuspend_fn)(struct dm_target *);
|
|
|
|
typedef int (*dm_preresume_fn)(struct dm_target *);
|
|
|
|
typedef void (*dm_resume_fn)(struct dm_target *);
|
|
|
|
typedef enum {
|
|
STATUSTYPE_INFO = 0,
|
|
STATUSTYPE_TABLE = 1,
|
|
STATUSTYPE_IMA = 2,
|
|
} status_type_t;
|
|
|
|
typedef void (*dm_status_fn)(struct dm_target *, status_type_t, unsigned int, char *, unsigned int);
|
|
|
|
typedef int (*dm_message_fn)(struct dm_target *, unsigned int, char **, char *, unsigned int);
|
|
|
|
typedef int (*dm_prepare_ioctl_fn)(struct dm_target *, struct block_device **);
|
|
|
|
typedef int (*dm_report_zones_fn)(struct dm_target *);
|
|
|
|
typedef int (*dm_busy_fn)(struct dm_target *);
|
|
|
|
struct dm_dev;
|
|
|
|
typedef int (*iterate_devices_callout_fn)(struct dm_target *, struct dm_dev *, sector_t, sector_t, void *);
|
|
|
|
typedef int (*dm_iterate_devices_fn)(struct dm_target *, iterate_devices_callout_fn, void *);
|
|
|
|
typedef void (*dm_io_hints_fn)(struct dm_target *, struct queue_limits *);
|
|
|
|
typedef struct {
|
|
u64 val;
|
|
} pfn_t;
|
|
|
|
typedef long (*dm_dax_direct_access_fn)(struct dm_target *, unsigned long, long, enum dax_access_mode, void **, pfn_t *);
|
|
|
|
typedef int (*dm_dax_zero_page_range_fn)(struct dm_target *, unsigned long, size_t);
|
|
|
|
typedef size_t (*dm_dax_recovery_write_fn)(struct dm_target *, unsigned long, void *, size_t, struct iov_iter *);
|
|
|
|
struct target_type {
|
|
uint64_t features;
|
|
const char *name;
|
|
struct module *module;
|
|
unsigned int version[3];
|
|
dm_ctr_fn ctr;
|
|
dm_dtr_fn dtr;
|
|
dm_map_fn map;
|
|
dm_clone_and_map_request_fn clone_and_map_rq;
|
|
dm_release_clone_request_fn release_clone_rq;
|
|
dm_endio_fn end_io;
|
|
dm_request_endio_fn rq_end_io;
|
|
dm_presuspend_fn presuspend;
|
|
dm_presuspend_undo_fn presuspend_undo;
|
|
dm_postsuspend_fn postsuspend;
|
|
dm_preresume_fn preresume;
|
|
dm_resume_fn resume;
|
|
dm_status_fn status;
|
|
dm_message_fn message;
|
|
dm_prepare_ioctl_fn prepare_ioctl;
|
|
dm_report_zones_fn report_zones;
|
|
dm_busy_fn busy;
|
|
dm_iterate_devices_fn iterate_devices;
|
|
dm_io_hints_fn io_hints;
|
|
dm_dax_direct_access_fn direct_access;
|
|
dm_dax_zero_page_range_fn dax_zero_page_range;
|
|
dm_dax_recovery_write_fn dax_recovery_write;
|
|
struct list_head list;
|
|
};
|
|
|
|
union map_info {
|
|
void *ptr;
|
|
};
|
|
|
|
struct dm_dev {
|
|
struct block_device *bdev;
|
|
struct dax_device *dax_dev;
|
|
fmode_t mode;
|
|
char name[16];
|
|
};
|
|
|
|
struct dm_md_mempools {
|
|
struct bio_set bs;
|
|
struct bio_set io_bs;
|
|
};
|
|
|
|
struct dm_stats_last_position {
|
|
sector_t last_sector;
|
|
unsigned int last_rw;
|
|
};
|
|
|
|
struct table_device {
|
|
struct list_head list;
|
|
refcount_t count;
|
|
struct dm_dev dm_dev;
|
|
};
|
|
|
|
struct clone_info {
|
|
struct dm_table *map;
|
|
struct bio *bio;
|
|
struct dm_io *io;
|
|
sector_t sector;
|
|
unsigned int sector_count;
|
|
bool is_abnormal_io: 1;
|
|
bool submit_as_polled: 1;
|
|
};
|
|
|
|
struct dm_pr {
|
|
u64 old_key;
|
|
u64 new_key;
|
|
u32 flags;
|
|
bool abort;
|
|
bool fail_early;
|
|
int ret;
|
|
enum pr_type type;
|
|
};
|
|
|
|
struct dev_type {
|
|
u16 idVendor;
|
|
u16 idProduct;
|
|
const short *ff;
|
|
};
|
|
|
|
typedef void (*dr_release_t)(struct device *, void *);
|
|
|
|
struct snd_dma_data {
|
|
int dma;
|
|
};
|
|
|
|
struct snd_pcm_chmap_elem {
|
|
unsigned char channels;
|
|
unsigned char map[15];
|
|
};
|
|
|
|
enum snd_dma_sync_mode {
|
|
SNDRV_DMA_SYNC_CPU = 0,
|
|
SNDRV_DMA_SYNC_DEVICE = 1,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_TSTAMP_NONE = 0,
|
|
SNDRV_PCM_TSTAMP_ENABLE = 1,
|
|
SNDRV_PCM_TSTAMP_LAST = 1,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_STREAM_PLAYBACK = 0,
|
|
SNDRV_PCM_STREAM_CAPTURE = 1,
|
|
SNDRV_PCM_STREAM_LAST = 1,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0,
|
|
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC = 1,
|
|
SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW = 2,
|
|
SNDRV_PCM_TSTAMP_TYPE_LAST = 2,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0,
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1,
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK = 2,
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3,
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4,
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5,
|
|
SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = 5,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_CHMAP_UNKNOWN = 0,
|
|
SNDRV_CHMAP_NA = 1,
|
|
SNDRV_CHMAP_MONO = 2,
|
|
SNDRV_CHMAP_FL = 3,
|
|
SNDRV_CHMAP_FR = 4,
|
|
SNDRV_CHMAP_RL = 5,
|
|
SNDRV_CHMAP_RR = 6,
|
|
SNDRV_CHMAP_FC = 7,
|
|
SNDRV_CHMAP_LFE = 8,
|
|
SNDRV_CHMAP_SL = 9,
|
|
SNDRV_CHMAP_SR = 10,
|
|
SNDRV_CHMAP_RC = 11,
|
|
SNDRV_CHMAP_FLC = 12,
|
|
SNDRV_CHMAP_FRC = 13,
|
|
SNDRV_CHMAP_RLC = 14,
|
|
SNDRV_CHMAP_RRC = 15,
|
|
SNDRV_CHMAP_FLW = 16,
|
|
SNDRV_CHMAP_FRW = 17,
|
|
SNDRV_CHMAP_FLH = 18,
|
|
SNDRV_CHMAP_FCH = 19,
|
|
SNDRV_CHMAP_FRH = 20,
|
|
SNDRV_CHMAP_TC = 21,
|
|
SNDRV_CHMAP_TFL = 22,
|
|
SNDRV_CHMAP_TFR = 23,
|
|
SNDRV_CHMAP_TFC = 24,
|
|
SNDRV_CHMAP_TRL = 25,
|
|
SNDRV_CHMAP_TRR = 26,
|
|
SNDRV_CHMAP_TRC = 27,
|
|
SNDRV_CHMAP_TFLC = 28,
|
|
SNDRV_CHMAP_TFRC = 29,
|
|
SNDRV_CHMAP_TSL = 30,
|
|
SNDRV_CHMAP_TSR = 31,
|
|
SNDRV_CHMAP_LLFE = 32,
|
|
SNDRV_CHMAP_RLFE = 33,
|
|
SNDRV_CHMAP_BC = 34,
|
|
SNDRV_CHMAP_BLC = 35,
|
|
SNDRV_CHMAP_BRC = 36,
|
|
SNDRV_CHMAP_LAST = 36,
|
|
};
|
|
|
|
typedef unsigned long snd_pcm_uframes_t;
|
|
|
|
typedef long snd_pcm_sframes_t;
|
|
|
|
typedef int snd_pcm_state_t;
|
|
|
|
typedef int snd_pcm_access_t;
|
|
|
|
struct snd_pcm_substream;
|
|
|
|
typedef int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long);
|
|
|
|
struct snd_dma_device {
|
|
int type;
|
|
enum dma_data_direction dir;
|
|
bool need_sync;
|
|
struct device *dev;
|
|
};
|
|
|
|
struct snd_dma_buffer {
|
|
struct snd_dma_device dev;
|
|
unsigned char *area;
|
|
dma_addr_t addr;
|
|
size_t bytes;
|
|
void *private_data;
|
|
};
|
|
|
|
struct snd_pcm_group {
|
|
spinlock_t lock;
|
|
struct mutex mutex;
|
|
struct list_head substreams;
|
|
refcount_t refs;
|
|
};
|
|
|
|
struct snd_pcm;
|
|
|
|
struct snd_pcm_str;
|
|
|
|
struct snd_pcm_ops;
|
|
|
|
struct snd_pcm_runtime;
|
|
|
|
struct snd_timer;
|
|
|
|
struct snd_info_entry;
|
|
|
|
struct snd_pcm_substream {
|
|
struct snd_pcm *pcm;
|
|
struct snd_pcm_str *pstr;
|
|
void *private_data;
|
|
int number;
|
|
char name[32];
|
|
int stream;
|
|
struct pm_qos_request latency_pm_qos_req;
|
|
size_t buffer_bytes_max;
|
|
struct snd_dma_buffer dma_buffer;
|
|
size_t dma_max;
|
|
const struct snd_pcm_ops *ops;
|
|
struct snd_pcm_runtime *runtime;
|
|
struct snd_timer *timer;
|
|
unsigned int timer_running: 1;
|
|
long wait_time;
|
|
struct snd_pcm_substream *next;
|
|
struct list_head link_list;
|
|
struct snd_pcm_group self_group;
|
|
struct snd_pcm_group *group;
|
|
int ref_count;
|
|
atomic_t mmap_count;
|
|
unsigned int f_flags;
|
|
void (*pcm_release)(struct snd_pcm_substream *);
|
|
struct pid *pid;
|
|
struct snd_info_entry *proc_root;
|
|
unsigned int hw_opened: 1;
|
|
unsigned int managed_buffer_alloc: 1;
|
|
};
|
|
|
|
struct snd_kcontrol;
|
|
|
|
struct snd_pcm_str {
|
|
int stream;
|
|
struct snd_pcm *pcm;
|
|
unsigned int substream_count;
|
|
unsigned int substream_opened;
|
|
struct snd_pcm_substream *substream;
|
|
struct snd_info_entry *proc_root;
|
|
struct snd_kcontrol *chmap_kctl;
|
|
struct device dev;
|
|
};
|
|
|
|
struct snd_card;
|
|
|
|
struct snd_pcm {
|
|
struct snd_card *card;
|
|
struct list_head list;
|
|
int device;
|
|
unsigned int info_flags;
|
|
unsigned short dev_class;
|
|
unsigned short dev_subclass;
|
|
char id[64];
|
|
char name[80];
|
|
struct snd_pcm_str streams[2];
|
|
struct mutex open_mutex;
|
|
wait_queue_head_t open_wait;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_pcm *);
|
|
bool internal;
|
|
bool nonatomic;
|
|
bool no_device_suspend;
|
|
};
|
|
|
|
struct snd_shutdown_f_ops;
|
|
|
|
struct snd_card {
|
|
int number;
|
|
char id[16];
|
|
char driver[16];
|
|
char shortname[32];
|
|
char longname[80];
|
|
char irq_descr[32];
|
|
char mixername[80];
|
|
char components[128];
|
|
struct module *module;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_card *);
|
|
struct list_head devices;
|
|
struct device ctl_dev;
|
|
unsigned int last_numid;
|
|
struct rw_semaphore controls_rwsem;
|
|
rwlock_t ctl_files_rwlock;
|
|
int controls_count;
|
|
size_t user_ctl_alloc_size;
|
|
struct list_head controls;
|
|
struct list_head ctl_files;
|
|
struct xarray ctl_numids;
|
|
struct xarray ctl_hash;
|
|
bool ctl_hash_collision;
|
|
struct snd_info_entry *proc_root;
|
|
struct proc_dir_entry *proc_root_link;
|
|
struct list_head files_list;
|
|
struct snd_shutdown_f_ops *s_f_ops;
|
|
spinlock_t files_lock;
|
|
int shutdown;
|
|
struct completion *release_completion;
|
|
struct device *dev;
|
|
struct device card_dev;
|
|
const struct attribute_group *dev_groups[4];
|
|
bool registered;
|
|
bool managed;
|
|
bool releasing;
|
|
int sync_irq;
|
|
wait_queue_head_t remove_sleep;
|
|
size_t total_pcm_alloc_bytes;
|
|
struct mutex memory_mutex;
|
|
unsigned int power_state;
|
|
atomic_t power_ref;
|
|
wait_queue_head_t power_sleep;
|
|
wait_queue_head_t power_ref_sleep;
|
|
};
|
|
|
|
struct snd_info_buffer;
|
|
|
|
struct snd_info_entry_text {
|
|
void (*read)(struct snd_info_entry *, struct snd_info_buffer *);
|
|
void (*write)(struct snd_info_entry *, struct snd_info_buffer *);
|
|
};
|
|
|
|
struct snd_info_entry_ops;
|
|
|
|
struct snd_info_entry {
|
|
const char *name;
|
|
umode_t mode;
|
|
long size;
|
|
unsigned short content;
|
|
union {
|
|
struct snd_info_entry_text text;
|
|
const struct snd_info_entry_ops *ops;
|
|
} c;
|
|
struct snd_info_entry *parent;
|
|
struct module *module;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_info_entry *);
|
|
struct proc_dir_entry *p;
|
|
struct mutex access;
|
|
struct list_head children;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct snd_info_buffer {
|
|
char *buffer;
|
|
unsigned int curr;
|
|
unsigned int size;
|
|
unsigned int len;
|
|
int stop;
|
|
int error;
|
|
};
|
|
|
|
struct snd_info_entry_ops {
|
|
int (*open)(struct snd_info_entry *, unsigned short, void **);
|
|
int (*release)(struct snd_info_entry *, unsigned short, void *);
|
|
ssize_t (*read)(struct snd_info_entry *, void *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t);
|
|
ssize_t (*write)(struct snd_info_entry *, void *, struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t);
|
|
loff_t (*llseek)(struct snd_info_entry *, void *, struct file *, loff_t, int);
|
|
__poll_t (*poll)(struct snd_info_entry *, void *, struct file *, poll_table *);
|
|
int (*ioctl)(struct snd_info_entry *, void *, struct file *, unsigned int, unsigned long);
|
|
int (*mmap)(struct snd_info_entry *, void *, struct inode *, struct file *, struct vm_area_struct *);
|
|
};
|
|
|
|
typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *);
|
|
|
|
typedef int snd_ctl_elem_iface_t;
|
|
|
|
struct snd_ctl_elem_id {
|
|
unsigned int numid;
|
|
snd_ctl_elem_iface_t iface;
|
|
unsigned int device;
|
|
unsigned int subdevice;
|
|
unsigned char name[44];
|
|
unsigned int index;
|
|
};
|
|
|
|
struct snd_ctl_elem_info;
|
|
|
|
typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *);
|
|
|
|
struct snd_ctl_elem_value;
|
|
|
|
typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *);
|
|
|
|
typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *);
|
|
|
|
struct snd_ctl_file;
|
|
|
|
struct snd_kcontrol_volatile {
|
|
struct snd_ctl_file *owner;
|
|
unsigned int access;
|
|
};
|
|
|
|
struct snd_kcontrol {
|
|
struct list_head list;
|
|
struct snd_ctl_elem_id id;
|
|
unsigned int count;
|
|
snd_kcontrol_info_t *info;
|
|
snd_kcontrol_get_t *get;
|
|
snd_kcontrol_put_t *put;
|
|
union {
|
|
snd_kcontrol_tlv_rw_t *c;
|
|
const unsigned int *p;
|
|
} tlv;
|
|
unsigned long private_value;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_kcontrol *);
|
|
struct snd_kcontrol_volatile vd[0];
|
|
};
|
|
|
|
typedef int snd_ctl_elem_type_t;
|
|
|
|
struct snd_ctl_elem_info {
|
|
struct snd_ctl_elem_id id;
|
|
snd_ctl_elem_type_t type;
|
|
unsigned int access;
|
|
unsigned int count;
|
|
__kernel_pid_t owner;
|
|
union {
|
|
struct {
|
|
long min;
|
|
long max;
|
|
long step;
|
|
} integer;
|
|
struct {
|
|
long long min;
|
|
long long max;
|
|
long long step;
|
|
} integer64;
|
|
struct {
|
|
unsigned int items;
|
|
unsigned int item;
|
|
char name[64];
|
|
__u64 names_ptr;
|
|
unsigned int names_length;
|
|
} enumerated;
|
|
unsigned char reserved[128];
|
|
} value;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_aes_iec958 {
|
|
unsigned char status[24];
|
|
unsigned char subcode[147];
|
|
unsigned char pad;
|
|
unsigned char dig_subframe[4];
|
|
};
|
|
|
|
struct snd_ctl_elem_value {
|
|
struct snd_ctl_elem_id id;
|
|
unsigned int indirect: 1;
|
|
union {
|
|
union {
|
|
long value[128];
|
|
long *value_ptr;
|
|
} integer;
|
|
union {
|
|
long long value[64];
|
|
long long *value_ptr;
|
|
} integer64;
|
|
union {
|
|
unsigned int item[128];
|
|
unsigned int *item_ptr;
|
|
} enumerated;
|
|
union {
|
|
unsigned char data[512];
|
|
unsigned char *data_ptr;
|
|
} bytes;
|
|
struct snd_aes_iec958 iec958;
|
|
} value;
|
|
unsigned char reserved[128];
|
|
};
|
|
|
|
struct snd_fasync;
|
|
|
|
struct snd_ctl_file {
|
|
struct list_head list;
|
|
struct snd_card *card;
|
|
struct pid *pid;
|
|
int preferred_subdevice[2];
|
|
wait_queue_head_t change_sleep;
|
|
spinlock_t read_lock;
|
|
struct snd_fasync *fasync;
|
|
int subscribed;
|
|
struct list_head events;
|
|
};
|
|
|
|
struct snd_pcm_hw_params;
|
|
|
|
struct snd_pcm_audio_tstamp_config;
|
|
|
|
struct snd_pcm_audio_tstamp_report;
|
|
|
|
struct snd_pcm_ops {
|
|
int (*open)(struct snd_pcm_substream *);
|
|
int (*close)(struct snd_pcm_substream *);
|
|
int (*ioctl)(struct snd_pcm_substream *, unsigned int, void *);
|
|
int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *);
|
|
int (*hw_free)(struct snd_pcm_substream *);
|
|
int (*prepare)(struct snd_pcm_substream *);
|
|
int (*trigger)(struct snd_pcm_substream *, int);
|
|
int (*sync_stop)(struct snd_pcm_substream *);
|
|
snd_pcm_uframes_t (*pointer)(struct snd_pcm_substream *);
|
|
int (*get_time_info)(struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *);
|
|
int (*fill_silence)(struct snd_pcm_substream *, int, unsigned long, unsigned long);
|
|
int (*copy_user)(struct snd_pcm_substream *, int, unsigned long, void __attribute__((btf_type_tag("user"))) *, unsigned long);
|
|
int (*copy_kernel)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long);
|
|
struct page * (*page)(struct snd_pcm_substream *, unsigned long);
|
|
int (*mmap)(struct snd_pcm_substream *, struct vm_area_struct *);
|
|
int (*ack)(struct snd_pcm_substream *);
|
|
};
|
|
|
|
struct snd_mask {
|
|
__u32 bits[8];
|
|
};
|
|
|
|
struct snd_interval {
|
|
unsigned int min;
|
|
unsigned int max;
|
|
unsigned int openmin: 1;
|
|
unsigned int openmax: 1;
|
|
unsigned int integer: 1;
|
|
unsigned int empty: 1;
|
|
};
|
|
|
|
struct snd_pcm_hw_params {
|
|
unsigned int flags;
|
|
struct snd_mask masks[3];
|
|
struct snd_mask mres[5];
|
|
struct snd_interval intervals[12];
|
|
struct snd_interval ires[9];
|
|
unsigned int rmask;
|
|
unsigned int cmask;
|
|
unsigned int info;
|
|
unsigned int msbits;
|
|
unsigned int rate_num;
|
|
unsigned int rate_den;
|
|
snd_pcm_uframes_t fifo_size;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_pcm_audio_tstamp_config {
|
|
u32 type_requested: 4;
|
|
u32 report_delay: 1;
|
|
};
|
|
|
|
struct snd_pcm_audio_tstamp_report {
|
|
u32 valid: 1;
|
|
u32 actual_type: 4;
|
|
u32 accuracy_report: 1;
|
|
u32 accuracy;
|
|
};
|
|
|
|
typedef int snd_pcm_format_t;
|
|
|
|
typedef int snd_pcm_subformat_t;
|
|
|
|
union snd_pcm_sync_id {
|
|
unsigned char id[16];
|
|
unsigned short id16[8];
|
|
unsigned int id32[4];
|
|
};
|
|
|
|
struct snd_pcm_hardware {
|
|
unsigned int info;
|
|
u64 formats;
|
|
unsigned int rates;
|
|
unsigned int rate_min;
|
|
unsigned int rate_max;
|
|
unsigned int channels_min;
|
|
unsigned int channels_max;
|
|
size_t buffer_bytes_max;
|
|
size_t period_bytes_min;
|
|
size_t period_bytes_max;
|
|
unsigned int periods_min;
|
|
unsigned int periods_max;
|
|
size_t fifo_size;
|
|
};
|
|
|
|
struct snd_pcm_hw_rule;
|
|
|
|
struct snd_pcm_hw_constraints {
|
|
struct snd_mask masks[3];
|
|
struct snd_interval intervals[12];
|
|
unsigned int rules_num;
|
|
unsigned int rules_all;
|
|
struct snd_pcm_hw_rule *rules;
|
|
};
|
|
|
|
struct snd_pcm_mmap_status;
|
|
|
|
struct snd_pcm_mmap_control;
|
|
|
|
struct snd_pcm_runtime {
|
|
snd_pcm_state_t state;
|
|
snd_pcm_state_t suspended_state;
|
|
struct snd_pcm_substream *trigger_master;
|
|
struct timespec64 trigger_tstamp;
|
|
bool trigger_tstamp_latched;
|
|
int overrange;
|
|
snd_pcm_uframes_t avail_max;
|
|
snd_pcm_uframes_t hw_ptr_base;
|
|
snd_pcm_uframes_t hw_ptr_interrupt;
|
|
unsigned long hw_ptr_jiffies;
|
|
unsigned long hw_ptr_buffer_jiffies;
|
|
snd_pcm_sframes_t delay;
|
|
u64 hw_ptr_wrap;
|
|
snd_pcm_access_t access;
|
|
snd_pcm_format_t format;
|
|
snd_pcm_subformat_t subformat;
|
|
unsigned int rate;
|
|
unsigned int channels;
|
|
snd_pcm_uframes_t period_size;
|
|
unsigned int periods;
|
|
snd_pcm_uframes_t buffer_size;
|
|
snd_pcm_uframes_t min_align;
|
|
size_t byte_align;
|
|
unsigned int frame_bits;
|
|
unsigned int sample_bits;
|
|
unsigned int info;
|
|
unsigned int rate_num;
|
|
unsigned int rate_den;
|
|
unsigned int no_period_wakeup: 1;
|
|
int tstamp_mode;
|
|
unsigned int period_step;
|
|
snd_pcm_uframes_t start_threshold;
|
|
snd_pcm_uframes_t stop_threshold;
|
|
snd_pcm_uframes_t silence_threshold;
|
|
snd_pcm_uframes_t silence_size;
|
|
snd_pcm_uframes_t boundary;
|
|
snd_pcm_uframes_t silence_start;
|
|
snd_pcm_uframes_t silence_filled;
|
|
union snd_pcm_sync_id sync;
|
|
struct snd_pcm_mmap_status *status;
|
|
struct snd_pcm_mmap_control *control;
|
|
snd_pcm_uframes_t twake;
|
|
wait_queue_head_t sleep;
|
|
wait_queue_head_t tsleep;
|
|
struct snd_fasync *fasync;
|
|
bool stop_operating;
|
|
struct mutex buffer_mutex;
|
|
atomic_t buffer_accessing;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_pcm_runtime *);
|
|
struct snd_pcm_hardware hw;
|
|
struct snd_pcm_hw_constraints hw_constraints;
|
|
unsigned int timer_resolution;
|
|
int tstamp_type;
|
|
unsigned char *dma_area;
|
|
dma_addr_t dma_addr;
|
|
size_t dma_bytes;
|
|
struct snd_dma_buffer *dma_buffer_p;
|
|
unsigned int buffer_changed: 1;
|
|
struct snd_pcm_audio_tstamp_config audio_tstamp_config;
|
|
struct snd_pcm_audio_tstamp_report audio_tstamp_report;
|
|
struct timespec64 driver_tstamp;
|
|
};
|
|
|
|
typedef char __pad_before_uframe[0];
|
|
|
|
typedef char __pad_after_uframe[0];
|
|
|
|
struct snd_pcm_mmap_status {
|
|
snd_pcm_state_t state;
|
|
__u32 pad1;
|
|
__pad_before_uframe __pad1;
|
|
snd_pcm_uframes_t hw_ptr;
|
|
__pad_after_uframe __pad2;
|
|
struct __kernel_timespec tstamp;
|
|
snd_pcm_state_t suspended_state;
|
|
__u32 pad3;
|
|
struct __kernel_timespec audio_tstamp;
|
|
};
|
|
|
|
struct snd_pcm_mmap_control {
|
|
__pad_before_uframe __pad1;
|
|
snd_pcm_uframes_t appl_ptr;
|
|
__pad_before_uframe __pad2;
|
|
__pad_before_uframe __pad3;
|
|
snd_pcm_uframes_t avail_min;
|
|
__pad_after_uframe __pad4;
|
|
};
|
|
|
|
typedef int (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *, struct snd_pcm_hw_rule *);
|
|
|
|
struct snd_pcm_hw_rule {
|
|
unsigned int cond;
|
|
int var;
|
|
int deps[5];
|
|
snd_pcm_hw_rule_func_t func;
|
|
void *private;
|
|
};
|
|
|
|
struct snd_timer_hardware {
|
|
unsigned int flags;
|
|
unsigned long resolution;
|
|
unsigned long resolution_min;
|
|
unsigned long resolution_max;
|
|
unsigned long ticks;
|
|
int (*open)(struct snd_timer *);
|
|
int (*close)(struct snd_timer *);
|
|
unsigned long (*c_resolution)(struct snd_timer *);
|
|
int (*start)(struct snd_timer *);
|
|
int (*stop)(struct snd_timer *);
|
|
int (*set_period)(struct snd_timer *, unsigned long, unsigned long);
|
|
int (*precise_resolution)(struct snd_timer *, unsigned long *, unsigned long *);
|
|
};
|
|
|
|
struct snd_timer {
|
|
int tmr_class;
|
|
struct snd_card *card;
|
|
struct module *module;
|
|
int tmr_device;
|
|
int tmr_subdevice;
|
|
char id[64];
|
|
char name[80];
|
|
unsigned int flags;
|
|
int running;
|
|
unsigned long sticks;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_timer *);
|
|
struct snd_timer_hardware hw;
|
|
spinlock_t lock;
|
|
struct list_head device_list;
|
|
struct list_head open_list_head;
|
|
struct list_head active_list_head;
|
|
struct list_head ack_list_head;
|
|
struct list_head sack_list_head;
|
|
struct work_struct task_work;
|
|
int max_instances;
|
|
int num_instances;
|
|
};
|
|
|
|
typedef int snd_pcm_hw_param_t;
|
|
|
|
struct snd_ratden {
|
|
unsigned int num_min;
|
|
unsigned int num_max;
|
|
unsigned int num_step;
|
|
unsigned int den;
|
|
};
|
|
|
|
struct snd_pcm_channel_info {
|
|
unsigned int channel;
|
|
__kernel_off_t offset;
|
|
unsigned int first;
|
|
unsigned int step;
|
|
};
|
|
|
|
struct snd_kcontrol_new {
|
|
snd_ctl_elem_iface_t iface;
|
|
unsigned int device;
|
|
unsigned int subdevice;
|
|
const char *name;
|
|
unsigned int index;
|
|
unsigned int access;
|
|
unsigned int count;
|
|
snd_kcontrol_info_t *info;
|
|
snd_kcontrol_get_t *get;
|
|
snd_kcontrol_put_t *put;
|
|
union {
|
|
snd_kcontrol_tlv_rw_t *c;
|
|
const unsigned int *p;
|
|
} tlv;
|
|
unsigned long private_value;
|
|
};
|
|
|
|
struct snd_pcm_chmap {
|
|
struct snd_pcm *pcm;
|
|
int stream;
|
|
struct snd_kcontrol *kctl;
|
|
const struct snd_pcm_chmap_elem *chmap;
|
|
unsigned int max_channels;
|
|
unsigned int channel_mask;
|
|
void *private_data;
|
|
};
|
|
|
|
struct snd_ratnum {
|
|
unsigned int num;
|
|
unsigned int den_min;
|
|
unsigned int den_max;
|
|
unsigned int den_step;
|
|
};
|
|
|
|
struct snd_pcm_hw_constraint_list {
|
|
const unsigned int *list;
|
|
unsigned int count;
|
|
unsigned int mask;
|
|
};
|
|
|
|
struct snd_pcm_hw_constraint_ranges {
|
|
unsigned int count;
|
|
const struct snd_interval *ranges;
|
|
unsigned int mask;
|
|
};
|
|
|
|
struct snd_pcm_hw_constraint_ratnums {
|
|
int nrats;
|
|
const struct snd_ratnum *rats;
|
|
};
|
|
|
|
struct snd_pcm_hw_constraint_ratdens {
|
|
int nrats;
|
|
const struct snd_ratden *rats;
|
|
};
|
|
|
|
typedef int (*pcm_copy_f)(struct snd_pcm_substream *, snd_pcm_uframes_t, void *, snd_pcm_uframes_t, snd_pcm_uframes_t, pcm_transfer_f);
|
|
|
|
struct csum_state {
|
|
__wsum csum;
|
|
size_t off;
|
|
};
|
|
|
|
struct ahash_request;
|
|
|
|
struct clock_identity {
|
|
u8 id[8];
|
|
};
|
|
|
|
struct port_identity {
|
|
struct clock_identity clock_identity;
|
|
__be16 port_number;
|
|
};
|
|
|
|
struct ptp_header {
|
|
u8 tsmt;
|
|
u8 ver;
|
|
__be16 message_length;
|
|
u8 domain_number;
|
|
u8 reserved1;
|
|
u8 flag_field[2];
|
|
__be64 correction;
|
|
__be32 reserved2;
|
|
struct port_identity source_port_identity;
|
|
__be16 sequence_id;
|
|
u8 control;
|
|
u8 log_message_interval;
|
|
} __attribute__((packed));
|
|
|
|
struct bpf_verifier_ops;
|
|
|
|
struct btf_member;
|
|
|
|
struct bpf_struct_ops {
|
|
const struct bpf_verifier_ops *verifier_ops;
|
|
int (*init)(struct btf *);
|
|
int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *);
|
|
int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *);
|
|
int (*reg)(void *);
|
|
void (*unreg)(void *);
|
|
const struct btf_type *type;
|
|
const struct btf_type *value_type;
|
|
const char *name;
|
|
struct btf_func_model func_models[64];
|
|
u32 type_id;
|
|
u32 value_id;
|
|
};
|
|
|
|
enum bpf_func_id {
|
|
BPF_FUNC_unspec = 0,
|
|
BPF_FUNC_map_lookup_elem = 1,
|
|
BPF_FUNC_map_update_elem = 2,
|
|
BPF_FUNC_map_delete_elem = 3,
|
|
BPF_FUNC_probe_read = 4,
|
|
BPF_FUNC_ktime_get_ns = 5,
|
|
BPF_FUNC_trace_printk = 6,
|
|
BPF_FUNC_get_prandom_u32 = 7,
|
|
BPF_FUNC_get_smp_processor_id = 8,
|
|
BPF_FUNC_skb_store_bytes = 9,
|
|
BPF_FUNC_l3_csum_replace = 10,
|
|
BPF_FUNC_l4_csum_replace = 11,
|
|
BPF_FUNC_tail_call = 12,
|
|
BPF_FUNC_clone_redirect = 13,
|
|
BPF_FUNC_get_current_pid_tgid = 14,
|
|
BPF_FUNC_get_current_uid_gid = 15,
|
|
BPF_FUNC_get_current_comm = 16,
|
|
BPF_FUNC_get_cgroup_classid = 17,
|
|
BPF_FUNC_skb_vlan_push = 18,
|
|
BPF_FUNC_skb_vlan_pop = 19,
|
|
BPF_FUNC_skb_get_tunnel_key = 20,
|
|
BPF_FUNC_skb_set_tunnel_key = 21,
|
|
BPF_FUNC_perf_event_read = 22,
|
|
BPF_FUNC_redirect = 23,
|
|
BPF_FUNC_get_route_realm = 24,
|
|
BPF_FUNC_perf_event_output = 25,
|
|
BPF_FUNC_skb_load_bytes = 26,
|
|
BPF_FUNC_get_stackid = 27,
|
|
BPF_FUNC_csum_diff = 28,
|
|
BPF_FUNC_skb_get_tunnel_opt = 29,
|
|
BPF_FUNC_skb_set_tunnel_opt = 30,
|
|
BPF_FUNC_skb_change_proto = 31,
|
|
BPF_FUNC_skb_change_type = 32,
|
|
BPF_FUNC_skb_under_cgroup = 33,
|
|
BPF_FUNC_get_hash_recalc = 34,
|
|
BPF_FUNC_get_current_task = 35,
|
|
BPF_FUNC_probe_write_user = 36,
|
|
BPF_FUNC_current_task_under_cgroup = 37,
|
|
BPF_FUNC_skb_change_tail = 38,
|
|
BPF_FUNC_skb_pull_data = 39,
|
|
BPF_FUNC_csum_update = 40,
|
|
BPF_FUNC_set_hash_invalid = 41,
|
|
BPF_FUNC_get_numa_node_id = 42,
|
|
BPF_FUNC_skb_change_head = 43,
|
|
BPF_FUNC_xdp_adjust_head = 44,
|
|
BPF_FUNC_probe_read_str = 45,
|
|
BPF_FUNC_get_socket_cookie = 46,
|
|
BPF_FUNC_get_socket_uid = 47,
|
|
BPF_FUNC_set_hash = 48,
|
|
BPF_FUNC_setsockopt = 49,
|
|
BPF_FUNC_skb_adjust_room = 50,
|
|
BPF_FUNC_redirect_map = 51,
|
|
BPF_FUNC_sk_redirect_map = 52,
|
|
BPF_FUNC_sock_map_update = 53,
|
|
BPF_FUNC_xdp_adjust_meta = 54,
|
|
BPF_FUNC_perf_event_read_value = 55,
|
|
BPF_FUNC_perf_prog_read_value = 56,
|
|
BPF_FUNC_getsockopt = 57,
|
|
BPF_FUNC_override_return = 58,
|
|
BPF_FUNC_sock_ops_cb_flags_set = 59,
|
|
BPF_FUNC_msg_redirect_map = 60,
|
|
BPF_FUNC_msg_apply_bytes = 61,
|
|
BPF_FUNC_msg_cork_bytes = 62,
|
|
BPF_FUNC_msg_pull_data = 63,
|
|
BPF_FUNC_bind = 64,
|
|
BPF_FUNC_xdp_adjust_tail = 65,
|
|
BPF_FUNC_skb_get_xfrm_state = 66,
|
|
BPF_FUNC_get_stack = 67,
|
|
BPF_FUNC_skb_load_bytes_relative = 68,
|
|
BPF_FUNC_fib_lookup = 69,
|
|
BPF_FUNC_sock_hash_update = 70,
|
|
BPF_FUNC_msg_redirect_hash = 71,
|
|
BPF_FUNC_sk_redirect_hash = 72,
|
|
BPF_FUNC_lwt_push_encap = 73,
|
|
BPF_FUNC_lwt_seg6_store_bytes = 74,
|
|
BPF_FUNC_lwt_seg6_adjust_srh = 75,
|
|
BPF_FUNC_lwt_seg6_action = 76,
|
|
BPF_FUNC_rc_repeat = 77,
|
|
BPF_FUNC_rc_keydown = 78,
|
|
BPF_FUNC_skb_cgroup_id = 79,
|
|
BPF_FUNC_get_current_cgroup_id = 80,
|
|
BPF_FUNC_get_local_storage = 81,
|
|
BPF_FUNC_sk_select_reuseport = 82,
|
|
BPF_FUNC_skb_ancestor_cgroup_id = 83,
|
|
BPF_FUNC_sk_lookup_tcp = 84,
|
|
BPF_FUNC_sk_lookup_udp = 85,
|
|
BPF_FUNC_sk_release = 86,
|
|
BPF_FUNC_map_push_elem = 87,
|
|
BPF_FUNC_map_pop_elem = 88,
|
|
BPF_FUNC_map_peek_elem = 89,
|
|
BPF_FUNC_msg_push_data = 90,
|
|
BPF_FUNC_msg_pop_data = 91,
|
|
BPF_FUNC_rc_pointer_rel = 92,
|
|
BPF_FUNC_spin_lock = 93,
|
|
BPF_FUNC_spin_unlock = 94,
|
|
BPF_FUNC_sk_fullsock = 95,
|
|
BPF_FUNC_tcp_sock = 96,
|
|
BPF_FUNC_skb_ecn_set_ce = 97,
|
|
BPF_FUNC_get_listener_sock = 98,
|
|
BPF_FUNC_skc_lookup_tcp = 99,
|
|
BPF_FUNC_tcp_check_syncookie = 100,
|
|
BPF_FUNC_sysctl_get_name = 101,
|
|
BPF_FUNC_sysctl_get_current_value = 102,
|
|
BPF_FUNC_sysctl_get_new_value = 103,
|
|
BPF_FUNC_sysctl_set_new_value = 104,
|
|
BPF_FUNC_strtol = 105,
|
|
BPF_FUNC_strtoul = 106,
|
|
BPF_FUNC_sk_storage_get = 107,
|
|
BPF_FUNC_sk_storage_delete = 108,
|
|
BPF_FUNC_send_signal = 109,
|
|
BPF_FUNC_tcp_gen_syncookie = 110,
|
|
BPF_FUNC_skb_output = 111,
|
|
BPF_FUNC_probe_read_user = 112,
|
|
BPF_FUNC_probe_read_kernel = 113,
|
|
BPF_FUNC_probe_read_user_str = 114,
|
|
BPF_FUNC_probe_read_kernel_str = 115,
|
|
BPF_FUNC_tcp_send_ack = 116,
|
|
BPF_FUNC_send_signal_thread = 117,
|
|
BPF_FUNC_jiffies64 = 118,
|
|
BPF_FUNC_read_branch_records = 119,
|
|
BPF_FUNC_get_ns_current_pid_tgid = 120,
|
|
BPF_FUNC_xdp_output = 121,
|
|
BPF_FUNC_get_netns_cookie = 122,
|
|
BPF_FUNC_get_current_ancestor_cgroup_id = 123,
|
|
BPF_FUNC_sk_assign = 124,
|
|
BPF_FUNC_ktime_get_boot_ns = 125,
|
|
BPF_FUNC_seq_printf = 126,
|
|
BPF_FUNC_seq_write = 127,
|
|
BPF_FUNC_sk_cgroup_id = 128,
|
|
BPF_FUNC_sk_ancestor_cgroup_id = 129,
|
|
BPF_FUNC_ringbuf_output = 130,
|
|
BPF_FUNC_ringbuf_reserve = 131,
|
|
BPF_FUNC_ringbuf_submit = 132,
|
|
BPF_FUNC_ringbuf_discard = 133,
|
|
BPF_FUNC_ringbuf_query = 134,
|
|
BPF_FUNC_csum_level = 135,
|
|
BPF_FUNC_skc_to_tcp6_sock = 136,
|
|
BPF_FUNC_skc_to_tcp_sock = 137,
|
|
BPF_FUNC_skc_to_tcp_timewait_sock = 138,
|
|
BPF_FUNC_skc_to_tcp_request_sock = 139,
|
|
BPF_FUNC_skc_to_udp6_sock = 140,
|
|
BPF_FUNC_get_task_stack = 141,
|
|
BPF_FUNC_load_hdr_opt = 142,
|
|
BPF_FUNC_store_hdr_opt = 143,
|
|
BPF_FUNC_reserve_hdr_opt = 144,
|
|
BPF_FUNC_inode_storage_get = 145,
|
|
BPF_FUNC_inode_storage_delete = 146,
|
|
BPF_FUNC_d_path = 147,
|
|
BPF_FUNC_copy_from_user = 148,
|
|
BPF_FUNC_snprintf_btf = 149,
|
|
BPF_FUNC_seq_printf_btf = 150,
|
|
BPF_FUNC_skb_cgroup_classid = 151,
|
|
BPF_FUNC_redirect_neigh = 152,
|
|
BPF_FUNC_per_cpu_ptr = 153,
|
|
BPF_FUNC_this_cpu_ptr = 154,
|
|
BPF_FUNC_redirect_peer = 155,
|
|
BPF_FUNC_task_storage_get = 156,
|
|
BPF_FUNC_task_storage_delete = 157,
|
|
BPF_FUNC_get_current_task_btf = 158,
|
|
BPF_FUNC_bprm_opts_set = 159,
|
|
BPF_FUNC_ktime_get_coarse_ns = 160,
|
|
BPF_FUNC_ima_inode_hash = 161,
|
|
BPF_FUNC_sock_from_file = 162,
|
|
BPF_FUNC_check_mtu = 163,
|
|
BPF_FUNC_for_each_map_elem = 164,
|
|
BPF_FUNC_snprintf = 165,
|
|
BPF_FUNC_sys_bpf = 166,
|
|
BPF_FUNC_btf_find_by_name_kind = 167,
|
|
BPF_FUNC_sys_close = 168,
|
|
BPF_FUNC_timer_init = 169,
|
|
BPF_FUNC_timer_set_callback = 170,
|
|
BPF_FUNC_timer_start = 171,
|
|
BPF_FUNC_timer_cancel = 172,
|
|
BPF_FUNC_get_func_ip = 173,
|
|
BPF_FUNC_get_attach_cookie = 174,
|
|
BPF_FUNC_task_pt_regs = 175,
|
|
BPF_FUNC_get_branch_snapshot = 176,
|
|
BPF_FUNC_trace_vprintk = 177,
|
|
BPF_FUNC_skc_to_unix_sock = 178,
|
|
BPF_FUNC_kallsyms_lookup_name = 179,
|
|
BPF_FUNC_find_vma = 180,
|
|
BPF_FUNC_loop = 181,
|
|
BPF_FUNC_strncmp = 182,
|
|
BPF_FUNC_get_func_arg = 183,
|
|
BPF_FUNC_get_func_ret = 184,
|
|
BPF_FUNC_get_func_arg_cnt = 185,
|
|
BPF_FUNC_get_retval = 186,
|
|
BPF_FUNC_set_retval = 187,
|
|
BPF_FUNC_xdp_get_buff_len = 188,
|
|
BPF_FUNC_xdp_load_bytes = 189,
|
|
BPF_FUNC_xdp_store_bytes = 190,
|
|
BPF_FUNC_copy_from_user_task = 191,
|
|
BPF_FUNC_skb_set_tstamp = 192,
|
|
BPF_FUNC_ima_file_hash = 193,
|
|
BPF_FUNC_kptr_xchg = 194,
|
|
BPF_FUNC_map_lookup_percpu_elem = 195,
|
|
BPF_FUNC_skc_to_mptcp_sock = 196,
|
|
BPF_FUNC_dynptr_from_mem = 197,
|
|
BPF_FUNC_ringbuf_reserve_dynptr = 198,
|
|
BPF_FUNC_ringbuf_submit_dynptr = 199,
|
|
BPF_FUNC_ringbuf_discard_dynptr = 200,
|
|
BPF_FUNC_dynptr_read = 201,
|
|
BPF_FUNC_dynptr_write = 202,
|
|
BPF_FUNC_dynptr_data = 203,
|
|
BPF_FUNC_tcp_raw_gen_syncookie_ipv4 = 204,
|
|
BPF_FUNC_tcp_raw_gen_syncookie_ipv6 = 205,
|
|
BPF_FUNC_tcp_raw_check_syncookie_ipv4 = 206,
|
|
BPF_FUNC_tcp_raw_check_syncookie_ipv6 = 207,
|
|
BPF_FUNC_ktime_get_tai_ns = 208,
|
|
BPF_FUNC_user_ringbuf_drain = 209,
|
|
BPF_FUNC_cgrp_storage_get = 210,
|
|
BPF_FUNC_cgrp_storage_delete = 211,
|
|
__BPF_FUNC_MAX_ID = 212,
|
|
};
|
|
|
|
enum bpf_access_type {
|
|
BPF_READ = 1,
|
|
BPF_WRITE = 2,
|
|
};
|
|
|
|
enum bpf_type_flag {
|
|
PTR_MAYBE_NULL = 256,
|
|
MEM_RDONLY = 512,
|
|
MEM_RINGBUF = 1024,
|
|
MEM_USER = 2048,
|
|
MEM_PERCPU = 4096,
|
|
OBJ_RELEASE = 8192,
|
|
PTR_UNTRUSTED = 16384,
|
|
MEM_UNINIT = 32768,
|
|
DYNPTR_TYPE_LOCAL = 65536,
|
|
DYNPTR_TYPE_RINGBUF = 131072,
|
|
MEM_FIXED_SIZE = 262144,
|
|
MEM_ALLOC = 524288,
|
|
PTR_TRUSTED = 1048576,
|
|
MEM_RCU = 2097152,
|
|
NON_OWN_REF = 4194304,
|
|
DYNPTR_TYPE_SKB = 8388608,
|
|
DYNPTR_TYPE_XDP = 16777216,
|
|
__BPF_TYPE_FLAG_MAX = 16777217,
|
|
__BPF_TYPE_LAST_FLAG = 16777216,
|
|
};
|
|
|
|
struct bpf_insn_access_aux;
|
|
|
|
struct bpf_verifier_log;
|
|
|
|
struct bpf_reg_state;
|
|
|
|
struct bpf_verifier_ops {
|
|
const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *);
|
|
bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *);
|
|
int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *);
|
|
int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *);
|
|
u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
|
|
int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int, enum bpf_access_type, u32 *, enum bpf_type_flag *);
|
|
};
|
|
|
|
struct bpf_verifier_log {
|
|
u32 level;
|
|
char kbuf[1024];
|
|
char __attribute__((btf_type_tag("user"))) *ubuf;
|
|
u32 len_used;
|
|
u32 len_total;
|
|
};
|
|
|
|
struct bpf_subprog_info {
|
|
u32 start;
|
|
u32 linfo_idx;
|
|
u16 stack_depth;
|
|
bool has_tail_call;
|
|
bool tail_call_reachable;
|
|
bool has_ld_abs;
|
|
bool is_async_cb;
|
|
};
|
|
|
|
struct bpf_id_pair {
|
|
u32 old;
|
|
u32 cur;
|
|
};
|
|
|
|
typedef sockptr_t bpfptr_t;
|
|
|
|
struct bpf_verifier_stack_elem;
|
|
|
|
struct bpf_verifier_state;
|
|
|
|
struct bpf_verifier_state_list;
|
|
|
|
struct bpf_insn_aux_data;
|
|
|
|
struct bpf_verifier_env {
|
|
u32 insn_idx;
|
|
u32 prev_insn_idx;
|
|
struct bpf_prog *prog;
|
|
const struct bpf_verifier_ops *ops;
|
|
struct bpf_verifier_stack_elem *head;
|
|
int stack_size;
|
|
bool strict_alignment;
|
|
bool test_state_freq;
|
|
struct bpf_verifier_state *cur_state;
|
|
struct bpf_verifier_state_list **explored_states;
|
|
struct bpf_verifier_state_list *free_list;
|
|
struct bpf_map *used_maps[64];
|
|
struct btf_mod_pair used_btfs[64];
|
|
u32 used_map_cnt;
|
|
u32 used_btf_cnt;
|
|
u32 id_gen;
|
|
bool explore_alu_limits;
|
|
bool allow_ptr_leaks;
|
|
bool allow_uninit_stack;
|
|
bool bpf_capable;
|
|
bool bypass_spec_v1;
|
|
bool bypass_spec_v4;
|
|
bool seen_direct_write;
|
|
struct bpf_insn_aux_data *insn_aux_data;
|
|
const struct bpf_line_info *prev_linfo;
|
|
struct bpf_verifier_log log;
|
|
struct bpf_subprog_info subprog_info[257];
|
|
struct bpf_id_pair idmap_scratch[600];
|
|
struct {
|
|
int *insn_state;
|
|
int *insn_stack;
|
|
int cur_stack;
|
|
} cfg;
|
|
u32 pass_cnt;
|
|
u32 subprog_cnt;
|
|
u32 prev_insn_processed;
|
|
u32 insn_processed;
|
|
u32 prev_jmps_processed;
|
|
u32 jmps_processed;
|
|
u64 verification_time;
|
|
u32 max_states_per_insn;
|
|
u32 total_states;
|
|
u32 peak_states;
|
|
u32 longest_mark_read_walk;
|
|
bpfptr_t fd_array;
|
|
u32 scratched_regs;
|
|
u64 scratched_stack_slots;
|
|
u32 prev_log_len;
|
|
u32 prev_insn_print_len;
|
|
char type_str_buf[128];
|
|
};
|
|
|
|
struct bpf_active_lock {
|
|
void *ptr;
|
|
u32 id;
|
|
};
|
|
|
|
struct bpf_idx_pair;
|
|
|
|
struct bpf_verifier_state {
|
|
struct bpf_func_state *frame[8];
|
|
struct bpf_verifier_state *parent;
|
|
u32 branches;
|
|
u32 insn_idx;
|
|
u32 curframe;
|
|
struct bpf_active_lock active_lock;
|
|
bool speculative;
|
|
bool active_rcu_lock;
|
|
u32 first_insn_idx;
|
|
u32 last_insn_idx;
|
|
struct bpf_idx_pair *jmp_history;
|
|
u32 jmp_history_cnt;
|
|
};
|
|
|
|
enum bpf_iter_state {
|
|
BPF_ITER_STATE_INVALID = 0,
|
|
BPF_ITER_STATE_ACTIVE = 1,
|
|
BPF_ITER_STATE_DRAINED = 2,
|
|
};
|
|
|
|
struct tnum {
|
|
u64 value;
|
|
u64 mask;
|
|
};
|
|
|
|
enum bpf_reg_liveness {
|
|
REG_LIVE_NONE = 0,
|
|
REG_LIVE_READ32 = 1,
|
|
REG_LIVE_READ64 = 2,
|
|
REG_LIVE_READ = 3,
|
|
REG_LIVE_WRITTEN = 4,
|
|
REG_LIVE_DONE = 8,
|
|
};
|
|
|
|
struct bpf_reg_state {
|
|
enum bpf_reg_type type;
|
|
s32 off;
|
|
union {
|
|
int range;
|
|
struct {
|
|
struct bpf_map *map_ptr;
|
|
u32 map_uid;
|
|
};
|
|
struct {
|
|
struct btf *btf;
|
|
u32 btf_id;
|
|
};
|
|
struct {
|
|
u32 mem_size;
|
|
u32 dynptr_id;
|
|
};
|
|
struct {
|
|
enum bpf_dynptr_type type;
|
|
bool first_slot;
|
|
} dynptr;
|
|
struct {
|
|
struct btf *btf;
|
|
u32 btf_id;
|
|
enum bpf_iter_state state: 2;
|
|
int depth: 30;
|
|
} iter;
|
|
struct {
|
|
unsigned long raw1;
|
|
unsigned long raw2;
|
|
} raw;
|
|
u32 subprogno;
|
|
};
|
|
struct tnum var_off;
|
|
s64 smin_value;
|
|
s64 smax_value;
|
|
u64 umin_value;
|
|
u64 umax_value;
|
|
s32 s32_min_value;
|
|
s32 s32_max_value;
|
|
u32 u32_min_value;
|
|
u32 u32_max_value;
|
|
u32 id;
|
|
u32 ref_obj_id;
|
|
struct bpf_reg_state *parent;
|
|
u32 frameno;
|
|
s32 subreg_def;
|
|
enum bpf_reg_liveness live;
|
|
bool precise;
|
|
};
|
|
|
|
struct bpf_reference_state;
|
|
|
|
struct bpf_stack_state;
|
|
|
|
struct bpf_func_state {
|
|
struct bpf_reg_state regs[11];
|
|
int callsite;
|
|
u32 frameno;
|
|
u32 subprogno;
|
|
u32 async_entry_cnt;
|
|
bool in_callback_fn;
|
|
struct tnum callback_ret_range;
|
|
bool in_async_callback_fn;
|
|
int acquired_refs;
|
|
struct bpf_reference_state *refs;
|
|
int allocated_stack;
|
|
struct bpf_stack_state *stack;
|
|
};
|
|
|
|
struct bpf_reference_state {
|
|
int id;
|
|
int insn_idx;
|
|
int callback_ref;
|
|
};
|
|
|
|
struct bpf_stack_state {
|
|
struct bpf_reg_state spilled_ptr;
|
|
u8 slot_type[8];
|
|
};
|
|
|
|
struct bpf_idx_pair {
|
|
u32 prev_idx;
|
|
u32 idx;
|
|
};
|
|
|
|
struct bpf_verifier_state_list {
|
|
struct bpf_verifier_state state;
|
|
struct bpf_verifier_state_list *next;
|
|
int miss_cnt;
|
|
int hit_cnt;
|
|
};
|
|
|
|
struct bpf_loop_inline_state {
|
|
unsigned int initialized: 1;
|
|
unsigned int fit_for_inline: 1;
|
|
u32 callback_subprogno;
|
|
};
|
|
|
|
struct btf_struct_meta;
|
|
|
|
struct bpf_insn_aux_data {
|
|
union {
|
|
enum bpf_reg_type ptr_type;
|
|
unsigned long map_ptr_state;
|
|
s32 call_imm;
|
|
u32 alu_limit;
|
|
struct {
|
|
u32 map_index;
|
|
u32 map_off;
|
|
};
|
|
struct {
|
|
enum bpf_reg_type reg_type;
|
|
union {
|
|
struct {
|
|
struct btf *btf;
|
|
u32 btf_id;
|
|
};
|
|
u32 mem_size;
|
|
};
|
|
} btf_var;
|
|
struct bpf_loop_inline_state loop_inline_state;
|
|
};
|
|
u64 obj_new_size;
|
|
struct btf_struct_meta *kptr_struct_meta;
|
|
u64 map_key_state;
|
|
int ctx_field_size;
|
|
u32 seen;
|
|
bool sanitize_stack_spill;
|
|
bool zext_dst;
|
|
bool storage_get_func_atomic;
|
|
bool is_iter_next;
|
|
u8 alu_state;
|
|
unsigned int orig_idx;
|
|
bool jmp_point;
|
|
bool prune_point;
|
|
bool force_checkpoint;
|
|
};
|
|
|
|
struct btf_struct_meta {
|
|
u32 btf_id;
|
|
struct btf_record *record;
|
|
struct btf_field_offs *field_offs;
|
|
};
|
|
|
|
struct bpf_insn_access_aux {
|
|
enum bpf_reg_type reg_type;
|
|
union {
|
|
int ctx_field_size;
|
|
struct {
|
|
struct btf *btf;
|
|
u32 btf_id;
|
|
};
|
|
};
|
|
struct bpf_verifier_log *log;
|
|
};
|
|
|
|
struct btf_member {
|
|
__u32 name_off;
|
|
__u32 type;
|
|
__u32 offset;
|
|
};
|
|
|
|
enum bpf_tramp_prog_type {
|
|
BPF_TRAMP_FENTRY = 0,
|
|
BPF_TRAMP_FEXIT = 1,
|
|
BPF_TRAMP_MODIFY_RETURN = 2,
|
|
BPF_TRAMP_MAX = 3,
|
|
BPF_TRAMP_REPLACE = 4,
|
|
};
|
|
|
|
enum {
|
|
BTF_KIND_UNKN = 0,
|
|
BTF_KIND_INT = 1,
|
|
BTF_KIND_PTR = 2,
|
|
BTF_KIND_ARRAY = 3,
|
|
BTF_KIND_STRUCT = 4,
|
|
BTF_KIND_UNION = 5,
|
|
BTF_KIND_ENUM = 6,
|
|
BTF_KIND_FWD = 7,
|
|
BTF_KIND_TYPEDEF = 8,
|
|
BTF_KIND_VOLATILE = 9,
|
|
BTF_KIND_CONST = 10,
|
|
BTF_KIND_RESTRICT = 11,
|
|
BTF_KIND_FUNC = 12,
|
|
BTF_KIND_FUNC_PROTO = 13,
|
|
BTF_KIND_VAR = 14,
|
|
BTF_KIND_DATASEC = 15,
|
|
BTF_KIND_FLOAT = 16,
|
|
BTF_KIND_DECL_TAG = 17,
|
|
BTF_KIND_TYPE_TAG = 18,
|
|
BTF_KIND_ENUM64 = 19,
|
|
NR_BTF_KINDS = 20,
|
|
BTF_KIND_MAX = 19,
|
|
};
|
|
|
|
struct bpf_dummy_ops_state {
|
|
int val;
|
|
};
|
|
|
|
struct bpf_dummy_ops_test_args {
|
|
u64 args[12];
|
|
struct bpf_dummy_ops_state state;
|
|
};
|
|
|
|
typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...);
|
|
|
|
struct bpf_tramp_link;
|
|
|
|
struct bpf_tramp_links {
|
|
struct bpf_tramp_link *links[38];
|
|
int nr_links;
|
|
};
|
|
|
|
struct bpf_tramp_link {
|
|
struct bpf_link link;
|
|
struct hlist_node tramp_hlist;
|
|
u64 cookie;
|
|
};
|
|
|
|
struct nf_loginfo {
|
|
u_int8_t type;
|
|
union {
|
|
struct {
|
|
u_int32_t copy_len;
|
|
u_int16_t group;
|
|
u_int16_t qthreshold;
|
|
u_int16_t flags;
|
|
} ulog;
|
|
struct {
|
|
u_int8_t level;
|
|
u_int8_t logflags;
|
|
} log;
|
|
} u;
|
|
};
|
|
|
|
struct nf_log_buf {
|
|
unsigned int count;
|
|
char buf[1020];
|
|
};
|
|
|
|
struct xt_action_param;
|
|
|
|
struct xt_tgchk_param;
|
|
|
|
struct xt_tgdtor_param;
|
|
|
|
struct xt_target {
|
|
struct list_head list;
|
|
const char name[29];
|
|
u_int8_t revision;
|
|
unsigned int (*target)(struct sk_buff *, const struct xt_action_param *);
|
|
int (*checkentry)(const struct xt_tgchk_param *);
|
|
void (*destroy)(const struct xt_tgdtor_param *);
|
|
void (*compat_from_user)(void *, const void *);
|
|
int (*compat_to_user)(void __attribute__((btf_type_tag("user"))) *, const void *);
|
|
struct module *me;
|
|
const char *table;
|
|
unsigned int targetsize;
|
|
unsigned int usersize;
|
|
unsigned int compatsize;
|
|
unsigned int hooks;
|
|
unsigned short proto;
|
|
unsigned short family;
|
|
};
|
|
|
|
struct xt_match;
|
|
|
|
struct xt_action_param {
|
|
union {
|
|
const struct xt_match *match;
|
|
const struct xt_target *target;
|
|
};
|
|
union {
|
|
const void *matchinfo;
|
|
const void *targinfo;
|
|
};
|
|
const struct nf_hook_state *state;
|
|
unsigned int thoff;
|
|
u16 fragoff;
|
|
bool hotdrop;
|
|
};
|
|
|
|
struct xt_mtchk_param;
|
|
|
|
struct xt_mtdtor_param;
|
|
|
|
struct xt_match {
|
|
struct list_head list;
|
|
const char name[29];
|
|
u_int8_t revision;
|
|
bool (*match)(const struct sk_buff *, struct xt_action_param *);
|
|
int (*checkentry)(const struct xt_mtchk_param *);
|
|
void (*destroy)(const struct xt_mtdtor_param *);
|
|
void (*compat_from_user)(void *, const void *);
|
|
int (*compat_to_user)(void __attribute__((btf_type_tag("user"))) *, const void *);
|
|
struct module *me;
|
|
const char *table;
|
|
unsigned int matchsize;
|
|
unsigned int usersize;
|
|
unsigned int compatsize;
|
|
unsigned int hooks;
|
|
unsigned short proto;
|
|
unsigned short family;
|
|
};
|
|
|
|
struct xt_mtchk_param {
|
|
struct net *net;
|
|
const char *table;
|
|
const void *entryinfo;
|
|
const struct xt_match *match;
|
|
void *matchinfo;
|
|
unsigned int hook_mask;
|
|
u_int8_t family;
|
|
bool nft_compat;
|
|
};
|
|
|
|
struct xt_mtdtor_param {
|
|
struct net *net;
|
|
const struct xt_match *match;
|
|
void *matchinfo;
|
|
u_int8_t family;
|
|
};
|
|
|
|
struct xt_tgchk_param {
|
|
struct net *net;
|
|
const char *table;
|
|
const void *entryinfo;
|
|
const struct xt_target *target;
|
|
void *targinfo;
|
|
unsigned int hook_mask;
|
|
u_int8_t family;
|
|
bool nft_compat;
|
|
};
|
|
|
|
struct xt_tgdtor_param {
|
|
struct net *net;
|
|
const struct xt_target *target;
|
|
void *targinfo;
|
|
u_int8_t family;
|
|
};
|
|
|
|
enum {
|
|
CONNSECMARK_SAVE = 1,
|
|
CONNSECMARK_RESTORE = 2,
|
|
};
|
|
|
|
enum ip_conntrack_events {
|
|
IPCT_NEW = 0,
|
|
IPCT_RELATED = 1,
|
|
IPCT_DESTROY = 2,
|
|
IPCT_REPLY = 3,
|
|
IPCT_ASSURED = 4,
|
|
IPCT_PROTOINFO = 5,
|
|
IPCT_HELPER = 6,
|
|
IPCT_MARK = 7,
|
|
IPCT_SEQADJ = 8,
|
|
IPCT_NATSEQADJ = 8,
|
|
IPCT_SECMARK = 9,
|
|
IPCT_LABEL = 10,
|
|
IPCT_SYNPROXY = 11,
|
|
__IPCT_MAX = 12,
|
|
};
|
|
|
|
struct nf_conntrack_ecache {
|
|
unsigned long cache;
|
|
u16 ctmask;
|
|
u16 expmask;
|
|
u32 missed;
|
|
u32 portid;
|
|
};
|
|
|
|
struct xt_connsecmark_target_info {
|
|
__u8 mode;
|
|
};
|
|
|
|
struct gre_protocol {
|
|
int (*handler)(struct sk_buff *);
|
|
void (*err_handler)(struct sk_buff *, u32);
|
|
};
|
|
|
|
struct net_protocol {
|
|
int (*handler)(struct sk_buff *);
|
|
int (*err_handler)(struct sk_buff *, u32);
|
|
unsigned int no_policy: 1;
|
|
unsigned int icmp_strict_tag_validation: 1;
|
|
};
|
|
|
|
struct gre_base_hdr {
|
|
__be16 flags;
|
|
__be16 protocol;
|
|
};
|
|
|
|
struct erspan_base_hdr {
|
|
__u8 vlan_upper: 4;
|
|
__u8 ver: 4;
|
|
__u8 vlan: 8;
|
|
__u8 session_id_upper: 2;
|
|
__u8 t: 1;
|
|
__u8 en: 2;
|
|
__u8 cos: 3;
|
|
__u8 session_id: 8;
|
|
};
|
|
|
|
struct tnl_ptk_info {
|
|
__be16 flags;
|
|
__be16 proto;
|
|
__be32 key;
|
|
__be32 seq;
|
|
int hdr_len;
|
|
};
|
|
|
|
struct xfrm_input_afinfo {
|
|
u8 family;
|
|
bool is_ipip;
|
|
int (*callback)(struct sk_buff *, u8, int);
|
|
};
|
|
|
|
struct gro_cell;
|
|
|
|
struct gro_cells {
|
|
struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells;
|
|
};
|
|
|
|
struct gro_list {
|
|
struct list_head list;
|
|
int count;
|
|
};
|
|
|
|
struct napi_struct {
|
|
struct list_head poll_list;
|
|
unsigned long state;
|
|
int weight;
|
|
int defer_hard_irqs_count;
|
|
unsigned long gro_bitmask;
|
|
int (*poll)(struct napi_struct *, int);
|
|
int poll_owner;
|
|
struct net_device *dev;
|
|
struct gro_list gro_hash[8];
|
|
struct sk_buff *skb;
|
|
struct list_head rx_list;
|
|
int rx_count;
|
|
struct hrtimer timer;
|
|
struct list_head dev_list;
|
|
struct hlist_node napi_hash_node;
|
|
unsigned int napi_id;
|
|
struct task_struct *thread;
|
|
};
|
|
|
|
struct gro_cell {
|
|
struct sk_buff_head napi_skbs;
|
|
struct napi_struct napi;
|
|
};
|
|
|
|
struct xfrm_trans_tasklet {
|
|
struct work_struct work;
|
|
spinlock_t queue_lock;
|
|
struct sk_buff_head queue;
|
|
};
|
|
|
|
struct xfrm_skb_cb {
|
|
struct xfrm_tunnel_skb_cb header;
|
|
union {
|
|
struct {
|
|
__u32 low;
|
|
__u32 hi;
|
|
} output;
|
|
struct {
|
|
__be32 low;
|
|
__be32 hi;
|
|
} input;
|
|
} seq;
|
|
};
|
|
|
|
struct dst_cache_pcpu;
|
|
|
|
struct dst_cache {
|
|
struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache;
|
|
unsigned long reset_ts;
|
|
};
|
|
|
|
struct ip_tunnel_encap {
|
|
u16 type;
|
|
u16 flags;
|
|
__be16 sport;
|
|
__be16 dport;
|
|
};
|
|
|
|
struct ip_tunnel_prl_entry;
|
|
|
|
struct ip_tunnel {
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct hlist_node hash_node;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct net *net;
|
|
unsigned long err_time;
|
|
int err_count;
|
|
u32 i_seqno;
|
|
atomic_t o_seqno;
|
|
int tun_hlen;
|
|
u32 index;
|
|
u8 erspan_ver;
|
|
u8 dir;
|
|
u16 hwid;
|
|
struct dst_cache dst_cache;
|
|
struct ip_tunnel_parm parms;
|
|
int mlink;
|
|
int encap_hlen;
|
|
int hlen;
|
|
struct ip_tunnel_encap encap;
|
|
struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *prl;
|
|
unsigned int prl_count;
|
|
unsigned int ip_tnl_net_id;
|
|
struct gro_cells gro_cells;
|
|
__u32 fwmark;
|
|
bool collect_md;
|
|
bool ignore_df;
|
|
};
|
|
|
|
struct dst_cache_pcpu {
|
|
unsigned long refresh_ts;
|
|
struct dst_entry *dst;
|
|
u32 cookie;
|
|
union {
|
|
struct in_addr in_saddr;
|
|
struct in6_addr in6_saddr;
|
|
};
|
|
};
|
|
|
|
struct ip_tunnel_prl_entry {
|
|
struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *next;
|
|
__be32 addr;
|
|
u16 flags;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct __ip6_tnl_parm {
|
|
char name[16];
|
|
int link;
|
|
__u8 proto;
|
|
__u8 encap_limit;
|
|
__u8 hop_limit;
|
|
bool collect_md;
|
|
__be32 flowinfo;
|
|
__u32 flags;
|
|
struct in6_addr laddr;
|
|
struct in6_addr raddr;
|
|
__be16 i_flags;
|
|
__be16 o_flags;
|
|
__be32 i_key;
|
|
__be32 o_key;
|
|
__u32 fwmark;
|
|
__u32 index;
|
|
__u8 erspan_ver;
|
|
__u8 dir;
|
|
__u16 hwid;
|
|
};
|
|
|
|
struct ip6_tnl {
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct net *net;
|
|
struct __ip6_tnl_parm parms;
|
|
struct flowi fl;
|
|
struct dst_cache dst_cache;
|
|
struct gro_cells gro_cells;
|
|
int err_count;
|
|
unsigned long err_time;
|
|
__u32 i_seqno;
|
|
atomic_t o_seqno;
|
|
int hlen;
|
|
int tun_hlen;
|
|
int encap_hlen;
|
|
struct ip_tunnel_encap encap;
|
|
int mlink;
|
|
};
|
|
|
|
struct xfrm_spi_skb_cb {
|
|
struct xfrm_tunnel_skb_cb header;
|
|
unsigned int daddroff;
|
|
unsigned int family;
|
|
__be32 seq;
|
|
};
|
|
|
|
struct xfrm_trans_cb {
|
|
union {
|
|
struct inet_skb_parm h4;
|
|
struct inet6_skb_parm h6;
|
|
} header;
|
|
int (*finish)(struct net *, struct sock *, struct sk_buff *);
|
|
struct net *net;
|
|
};
|
|
|
|
struct shash_desc;
|
|
|
|
struct shash_alg {
|
|
int (*init)(struct shash_desc *);
|
|
int (*update)(struct shash_desc *, const u8 *, unsigned int);
|
|
int (*final)(struct shash_desc *, u8 *);
|
|
int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *);
|
|
int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *);
|
|
int (*export)(struct shash_desc *, void *);
|
|
int (*import)(struct shash_desc *, const void *);
|
|
int (*setkey)(struct crypto_shash *, const u8 *, unsigned int);
|
|
int (*init_tfm)(struct crypto_shash *);
|
|
void (*exit_tfm)(struct crypto_shash *);
|
|
unsigned int descsize;
|
|
int: 32;
|
|
unsigned int digestsize;
|
|
unsigned int statesize;
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct shash_desc {
|
|
struct crypto_shash *tfm;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct krb5_ctx;
|
|
|
|
struct xdr_netobj;
|
|
|
|
struct gss_krb5_enctype {
|
|
const u32 etype;
|
|
const u32 ctype;
|
|
const char *name;
|
|
const char *encrypt_name;
|
|
const char *aux_cipher;
|
|
const char *cksum_name;
|
|
const u16 signalg;
|
|
const u16 sealalg;
|
|
const u32 cksumlength;
|
|
const u32 keyed_cksum;
|
|
const u32 keybytes;
|
|
const u32 keylength;
|
|
const u32 Kc_length;
|
|
const u32 Ke_length;
|
|
const u32 Ki_length;
|
|
int (*import_ctx)(struct krb5_ctx *, gfp_t);
|
|
int (*derive_key)(const struct gss_krb5_enctype *, const struct xdr_netobj *, struct xdr_netobj *, const struct xdr_netobj *, gfp_t);
|
|
u32 (*encrypt)(struct krb5_ctx *, u32, struct xdr_buf *, struct page **);
|
|
u32 (*decrypt)(struct krb5_ctx *, u32, u32, struct xdr_buf *, u32 *, u32 *);
|
|
u32 (*get_mic)(struct krb5_ctx *, struct xdr_buf *, struct xdr_netobj *);
|
|
u32 (*verify_mic)(struct krb5_ctx *, struct xdr_buf *, struct xdr_netobj *);
|
|
u32 (*wrap)(struct krb5_ctx *, int, struct xdr_buf *, struct page **);
|
|
u32 (*unwrap)(struct krb5_ctx *, int, int, struct xdr_buf *, unsigned int *, unsigned int *);
|
|
};
|
|
|
|
struct xdr_netobj {
|
|
unsigned int len;
|
|
u8 *data;
|
|
};
|
|
|
|
struct crypto_sync_skcipher;
|
|
|
|
struct crypto_ahash;
|
|
|
|
struct krb5_ctx {
|
|
int initiate;
|
|
u32 enctype;
|
|
u32 flags;
|
|
const struct gss_krb5_enctype *gk5e;
|
|
struct crypto_sync_skcipher *enc;
|
|
struct crypto_sync_skcipher *seq;
|
|
struct crypto_sync_skcipher *acceptor_enc;
|
|
struct crypto_sync_skcipher *initiator_enc;
|
|
struct crypto_sync_skcipher *acceptor_enc_aux;
|
|
struct crypto_sync_skcipher *initiator_enc_aux;
|
|
struct crypto_ahash *acceptor_sign;
|
|
struct crypto_ahash *initiator_sign;
|
|
struct crypto_ahash *initiator_integ;
|
|
struct crypto_ahash *acceptor_integ;
|
|
u8 Ksess[32];
|
|
u8 cksum[32];
|
|
atomic_t seq_send;
|
|
atomic64_t seq_send64;
|
|
time64_t endtime;
|
|
struct xdr_netobj mech_used;
|
|
};
|
|
|
|
struct crypto_skcipher {
|
|
unsigned int reqsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct crypto_sync_skcipher {
|
|
struct crypto_skcipher base;
|
|
};
|
|
|
|
struct ahash_request;
|
|
|
|
struct crypto_ahash {
|
|
int (*init)(struct ahash_request *);
|
|
int (*update)(struct ahash_request *);
|
|
int (*final)(struct ahash_request *);
|
|
int (*finup)(struct ahash_request *);
|
|
int (*digest)(struct ahash_request *);
|
|
int (*export)(struct ahash_request *, void *);
|
|
int (*import)(struct ahash_request *, const void *);
|
|
int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
|
|
unsigned int reqsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct ahash_request {
|
|
struct crypto_async_request base;
|
|
unsigned int nbytes;
|
|
struct scatterlist *src;
|
|
u8 *result;
|
|
void *priv;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct aead_request {
|
|
struct crypto_async_request base;
|
|
unsigned int assoclen;
|
|
unsigned int cryptlen;
|
|
u8 *iv;
|
|
struct scatterlist *src;
|
|
struct scatterlist *dst;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct rate_control_ops;
|
|
|
|
struct rate_control_ref {
|
|
const struct rate_control_ops *ops;
|
|
void *priv;
|
|
};
|
|
|
|
struct ieee80211_tx_status;
|
|
|
|
struct ieee80211_tx_rate_control;
|
|
|
|
struct rate_control_ops {
|
|
unsigned long capa;
|
|
const char *name;
|
|
void * (*alloc)(struct ieee80211_hw *);
|
|
void (*add_debugfs)(struct ieee80211_hw *, void *, struct dentry *);
|
|
void (*free)(void *);
|
|
void * (*alloc_sta)(void *, struct ieee80211_sta *, gfp_t);
|
|
void (*rate_init)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *);
|
|
void (*rate_update)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *, u32);
|
|
void (*free_sta)(void *, struct ieee80211_sta *, void *);
|
|
void (*tx_status_ext)(void *, struct ieee80211_supported_band *, void *, struct ieee80211_tx_status *);
|
|
void (*tx_status)(void *, struct ieee80211_supported_band *, struct ieee80211_sta *, void *, struct sk_buff *);
|
|
void (*get_rate)(void *, struct ieee80211_sta *, void *, struct ieee80211_tx_rate_control *);
|
|
void (*add_sta_debugfs)(void *, void *, struct dentry *);
|
|
u32 (*get_expected_throughput)(void *);
|
|
};
|
|
|
|
struct ieee80211_tx_info;
|
|
|
|
struct ieee80211_rate_status;
|
|
|
|
struct ieee80211_tx_status {
|
|
struct ieee80211_sta *sta;
|
|
struct ieee80211_tx_info *info;
|
|
struct sk_buff *skb;
|
|
struct ieee80211_rate_status *rates;
|
|
ktime_t ack_hwtstamp;
|
|
u8 n_rates;
|
|
struct list_head *free_list;
|
|
};
|
|
|
|
struct ieee80211_tx_info {
|
|
u32 flags;
|
|
u32 band: 3;
|
|
u32 ack_frame_id: 13;
|
|
u32 hw_queue: 4;
|
|
u32 tx_time_est: 10;
|
|
union {
|
|
struct {
|
|
union {
|
|
struct {
|
|
struct ieee80211_tx_rate rates[4];
|
|
s8 rts_cts_rate_idx;
|
|
u8 use_rts: 1;
|
|
u8 use_cts_prot: 1;
|
|
u8 short_preamble: 1;
|
|
u8 skip_table: 1;
|
|
};
|
|
unsigned long jiffies;
|
|
};
|
|
struct ieee80211_vif *vif;
|
|
struct ieee80211_key_conf *hw_key;
|
|
u32 flags;
|
|
codel_time_t enqueue_time;
|
|
} control;
|
|
struct {
|
|
u64 cookie;
|
|
} ack;
|
|
struct {
|
|
struct ieee80211_tx_rate rates[4];
|
|
s32 ack_signal;
|
|
u8 ampdu_ack_len;
|
|
u8 ampdu_len;
|
|
u8 antenna;
|
|
u16 tx_time;
|
|
u8 flags;
|
|
void *status_driver_data[2];
|
|
} status;
|
|
struct {
|
|
struct ieee80211_tx_rate driver_rates[4];
|
|
u8 pad[4];
|
|
void *rate_driver_data[3];
|
|
};
|
|
void *driver_data[5];
|
|
};
|
|
};
|
|
|
|
struct ieee80211_rate_status {
|
|
struct rate_info rate_idx;
|
|
u8 try_count;
|
|
u8 tx_power_idx;
|
|
};
|
|
|
|
struct ieee80211_tx_rate_control {
|
|
struct ieee80211_hw *hw;
|
|
struct ieee80211_supported_band *sband;
|
|
struct ieee80211_bss_conf *bss_conf;
|
|
struct sk_buff *skb;
|
|
struct ieee80211_tx_rate reported_rate;
|
|
bool rts;
|
|
bool short_preamble;
|
|
u32 rate_idx_mask;
|
|
u8 *rate_idx_mcs_mask;
|
|
bool bss;
|
|
};
|
|
|
|
enum ieee80211_vht_mcs_support {
|
|
IEEE80211_VHT_MCS_SUPPORT_0_7 = 0,
|
|
IEEE80211_VHT_MCS_SUPPORT_0_8 = 1,
|
|
IEEE80211_VHT_MCS_SUPPORT_0_9 = 2,
|
|
IEEE80211_VHT_MCS_NOT_SUPPORTED = 3,
|
|
};
|
|
|
|
enum ieee80211_he_mcs_support {
|
|
IEEE80211_HE_MCS_SUPPORT_0_7 = 0,
|
|
IEEE80211_HE_MCS_SUPPORT_0_9 = 1,
|
|
IEEE80211_HE_MCS_SUPPORT_0_11 = 2,
|
|
IEEE80211_HE_MCS_NOT_SUPPORTED = 3,
|
|
};
|
|
|
|
enum ieee80211_vht_opmode_bits {
|
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3,
|
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0,
|
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1,
|
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2,
|
|
IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3,
|
|
IEEE80211_OPMODE_NOTIF_BW_160_80P80 = 4,
|
|
IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 112,
|
|
IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4,
|
|
IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 128,
|
|
};
|
|
|
|
enum ieee80211_rate_control_changed {
|
|
IEEE80211_RC_BW_CHANGED = 1,
|
|
IEEE80211_RC_SMPS_CHANGED = 2,
|
|
IEEE80211_RC_SUPP_RATES_CHANGED = 4,
|
|
IEEE80211_RC_NSS_CHANGED = 8,
|
|
};
|
|
|
|
enum wiphy_opmode_flag {
|
|
STA_OPMODE_MAX_BW_CHANGED = 1,
|
|
STA_OPMODE_SMPS_MODE_CHANGED = 2,
|
|
STA_OPMODE_N_SS_CHANGED = 4,
|
|
};
|
|
|
|
enum ieee80211_bss_change {
|
|
BSS_CHANGED_ASSOC = 1LL,
|
|
BSS_CHANGED_ERP_CTS_PROT = 2LL,
|
|
BSS_CHANGED_ERP_PREAMBLE = 4LL,
|
|
BSS_CHANGED_ERP_SLOT = 8LL,
|
|
BSS_CHANGED_HT = 16LL,
|
|
BSS_CHANGED_BASIC_RATES = 32LL,
|
|
BSS_CHANGED_BEACON_INT = 64LL,
|
|
BSS_CHANGED_BSSID = 128LL,
|
|
BSS_CHANGED_BEACON = 256LL,
|
|
BSS_CHANGED_BEACON_ENABLED = 512LL,
|
|
BSS_CHANGED_CQM = 1024LL,
|
|
BSS_CHANGED_IBSS = 2048LL,
|
|
BSS_CHANGED_ARP_FILTER = 4096LL,
|
|
BSS_CHANGED_QOS = 8192LL,
|
|
BSS_CHANGED_IDLE = 16384LL,
|
|
BSS_CHANGED_SSID = 32768LL,
|
|
BSS_CHANGED_AP_PROBE_RESP = 65536LL,
|
|
BSS_CHANGED_PS = 131072LL,
|
|
BSS_CHANGED_TXPOWER = 262144LL,
|
|
BSS_CHANGED_P2P_PS = 524288LL,
|
|
BSS_CHANGED_BEACON_INFO = 1048576LL,
|
|
BSS_CHANGED_BANDWIDTH = 2097152LL,
|
|
BSS_CHANGED_OCB = 4194304LL,
|
|
BSS_CHANGED_MU_GROUPS = 8388608LL,
|
|
BSS_CHANGED_KEEP_ALIVE = 16777216LL,
|
|
BSS_CHANGED_MCAST_RATE = 33554432LL,
|
|
BSS_CHANGED_FTM_RESPONDER = 67108864LL,
|
|
BSS_CHANGED_TWT = 134217728LL,
|
|
BSS_CHANGED_HE_OBSS_PD = 268435456LL,
|
|
BSS_CHANGED_HE_BSS_COLOR = 536870912LL,
|
|
BSS_CHANGED_FILS_DISCOVERY = 1073741824LL,
|
|
BSS_CHANGED_UNSOL_BCAST_PROBE_RESP = -2147483648LL,
|
|
BSS_CHANGED_EHT_PUNCTURING = 4294967296LL,
|
|
};
|
|
|
|
struct sta_opmode_info {
|
|
u32 changed;
|
|
enum nl80211_smps_mode smps_mode;
|
|
enum nl80211_chan_width bw;
|
|
u8 rx_nss;
|
|
};
|
|
|
|
enum ieee80211_vif_flags {
|
|
IEEE80211_VIF_BEACON_FILTER = 1,
|
|
IEEE80211_VIF_SUPPORTS_CQM_RSSI = 2,
|
|
IEEE80211_VIF_SUPPORTS_UAPSD = 4,
|
|
IEEE80211_VIF_GET_NOA_UPDATE = 8,
|
|
};
|
|
|
|
enum mac80211_tx_info_flags {
|
|
IEEE80211_TX_CTL_REQ_TX_STATUS = 1,
|
|
IEEE80211_TX_CTL_ASSIGN_SEQ = 2,
|
|
IEEE80211_TX_CTL_NO_ACK = 4,
|
|
IEEE80211_TX_CTL_CLEAR_PS_FILT = 8,
|
|
IEEE80211_TX_CTL_FIRST_FRAGMENT = 16,
|
|
IEEE80211_TX_CTL_SEND_AFTER_DTIM = 32,
|
|
IEEE80211_TX_CTL_AMPDU = 64,
|
|
IEEE80211_TX_CTL_INJECTED = 128,
|
|
IEEE80211_TX_STAT_TX_FILTERED = 256,
|
|
IEEE80211_TX_STAT_ACK = 512,
|
|
IEEE80211_TX_STAT_AMPDU = 1024,
|
|
IEEE80211_TX_STAT_AMPDU_NO_BACK = 2048,
|
|
IEEE80211_TX_CTL_RATE_CTRL_PROBE = 4096,
|
|
IEEE80211_TX_INTFL_OFFCHAN_TX_OK = 8192,
|
|
IEEE80211_TX_CTL_HW_80211_ENCAP = 16384,
|
|
IEEE80211_TX_INTFL_RETRIED = 32768,
|
|
IEEE80211_TX_INTFL_DONT_ENCRYPT = 65536,
|
|
IEEE80211_TX_CTL_NO_PS_BUFFER = 131072,
|
|
IEEE80211_TX_CTL_MORE_FRAMES = 262144,
|
|
IEEE80211_TX_INTFL_RETRANSMISSION = 524288,
|
|
IEEE80211_TX_INTFL_MLME_CONN_TX = 1048576,
|
|
IEEE80211_TX_INTFL_NL80211_FRAME_TX = 2097152,
|
|
IEEE80211_TX_CTL_LDPC = 4194304,
|
|
IEEE80211_TX_CTL_STBC = 25165824,
|
|
IEEE80211_TX_CTL_TX_OFFCHAN = 33554432,
|
|
IEEE80211_TX_INTFL_TKIP_MIC_FAILURE = 67108864,
|
|
IEEE80211_TX_CTL_NO_CCK_RATE = 134217728,
|
|
IEEE80211_TX_STATUS_EOSP = 268435456,
|
|
IEEE80211_TX_CTL_USE_MINRATE = 536870912,
|
|
IEEE80211_TX_CTL_DONTFRAG = 1073741824,
|
|
IEEE80211_TX_STAT_NOACK_TRANSMITTED = 2147483648,
|
|
};
|
|
|
|
enum ieee80211_sta_flags {
|
|
IEEE80211_STA_CONNECTION_POLL = 2,
|
|
IEEE80211_STA_CONTROL_PORT = 4,
|
|
IEEE80211_STA_MFP_ENABLED = 64,
|
|
IEEE80211_STA_UAPSD_ENABLED = 128,
|
|
IEEE80211_STA_NULLFUNC_ACKED = 256,
|
|
IEEE80211_STA_ENABLE_RRM = 32768,
|
|
};
|
|
|
|
enum ieee80211_conf_flags {
|
|
IEEE80211_CONF_MONITOR = 1,
|
|
IEEE80211_CONF_PS = 2,
|
|
IEEE80211_CONF_IDLE = 4,
|
|
IEEE80211_CONF_OFFCHANNEL = 8,
|
|
};
|
|
|
|
enum ieee80211_conf_changed {
|
|
IEEE80211_CONF_CHANGE_SMPS = 2,
|
|
IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = 4,
|
|
IEEE80211_CONF_CHANGE_MONITOR = 8,
|
|
IEEE80211_CONF_CHANGE_PS = 16,
|
|
IEEE80211_CONF_CHANGE_POWER = 32,
|
|
IEEE80211_CONF_CHANGE_CHANNEL = 64,
|
|
IEEE80211_CONF_CHANGE_RETRY_LIMITS = 128,
|
|
IEEE80211_CONF_CHANGE_IDLE = 256,
|
|
};
|
|
|
|
enum ieee80211_max_queues {
|
|
IEEE80211_MAX_QUEUES = 16,
|
|
IEEE80211_MAX_QUEUE_MAP = 65535,
|
|
};
|
|
|
|
enum queue_stop_reason {
|
|
IEEE80211_QUEUE_STOP_REASON_DRIVER = 0,
|
|
IEEE80211_QUEUE_STOP_REASON_PS = 1,
|
|
IEEE80211_QUEUE_STOP_REASON_CSA = 2,
|
|
IEEE80211_QUEUE_STOP_REASON_AGGREGATION = 3,
|
|
IEEE80211_QUEUE_STOP_REASON_SUSPEND = 4,
|
|
IEEE80211_QUEUE_STOP_REASON_SKB_ADD = 5,
|
|
IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL = 6,
|
|
IEEE80211_QUEUE_STOP_REASON_FLUSH = 7,
|
|
IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN = 8,
|
|
IEEE80211_QUEUE_STOP_REASON_RESERVE_TID = 9,
|
|
IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE = 10,
|
|
IEEE80211_QUEUE_STOP_REASONS = 11,
|
|
};
|
|
|
|
enum nl80211_radar_event {
|
|
NL80211_RADAR_DETECTED = 0,
|
|
NL80211_RADAR_CAC_FINISHED = 1,
|
|
NL80211_RADAR_CAC_ABORTED = 2,
|
|
NL80211_RADAR_NOP_FINISHED = 3,
|
|
NL80211_RADAR_PRE_CAC_EXPIRED = 4,
|
|
NL80211_RADAR_CAC_STARTED = 5,
|
|
};
|
|
|
|
enum {
|
|
IEEE80211_PROBE_FLAG_DIRECTED = 1,
|
|
IEEE80211_PROBE_FLAG_MIN_CONTENT = 2,
|
|
IEEE80211_PROBE_FLAG_RANDOM_SN = 4,
|
|
};
|
|
|
|
enum ieee80211_reasoncode {
|
|
WLAN_REASON_UNSPECIFIED = 1,
|
|
WLAN_REASON_PREV_AUTH_NOT_VALID = 2,
|
|
WLAN_REASON_DEAUTH_LEAVING = 3,
|
|
WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4,
|
|
WLAN_REASON_DISASSOC_AP_BUSY = 5,
|
|
WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6,
|
|
WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7,
|
|
WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8,
|
|
WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9,
|
|
WLAN_REASON_DISASSOC_BAD_POWER = 10,
|
|
WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11,
|
|
WLAN_REASON_INVALID_IE = 13,
|
|
WLAN_REASON_MIC_FAILURE = 14,
|
|
WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15,
|
|
WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16,
|
|
WLAN_REASON_IE_DIFFERENT = 17,
|
|
WLAN_REASON_INVALID_GROUP_CIPHER = 18,
|
|
WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19,
|
|
WLAN_REASON_INVALID_AKMP = 20,
|
|
WLAN_REASON_UNSUPP_RSN_VERSION = 21,
|
|
WLAN_REASON_INVALID_RSN_IE_CAP = 22,
|
|
WLAN_REASON_IEEE8021X_FAILED = 23,
|
|
WLAN_REASON_CIPHER_SUITE_REJECTED = 24,
|
|
WLAN_REASON_TDLS_TEARDOWN_UNREACHABLE = 25,
|
|
WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED = 26,
|
|
WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32,
|
|
WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33,
|
|
WLAN_REASON_DISASSOC_LOW_ACK = 34,
|
|
WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35,
|
|
WLAN_REASON_QSTA_LEAVE_QBSS = 36,
|
|
WLAN_REASON_QSTA_NOT_USE = 37,
|
|
WLAN_REASON_QSTA_REQUIRE_SETUP = 38,
|
|
WLAN_REASON_QSTA_TIMEOUT = 39,
|
|
WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45,
|
|
WLAN_REASON_MESH_PEER_CANCELED = 52,
|
|
WLAN_REASON_MESH_MAX_PEERS = 53,
|
|
WLAN_REASON_MESH_CONFIG = 54,
|
|
WLAN_REASON_MESH_CLOSE = 55,
|
|
WLAN_REASON_MESH_MAX_RETRIES = 56,
|
|
WLAN_REASON_MESH_CONFIRM_TIMEOUT = 57,
|
|
WLAN_REASON_MESH_INVALID_GTK = 58,
|
|
WLAN_REASON_MESH_INCONSISTENT_PARAM = 59,
|
|
WLAN_REASON_MESH_INVALID_SECURITY = 60,
|
|
WLAN_REASON_MESH_PATH_ERROR = 61,
|
|
WLAN_REASON_MESH_PATH_NOFORWARD = 62,
|
|
WLAN_REASON_MESH_PATH_DEST_UNREACHABLE = 63,
|
|
WLAN_REASON_MAC_EXISTS_IN_MBSS = 64,
|
|
WLAN_REASON_MESH_CHAN_REGULATORY = 65,
|
|
WLAN_REASON_MESH_CHAN = 66,
|
|
};
|
|
|
|
enum ieee80211_category {
|
|
WLAN_CATEGORY_SPECTRUM_MGMT = 0,
|
|
WLAN_CATEGORY_QOS = 1,
|
|
WLAN_CATEGORY_DLS = 2,
|
|
WLAN_CATEGORY_BACK = 3,
|
|
WLAN_CATEGORY_PUBLIC = 4,
|
|
WLAN_CATEGORY_RADIO_MEASUREMENT = 5,
|
|
WLAN_CATEGORY_FAST_BBS_TRANSITION = 6,
|
|
WLAN_CATEGORY_HT = 7,
|
|
WLAN_CATEGORY_SA_QUERY = 8,
|
|
WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9,
|
|
WLAN_CATEGORY_WNM = 10,
|
|
WLAN_CATEGORY_WNM_UNPROTECTED = 11,
|
|
WLAN_CATEGORY_TDLS = 12,
|
|
WLAN_CATEGORY_MESH_ACTION = 13,
|
|
WLAN_CATEGORY_MULTIHOP_ACTION = 14,
|
|
WLAN_CATEGORY_SELF_PROTECTED = 15,
|
|
WLAN_CATEGORY_DMG = 16,
|
|
WLAN_CATEGORY_WMM = 17,
|
|
WLAN_CATEGORY_FST = 18,
|
|
WLAN_CATEGORY_UNPROT_DMG = 20,
|
|
WLAN_CATEGORY_VHT = 21,
|
|
WLAN_CATEGORY_S1G = 22,
|
|
WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
|
|
WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
|
|
};
|
|
|
|
enum assoc_status {
|
|
ASSOC_SUCCESS = 0,
|
|
ASSOC_REJECTED = 1,
|
|
ASSOC_TIMEOUT = 2,
|
|
ASSOC_ABANDON = 3,
|
|
};
|
|
|
|
enum nl80211_feature_flags {
|
|
NL80211_FEATURE_SK_TX_STATUS = 1,
|
|
NL80211_FEATURE_HT_IBSS = 2,
|
|
NL80211_FEATURE_INACTIVITY_TIMER = 4,
|
|
NL80211_FEATURE_CELL_BASE_REG_HINTS = 8,
|
|
NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 16,
|
|
NL80211_FEATURE_SAE = 32,
|
|
NL80211_FEATURE_LOW_PRIORITY_SCAN = 64,
|
|
NL80211_FEATURE_SCAN_FLUSH = 128,
|
|
NL80211_FEATURE_AP_SCAN = 256,
|
|
NL80211_FEATURE_VIF_TXPOWER = 512,
|
|
NL80211_FEATURE_NEED_OBSS_SCAN = 1024,
|
|
NL80211_FEATURE_P2P_GO_CTWIN = 2048,
|
|
NL80211_FEATURE_P2P_GO_OPPPS = 4096,
|
|
NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 16384,
|
|
NL80211_FEATURE_FULL_AP_CLIENT_STATE = 32768,
|
|
NL80211_FEATURE_USERSPACE_MPM = 65536,
|
|
NL80211_FEATURE_ACTIVE_MONITOR = 131072,
|
|
NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 262144,
|
|
NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 524288,
|
|
NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1048576,
|
|
NL80211_FEATURE_QUIET = 2097152,
|
|
NL80211_FEATURE_TX_POWER_INSERTION = 4194304,
|
|
NL80211_FEATURE_ACKTO_ESTIMATION = 8388608,
|
|
NL80211_FEATURE_STATIC_SMPS = 16777216,
|
|
NL80211_FEATURE_DYNAMIC_SMPS = 33554432,
|
|
NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 67108864,
|
|
NL80211_FEATURE_MAC_ON_CREATE = 134217728,
|
|
NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 268435456,
|
|
NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 536870912,
|
|
NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1073741824,
|
|
NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 2147483648,
|
|
};
|
|
|
|
enum ieee80211_conn_flags {
|
|
IEEE80211_CONN_DISABLE_HT = 1,
|
|
IEEE80211_CONN_DISABLE_40MHZ = 2,
|
|
IEEE80211_CONN_DISABLE_VHT = 4,
|
|
IEEE80211_CONN_DISABLE_80P80MHZ = 8,
|
|
IEEE80211_CONN_DISABLE_160MHZ = 16,
|
|
IEEE80211_CONN_DISABLE_HE = 32,
|
|
IEEE80211_CONN_DISABLE_EHT = 64,
|
|
IEEE80211_CONN_DISABLE_320MHZ = 128,
|
|
};
|
|
|
|
enum cfg80211_assoc_req_flags {
|
|
ASSOC_REQ_DISABLE_HT = 1,
|
|
ASSOC_REQ_DISABLE_VHT = 2,
|
|
ASSOC_REQ_USE_RRM = 4,
|
|
CONNECT_REQ_EXTERNAL_AUTH_SUPPORT = 8,
|
|
ASSOC_REQ_DISABLE_HE = 16,
|
|
ASSOC_REQ_DISABLE_EHT = 32,
|
|
CONNECT_REQ_MLO_SUPPORT = 64,
|
|
};
|
|
|
|
enum nl80211_cqm_rssi_threshold_event {
|
|
NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0,
|
|
NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 1,
|
|
NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 2,
|
|
};
|
|
|
|
enum ieee80211_ac_numbers {
|
|
IEEE80211_AC_VO = 0,
|
|
IEEE80211_AC_VI = 1,
|
|
IEEE80211_AC_BE = 2,
|
|
IEEE80211_AC_BK = 3,
|
|
};
|
|
|
|
enum mac80211_rx_flags {
|
|
RX_FLAG_MMIC_ERROR = 1,
|
|
RX_FLAG_DECRYPTED = 2,
|
|
RX_FLAG_MACTIME_PLCP_START = 4,
|
|
RX_FLAG_MMIC_STRIPPED = 8,
|
|
RX_FLAG_IV_STRIPPED = 16,
|
|
RX_FLAG_FAILED_FCS_CRC = 32,
|
|
RX_FLAG_FAILED_PLCP_CRC = 64,
|
|
RX_FLAG_MACTIME_START = 128,
|
|
RX_FLAG_NO_SIGNAL_VAL = 256,
|
|
RX_FLAG_AMPDU_DETAILS = 512,
|
|
RX_FLAG_PN_VALIDATED = 1024,
|
|
RX_FLAG_DUP_VALIDATED = 2048,
|
|
RX_FLAG_AMPDU_LAST_KNOWN = 4096,
|
|
RX_FLAG_AMPDU_IS_LAST = 8192,
|
|
RX_FLAG_AMPDU_DELIM_CRC_ERROR = 16384,
|
|
RX_FLAG_AMPDU_DELIM_CRC_KNOWN = 32768,
|
|
RX_FLAG_MACTIME_END = 65536,
|
|
RX_FLAG_ONLY_MONITOR = 131072,
|
|
RX_FLAG_SKIP_MONITOR = 262144,
|
|
RX_FLAG_AMSDU_MORE = 524288,
|
|
RX_FLAG_RADIOTAP_VENDOR_DATA = 1048576,
|
|
RX_FLAG_MIC_STRIPPED = 2097152,
|
|
RX_FLAG_ALLOW_SAME_PN = 4194304,
|
|
RX_FLAG_ICV_STRIPPED = 8388608,
|
|
RX_FLAG_AMPDU_EOF_BIT = 16777216,
|
|
RX_FLAG_AMPDU_EOF_BIT_KNOWN = 33554432,
|
|
RX_FLAG_RADIOTAP_HE = 67108864,
|
|
RX_FLAG_RADIOTAP_HE_MU = 134217728,
|
|
RX_FLAG_RADIOTAP_LSIG = 268435456,
|
|
RX_FLAG_NO_PSDU = 536870912,
|
|
RX_FLAG_8023 = 1073741824,
|
|
};
|
|
|
|
enum ieee80211_p2p_attr_id {
|
|
IEEE80211_P2P_ATTR_STATUS = 0,
|
|
IEEE80211_P2P_ATTR_MINOR_REASON = 1,
|
|
IEEE80211_P2P_ATTR_CAPABILITY = 2,
|
|
IEEE80211_P2P_ATTR_DEVICE_ID = 3,
|
|
IEEE80211_P2P_ATTR_GO_INTENT = 4,
|
|
IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT = 5,
|
|
IEEE80211_P2P_ATTR_LISTEN_CHANNEL = 6,
|
|
IEEE80211_P2P_ATTR_GROUP_BSSID = 7,
|
|
IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING = 8,
|
|
IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR = 9,
|
|
IEEE80211_P2P_ATTR_MANAGABILITY = 10,
|
|
IEEE80211_P2P_ATTR_CHANNEL_LIST = 11,
|
|
IEEE80211_P2P_ATTR_ABSENCE_NOTICE = 12,
|
|
IEEE80211_P2P_ATTR_DEVICE_INFO = 13,
|
|
IEEE80211_P2P_ATTR_GROUP_INFO = 14,
|
|
IEEE80211_P2P_ATTR_GROUP_ID = 15,
|
|
IEEE80211_P2P_ATTR_INTERFACE = 16,
|
|
IEEE80211_P2P_ATTR_OPER_CHANNEL = 17,
|
|
IEEE80211_P2P_ATTR_INVITE_FLAGS = 18,
|
|
IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221,
|
|
IEEE80211_P2P_ATTR_MAX = 222,
|
|
};
|
|
|
|
enum ieee80211_statuscode {
|
|
WLAN_STATUS_SUCCESS = 0,
|
|
WLAN_STATUS_UNSPECIFIED_FAILURE = 1,
|
|
WLAN_STATUS_CAPS_UNSUPPORTED = 10,
|
|
WLAN_STATUS_REASSOC_NO_ASSOC = 11,
|
|
WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12,
|
|
WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13,
|
|
WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14,
|
|
WLAN_STATUS_CHALLENGE_FAIL = 15,
|
|
WLAN_STATUS_AUTH_TIMEOUT = 16,
|
|
WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17,
|
|
WLAN_STATUS_ASSOC_DENIED_RATES = 18,
|
|
WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19,
|
|
WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20,
|
|
WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21,
|
|
WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22,
|
|
WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23,
|
|
WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24,
|
|
WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25,
|
|
WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26,
|
|
WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30,
|
|
WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31,
|
|
WLAN_STATUS_INVALID_IE = 40,
|
|
WLAN_STATUS_INVALID_GROUP_CIPHER = 41,
|
|
WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42,
|
|
WLAN_STATUS_INVALID_AKMP = 43,
|
|
WLAN_STATUS_UNSUPP_RSN_VERSION = 44,
|
|
WLAN_STATUS_INVALID_RSN_IE_CAP = 45,
|
|
WLAN_STATUS_CIPHER_SUITE_REJECTED = 46,
|
|
WLAN_STATUS_UNSPECIFIED_QOS = 32,
|
|
WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33,
|
|
WLAN_STATUS_ASSOC_DENIED_LOWACK = 34,
|
|
WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35,
|
|
WLAN_STATUS_REQUEST_DECLINED = 37,
|
|
WLAN_STATUS_INVALID_QOS_PARAM = 38,
|
|
WLAN_STATUS_CHANGE_TSPEC = 39,
|
|
WLAN_STATUS_WAIT_TS_DELAY = 47,
|
|
WLAN_STATUS_NO_DIRECT_LINK = 48,
|
|
WLAN_STATUS_STA_NOT_PRESENT = 49,
|
|
WLAN_STATUS_STA_NOT_QSTA = 50,
|
|
WLAN_STATUS_ANTI_CLOG_REQUIRED = 76,
|
|
WLAN_STATUS_FCG_NOT_SUPP = 78,
|
|
WLAN_STATUS_STA_NO_TBTT = 78,
|
|
WLAN_STATUS_REJECTED_WITH_SUGGESTED_CHANGES = 39,
|
|
WLAN_STATUS_REJECTED_FOR_DELAY_PERIOD = 47,
|
|
WLAN_STATUS_REJECT_WITH_SCHEDULE = 83,
|
|
WLAN_STATUS_PENDING_ADMITTING_FST_SESSION = 86,
|
|
WLAN_STATUS_PERFORMING_FST_NOW = 87,
|
|
WLAN_STATUS_PENDING_GAP_IN_BA_WINDOW = 88,
|
|
WLAN_STATUS_REJECT_U_PID_SETTING = 89,
|
|
WLAN_STATUS_REJECT_DSE_BAND = 96,
|
|
WLAN_STATUS_DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99,
|
|
WLAN_STATUS_DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103,
|
|
WLAN_STATUS_FILS_AUTHENTICATION_FAILURE = 108,
|
|
WLAN_STATUS_UNKNOWN_AUTHENTICATION_SERVER = 109,
|
|
WLAN_STATUS_SAE_HASH_TO_ELEMENT = 126,
|
|
WLAN_STATUS_SAE_PK = 127,
|
|
};
|
|
|
|
enum ieee80211_timeout_interval_type {
|
|
WLAN_TIMEOUT_REASSOC_DEADLINE = 1,
|
|
WLAN_TIMEOUT_KEY_LIFETIME = 2,
|
|
WLAN_TIMEOUT_ASSOC_COMEBACK = 3,
|
|
};
|
|
|
|
enum ieee80211_idle_options {
|
|
WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1,
|
|
};
|
|
|
|
enum ieee80211_mle_subelems {
|
|
IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0,
|
|
IEEE80211_MLE_SUBELEM_FRAGMENT = 254,
|
|
};
|
|
|
|
enum ieee80211_bss_corrupt_data_flags {
|
|
IEEE80211_BSS_CORRUPT_BEACON = 1,
|
|
IEEE80211_BSS_CORRUPT_PROBE_RESP = 2,
|
|
};
|
|
|
|
struct ieee80211_pspoll {
|
|
__le16 frame_control;
|
|
__le16 aid;
|
|
u8 bssid[6];
|
|
u8 ta[6];
|
|
};
|
|
|
|
struct ieee80211_hdr_3addr {
|
|
__le16 frame_control;
|
|
__le16 duration_id;
|
|
u8 addr1[6];
|
|
u8 addr2[6];
|
|
u8 addr3[6];
|
|
__le16 seq_ctrl;
|
|
};
|
|
|
|
struct ieee80211_hdr {
|
|
__le16 frame_control;
|
|
__le16 duration_id;
|
|
union {
|
|
struct {
|
|
u8 addr1[6];
|
|
u8 addr2[6];
|
|
u8 addr3[6];
|
|
};
|
|
struct {
|
|
u8 addr1[6];
|
|
u8 addr2[6];
|
|
u8 addr3[6];
|
|
} addrs;
|
|
};
|
|
__le16 seq_ctrl;
|
|
u8 addr4[6];
|
|
};
|
|
|
|
struct ieee80211_qos_hdr {
|
|
__le16 frame_control;
|
|
__le16 duration_id;
|
|
u8 addr1[6];
|
|
u8 addr2[6];
|
|
u8 addr3[6];
|
|
__le16 seq_ctrl;
|
|
__le16 qos_ctrl;
|
|
};
|
|
|
|
struct ieee80211_qos_hdr_4addr {
|
|
__le16 frame_control;
|
|
__le16 duration_id;
|
|
u8 addr1[6];
|
|
u8 addr2[6];
|
|
u8 addr3[6];
|
|
__le16 seq_ctrl;
|
|
u8 addr4[6];
|
|
__le16 qos_ctrl;
|
|
};
|
|
|
|
struct ieee80211_tdls_lnkie;
|
|
|
|
struct ieee80211_ch_switch_timing;
|
|
|
|
struct ieee80211_tim_ie;
|
|
|
|
struct ieee80211_vht_operation;
|
|
|
|
struct ieee80211_he_spr;
|
|
|
|
struct ieee80211_mu_edca_param_set;
|
|
|
|
struct ieee80211_rann_ie;
|
|
|
|
struct ieee80211_channel_sw_ie;
|
|
|
|
struct ieee80211_wide_bw_chansw_ie;
|
|
|
|
struct ieee80211_timeout_interval_ie;
|
|
|
|
struct ieee80211_sec_chan_offs_ie;
|
|
|
|
struct ieee80211_mesh_chansw_params_ie;
|
|
|
|
struct ieee80211_bss_max_idle_period_ie;
|
|
|
|
struct ieee80211_multiple_bssid_configuration;
|
|
|
|
struct ieee80211_bssid_index;
|
|
|
|
struct ieee80211_addba_ext_ie;
|
|
|
|
struct ieee80211_aid_response_ie;
|
|
|
|
struct ieee80211_multi_link_elem;
|
|
|
|
struct ieee80211_mle_per_sta_profile;
|
|
|
|
struct ieee802_11_elems {
|
|
const u8 *ie_start;
|
|
size_t total_len;
|
|
u32 crc;
|
|
const struct ieee80211_tdls_lnkie *lnk_id;
|
|
const struct ieee80211_ch_switch_timing *ch_sw_timing;
|
|
const u8 *ext_capab;
|
|
const u8 *ssid;
|
|
const u8 *supp_rates;
|
|
const u8 *ds_params;
|
|
const struct ieee80211_tim_ie *tim;
|
|
const u8 *rsn;
|
|
const u8 *rsnx;
|
|
const u8 *erp_info;
|
|
const u8 *ext_supp_rates;
|
|
const u8 *wmm_info;
|
|
const u8 *wmm_param;
|
|
const struct ieee80211_ht_cap *ht_cap_elem;
|
|
const struct ieee80211_ht_operation *ht_operation;
|
|
const struct ieee80211_vht_cap *vht_cap_elem;
|
|
const struct ieee80211_vht_operation *vht_operation;
|
|
const struct ieee80211_meshconf_ie *mesh_config;
|
|
const u8 *he_cap;
|
|
const struct ieee80211_he_operation *he_operation;
|
|
const struct ieee80211_he_spr *he_spr;
|
|
const struct ieee80211_mu_edca_param_set *mu_edca_param_set;
|
|
const struct ieee80211_he_6ghz_capa *he_6ghz_capa;
|
|
const struct ieee80211_tx_pwr_env *tx_pwr_env[8];
|
|
const u8 *uora_element;
|
|
const u8 *mesh_id;
|
|
const u8 *peering;
|
|
const __le16 *awake_window;
|
|
const u8 *preq;
|
|
const u8 *prep;
|
|
const u8 *perr;
|
|
const struct ieee80211_rann_ie *rann;
|
|
const struct ieee80211_channel_sw_ie *ch_switch_ie;
|
|
const struct ieee80211_ext_chansw_ie *ext_chansw_ie;
|
|
const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie;
|
|
const u8 *max_channel_switch_time;
|
|
const u8 *country_elem;
|
|
const u8 *pwr_constr_elem;
|
|
const u8 *cisco_dtpc_elem;
|
|
const struct ieee80211_timeout_interval_ie *timeout_int;
|
|
const u8 *opmode_notif;
|
|
const struct ieee80211_sec_chan_offs_ie *sec_chan_offs;
|
|
struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie;
|
|
const struct ieee80211_bss_max_idle_period_ie *max_idle_period_ie;
|
|
const struct ieee80211_multiple_bssid_configuration *mbssid_config_ie;
|
|
const struct ieee80211_bssid_index *bssid_index;
|
|
u8 max_bssid_indicator;
|
|
u8 dtim_count;
|
|
u8 dtim_period;
|
|
const struct ieee80211_addba_ext_ie *addba_ext_ie;
|
|
const struct ieee80211_s1g_cap *s1g_capab;
|
|
const struct ieee80211_s1g_oper_ie *s1g_oper;
|
|
const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat;
|
|
const struct ieee80211_aid_response_ie *aid_resp;
|
|
const struct ieee80211_eht_cap_elem *eht_cap;
|
|
const struct ieee80211_eht_operation *eht_operation;
|
|
const struct ieee80211_multi_link_elem *multi_link;
|
|
u8 ext_capab_len;
|
|
u8 ssid_len;
|
|
u8 supp_rates_len;
|
|
u8 tim_len;
|
|
u8 rsn_len;
|
|
u8 rsnx_len;
|
|
u8 ext_supp_rates_len;
|
|
u8 wmm_info_len;
|
|
u8 wmm_param_len;
|
|
u8 he_cap_len;
|
|
u8 mesh_id_len;
|
|
u8 peering_len;
|
|
u8 preq_len;
|
|
u8 prep_len;
|
|
u8 perr_len;
|
|
u8 country_elem_len;
|
|
u8 bssid_index_len;
|
|
u8 tx_pwr_env_len[8];
|
|
u8 tx_pwr_env_num;
|
|
u8 eht_cap_len;
|
|
size_t multi_link_len;
|
|
struct ieee80211_mle_per_sta_profile *prof;
|
|
size_t sta_prof_len;
|
|
bool parse_error;
|
|
size_t scratch_len;
|
|
u8 *scratch_pos;
|
|
u8 scratch[0];
|
|
};
|
|
|
|
struct ieee80211_tdls_lnkie {
|
|
u8 ie_type;
|
|
u8 ie_len;
|
|
u8 bssid[6];
|
|
u8 init_sta[6];
|
|
u8 resp_sta[6];
|
|
};
|
|
|
|
struct ieee80211_ch_switch_timing {
|
|
__le16 switch_time;
|
|
__le16 switch_timeout;
|
|
};
|
|
|
|
struct ieee80211_tim_ie {
|
|
u8 dtim_count;
|
|
u8 dtim_period;
|
|
u8 bitmap_ctrl;
|
|
u8 virtual_map[1];
|
|
};
|
|
|
|
struct ieee80211_vht_operation {
|
|
u8 chan_width;
|
|
u8 center_freq_seg0_idx;
|
|
u8 center_freq_seg1_idx;
|
|
__le16 basic_mcs_set;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_he_spr {
|
|
u8 he_sr_control;
|
|
u8 optional[0];
|
|
};
|
|
|
|
struct ieee80211_mu_edca_param_set {
|
|
u8 mu_qos_info;
|
|
struct ieee80211_he_mu_edca_param_ac_rec ac_be;
|
|
struct ieee80211_he_mu_edca_param_ac_rec ac_bk;
|
|
struct ieee80211_he_mu_edca_param_ac_rec ac_vi;
|
|
struct ieee80211_he_mu_edca_param_ac_rec ac_vo;
|
|
};
|
|
|
|
struct ieee80211_rann_ie {
|
|
u8 rann_flags;
|
|
u8 rann_hopcount;
|
|
u8 rann_ttl;
|
|
u8 rann_addr[6];
|
|
__le32 rann_seq;
|
|
__le32 rann_interval;
|
|
__le32 rann_metric;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_channel_sw_ie {
|
|
u8 mode;
|
|
u8 new_ch_num;
|
|
u8 count;
|
|
};
|
|
|
|
struct ieee80211_wide_bw_chansw_ie {
|
|
u8 new_channel_width;
|
|
u8 new_center_freq_seg0;
|
|
u8 new_center_freq_seg1;
|
|
};
|
|
|
|
struct ieee80211_timeout_interval_ie {
|
|
u8 type;
|
|
__le32 value;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_sec_chan_offs_ie {
|
|
u8 sec_chan_offs;
|
|
};
|
|
|
|
struct ieee80211_mesh_chansw_params_ie {
|
|
u8 mesh_ttl;
|
|
u8 mesh_flags;
|
|
__le16 mesh_reason;
|
|
__le16 mesh_pre_value;
|
|
};
|
|
|
|
struct ieee80211_bss_max_idle_period_ie {
|
|
__le16 max_idle_period;
|
|
u8 idle_options;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_multiple_bssid_configuration {
|
|
u8 bssid_count;
|
|
u8 profile_periodicity;
|
|
};
|
|
|
|
struct ieee80211_bssid_index {
|
|
u8 bssid_index;
|
|
u8 dtim_period;
|
|
u8 dtim_count;
|
|
};
|
|
|
|
struct ieee80211_addba_ext_ie {
|
|
u8 data;
|
|
};
|
|
|
|
struct ieee80211_aid_response_ie {
|
|
__le16 aid;
|
|
u8 switch_count;
|
|
__le16 response_int;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_multi_link_elem {
|
|
__le16 control;
|
|
u8 variable[0];
|
|
};
|
|
|
|
struct ieee80211_mle_per_sta_profile {
|
|
__le16 control;
|
|
u8 sta_info_len;
|
|
u8 variable[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_elems_parse_params {
|
|
const u8 *start;
|
|
size_t len;
|
|
bool action;
|
|
u64 filter;
|
|
u32 crc;
|
|
struct cfg80211_bss *bss;
|
|
int link_id;
|
|
bool from_ap;
|
|
size_t scratch_len;
|
|
};
|
|
|
|
struct cfg80211_rx_assoc_resp {
|
|
const u8 *buf;
|
|
size_t len;
|
|
const u8 *req_ies;
|
|
size_t req_ies_len;
|
|
int uapsd_queues;
|
|
const u8 *ap_mld_addr;
|
|
struct {
|
|
const u8 *addr;
|
|
struct cfg80211_bss *bss;
|
|
u16 status;
|
|
} links[15];
|
|
};
|
|
|
|
struct ieee80211_mle_basic_common_info {
|
|
u8 len;
|
|
u8 mld_mac_addr[6];
|
|
u8 variable[0];
|
|
};
|
|
|
|
struct ieee80211_bss {
|
|
u32 device_ts_beacon;
|
|
u32 device_ts_presp;
|
|
bool wmm_used;
|
|
bool uapsd_supported;
|
|
u8 supp_rates[32];
|
|
size_t supp_rates_len;
|
|
struct ieee80211_rate *beacon_rate;
|
|
u32 vht_cap_info;
|
|
bool has_erp_value;
|
|
u8 erp_value;
|
|
u8 corrupt_data;
|
|
u8 valid_data;
|
|
};
|
|
|
|
struct ieee80211_csa_ie {
|
|
struct cfg80211_chan_def chandef;
|
|
u8 mode;
|
|
u8 count;
|
|
u8 ttl;
|
|
u16 pre_value;
|
|
u16 reason_code;
|
|
u32 max_switch_time;
|
|
};
|
|
|
|
struct cfg80211_assoc_failure {
|
|
const u8 *ap_mld_addr;
|
|
struct cfg80211_bss *bss[15];
|
|
bool timeout;
|
|
};
|
|
|
|
struct ieee80211_eht_operation_info {
|
|
u8 control;
|
|
u8 ccfs0;
|
|
u8 ccfs1;
|
|
u8 optional[0];
|
|
};
|
|
|
|
struct ieee80211_country_ie_triplet {
|
|
union {
|
|
struct {
|
|
u8 first_channel;
|
|
u8 num_channels;
|
|
s8 max_power;
|
|
} chans;
|
|
struct {
|
|
u8 reg_extension_id;
|
|
u8 reg_class;
|
|
u8 coverage_class;
|
|
} ext;
|
|
};
|
|
};
|
|
|
|
struct acpi_pci_root_info;
|
|
|
|
struct acpi_pci_root_ops {
|
|
struct pci_ops *pci_ops;
|
|
int (*init_info)(struct acpi_pci_root_info *);
|
|
void (*release_info)(struct acpi_pci_root_info *);
|
|
int (*prepare_resources)(struct acpi_pci_root_info *);
|
|
};
|
|
|
|
struct acpi_pci_root;
|
|
|
|
struct acpi_pci_root_info {
|
|
struct acpi_pci_root *root;
|
|
struct acpi_device *bridge;
|
|
struct acpi_pci_root_ops *ops;
|
|
struct list_head resources;
|
|
char name[16];
|
|
};
|
|
|
|
struct acpi_pci_root {
|
|
struct acpi_device *device;
|
|
struct pci_bus *bus;
|
|
u16 segment;
|
|
int bridge_type;
|
|
struct resource secondary;
|
|
u32 osc_support_set;
|
|
u32 osc_control_set;
|
|
u32 osc_ext_support_set;
|
|
u32 osc_ext_control_set;
|
|
phys_addr_t mcfg_addr;
|
|
};
|
|
|
|
struct pci_root_info {
|
|
struct acpi_pci_root_info common;
|
|
struct pci_sysdata sd;
|
|
bool mcfg_added;
|
|
u8 start_bus;
|
|
u8 end_bus;
|
|
};
|
|
|
|
struct resource_entry {
|
|
struct list_head node;
|
|
struct resource *res;
|
|
resource_size_t offset;
|
|
struct resource __res;
|
|
};
|
|
|
|
struct pci_host_bridge {
|
|
struct device dev;
|
|
struct pci_bus *bus;
|
|
struct pci_ops *ops;
|
|
struct pci_ops *child_ops;
|
|
void *sysdata;
|
|
int busnr;
|
|
int domain_nr;
|
|
struct list_head windows;
|
|
struct list_head dma_ranges;
|
|
u8 (*swizzle_irq)(struct pci_dev *, u8 *);
|
|
int (*map_irq)(const struct pci_dev *, u8, u8);
|
|
void (*release_fn)(struct pci_host_bridge *);
|
|
void *release_data;
|
|
unsigned int ignore_reset_delay: 1;
|
|
unsigned int no_ext_tags: 1;
|
|
unsigned int no_inc_mrrs: 1;
|
|
unsigned int native_aer: 1;
|
|
unsigned int native_pcie_hotplug: 1;
|
|
unsigned int native_shpc_hotplug: 1;
|
|
unsigned int native_pme: 1;
|
|
unsigned int native_ltr: 1;
|
|
unsigned int native_dpc: 1;
|
|
unsigned int native_cxl_error: 1;
|
|
unsigned int preserve_config: 1;
|
|
unsigned int size_windows: 1;
|
|
unsigned int msi_domain: 1;
|
|
resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t);
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned long private[0];
|
|
};
|
|
|
|
typedef __u32 Elf32_Word;
|
|
|
|
struct elf32_note {
|
|
Elf32_Word n_namesz;
|
|
Elf32_Word n_descsz;
|
|
Elf32_Word n_type;
|
|
};
|
|
|
|
struct idt_bits {
|
|
u16 ist: 3;
|
|
u16 zero: 5;
|
|
u16 type: 5;
|
|
u16 dpl: 2;
|
|
u16 p: 1;
|
|
};
|
|
|
|
struct gate_struct {
|
|
u16 offset_low;
|
|
u16 segment;
|
|
struct idt_bits bits;
|
|
u16 offset_middle;
|
|
u32 offset_high;
|
|
u32 reserved;
|
|
};
|
|
|
|
typedef struct gate_struct gate_desc;
|
|
|
|
struct screen_info {
|
|
__u8 orig_x;
|
|
__u8 orig_y;
|
|
__u16 ext_mem_k;
|
|
__u16 orig_video_page;
|
|
__u8 orig_video_mode;
|
|
__u8 orig_video_cols;
|
|
__u8 flags;
|
|
__u8 unused2;
|
|
__u16 orig_video_ega_bx;
|
|
__u16 unused3;
|
|
__u8 orig_video_lines;
|
|
__u8 orig_video_isVGA;
|
|
__u16 orig_video_points;
|
|
__u16 lfb_width;
|
|
__u16 lfb_height;
|
|
__u16 lfb_depth;
|
|
__u32 lfb_base;
|
|
__u32 lfb_size;
|
|
__u16 cl_magic;
|
|
__u16 cl_offset;
|
|
__u16 lfb_linelength;
|
|
__u8 red_size;
|
|
__u8 red_pos;
|
|
__u8 green_size;
|
|
__u8 green_pos;
|
|
__u8 blue_size;
|
|
__u8 blue_pos;
|
|
__u8 rsvd_size;
|
|
__u8 rsvd_pos;
|
|
__u16 vesapm_seg;
|
|
__u16 vesapm_off;
|
|
__u16 pages;
|
|
__u16 vesa_attributes;
|
|
__u32 capabilities;
|
|
__u32 ext_lfb_base;
|
|
__u8 _reserved[2];
|
|
} __attribute__((packed));
|
|
|
|
struct apm_bios_info {
|
|
__u16 version;
|
|
__u16 cseg;
|
|
__u32 offset;
|
|
__u16 cseg_16;
|
|
__u16 dseg;
|
|
__u16 flags;
|
|
__u16 cseg_len;
|
|
__u16 cseg_16_len;
|
|
__u16 dseg_len;
|
|
};
|
|
|
|
struct ist_info {
|
|
__u32 signature;
|
|
__u32 command;
|
|
__u32 event;
|
|
__u32 perf_level;
|
|
};
|
|
|
|
struct sys_desc_table {
|
|
__u16 length;
|
|
__u8 table[14];
|
|
};
|
|
|
|
struct olpc_ofw_header {
|
|
__u32 ofw_magic;
|
|
__u32 ofw_version;
|
|
__u32 cif_handler;
|
|
__u32 irq_desc_table;
|
|
};
|
|
|
|
struct edid_info {
|
|
unsigned char dummy[128];
|
|
};
|
|
|
|
struct efi_info {
|
|
__u32 efi_loader_signature;
|
|
__u32 efi_systab;
|
|
__u32 efi_memdesc_size;
|
|
__u32 efi_memdesc_version;
|
|
__u32 efi_memmap;
|
|
__u32 efi_memmap_size;
|
|
__u32 efi_systab_hi;
|
|
__u32 efi_memmap_hi;
|
|
};
|
|
|
|
struct setup_header {
|
|
__u8 setup_sects;
|
|
__u16 root_flags;
|
|
__u32 syssize;
|
|
__u16 ram_size;
|
|
__u16 vid_mode;
|
|
__u16 root_dev;
|
|
__u16 boot_flag;
|
|
__u16 jump;
|
|
__u32 header;
|
|
__u16 version;
|
|
__u32 realmode_swtch;
|
|
__u16 start_sys_seg;
|
|
__u16 kernel_version;
|
|
__u8 type_of_loader;
|
|
__u8 loadflags;
|
|
__u16 setup_move_size;
|
|
__u32 code32_start;
|
|
__u32 ramdisk_image;
|
|
__u32 ramdisk_size;
|
|
__u32 bootsect_kludge;
|
|
__u16 heap_end_ptr;
|
|
__u8 ext_loader_ver;
|
|
__u8 ext_loader_type;
|
|
__u32 cmd_line_ptr;
|
|
__u32 initrd_addr_max;
|
|
__u32 kernel_alignment;
|
|
__u8 relocatable_kernel;
|
|
__u8 min_alignment;
|
|
__u16 xloadflags;
|
|
__u32 cmdline_size;
|
|
__u32 hardware_subarch;
|
|
__u64 hardware_subarch_data;
|
|
__u32 payload_offset;
|
|
__u32 payload_length;
|
|
__u64 setup_data;
|
|
__u64 pref_address;
|
|
__u32 init_size;
|
|
__u32 handover_offset;
|
|
__u32 kernel_info_offset;
|
|
} __attribute__((packed));
|
|
|
|
struct boot_e820_entry {
|
|
__u64 addr;
|
|
__u64 size;
|
|
__u32 type;
|
|
} __attribute__((packed));
|
|
|
|
struct edd_device_params {
|
|
__u16 length;
|
|
__u16 info_flags;
|
|
__u32 num_default_cylinders;
|
|
__u32 num_default_heads;
|
|
__u32 sectors_per_track;
|
|
__u64 number_of_sectors;
|
|
__u16 bytes_per_sector;
|
|
__u32 dpte_ptr;
|
|
__u16 key;
|
|
__u8 device_path_info_length;
|
|
__u8 reserved2;
|
|
__u16 reserved3;
|
|
__u8 host_bus_type[4];
|
|
__u8 interface_type[8];
|
|
union {
|
|
struct {
|
|
__u16 base_address;
|
|
__u16 reserved1;
|
|
__u32 reserved2;
|
|
} isa;
|
|
struct {
|
|
__u8 bus;
|
|
__u8 slot;
|
|
__u8 function;
|
|
__u8 channel;
|
|
__u32 reserved;
|
|
} pci;
|
|
struct {
|
|
__u64 reserved;
|
|
} ibnd;
|
|
struct {
|
|
__u64 reserved;
|
|
} xprs;
|
|
struct {
|
|
__u64 reserved;
|
|
} htpt;
|
|
struct {
|
|
__u64 reserved;
|
|
} unknown;
|
|
} interface_path;
|
|
union {
|
|
struct {
|
|
__u8 device;
|
|
__u8 reserved1;
|
|
__u16 reserved2;
|
|
__u32 reserved3;
|
|
__u64 reserved4;
|
|
} ata;
|
|
struct {
|
|
__u8 device;
|
|
__u8 lun;
|
|
__u8 reserved1;
|
|
__u8 reserved2;
|
|
__u32 reserved3;
|
|
__u64 reserved4;
|
|
} atapi;
|
|
struct {
|
|
__u16 id;
|
|
__u64 lun;
|
|
__u16 reserved1;
|
|
__u32 reserved2;
|
|
} __attribute__((packed)) scsi;
|
|
struct {
|
|
__u64 serial_number;
|
|
__u64 reserved;
|
|
} usb;
|
|
struct {
|
|
__u64 eui;
|
|
__u64 reserved;
|
|
} i1394;
|
|
struct {
|
|
__u64 wwid;
|
|
__u64 lun;
|
|
} fibre;
|
|
struct {
|
|
__u64 identity_tag;
|
|
__u64 reserved;
|
|
} i2o;
|
|
struct {
|
|
__u32 array_number;
|
|
__u32 reserved1;
|
|
__u64 reserved2;
|
|
} raid;
|
|
struct {
|
|
__u8 device;
|
|
__u8 reserved1;
|
|
__u16 reserved2;
|
|
__u32 reserved3;
|
|
__u64 reserved4;
|
|
} sata;
|
|
struct {
|
|
__u64 reserved1;
|
|
__u64 reserved2;
|
|
} unknown;
|
|
} device_path;
|
|
__u8 reserved4;
|
|
__u8 checksum;
|
|
} __attribute__((packed));
|
|
|
|
struct edd_info {
|
|
__u8 device;
|
|
__u8 version;
|
|
__u16 interface_support;
|
|
__u16 legacy_max_cylinder;
|
|
__u8 legacy_max_head;
|
|
__u8 legacy_sectors_per_track;
|
|
struct edd_device_params params;
|
|
} __attribute__((packed));
|
|
|
|
struct boot_params {
|
|
struct screen_info screen_info;
|
|
struct apm_bios_info apm_bios_info;
|
|
__u8 _pad2[4];
|
|
__u64 tboot_addr;
|
|
struct ist_info ist_info;
|
|
__u64 acpi_rsdp_addr;
|
|
__u8 _pad3[8];
|
|
__u8 hd0_info[16];
|
|
__u8 hd1_info[16];
|
|
struct sys_desc_table sys_desc_table;
|
|
struct olpc_ofw_header olpc_ofw_header;
|
|
__u32 ext_ramdisk_image;
|
|
__u32 ext_ramdisk_size;
|
|
__u32 ext_cmd_line_ptr;
|
|
__u8 _pad4[112];
|
|
__u32 cc_blob_address;
|
|
struct edid_info edid_info;
|
|
struct efi_info efi_info;
|
|
__u32 alt_mem_k;
|
|
__u32 scratch;
|
|
__u8 e820_entries;
|
|
__u8 eddbuf_entries;
|
|
__u8 edd_mbr_sig_buf_entries;
|
|
__u8 kbd_status;
|
|
__u8 secure_boot;
|
|
__u8 _pad5[2];
|
|
__u8 sentinel;
|
|
__u8 _pad6[1];
|
|
struct setup_header hdr;
|
|
__u8 _pad7[36];
|
|
__u32 edd_mbr_sig_buffer[16];
|
|
struct boot_e820_entry e820_table[128];
|
|
__u8 _pad8[48];
|
|
struct edd_info eddbuf[6];
|
|
__u8 _pad9[276];
|
|
} __attribute__((packed));
|
|
|
|
struct desc_ptr {
|
|
unsigned short size;
|
|
unsigned long address;
|
|
} __attribute__((packed));
|
|
|
|
enum x86_hardware_subarch {
|
|
X86_SUBARCH_PC = 0,
|
|
X86_SUBARCH_LGUEST = 1,
|
|
X86_SUBARCH_XEN = 2,
|
|
X86_SUBARCH_INTEL_MID = 3,
|
|
X86_SUBARCH_CE4100 = 4,
|
|
X86_NR_SUBARCHS = 5,
|
|
};
|
|
|
|
struct boot_params_to_save {
|
|
unsigned int start;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct __large_struct {
|
|
unsigned long buf[100];
|
|
};
|
|
|
|
struct sigaltstack {
|
|
void __attribute__((btf_type_tag("user"))) *ss_sp;
|
|
int ss_flags;
|
|
__kernel_size_t ss_size;
|
|
};
|
|
|
|
typedef struct sigaltstack stack_t;
|
|
|
|
struct sigcontext_64 {
|
|
__u64 r8;
|
|
__u64 r9;
|
|
__u64 r10;
|
|
__u64 r11;
|
|
__u64 r12;
|
|
__u64 r13;
|
|
__u64 r14;
|
|
__u64 r15;
|
|
__u64 di;
|
|
__u64 si;
|
|
__u64 bp;
|
|
__u64 bx;
|
|
__u64 dx;
|
|
__u64 ax;
|
|
__u64 cx;
|
|
__u64 sp;
|
|
__u64 ip;
|
|
__u64 flags;
|
|
__u16 cs;
|
|
__u16 gs;
|
|
__u16 fs;
|
|
__u16 ss;
|
|
__u64 err;
|
|
__u64 trapno;
|
|
__u64 oldmask;
|
|
__u64 cr2;
|
|
__u64 fpstate;
|
|
__u64 reserved1[8];
|
|
};
|
|
|
|
struct ucontext {
|
|
unsigned long uc_flags;
|
|
struct ucontext *uc_link;
|
|
stack_t uc_stack;
|
|
struct sigcontext_64 uc_mcontext;
|
|
sigset_t uc_sigmask;
|
|
};
|
|
|
|
struct siginfo {
|
|
union {
|
|
struct {
|
|
int si_signo;
|
|
int si_errno;
|
|
int si_code;
|
|
union __sifields _sifields;
|
|
};
|
|
int _si_pad[32];
|
|
};
|
|
};
|
|
|
|
struct rt_sigframe {
|
|
char __attribute__((btf_type_tag("user"))) *pretcode;
|
|
struct ucontext uc;
|
|
struct siginfo info;
|
|
};
|
|
|
|
struct ksignal {
|
|
struct k_sigaction ka;
|
|
kernel_siginfo_t info;
|
|
int sig;
|
|
};
|
|
|
|
typedef struct siginfo siginfo_t;
|
|
|
|
enum {
|
|
NONE_FORCE_HPET_RESUME = 0,
|
|
OLD_ICH_FORCE_HPET_RESUME = 1,
|
|
ICH_FORCE_HPET_RESUME = 2,
|
|
VT8237_FORCE_HPET_RESUME = 3,
|
|
NVIDIA_FORCE_HPET_RESUME = 4,
|
|
ATI_FORCE_HPET_RESUME = 5,
|
|
};
|
|
|
|
enum cpuid_leafs {
|
|
CPUID_1_EDX = 0,
|
|
CPUID_8000_0001_EDX = 1,
|
|
CPUID_8086_0001_EDX = 2,
|
|
CPUID_LNX_1 = 3,
|
|
CPUID_1_ECX = 4,
|
|
CPUID_C000_0001_EDX = 5,
|
|
CPUID_8000_0001_ECX = 6,
|
|
CPUID_LNX_2 = 7,
|
|
CPUID_LNX_3 = 8,
|
|
CPUID_7_0_EBX = 9,
|
|
CPUID_D_1_EAX = 10,
|
|
CPUID_LNX_4 = 11,
|
|
CPUID_7_1_EAX = 12,
|
|
CPUID_8000_0008_EBX = 13,
|
|
CPUID_6_EAX = 14,
|
|
CPUID_8000_000A_EDX = 15,
|
|
CPUID_7_ECX = 16,
|
|
CPUID_8000_0007_EBX = 17,
|
|
CPUID_7_EDX = 18,
|
|
CPUID_8000_001F_EAX = 19,
|
|
CPUID_8000_0021_EAX = 20,
|
|
};
|
|
|
|
struct smca_hwid;
|
|
|
|
struct smca_bank {
|
|
const struct smca_hwid *hwid;
|
|
u32 id;
|
|
u8 sysfs_id;
|
|
};
|
|
|
|
struct smca_hwid {
|
|
unsigned int bank_type;
|
|
u32 hwid_mcatype;
|
|
};
|
|
|
|
struct threshold_block;
|
|
|
|
struct threshold_bank {
|
|
struct kobject *kobj;
|
|
struct threshold_block *blocks;
|
|
refcount_t cpus;
|
|
unsigned int shared;
|
|
};
|
|
|
|
struct threshold_block {
|
|
unsigned int block;
|
|
unsigned int bank;
|
|
unsigned int cpu;
|
|
u32 address;
|
|
u16 interrupt_enable;
|
|
bool interrupt_capable;
|
|
u16 threshold_limit;
|
|
struct kobject kobj;
|
|
struct list_head miscj;
|
|
};
|
|
|
|
struct smca_bank_name {
|
|
const char *name;
|
|
const char *long_name;
|
|
};
|
|
|
|
struct threshold_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct threshold_block *, char *);
|
|
ssize_t (*store)(struct threshold_block *, const char *, size_t);
|
|
};
|
|
|
|
enum smca_bank_types {
|
|
SMCA_LS = 0,
|
|
SMCA_LS_V2 = 1,
|
|
SMCA_IF = 2,
|
|
SMCA_L2_CACHE = 3,
|
|
SMCA_DE = 4,
|
|
SMCA_RESERVED = 5,
|
|
SMCA_EX = 6,
|
|
SMCA_FP = 7,
|
|
SMCA_L3_CACHE = 8,
|
|
SMCA_CS = 9,
|
|
SMCA_CS_V2 = 10,
|
|
SMCA_PIE = 11,
|
|
SMCA_UMC = 12,
|
|
SMCA_UMC_V2 = 13,
|
|
SMCA_PB = 14,
|
|
SMCA_PSP = 15,
|
|
SMCA_PSP_V2 = 16,
|
|
SMCA_SMU = 17,
|
|
SMCA_SMU_V2 = 18,
|
|
SMCA_MP5 = 19,
|
|
SMCA_MPDMA = 20,
|
|
SMCA_NBIO = 21,
|
|
SMCA_PCIE = 22,
|
|
SMCA_PCIE_V2 = 23,
|
|
SMCA_XGMI_PCS = 24,
|
|
SMCA_NBIF = 25,
|
|
SMCA_SHUB = 26,
|
|
SMCA_SATA = 27,
|
|
SMCA_USB = 28,
|
|
SMCA_GMI_PCS = 29,
|
|
SMCA_XGMI_PHY = 30,
|
|
SMCA_WAFL_PHY = 31,
|
|
SMCA_GMI_PHY = 32,
|
|
N_SMCA_BANK_TYPES = 33,
|
|
};
|
|
|
|
enum mca_msr {
|
|
MCA_CTL = 0,
|
|
MCA_STATUS = 1,
|
|
MCA_ADDR = 2,
|
|
MCA_MISC = 3,
|
|
};
|
|
|
|
struct mce_bank {
|
|
u64 ctl;
|
|
__u64 init: 1;
|
|
__u64 lsb_in_status: 1;
|
|
__u64 __reserved_1: 62;
|
|
};
|
|
|
|
struct thresh_restart {
|
|
struct threshold_block *b;
|
|
int reset;
|
|
int set_lvt_off;
|
|
int lvt_off;
|
|
u16 old_limit;
|
|
};
|
|
|
|
struct irqentry_state {
|
|
union {
|
|
bool exit_rcu;
|
|
bool lockdep;
|
|
};
|
|
};
|
|
|
|
typedef struct irqentry_state irqentry_state_t;
|
|
|
|
struct amd_l3_cache {
|
|
unsigned int indices;
|
|
u8 subcaches[4];
|
|
};
|
|
|
|
struct amd_northbridge {
|
|
struct pci_dev *root;
|
|
struct pci_dev *misc;
|
|
struct pci_dev *link;
|
|
struct amd_l3_cache l3_cache;
|
|
struct threshold_bank *bank4;
|
|
};
|
|
|
|
struct mce {
|
|
__u64 status;
|
|
__u64 misc;
|
|
__u64 addr;
|
|
__u64 mcgstatus;
|
|
__u64 ip;
|
|
__u64 tsc;
|
|
__u64 time;
|
|
__u8 cpuvendor;
|
|
__u8 inject_flags;
|
|
__u8 severity;
|
|
__u8 pad;
|
|
__u32 cpuid;
|
|
__u8 cs;
|
|
__u8 bank;
|
|
__u8 cpu;
|
|
__u8 finished;
|
|
__u32 extcpu;
|
|
__u32 socketid;
|
|
__u32 apicid;
|
|
__u64 mcgcap;
|
|
__u64 synd;
|
|
__u64 ipid;
|
|
__u64 ppin;
|
|
__u32 microcode;
|
|
__u64 kflags;
|
|
};
|
|
|
|
struct cea_exception_stacks {
|
|
char DF_stack_guard[4096];
|
|
char DF_stack[8192];
|
|
char NMI_stack_guard[4096];
|
|
char NMI_stack[8192];
|
|
char DB_stack_guard[4096];
|
|
char DB_stack[8192];
|
|
char MCE_stack_guard[4096];
|
|
char MCE_stack[8192];
|
|
char VC_stack_guard[4096];
|
|
char VC_stack[8192];
|
|
char VC2_stack_guard[4096];
|
|
char VC2_stack[8192];
|
|
char IST_top_guard[4096];
|
|
};
|
|
|
|
struct entry_stack {
|
|
char stack[4096];
|
|
};
|
|
|
|
struct entry_stack_page {
|
|
struct entry_stack stack;
|
|
};
|
|
|
|
struct exception_stacks {
|
|
char DF_stack_guard[0];
|
|
char DF_stack[8192];
|
|
char NMI_stack_guard[0];
|
|
char NMI_stack[8192];
|
|
char DB_stack_guard[0];
|
|
char DB_stack[8192];
|
|
char MCE_stack_guard[0];
|
|
char MCE_stack[8192];
|
|
char VC_stack_guard[0];
|
|
char VC_stack[0];
|
|
char VC2_stack_guard[0];
|
|
char VC2_stack[0];
|
|
char IST_top_guard[0];
|
|
};
|
|
|
|
struct x86_hw_tss {
|
|
u32 reserved1;
|
|
u64 sp0;
|
|
u64 sp1;
|
|
u64 sp2;
|
|
u64 reserved2;
|
|
u64 ist[7];
|
|
u32 reserved3;
|
|
u32 reserved4;
|
|
u16 reserved5;
|
|
u16 io_bitmap_base;
|
|
} __attribute__((packed));
|
|
|
|
struct x86_io_bitmap {
|
|
u64 prev_sequence;
|
|
unsigned int prev_max;
|
|
unsigned long bitmap[1025];
|
|
unsigned long mapall[1025];
|
|
};
|
|
|
|
struct tss_struct {
|
|
struct x86_hw_tss x86_tss;
|
|
struct x86_io_bitmap io_bitmap;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct debug_store_buffers {
|
|
char bts_buffer[65536];
|
|
char pebs_buffer[65536];
|
|
};
|
|
|
|
struct cpu_entry_area {
|
|
char gdt[4096];
|
|
struct entry_stack_page entry_stack_page;
|
|
struct tss_struct tss;
|
|
struct cea_exception_stacks estacks;
|
|
struct debug_store cpu_debug_store;
|
|
struct debug_store_buffers cpu_debug_buffers;
|
|
};
|
|
|
|
struct gdt_page {
|
|
struct desc_struct gdt[16];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct addr_marker {
|
|
unsigned long start_address;
|
|
const char *name;
|
|
unsigned long max_lines;
|
|
};
|
|
|
|
enum address_markers_idx {
|
|
USER_SPACE_NR = 0,
|
|
KERNEL_SPACE_NR = 1,
|
|
LDT_NR = 2,
|
|
LOW_KERNEL_NR = 3,
|
|
VMALLOC_START_NR = 4,
|
|
VMEMMAP_START_NR = 5,
|
|
CPU_ENTRY_AREA_NR = 6,
|
|
ESPFIX_START_NR = 7,
|
|
EFI_END_NR = 8,
|
|
HIGH_KERNEL_NR = 9,
|
|
MODULES_VADDR_NR = 10,
|
|
MODULES_END_NR = 11,
|
|
FIXADDR_START_NR = 12,
|
|
END_OF_SPACE_NR = 13,
|
|
};
|
|
|
|
struct ptdump_range;
|
|
|
|
struct ptdump_state {
|
|
void (*note_page)(struct ptdump_state *, unsigned long, int, u64);
|
|
void (*effective_prot)(struct ptdump_state *, int, u64);
|
|
const struct ptdump_range *range;
|
|
};
|
|
|
|
struct pg_state {
|
|
struct ptdump_state ptdump;
|
|
int level;
|
|
pgprotval_t current_prot;
|
|
pgprotval_t effective_prot;
|
|
pgprotval_t prot_levels[5];
|
|
unsigned long start_address;
|
|
const struct addr_marker *marker;
|
|
unsigned long lines;
|
|
bool to_dmesg;
|
|
bool check_wx;
|
|
unsigned long wx_pages;
|
|
struct seq_file *seq;
|
|
};
|
|
|
|
struct ptdump_range {
|
|
unsigned long start;
|
|
unsigned long end;
|
|
};
|
|
|
|
enum umh_disable_depth {
|
|
UMH_ENABLED = 0,
|
|
UMH_FREEZING = 1,
|
|
UMH_DISABLED = 2,
|
|
};
|
|
|
|
struct fs_struct {
|
|
int users;
|
|
spinlock_t lock;
|
|
seqcount_spinlock_t seq;
|
|
int umask;
|
|
int in_exec;
|
|
struct path root;
|
|
struct path pwd;
|
|
};
|
|
|
|
struct fdtable {
|
|
unsigned int max_fds;
|
|
struct file __attribute__((btf_type_tag("rcu"))) **fd;
|
|
unsigned long *close_on_exec;
|
|
unsigned long *open_fds;
|
|
unsigned long *full_fds_bits;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct files_struct {
|
|
atomic_t count;
|
|
bool resize_in_progress;
|
|
wait_queue_head_t resize_wait;
|
|
struct fdtable __attribute__((btf_type_tag("rcu"))) *fdt;
|
|
struct fdtable fdtab;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t file_lock;
|
|
unsigned int next_fd;
|
|
unsigned long close_on_exec_init[1];
|
|
unsigned long open_fds_init[1];
|
|
unsigned long full_fds_bits_init[1];
|
|
struct file __attribute__((btf_type_tag("rcu"))) *fd_array[64];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct subprocess_info {
|
|
struct work_struct work;
|
|
struct completion *complete;
|
|
const char *path;
|
|
char **argv;
|
|
char **envp;
|
|
int wait;
|
|
int retval;
|
|
int (*init)(struct subprocess_info *, struct cred *);
|
|
void (*cleanup)(struct subprocess_info *);
|
|
void *data;
|
|
};
|
|
|
|
struct platform_suspend_ops {
|
|
int (*valid)(suspend_state_t);
|
|
int (*begin)(suspend_state_t);
|
|
int (*prepare)();
|
|
int (*prepare_late)();
|
|
int (*enter)(suspend_state_t);
|
|
void (*wake)();
|
|
void (*finish)();
|
|
bool (*suspend_again)();
|
|
void (*end)();
|
|
void (*recover)();
|
|
};
|
|
|
|
struct platform_s2idle_ops {
|
|
int (*begin)();
|
|
int (*prepare)();
|
|
int (*prepare_late)();
|
|
void (*check)();
|
|
bool (*wake)();
|
|
void (*restore_early)();
|
|
void (*restore)();
|
|
void (*end)();
|
|
};
|
|
|
|
enum s2idle_states {
|
|
S2IDLE_STATE_NONE = 0,
|
|
S2IDLE_STATE_ENTER = 1,
|
|
S2IDLE_STATE_WAKE = 2,
|
|
};
|
|
|
|
enum {
|
|
TEST_NONE = 0,
|
|
TEST_CORE = 1,
|
|
TEST_CPUS = 2,
|
|
TEST_PLATFORM = 3,
|
|
TEST_DEVICES = 4,
|
|
TEST_FREEZER = 5,
|
|
__TEST_AFTER_LAST = 6,
|
|
};
|
|
|
|
enum suspend_stat_step {
|
|
SUSPEND_FREEZE = 1,
|
|
SUSPEND_PREPARE = 2,
|
|
SUSPEND_SUSPEND = 3,
|
|
SUSPEND_SUSPEND_LATE = 4,
|
|
SUSPEND_SUSPEND_NOIRQ = 5,
|
|
SUSPEND_RESUME_NOIRQ = 6,
|
|
SUSPEND_RESUME_EARLY = 7,
|
|
SUSPEND_RESUME = 8,
|
|
};
|
|
|
|
struct swait_queue {
|
|
struct task_struct *task;
|
|
struct list_head task_list;
|
|
};
|
|
|
|
typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long);
|
|
|
|
typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long);
|
|
|
|
enum {
|
|
TRACE_EVENT_FL_FILTERED = 1,
|
|
TRACE_EVENT_FL_CAP_ANY = 2,
|
|
TRACE_EVENT_FL_NO_SET_FILTER = 4,
|
|
TRACE_EVENT_FL_IGNORE_ENABLE = 8,
|
|
TRACE_EVENT_FL_TRACEPOINT = 16,
|
|
TRACE_EVENT_FL_DYNAMIC = 32,
|
|
TRACE_EVENT_FL_KPROBE = 64,
|
|
TRACE_EVENT_FL_UPROBE = 128,
|
|
TRACE_EVENT_FL_EPROBE = 256,
|
|
TRACE_EVENT_FL_CUSTOM = 512,
|
|
};
|
|
|
|
enum syscall_work_bit {
|
|
SYSCALL_WORK_BIT_SECCOMP = 0,
|
|
SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1,
|
|
SYSCALL_WORK_BIT_SYSCALL_TRACE = 2,
|
|
SYSCALL_WORK_BIT_SYSCALL_EMU = 3,
|
|
SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4,
|
|
SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5,
|
|
SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6,
|
|
};
|
|
|
|
struct trace_event_raw_sys_enter {
|
|
struct trace_entry ent;
|
|
long id;
|
|
unsigned long args[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sys_exit {
|
|
struct trace_entry ent;
|
|
long id;
|
|
long ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_sys_enter {};
|
|
|
|
struct trace_event_data_offsets_sys_exit {};
|
|
|
|
enum hrtimer_base_type {
|
|
HRTIMER_BASE_MONOTONIC = 0,
|
|
HRTIMER_BASE_REALTIME = 1,
|
|
HRTIMER_BASE_BOOTTIME = 2,
|
|
HRTIMER_BASE_TAI = 3,
|
|
HRTIMER_BASE_MONOTONIC_SOFT = 4,
|
|
HRTIMER_BASE_REALTIME_SOFT = 5,
|
|
HRTIMER_BASE_BOOTTIME_SOFT = 6,
|
|
HRTIMER_BASE_TAI_SOFT = 7,
|
|
HRTIMER_MAX_CLOCK_BASES = 8,
|
|
};
|
|
|
|
enum {
|
|
HI_SOFTIRQ = 0,
|
|
TIMER_SOFTIRQ = 1,
|
|
NET_TX_SOFTIRQ = 2,
|
|
NET_RX_SOFTIRQ = 3,
|
|
BLOCK_SOFTIRQ = 4,
|
|
IRQ_POLL_SOFTIRQ = 5,
|
|
TASKLET_SOFTIRQ = 6,
|
|
SCHED_SOFTIRQ = 7,
|
|
HRTIMER_SOFTIRQ = 8,
|
|
RCU_SOFTIRQ = 9,
|
|
NR_SOFTIRQS = 10,
|
|
};
|
|
|
|
struct hrtimer_sleeper {
|
|
struct hrtimer timer;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
struct softirq_action {
|
|
void (*action)(struct softirq_action *);
|
|
};
|
|
|
|
struct boot_triggers {
|
|
const char *event;
|
|
char *trigger;
|
|
};
|
|
|
|
enum {
|
|
EVENT_FILE_FL_ENABLED_BIT = 0,
|
|
EVENT_FILE_FL_RECORDED_CMD_BIT = 1,
|
|
EVENT_FILE_FL_RECORDED_TGID_BIT = 2,
|
|
EVENT_FILE_FL_FILTERED_BIT = 3,
|
|
EVENT_FILE_FL_NO_SET_FILTER_BIT = 4,
|
|
EVENT_FILE_FL_SOFT_MODE_BIT = 5,
|
|
EVENT_FILE_FL_SOFT_DISABLED_BIT = 6,
|
|
EVENT_FILE_FL_TRIGGER_MODE_BIT = 7,
|
|
EVENT_FILE_FL_TRIGGER_COND_BIT = 8,
|
|
EVENT_FILE_FL_PID_FILTER_BIT = 9,
|
|
EVENT_FILE_FL_WAS_ENABLED_BIT = 10,
|
|
};
|
|
|
|
enum {
|
|
FILTER_OTHER = 0,
|
|
FILTER_STATIC_STRING = 1,
|
|
FILTER_DYN_STRING = 2,
|
|
FILTER_RDYN_STRING = 3,
|
|
FILTER_PTR_STRING = 4,
|
|
FILTER_TRACE_FN = 5,
|
|
FILTER_COMM = 6,
|
|
FILTER_CPU = 7,
|
|
};
|
|
|
|
enum trace_flag_type {
|
|
TRACE_FLAG_IRQS_OFF = 1,
|
|
TRACE_FLAG_IRQS_NOSUPPORT = 2,
|
|
TRACE_FLAG_NEED_RESCHED = 4,
|
|
TRACE_FLAG_HARDIRQ = 8,
|
|
TRACE_FLAG_SOFTIRQ = 16,
|
|
TRACE_FLAG_PREEMPT_RESCHED = 32,
|
|
TRACE_FLAG_NMI = 64,
|
|
TRACE_FLAG_BH_OFF = 128,
|
|
};
|
|
|
|
enum trace_iterator_flags {
|
|
TRACE_ITER_PRINT_PARENT = 1,
|
|
TRACE_ITER_SYM_OFFSET = 2,
|
|
TRACE_ITER_SYM_ADDR = 4,
|
|
TRACE_ITER_VERBOSE = 8,
|
|
TRACE_ITER_RAW = 16,
|
|
TRACE_ITER_HEX = 32,
|
|
TRACE_ITER_BIN = 64,
|
|
TRACE_ITER_BLOCK = 128,
|
|
TRACE_ITER_PRINTK = 256,
|
|
TRACE_ITER_ANNOTATE = 512,
|
|
TRACE_ITER_USERSTACKTRACE = 1024,
|
|
TRACE_ITER_SYM_USEROBJ = 2048,
|
|
TRACE_ITER_PRINTK_MSGONLY = 4096,
|
|
TRACE_ITER_CONTEXT_INFO = 8192,
|
|
TRACE_ITER_LATENCY_FMT = 16384,
|
|
TRACE_ITER_RECORD_CMD = 32768,
|
|
TRACE_ITER_RECORD_TGID = 65536,
|
|
TRACE_ITER_OVERWRITE = 131072,
|
|
TRACE_ITER_STOP_ON_FREE = 262144,
|
|
TRACE_ITER_IRQ_INFO = 524288,
|
|
TRACE_ITER_MARKERS = 1048576,
|
|
TRACE_ITER_EVENT_FORK = 2097152,
|
|
TRACE_ITER_PAUSE_ON_TRACE = 4194304,
|
|
TRACE_ITER_HASH_PTR = 8388608,
|
|
TRACE_ITER_FUNCTION = 16777216,
|
|
TRACE_ITER_FUNC_FORK = 33554432,
|
|
TRACE_ITER_DISPLAY_GRAPH = 67108864,
|
|
TRACE_ITER_STACKTRACE = 134217728,
|
|
};
|
|
|
|
enum {
|
|
FORMAT_HEADER = 1,
|
|
FORMAT_FIELD_SEPERATOR = 2,
|
|
FORMAT_PRINTFMT = 3,
|
|
};
|
|
|
|
struct ftrace_event_field {
|
|
struct list_head link;
|
|
const char *name;
|
|
const char *type;
|
|
int filter_type;
|
|
int offset;
|
|
int size;
|
|
int is_signed;
|
|
int len;
|
|
};
|
|
|
|
struct module_string {
|
|
struct list_head next;
|
|
struct module *module;
|
|
char *str;
|
|
};
|
|
|
|
struct event_probe_data {
|
|
struct trace_event_file *file;
|
|
unsigned long count;
|
|
int ref;
|
|
bool enable;
|
|
};
|
|
|
|
struct ftrace_func_mapper;
|
|
|
|
struct bpf_cgroup_storage_map {
|
|
struct bpf_map map;
|
|
spinlock_t lock;
|
|
struct rb_root root;
|
|
struct list_head list;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_local_storage_data {
|
|
struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct bpf_local_storage_map_bucket;
|
|
|
|
struct bpf_local_storage_map {
|
|
struct bpf_map map;
|
|
struct bpf_local_storage_map_bucket *buckets;
|
|
u32 bucket_log;
|
|
u16 elem_size;
|
|
u16 cache_idx;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_local_storage_map_bucket {
|
|
struct hlist_head list;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
enum {
|
|
BPF_ANY = 0,
|
|
BPF_NOEXIST = 1,
|
|
BPF_EXIST = 2,
|
|
BPF_F_LOCK = 4,
|
|
};
|
|
|
|
enum bpf_cgroup_storage_type {
|
|
BPF_CGROUP_STORAGE_SHARED = 0,
|
|
BPF_CGROUP_STORAGE_PERCPU = 1,
|
|
__BPF_CGROUP_STORAGE_MAX = 2,
|
|
};
|
|
|
|
struct page_vma_mapped_walk {
|
|
unsigned long pfn;
|
|
unsigned long nr_pages;
|
|
unsigned long pgoff;
|
|
struct vm_area_struct *vma;
|
|
unsigned long address;
|
|
pmd_t *pmd;
|
|
pte_t *pte;
|
|
spinlock_t *ptl;
|
|
unsigned int flags;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long val;
|
|
} swp_entry_t;
|
|
|
|
struct hstate {
|
|
struct mutex resize_lock;
|
|
int next_nid_to_alloc;
|
|
int next_nid_to_free;
|
|
unsigned int order;
|
|
unsigned int demote_order;
|
|
unsigned long mask;
|
|
unsigned long max_huge_pages;
|
|
unsigned long nr_huge_pages;
|
|
unsigned long free_huge_pages;
|
|
unsigned long resv_huge_pages;
|
|
unsigned long surplus_huge_pages;
|
|
unsigned long nr_overcommit_huge_pages;
|
|
struct list_head hugepage_activelist;
|
|
struct list_head hugepage_freelists[1];
|
|
unsigned int max_huge_pages_node[1];
|
|
unsigned int nr_huge_pages_node[1];
|
|
unsigned int free_huge_pages_node[1];
|
|
unsigned int surplus_huge_pages_node[1];
|
|
struct cftype cgroup_files_dfl[8];
|
|
struct cftype cgroup_files_legacy[10];
|
|
char name[32];
|
|
};
|
|
|
|
enum ttu_flags {
|
|
TTU_SPLIT_HUGE_PMD = 4,
|
|
TTU_IGNORE_MLOCK = 8,
|
|
TTU_SYNC = 16,
|
|
TTU_IGNORE_HWPOISON = 32,
|
|
TTU_BATCH_FLUSH = 64,
|
|
TTU_RMAP_LOCKED = 128,
|
|
};
|
|
|
|
enum migrate_reason {
|
|
MR_COMPACTION = 0,
|
|
MR_MEMORY_FAILURE = 1,
|
|
MR_MEMORY_HOTPLUG = 2,
|
|
MR_SYSCALL = 3,
|
|
MR_MEMPOLICY_MBIND = 4,
|
|
MR_NUMA_MISPLACED = 5,
|
|
MR_CONTIG_RANGE = 6,
|
|
MR_LONGTERM_PIN = 7,
|
|
MR_DEMOTION = 8,
|
|
MR_TYPES = 9,
|
|
};
|
|
|
|
struct migration_target_control {
|
|
int nid;
|
|
nodemask_t *nmask;
|
|
gfp_t gfp_mask;
|
|
};
|
|
|
|
typedef unsigned int isolate_mode_t;
|
|
|
|
struct movable_operations {
|
|
bool (*isolate_page)(struct page *, isolate_mode_t);
|
|
int (*migrate_page)(struct page *, struct page *, enum migrate_mode);
|
|
void (*putback_page)(struct page *);
|
|
};
|
|
|
|
typedef int rmap_t;
|
|
|
|
struct rmap_walk_control {
|
|
void *arg;
|
|
bool try_lock;
|
|
bool contended;
|
|
bool (*rmap_one)(struct folio *, struct vm_area_struct *, unsigned long, void *);
|
|
int (*done)(struct folio *);
|
|
struct anon_vma * (*anon_lock)(struct folio *, struct rmap_walk_control *);
|
|
bool (*invalid_vma)(struct vm_area_struct *, void *);
|
|
};
|
|
|
|
struct hugepage_subpool;
|
|
|
|
struct hugetlbfs_sb_info {
|
|
long max_inodes;
|
|
long free_inodes;
|
|
spinlock_t stat_lock;
|
|
struct hstate *hstate;
|
|
struct hugepage_subpool *spool;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
};
|
|
|
|
struct hugepage_subpool {
|
|
spinlock_t lock;
|
|
long count;
|
|
long max_hpages;
|
|
long used_hpages;
|
|
struct hstate *hstate;
|
|
long min_hpages;
|
|
long rsv_hpages;
|
|
};
|
|
|
|
typedef struct page *new_page_t(struct page *, unsigned long);
|
|
|
|
typedef void free_page_t(struct page *, unsigned long);
|
|
|
|
struct migrate_pages_stats {
|
|
int nr_succeeded;
|
|
int nr_failed_pages;
|
|
int nr_thp_succeeded;
|
|
int nr_thp_failed;
|
|
int nr_thp_split;
|
|
};
|
|
|
|
struct statfs {
|
|
__kernel_long_t f_type;
|
|
__kernel_long_t f_bsize;
|
|
__kernel_long_t f_blocks;
|
|
__kernel_long_t f_bfree;
|
|
__kernel_long_t f_bavail;
|
|
__kernel_long_t f_files;
|
|
__kernel_long_t f_ffree;
|
|
__kernel_fsid_t f_fsid;
|
|
__kernel_long_t f_namelen;
|
|
__kernel_long_t f_frsize;
|
|
__kernel_long_t f_flags;
|
|
__kernel_long_t f_spare[4];
|
|
};
|
|
|
|
struct statfs64 {
|
|
__kernel_long_t f_type;
|
|
__kernel_long_t f_bsize;
|
|
__u64 f_blocks;
|
|
__u64 f_bfree;
|
|
__u64 f_bavail;
|
|
__u64 f_files;
|
|
__u64 f_ffree;
|
|
__kernel_fsid_t f_fsid;
|
|
__kernel_long_t f_namelen;
|
|
__kernel_long_t f_frsize;
|
|
__kernel_long_t f_flags;
|
|
__kernel_long_t f_spare[4];
|
|
};
|
|
|
|
typedef int __kernel_daddr_t;
|
|
|
|
struct ustat {
|
|
__kernel_daddr_t f_tfree;
|
|
unsigned long f_tinode;
|
|
char f_fname[6];
|
|
char f_fpack[6];
|
|
};
|
|
|
|
typedef __kernel_fsid_t compat_fsid_t;
|
|
|
|
struct compat_statfs {
|
|
int f_type;
|
|
int f_bsize;
|
|
int f_blocks;
|
|
int f_bfree;
|
|
int f_bavail;
|
|
int f_files;
|
|
int f_ffree;
|
|
compat_fsid_t f_fsid;
|
|
int f_namelen;
|
|
int f_frsize;
|
|
int f_flags;
|
|
int f_spare[4];
|
|
};
|
|
|
|
typedef u32 compat_size_t;
|
|
|
|
struct compat_statfs64 {
|
|
__u32 f_type;
|
|
__u32 f_bsize;
|
|
__u64 f_blocks;
|
|
__u64 f_bfree;
|
|
__u64 f_bavail;
|
|
__u64 f_files;
|
|
__u64 f_ffree;
|
|
__kernel_fsid_t f_fsid;
|
|
__u32 f_namelen;
|
|
__u32 f_frsize;
|
|
__u32 f_flags;
|
|
__u32 f_spare[4];
|
|
} __attribute__((packed));
|
|
|
|
typedef s32 compat_daddr_t;
|
|
|
|
typedef u32 compat_ino_t;
|
|
|
|
struct compat_ustat {
|
|
compat_daddr_t f_tfree;
|
|
compat_ino_t f_tinode;
|
|
char f_fname[6];
|
|
char f_fpack[6];
|
|
};
|
|
|
|
typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *);
|
|
|
|
typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int);
|
|
|
|
typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int);
|
|
|
|
typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int);
|
|
|
|
typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int);
|
|
|
|
typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *);
|
|
|
|
typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *);
|
|
|
|
typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *);
|
|
|
|
typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *);
|
|
|
|
typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *);
|
|
|
|
typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *);
|
|
|
|
typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *);
|
|
|
|
struct file_lock_list_struct {
|
|
spinlock_t lock;
|
|
struct hlist_head hlist;
|
|
};
|
|
|
|
struct trace_event_raw_locks_get_lock_context {
|
|
struct trace_entry ent;
|
|
unsigned long i_ino;
|
|
dev_t s_dev;
|
|
unsigned char type;
|
|
struct file_lock_context *ctx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_filelock_lock {
|
|
struct trace_entry ent;
|
|
struct file_lock *fl;
|
|
unsigned long i_ino;
|
|
dev_t s_dev;
|
|
struct file_lock *fl_blocker;
|
|
fl_owner_t fl_owner;
|
|
unsigned int fl_pid;
|
|
unsigned int fl_flags;
|
|
unsigned char fl_type;
|
|
loff_t fl_start;
|
|
loff_t fl_end;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_filelock_lease {
|
|
struct trace_entry ent;
|
|
struct file_lock *fl;
|
|
unsigned long i_ino;
|
|
dev_t s_dev;
|
|
struct file_lock *fl_blocker;
|
|
fl_owner_t fl_owner;
|
|
unsigned int fl_flags;
|
|
unsigned char fl_type;
|
|
unsigned long fl_break_time;
|
|
unsigned long fl_downgrade_time;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_generic_add_lease {
|
|
struct trace_entry ent;
|
|
unsigned long i_ino;
|
|
int wcount;
|
|
int rcount;
|
|
int icount;
|
|
dev_t s_dev;
|
|
fl_owner_t fl_owner;
|
|
unsigned int fl_flags;
|
|
unsigned char fl_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_leases_conflict {
|
|
struct trace_entry ent;
|
|
void *lease;
|
|
void *breaker;
|
|
unsigned int l_fl_flags;
|
|
unsigned int b_fl_flags;
|
|
unsigned char l_fl_type;
|
|
unsigned char b_fl_type;
|
|
bool conflict;
|
|
char __data[0];
|
|
};
|
|
|
|
struct flock {
|
|
short l_type;
|
|
short l_whence;
|
|
__kernel_off_t l_start;
|
|
__kernel_off_t l_len;
|
|
__kernel_pid_t l_pid;
|
|
};
|
|
|
|
struct flock64 {
|
|
short l_type;
|
|
short l_whence;
|
|
__kernel_loff_t l_start;
|
|
__kernel_loff_t l_len;
|
|
__kernel_pid_t l_pid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_locks_get_lock_context {};
|
|
|
|
struct trace_event_data_offsets_filelock_lock {};
|
|
|
|
struct trace_event_data_offsets_filelock_lease {};
|
|
|
|
struct trace_event_data_offsets_generic_add_lease {};
|
|
|
|
struct trace_event_data_offsets_leases_conflict {};
|
|
|
|
struct locks_iterator {
|
|
int li_cpu;
|
|
loff_t li_pos;
|
|
};
|
|
|
|
struct kernfs_root {
|
|
struct kernfs_node *kn;
|
|
unsigned int flags;
|
|
struct idr ino_idr;
|
|
u32 last_id_lowbits;
|
|
u32 id_highbits;
|
|
struct kernfs_syscall_ops *syscall_ops;
|
|
struct list_head supers;
|
|
wait_queue_head_t deactivate_waitq;
|
|
struct rw_semaphore kernfs_rwsem;
|
|
};
|
|
|
|
struct kernfs_iattrs {
|
|
kuid_t ia_uid;
|
|
kgid_t ia_gid;
|
|
struct timespec64 ia_atime;
|
|
struct timespec64 ia_mtime;
|
|
struct timespec64 ia_ctime;
|
|
struct simple_xattrs xattrs;
|
|
atomic_t nr_user_xattrs;
|
|
atomic_t user_xattr_size;
|
|
};
|
|
|
|
enum kernfs_node_flag {
|
|
KERNFS_ACTIVATED = 16,
|
|
KERNFS_NS = 32,
|
|
KERNFS_HAS_SEQ_SHOW = 64,
|
|
KERNFS_HAS_MMAP = 128,
|
|
KERNFS_LOCKDEP = 256,
|
|
KERNFS_HIDDEN = 512,
|
|
KERNFS_SUICIDAL = 1024,
|
|
KERNFS_SUICIDED = 2048,
|
|
KERNFS_EMPTY_DIR = 4096,
|
|
KERNFS_HAS_RELEASE = 8192,
|
|
KERNFS_REMOVING = 16384,
|
|
};
|
|
|
|
enum kernfs_node_type {
|
|
KERNFS_DIR = 1,
|
|
KERNFS_FILE = 2,
|
|
KERNFS_LINK = 4,
|
|
};
|
|
|
|
struct kernfs_super_info {
|
|
struct super_block *sb;
|
|
struct kernfs_root *root;
|
|
const void *ns;
|
|
struct list_head node;
|
|
};
|
|
|
|
enum ext4_li_mode {
|
|
EXT4_LI_MODE_PREFETCH_BBITMAP = 0,
|
|
EXT4_LI_MODE_ITABLE = 1,
|
|
};
|
|
|
|
enum {
|
|
EXT4_STATE_JDATA = 0,
|
|
EXT4_STATE_NEW = 1,
|
|
EXT4_STATE_XATTR = 2,
|
|
EXT4_STATE_NO_EXPAND = 3,
|
|
EXT4_STATE_DA_ALLOC_CLOSE = 4,
|
|
EXT4_STATE_EXT_MIGRATE = 5,
|
|
EXT4_STATE_NEWENTRY = 6,
|
|
EXT4_STATE_MAY_INLINE_DATA = 7,
|
|
EXT4_STATE_EXT_PRECACHED = 8,
|
|
EXT4_STATE_LUSTRE_EA_INODE = 9,
|
|
EXT4_STATE_VERITY_IN_PROGRESS = 10,
|
|
EXT4_STATE_FC_COMMITTING = 11,
|
|
EXT4_STATE_ORPHAN_FILE = 12,
|
|
};
|
|
|
|
struct ext4_extent {
|
|
__le32 ee_block;
|
|
__le16 ee_len;
|
|
__le16 ee_start_hi;
|
|
__le32 ee_start_lo;
|
|
};
|
|
|
|
struct ext4_extent_header {
|
|
__le16 eh_magic;
|
|
__le16 eh_entries;
|
|
__le16 eh_max;
|
|
__le16 eh_depth;
|
|
__le32 eh_generation;
|
|
};
|
|
|
|
struct ext4_extent_idx {
|
|
__le32 ei_block;
|
|
__le32 ei_leaf_lo;
|
|
__le16 ei_leaf_hi;
|
|
__u16 ei_unused;
|
|
};
|
|
|
|
struct ext4_orphan_block;
|
|
|
|
struct ext4_orphan_info {
|
|
int of_blocks;
|
|
__u32 of_csum_seed;
|
|
struct ext4_orphan_block *of_binfo;
|
|
};
|
|
|
|
struct ext4_es_stats {
|
|
unsigned long es_stats_shrunk;
|
|
struct percpu_counter es_stats_cache_hits;
|
|
struct percpu_counter es_stats_cache_misses;
|
|
u64 es_stats_scan_time;
|
|
u64 es_stats_max_scan_time;
|
|
struct percpu_counter es_stats_all_cnt;
|
|
struct percpu_counter es_stats_shk_cnt;
|
|
};
|
|
|
|
struct mb_cache;
|
|
|
|
struct ext4_journal_trigger {
|
|
struct jbd2_buffer_trigger_type tr_triggers;
|
|
struct super_block *sb;
|
|
};
|
|
|
|
struct fscrypt_dummy_policy {};
|
|
|
|
struct ext4_fc_stats {
|
|
unsigned int fc_ineligible_reason_count[10];
|
|
unsigned long fc_num_commits;
|
|
unsigned long fc_ineligible_commits;
|
|
unsigned long fc_failed_commits;
|
|
unsigned long fc_skipped_commits;
|
|
unsigned long fc_numblks;
|
|
u64 s_fc_avg_commit_time;
|
|
};
|
|
|
|
struct ext4_fc_alloc_region;
|
|
|
|
struct ext4_fc_replay_state {
|
|
int fc_replay_num_tags;
|
|
int fc_replay_expected_off;
|
|
int fc_current_pass;
|
|
int fc_cur_tag;
|
|
int fc_crc;
|
|
struct ext4_fc_alloc_region *fc_regions;
|
|
int fc_regions_size;
|
|
int fc_regions_used;
|
|
int fc_regions_valid;
|
|
int *fc_modified_inodes;
|
|
int fc_modified_inodes_used;
|
|
int fc_modified_inodes_size;
|
|
};
|
|
|
|
struct ext4_super_block;
|
|
|
|
struct blockgroup_lock;
|
|
|
|
struct ext4_system_blocks;
|
|
|
|
struct ext4_group_info;
|
|
|
|
struct ext4_locality_group;
|
|
|
|
struct flex_groups;
|
|
|
|
struct ext4_li_request;
|
|
|
|
struct ext4_sb_info {
|
|
unsigned long s_desc_size;
|
|
unsigned long s_inodes_per_block;
|
|
unsigned long s_blocks_per_group;
|
|
unsigned long s_clusters_per_group;
|
|
unsigned long s_inodes_per_group;
|
|
unsigned long s_itb_per_group;
|
|
unsigned long s_gdb_count;
|
|
unsigned long s_desc_per_block;
|
|
ext4_group_t s_groups_count;
|
|
ext4_group_t s_blockfile_groups;
|
|
unsigned long s_overhead;
|
|
unsigned int s_cluster_ratio;
|
|
unsigned int s_cluster_bits;
|
|
loff_t s_bitmap_maxbytes;
|
|
struct buffer_head *s_sbh;
|
|
struct ext4_super_block *s_es;
|
|
struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc;
|
|
unsigned int s_mount_opt;
|
|
unsigned int s_mount_opt2;
|
|
unsigned long s_mount_flags;
|
|
unsigned int s_def_mount_opt;
|
|
ext4_fsblk_t s_sb_block;
|
|
atomic64_t s_resv_clusters;
|
|
kuid_t s_resuid;
|
|
kgid_t s_resgid;
|
|
unsigned short s_mount_state;
|
|
unsigned short s_pad;
|
|
int s_addr_per_block_bits;
|
|
int s_desc_per_block_bits;
|
|
int s_inode_size;
|
|
int s_first_ino;
|
|
unsigned int s_inode_readahead_blks;
|
|
unsigned int s_inode_goal;
|
|
u32 s_hash_seed[4];
|
|
int s_def_hash_version;
|
|
int s_hash_unsigned;
|
|
struct percpu_counter s_freeclusters_counter;
|
|
struct percpu_counter s_freeinodes_counter;
|
|
struct percpu_counter s_dirs_counter;
|
|
struct percpu_counter s_dirtyclusters_counter;
|
|
struct percpu_counter s_sra_exceeded_retry_limit;
|
|
struct blockgroup_lock *s_blockgroup_lock;
|
|
struct proc_dir_entry *s_proc;
|
|
struct kobject s_kobj;
|
|
struct completion s_kobj_unregister;
|
|
struct super_block *s_sb;
|
|
struct buffer_head *s_mmp_bh;
|
|
struct journal_s *s_journal;
|
|
unsigned long s_ext4_flags;
|
|
struct mutex s_orphan_lock;
|
|
struct list_head s_orphan;
|
|
struct ext4_orphan_info s_orphan_info;
|
|
unsigned long s_commit_interval;
|
|
u32 s_max_batch_time;
|
|
u32 s_min_batch_time;
|
|
struct block_device *s_journal_bdev;
|
|
char __attribute__((btf_type_tag("rcu"))) *s_qf_names[3];
|
|
int s_jquota_fmt;
|
|
unsigned int s_want_extra_isize;
|
|
struct ext4_system_blocks __attribute__((btf_type_tag("rcu"))) *s_system_blks;
|
|
struct ext4_group_info ** __attribute__((btf_type_tag("rcu"))) *s_group_info;
|
|
struct inode *s_buddy_cache;
|
|
spinlock_t s_md_lock;
|
|
unsigned short *s_mb_offsets;
|
|
unsigned int *s_mb_maxs;
|
|
unsigned int s_group_info_size;
|
|
unsigned int s_mb_free_pending;
|
|
struct list_head s_freed_data_list;
|
|
struct list_head s_discard_list;
|
|
struct work_struct s_discard_work;
|
|
atomic_t s_retry_alloc_pending;
|
|
struct list_head *s_mb_avg_fragment_size;
|
|
rwlock_t *s_mb_avg_fragment_size_locks;
|
|
struct list_head *s_mb_largest_free_orders;
|
|
rwlock_t *s_mb_largest_free_orders_locks;
|
|
unsigned long s_stripe;
|
|
unsigned int s_mb_max_linear_groups;
|
|
unsigned int s_mb_stream_request;
|
|
unsigned int s_mb_max_to_scan;
|
|
unsigned int s_mb_min_to_scan;
|
|
unsigned int s_mb_stats;
|
|
unsigned int s_mb_order2_reqs;
|
|
unsigned int s_mb_group_prealloc;
|
|
unsigned int s_mb_max_inode_prealloc;
|
|
unsigned int s_max_dir_size_kb;
|
|
unsigned long s_mb_last_group;
|
|
unsigned long s_mb_last_start;
|
|
unsigned int s_mb_prefetch;
|
|
unsigned int s_mb_prefetch_limit;
|
|
atomic_t s_bal_reqs;
|
|
atomic_t s_bal_success;
|
|
atomic_t s_bal_allocated;
|
|
atomic_t s_bal_ex_scanned;
|
|
atomic_t s_bal_groups_scanned;
|
|
atomic_t s_bal_goals;
|
|
atomic_t s_bal_breaks;
|
|
atomic_t s_bal_2orders;
|
|
atomic_t s_bal_cr0_bad_suggestions;
|
|
atomic_t s_bal_cr1_bad_suggestions;
|
|
atomic64_t s_bal_cX_groups_considered[4];
|
|
atomic64_t s_bal_cX_hits[4];
|
|
atomic64_t s_bal_cX_failed[4];
|
|
atomic_t s_mb_buddies_generated;
|
|
atomic64_t s_mb_generation_time;
|
|
atomic_t s_mb_lost_chunks;
|
|
atomic_t s_mb_preallocated;
|
|
atomic_t s_mb_discarded;
|
|
atomic_t s_lock_busy;
|
|
struct ext4_locality_group __attribute__((btf_type_tag("percpu"))) *s_locality_groups;
|
|
unsigned long s_sectors_written_start;
|
|
u64 s_kbytes_written;
|
|
unsigned int s_extent_max_zeroout_kb;
|
|
unsigned int s_log_groups_per_flex;
|
|
struct flex_groups * __attribute__((btf_type_tag("rcu"))) *s_flex_groups;
|
|
ext4_group_t s_flex_groups_allocated;
|
|
struct workqueue_struct *rsv_conversion_wq;
|
|
struct timer_list s_err_report;
|
|
struct ext4_li_request *s_li_request;
|
|
unsigned int s_li_wait_mult;
|
|
struct task_struct *s_mmp_tsk;
|
|
unsigned long s_last_trim_minblks;
|
|
struct crypto_shash *s_chksum_driver;
|
|
__u32 s_csum_seed;
|
|
struct shrinker s_es_shrinker;
|
|
struct list_head s_es_list;
|
|
long s_es_nr_inode;
|
|
struct ext4_es_stats s_es_stats;
|
|
struct mb_cache *s_ea_block_cache;
|
|
struct mb_cache *s_ea_inode_cache;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t s_es_lock;
|
|
struct ext4_journal_trigger s_journal_triggers[1];
|
|
struct ratelimit_state s_err_ratelimit_state;
|
|
struct ratelimit_state s_warning_ratelimit_state;
|
|
struct ratelimit_state s_msg_ratelimit_state;
|
|
atomic_t s_warning_count;
|
|
atomic_t s_msg_count;
|
|
struct fscrypt_dummy_policy s_dummy_enc_policy;
|
|
struct percpu_rw_semaphore s_writepages_rwsem;
|
|
struct dax_device *s_daxdev;
|
|
u64 s_dax_part_off;
|
|
errseq_t s_bdev_wb_err;
|
|
spinlock_t s_bdev_wb_lock;
|
|
spinlock_t s_error_lock;
|
|
int s_add_error_count;
|
|
int s_first_error_code;
|
|
__u32 s_first_error_line;
|
|
__u32 s_first_error_ino;
|
|
__u64 s_first_error_block;
|
|
const char *s_first_error_func;
|
|
time64_t s_first_error_time;
|
|
int s_last_error_code;
|
|
__u32 s_last_error_line;
|
|
__u32 s_last_error_ino;
|
|
__u64 s_last_error_block;
|
|
const char *s_last_error_func;
|
|
time64_t s_last_error_time;
|
|
struct work_struct s_error_work;
|
|
atomic_t s_fc_subtid;
|
|
struct list_head s_fc_q[2];
|
|
struct list_head s_fc_dentry_q[2];
|
|
unsigned int s_fc_bytes;
|
|
spinlock_t s_fc_lock;
|
|
struct buffer_head *s_fc_bh;
|
|
struct ext4_fc_stats s_fc_stats;
|
|
tid_t s_fc_ineligible_tid;
|
|
struct ext4_fc_replay_state s_fc_replay_state;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct ext4_super_block {
|
|
__le32 s_inodes_count;
|
|
__le32 s_blocks_count_lo;
|
|
__le32 s_r_blocks_count_lo;
|
|
__le32 s_free_blocks_count_lo;
|
|
__le32 s_free_inodes_count;
|
|
__le32 s_first_data_block;
|
|
__le32 s_log_block_size;
|
|
__le32 s_log_cluster_size;
|
|
__le32 s_blocks_per_group;
|
|
__le32 s_clusters_per_group;
|
|
__le32 s_inodes_per_group;
|
|
__le32 s_mtime;
|
|
__le32 s_wtime;
|
|
__le16 s_mnt_count;
|
|
__le16 s_max_mnt_count;
|
|
__le16 s_magic;
|
|
__le16 s_state;
|
|
__le16 s_errors;
|
|
__le16 s_minor_rev_level;
|
|
__le32 s_lastcheck;
|
|
__le32 s_checkinterval;
|
|
__le32 s_creator_os;
|
|
__le32 s_rev_level;
|
|
__le16 s_def_resuid;
|
|
__le16 s_def_resgid;
|
|
__le32 s_first_ino;
|
|
__le16 s_inode_size;
|
|
__le16 s_block_group_nr;
|
|
__le32 s_feature_compat;
|
|
__le32 s_feature_incompat;
|
|
__le32 s_feature_ro_compat;
|
|
__u8 s_uuid[16];
|
|
char s_volume_name[16];
|
|
char s_last_mounted[64];
|
|
__le32 s_algorithm_usage_bitmap;
|
|
__u8 s_prealloc_blocks;
|
|
__u8 s_prealloc_dir_blocks;
|
|
__le16 s_reserved_gdt_blocks;
|
|
__u8 s_journal_uuid[16];
|
|
__le32 s_journal_inum;
|
|
__le32 s_journal_dev;
|
|
__le32 s_last_orphan;
|
|
__le32 s_hash_seed[4];
|
|
__u8 s_def_hash_version;
|
|
__u8 s_jnl_backup_type;
|
|
__le16 s_desc_size;
|
|
__le32 s_default_mount_opts;
|
|
__le32 s_first_meta_bg;
|
|
__le32 s_mkfs_time;
|
|
__le32 s_jnl_blocks[17];
|
|
__le32 s_blocks_count_hi;
|
|
__le32 s_r_blocks_count_hi;
|
|
__le32 s_free_blocks_count_hi;
|
|
__le16 s_min_extra_isize;
|
|
__le16 s_want_extra_isize;
|
|
__le32 s_flags;
|
|
__le16 s_raid_stride;
|
|
__le16 s_mmp_update_interval;
|
|
__le64 s_mmp_block;
|
|
__le32 s_raid_stripe_width;
|
|
__u8 s_log_groups_per_flex;
|
|
__u8 s_checksum_type;
|
|
__u8 s_encryption_level;
|
|
__u8 s_reserved_pad;
|
|
__le64 s_kbytes_written;
|
|
__le32 s_snapshot_inum;
|
|
__le32 s_snapshot_id;
|
|
__le64 s_snapshot_r_blocks_count;
|
|
__le32 s_snapshot_list;
|
|
__le32 s_error_count;
|
|
__le32 s_first_error_time;
|
|
__le32 s_first_error_ino;
|
|
__le64 s_first_error_block;
|
|
__u8 s_first_error_func[32];
|
|
__le32 s_first_error_line;
|
|
__le32 s_last_error_time;
|
|
__le32 s_last_error_ino;
|
|
__le32 s_last_error_line;
|
|
__le64 s_last_error_block;
|
|
__u8 s_last_error_func[32];
|
|
__u8 s_mount_opts[64];
|
|
__le32 s_usr_quota_inum;
|
|
__le32 s_grp_quota_inum;
|
|
__le32 s_overhead_clusters;
|
|
__le32 s_backup_bgs[2];
|
|
__u8 s_encrypt_algos[4];
|
|
__u8 s_encrypt_pw_salt[16];
|
|
__le32 s_lpf_ino;
|
|
__le32 s_prj_quota_inum;
|
|
__le32 s_checksum_seed;
|
|
__u8 s_wtime_hi;
|
|
__u8 s_mtime_hi;
|
|
__u8 s_mkfs_time_hi;
|
|
__u8 s_lastcheck_hi;
|
|
__u8 s_first_error_time_hi;
|
|
__u8 s_last_error_time_hi;
|
|
__u8 s_first_error_errcode;
|
|
__u8 s_last_error_errcode;
|
|
__le16 s_encoding;
|
|
__le16 s_encoding_flags;
|
|
__le32 s_orphan_file_inum;
|
|
__le32 s_reserved[94];
|
|
__le32 s_checksum;
|
|
};
|
|
|
|
struct bgl_lock {
|
|
spinlock_t lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct blockgroup_lock {
|
|
struct bgl_lock locks[128];
|
|
};
|
|
|
|
struct ext4_orphan_block {
|
|
atomic_t ob_free_entries;
|
|
struct buffer_head *ob_bh;
|
|
};
|
|
|
|
struct ext4_system_blocks {
|
|
struct rb_root root;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef int ext4_grpblk_t;
|
|
|
|
struct ext4_group_info {
|
|
unsigned long bb_state;
|
|
struct rb_root bb_free_root;
|
|
ext4_grpblk_t bb_first_free;
|
|
ext4_grpblk_t bb_free;
|
|
ext4_grpblk_t bb_fragments;
|
|
int bb_avg_fragment_size_order;
|
|
ext4_grpblk_t bb_largest_free_order;
|
|
ext4_group_t bb_group;
|
|
struct list_head bb_prealloc_list;
|
|
struct rw_semaphore alloc_sem;
|
|
struct list_head bb_avg_fragment_size_node;
|
|
struct list_head bb_largest_free_order_node;
|
|
ext4_grpblk_t bb_counters[0];
|
|
};
|
|
|
|
struct ext4_locality_group {
|
|
struct mutex lg_mutex;
|
|
struct list_head lg_prealloc_list[10];
|
|
spinlock_t lg_prealloc_lock;
|
|
};
|
|
|
|
struct flex_groups {
|
|
atomic64_t free_clusters;
|
|
atomic_t free_inodes;
|
|
atomic_t used_dirs;
|
|
};
|
|
|
|
struct ext4_li_request {
|
|
struct super_block *lr_super;
|
|
enum ext4_li_mode lr_mode;
|
|
ext4_group_t lr_first_not_zeroed;
|
|
ext4_group_t lr_next_group;
|
|
struct list_head lr_request;
|
|
unsigned long lr_next_sched;
|
|
unsigned long lr_timeout;
|
|
};
|
|
|
|
struct ext4_fc_alloc_region {
|
|
ext4_lblk_t lblk;
|
|
ext4_fsblk_t pblk;
|
|
int ino;
|
|
int len;
|
|
};
|
|
|
|
struct migrate_struct {
|
|
ext4_lblk_t first_block;
|
|
ext4_lblk_t last_block;
|
|
ext4_lblk_t curr_block;
|
|
ext4_fsblk_t first_pblock;
|
|
ext4_fsblk_t last_pblock;
|
|
};
|
|
|
|
struct ext4_ext_path {
|
|
ext4_fsblk_t p_block;
|
|
__u16 p_depth;
|
|
__u16 p_maxdepth;
|
|
struct ext4_extent *p_ext;
|
|
struct ext4_extent_idx *p_idx;
|
|
struct ext4_extent_header *p_hdr;
|
|
struct buffer_head *p_bh;
|
|
};
|
|
|
|
struct msdos_dir_entry;
|
|
|
|
struct fat_slot_info {
|
|
loff_t i_pos;
|
|
loff_t slot_off;
|
|
int nr_slots;
|
|
struct msdos_dir_entry *de;
|
|
struct buffer_head *bh;
|
|
};
|
|
|
|
struct msdos_dir_entry {
|
|
__u8 name[11];
|
|
__u8 attr;
|
|
__u8 lcase;
|
|
__u8 ctime_cs;
|
|
__le16 ctime;
|
|
__le16 cdate;
|
|
__le16 adate;
|
|
__le16 starthi;
|
|
__le16 time;
|
|
__le16 date;
|
|
__le16 start;
|
|
__le32 size;
|
|
};
|
|
|
|
struct nfs4_slot {
|
|
struct nfs4_slot_table *table;
|
|
struct nfs4_slot *next;
|
|
unsigned long generation;
|
|
u32 slot_nr;
|
|
u32 seq_nr;
|
|
u32 seq_nr_last_acked;
|
|
u32 seq_nr_highest_sent;
|
|
unsigned int privileged: 1;
|
|
unsigned int seq_done: 1;
|
|
};
|
|
|
|
struct nfs4_slot_table {
|
|
struct nfs4_session *session;
|
|
struct nfs4_slot *slots;
|
|
unsigned long used_slots[16];
|
|
spinlock_t slot_tbl_lock;
|
|
struct rpc_wait_queue slot_tbl_waitq;
|
|
wait_queue_head_t slot_waitq;
|
|
u32 max_slots;
|
|
u32 max_slotid;
|
|
u32 highest_used_slotid;
|
|
u32 target_highest_slotid;
|
|
u32 server_highest_slotid;
|
|
s32 d_target_highest_slotid;
|
|
s32 d2_target_highest_slotid;
|
|
unsigned long generation;
|
|
struct completion complete;
|
|
unsigned long slot_tbl_state;
|
|
};
|
|
|
|
struct nfs4_sessionid {
|
|
unsigned char data[16];
|
|
};
|
|
|
|
struct nfs4_channel_attrs {
|
|
u32 max_rqst_sz;
|
|
u32 max_resp_sz;
|
|
u32 max_resp_sz_cached;
|
|
u32 max_ops;
|
|
u32 max_reqs;
|
|
};
|
|
|
|
struct nfs4_session {
|
|
struct nfs4_sessionid sess_id;
|
|
u32 flags;
|
|
unsigned long session_state;
|
|
u32 hash_alg;
|
|
u32 ssv_len;
|
|
struct nfs4_channel_attrs fc_attrs;
|
|
struct nfs4_slot_table fc_slot_table;
|
|
struct nfs4_channel_attrs bc_attrs;
|
|
struct nfs4_slot_table bc_slot_table;
|
|
struct nfs_client *clp;
|
|
};
|
|
|
|
enum nfs_ftype4 {
|
|
NF4BAD = 0,
|
|
NF4REG = 1,
|
|
NF4DIR = 2,
|
|
NF4BLK = 3,
|
|
NF4CHR = 4,
|
|
NF4LNK = 5,
|
|
NF4SOCK = 6,
|
|
NF4FIFO = 7,
|
|
NF4ATTRDIR = 8,
|
|
NF4NAMEDATTR = 9,
|
|
};
|
|
|
|
enum nfs_opnum4 {
|
|
OP_ACCESS = 3,
|
|
OP_CLOSE = 4,
|
|
OP_COMMIT = 5,
|
|
OP_CREATE = 6,
|
|
OP_DELEGPURGE = 7,
|
|
OP_DELEGRETURN = 8,
|
|
OP_GETATTR = 9,
|
|
OP_GETFH = 10,
|
|
OP_LINK = 11,
|
|
OP_LOCK = 12,
|
|
OP_LOCKT = 13,
|
|
OP_LOCKU = 14,
|
|
OP_LOOKUP = 15,
|
|
OP_LOOKUPP = 16,
|
|
OP_NVERIFY = 17,
|
|
OP_OPEN = 18,
|
|
OP_OPENATTR = 19,
|
|
OP_OPEN_CONFIRM = 20,
|
|
OP_OPEN_DOWNGRADE = 21,
|
|
OP_PUTFH = 22,
|
|
OP_PUTPUBFH = 23,
|
|
OP_PUTROOTFH = 24,
|
|
OP_READ = 25,
|
|
OP_READDIR = 26,
|
|
OP_READLINK = 27,
|
|
OP_REMOVE = 28,
|
|
OP_RENAME = 29,
|
|
OP_RENEW = 30,
|
|
OP_RESTOREFH = 31,
|
|
OP_SAVEFH = 32,
|
|
OP_SECINFO = 33,
|
|
OP_SETATTR = 34,
|
|
OP_SETCLIENTID = 35,
|
|
OP_SETCLIENTID_CONFIRM = 36,
|
|
OP_VERIFY = 37,
|
|
OP_WRITE = 38,
|
|
OP_RELEASE_LOCKOWNER = 39,
|
|
OP_BACKCHANNEL_CTL = 40,
|
|
OP_BIND_CONN_TO_SESSION = 41,
|
|
OP_EXCHANGE_ID = 42,
|
|
OP_CREATE_SESSION = 43,
|
|
OP_DESTROY_SESSION = 44,
|
|
OP_FREE_STATEID = 45,
|
|
OP_GET_DIR_DELEGATION = 46,
|
|
OP_GETDEVICEINFO = 47,
|
|
OP_GETDEVICELIST = 48,
|
|
OP_LAYOUTCOMMIT = 49,
|
|
OP_LAYOUTGET = 50,
|
|
OP_LAYOUTRETURN = 51,
|
|
OP_SECINFO_NO_NAME = 52,
|
|
OP_SEQUENCE = 53,
|
|
OP_SET_SSV = 54,
|
|
OP_TEST_STATEID = 55,
|
|
OP_WANT_DELEGATION = 56,
|
|
OP_DESTROY_CLIENTID = 57,
|
|
OP_RECLAIM_COMPLETE = 58,
|
|
OP_ALLOCATE = 59,
|
|
OP_COPY = 60,
|
|
OP_COPY_NOTIFY = 61,
|
|
OP_DEALLOCATE = 62,
|
|
OP_IO_ADVISE = 63,
|
|
OP_LAYOUTERROR = 64,
|
|
OP_LAYOUTSTATS = 65,
|
|
OP_OFFLOAD_CANCEL = 66,
|
|
OP_OFFLOAD_STATUS = 67,
|
|
OP_READ_PLUS = 68,
|
|
OP_SEEK = 69,
|
|
OP_WRITE_SAME = 70,
|
|
OP_CLONE = 71,
|
|
OP_GETXATTR = 72,
|
|
OP_SETXATTR = 73,
|
|
OP_LISTXATTRS = 74,
|
|
OP_REMOVEXATTR = 75,
|
|
OP_ILLEGAL = 10044,
|
|
};
|
|
|
|
enum nfsstat4 {
|
|
NFS4_OK = 0,
|
|
NFS4ERR_PERM = 1,
|
|
NFS4ERR_NOENT = 2,
|
|
NFS4ERR_IO = 5,
|
|
NFS4ERR_NXIO = 6,
|
|
NFS4ERR_ACCESS = 13,
|
|
NFS4ERR_EXIST = 17,
|
|
NFS4ERR_XDEV = 18,
|
|
NFS4ERR_NOTDIR = 20,
|
|
NFS4ERR_ISDIR = 21,
|
|
NFS4ERR_INVAL = 22,
|
|
NFS4ERR_FBIG = 27,
|
|
NFS4ERR_NOSPC = 28,
|
|
NFS4ERR_ROFS = 30,
|
|
NFS4ERR_MLINK = 31,
|
|
NFS4ERR_NAMETOOLONG = 63,
|
|
NFS4ERR_NOTEMPTY = 66,
|
|
NFS4ERR_DQUOT = 69,
|
|
NFS4ERR_STALE = 70,
|
|
NFS4ERR_BADHANDLE = 10001,
|
|
NFS4ERR_BAD_COOKIE = 10003,
|
|
NFS4ERR_NOTSUPP = 10004,
|
|
NFS4ERR_TOOSMALL = 10005,
|
|
NFS4ERR_SERVERFAULT = 10006,
|
|
NFS4ERR_BADTYPE = 10007,
|
|
NFS4ERR_DELAY = 10008,
|
|
NFS4ERR_SAME = 10009,
|
|
NFS4ERR_DENIED = 10010,
|
|
NFS4ERR_EXPIRED = 10011,
|
|
NFS4ERR_LOCKED = 10012,
|
|
NFS4ERR_GRACE = 10013,
|
|
NFS4ERR_FHEXPIRED = 10014,
|
|
NFS4ERR_SHARE_DENIED = 10015,
|
|
NFS4ERR_WRONGSEC = 10016,
|
|
NFS4ERR_CLID_INUSE = 10017,
|
|
NFS4ERR_RESOURCE = 10018,
|
|
NFS4ERR_MOVED = 10019,
|
|
NFS4ERR_NOFILEHANDLE = 10020,
|
|
NFS4ERR_MINOR_VERS_MISMATCH = 10021,
|
|
NFS4ERR_STALE_CLIENTID = 10022,
|
|
NFS4ERR_STALE_STATEID = 10023,
|
|
NFS4ERR_OLD_STATEID = 10024,
|
|
NFS4ERR_BAD_STATEID = 10025,
|
|
NFS4ERR_BAD_SEQID = 10026,
|
|
NFS4ERR_NOT_SAME = 10027,
|
|
NFS4ERR_LOCK_RANGE = 10028,
|
|
NFS4ERR_SYMLINK = 10029,
|
|
NFS4ERR_RESTOREFH = 10030,
|
|
NFS4ERR_LEASE_MOVED = 10031,
|
|
NFS4ERR_ATTRNOTSUPP = 10032,
|
|
NFS4ERR_NO_GRACE = 10033,
|
|
NFS4ERR_RECLAIM_BAD = 10034,
|
|
NFS4ERR_RECLAIM_CONFLICT = 10035,
|
|
NFS4ERR_BADXDR = 10036,
|
|
NFS4ERR_LOCKS_HELD = 10037,
|
|
NFS4ERR_OPENMODE = 10038,
|
|
NFS4ERR_BADOWNER = 10039,
|
|
NFS4ERR_BADCHAR = 10040,
|
|
NFS4ERR_BADNAME = 10041,
|
|
NFS4ERR_BAD_RANGE = 10042,
|
|
NFS4ERR_LOCK_NOTSUPP = 10043,
|
|
NFS4ERR_OP_ILLEGAL = 10044,
|
|
NFS4ERR_DEADLOCK = 10045,
|
|
NFS4ERR_FILE_OPEN = 10046,
|
|
NFS4ERR_ADMIN_REVOKED = 10047,
|
|
NFS4ERR_CB_PATH_DOWN = 10048,
|
|
NFS4ERR_BADIOMODE = 10049,
|
|
NFS4ERR_BADLAYOUT = 10050,
|
|
NFS4ERR_BAD_SESSION_DIGEST = 10051,
|
|
NFS4ERR_BADSESSION = 10052,
|
|
NFS4ERR_BADSLOT = 10053,
|
|
NFS4ERR_COMPLETE_ALREADY = 10054,
|
|
NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055,
|
|
NFS4ERR_DELEG_ALREADY_WANTED = 10056,
|
|
NFS4ERR_BACK_CHAN_BUSY = 10057,
|
|
NFS4ERR_LAYOUTTRYLATER = 10058,
|
|
NFS4ERR_LAYOUTUNAVAILABLE = 10059,
|
|
NFS4ERR_NOMATCHING_LAYOUT = 10060,
|
|
NFS4ERR_RECALLCONFLICT = 10061,
|
|
NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062,
|
|
NFS4ERR_SEQ_MISORDERED = 10063,
|
|
NFS4ERR_SEQUENCE_POS = 10064,
|
|
NFS4ERR_REQ_TOO_BIG = 10065,
|
|
NFS4ERR_REP_TOO_BIG = 10066,
|
|
NFS4ERR_REP_TOO_BIG_TO_CACHE = 10067,
|
|
NFS4ERR_RETRY_UNCACHED_REP = 10068,
|
|
NFS4ERR_UNSAFE_COMPOUND = 10069,
|
|
NFS4ERR_TOO_MANY_OPS = 10070,
|
|
NFS4ERR_OP_NOT_IN_SESSION = 10071,
|
|
NFS4ERR_HASH_ALG_UNSUPP = 10072,
|
|
NFS4ERR_CLIENTID_BUSY = 10074,
|
|
NFS4ERR_PNFS_IO_HOLE = 10075,
|
|
NFS4ERR_SEQ_FALSE_RETRY = 10076,
|
|
NFS4ERR_BAD_HIGH_SLOT = 10077,
|
|
NFS4ERR_DEADSESSION = 10078,
|
|
NFS4ERR_ENCR_ALG_UNSUPP = 10079,
|
|
NFS4ERR_PNFS_NO_LAYOUT = 10080,
|
|
NFS4ERR_NOT_ONLY_OP = 10081,
|
|
NFS4ERR_WRONG_CRED = 10082,
|
|
NFS4ERR_WRONG_TYPE = 10083,
|
|
NFS4ERR_DIRDELEG_UNAVAIL = 10084,
|
|
NFS4ERR_REJECT_DELEG = 10085,
|
|
NFS4ERR_RETURNCONFLICT = 10086,
|
|
NFS4ERR_DELEG_REVOKED = 10087,
|
|
NFS4ERR_PARTNER_NOTSUPP = 10088,
|
|
NFS4ERR_PARTNER_NO_AUTH = 10089,
|
|
NFS4ERR_UNION_NOTSUPP = 10090,
|
|
NFS4ERR_OFFLOAD_DENIED = 10091,
|
|
NFS4ERR_WRONG_LFS = 10092,
|
|
NFS4ERR_BADLABEL = 10093,
|
|
NFS4ERR_OFFLOAD_NO_REQS = 10094,
|
|
NFS4ERR_NOXATTR = 10095,
|
|
NFS4ERR_XATTR2BIG = 10096,
|
|
};
|
|
|
|
enum open_claim_type4 {
|
|
NFS4_OPEN_CLAIM_NULL = 0,
|
|
NFS4_OPEN_CLAIM_PREVIOUS = 1,
|
|
NFS4_OPEN_CLAIM_DELEGATE_CUR = 2,
|
|
NFS4_OPEN_CLAIM_DELEGATE_PREV = 3,
|
|
NFS4_OPEN_CLAIM_FH = 4,
|
|
NFS4_OPEN_CLAIM_DELEG_CUR_FH = 5,
|
|
NFS4_OPEN_CLAIM_DELEG_PREV_FH = 6,
|
|
};
|
|
|
|
enum createmode4 {
|
|
NFS4_CREATE_UNCHECKED = 0,
|
|
NFS4_CREATE_GUARDED = 1,
|
|
NFS4_CREATE_EXCLUSIVE = 2,
|
|
NFS4_CREATE_EXCLUSIVE4_1 = 3,
|
|
};
|
|
|
|
enum open_delegation_type4 {
|
|
NFS4_OPEN_DELEGATE_NONE = 0,
|
|
NFS4_OPEN_DELEGATE_READ = 1,
|
|
NFS4_OPEN_DELEGATE_WRITE = 2,
|
|
NFS4_OPEN_DELEGATE_NONE_EXT = 3,
|
|
};
|
|
|
|
enum limit_by4 {
|
|
NFS4_LIMIT_SIZE = 1,
|
|
NFS4_LIMIT_BLOCKS = 2,
|
|
};
|
|
|
|
enum why_no_delegation4 {
|
|
WND4_NOT_WANTED = 0,
|
|
WND4_CONTENTION = 1,
|
|
WND4_RESOURCE = 2,
|
|
WND4_NOT_SUPP_FTYPE = 3,
|
|
WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4,
|
|
WND4_NOT_SUPP_UPGRADE = 5,
|
|
WND4_NOT_SUPP_DOWNGRADE = 6,
|
|
WND4_CANCELLED = 7,
|
|
WND4_IS_DIR = 8,
|
|
};
|
|
|
|
enum nfs_stat {
|
|
NFS_OK = 0,
|
|
NFSERR_PERM = 1,
|
|
NFSERR_NOENT = 2,
|
|
NFSERR_IO = 5,
|
|
NFSERR_NXIO = 6,
|
|
NFSERR_EAGAIN = 11,
|
|
NFSERR_ACCES = 13,
|
|
NFSERR_EXIST = 17,
|
|
NFSERR_XDEV = 18,
|
|
NFSERR_NODEV = 19,
|
|
NFSERR_NOTDIR = 20,
|
|
NFSERR_ISDIR = 21,
|
|
NFSERR_INVAL = 22,
|
|
NFSERR_FBIG = 27,
|
|
NFSERR_NOSPC = 28,
|
|
NFSERR_ROFS = 30,
|
|
NFSERR_MLINK = 31,
|
|
NFSERR_OPNOTSUPP = 45,
|
|
NFSERR_NAMETOOLONG = 63,
|
|
NFSERR_NOTEMPTY = 66,
|
|
NFSERR_DQUOT = 69,
|
|
NFSERR_STALE = 70,
|
|
NFSERR_REMOTE = 71,
|
|
NFSERR_WFLUSH = 99,
|
|
NFSERR_BADHANDLE = 10001,
|
|
NFSERR_NOT_SYNC = 10002,
|
|
NFSERR_BAD_COOKIE = 10003,
|
|
NFSERR_NOTSUPP = 10004,
|
|
NFSERR_TOOSMALL = 10005,
|
|
NFSERR_SERVERFAULT = 10006,
|
|
NFSERR_BADTYPE = 10007,
|
|
NFSERR_JUKEBOX = 10008,
|
|
NFSERR_SAME = 10009,
|
|
NFSERR_DENIED = 10010,
|
|
NFSERR_EXPIRED = 10011,
|
|
NFSERR_LOCKED = 10012,
|
|
NFSERR_GRACE = 10013,
|
|
NFSERR_FHEXPIRED = 10014,
|
|
NFSERR_SHARE_DENIED = 10015,
|
|
NFSERR_WRONGSEC = 10016,
|
|
NFSERR_CLID_INUSE = 10017,
|
|
NFSERR_RESOURCE = 10018,
|
|
NFSERR_MOVED = 10019,
|
|
NFSERR_NOFILEHANDLE = 10020,
|
|
NFSERR_MINOR_VERS_MISMATCH = 10021,
|
|
NFSERR_STALE_CLIENTID = 10022,
|
|
NFSERR_STALE_STATEID = 10023,
|
|
NFSERR_OLD_STATEID = 10024,
|
|
NFSERR_BAD_STATEID = 10025,
|
|
NFSERR_BAD_SEQID = 10026,
|
|
NFSERR_NOT_SAME = 10027,
|
|
NFSERR_LOCK_RANGE = 10028,
|
|
NFSERR_SYMLINK = 10029,
|
|
NFSERR_RESTOREFH = 10030,
|
|
NFSERR_LEASE_MOVED = 10031,
|
|
NFSERR_ATTRNOTSUPP = 10032,
|
|
NFSERR_NO_GRACE = 10033,
|
|
NFSERR_RECLAIM_BAD = 10034,
|
|
NFSERR_RECLAIM_CONFLICT = 10035,
|
|
NFSERR_BAD_XDR = 10036,
|
|
NFSERR_LOCKS_HELD = 10037,
|
|
NFSERR_OPENMODE = 10038,
|
|
NFSERR_BADOWNER = 10039,
|
|
NFSERR_BADCHAR = 10040,
|
|
NFSERR_BADNAME = 10041,
|
|
NFSERR_BAD_RANGE = 10042,
|
|
NFSERR_LOCK_NOTSUPP = 10043,
|
|
NFSERR_OP_ILLEGAL = 10044,
|
|
NFSERR_DEADLOCK = 10045,
|
|
NFSERR_FILE_OPEN = 10046,
|
|
NFSERR_ADMIN_REVOKED = 10047,
|
|
NFSERR_CB_PATH_DOWN = 10048,
|
|
};
|
|
|
|
enum lock_type4 {
|
|
NFS4_UNLOCK_LT = 0,
|
|
NFS4_READ_LT = 1,
|
|
NFS4_WRITE_LT = 2,
|
|
NFS4_READW_LT = 3,
|
|
NFS4_WRITEW_LT = 4,
|
|
};
|
|
|
|
enum nfs4_acl_type {
|
|
NFS4ACL_NONE = 0,
|
|
NFS4ACL_ACL = 1,
|
|
NFS4ACL_DACL = 2,
|
|
NFS4ACL_SACL = 3,
|
|
};
|
|
|
|
enum rpc_auth_flavors {
|
|
RPC_AUTH_NULL = 0,
|
|
RPC_AUTH_UNIX = 1,
|
|
RPC_AUTH_SHORT = 2,
|
|
RPC_AUTH_DES = 3,
|
|
RPC_AUTH_KRB = 4,
|
|
RPC_AUTH_GSS = 6,
|
|
RPC_AUTH_TLS = 7,
|
|
RPC_AUTH_MAXFLAVOR = 8,
|
|
RPC_AUTH_GSS_KRB5 = 390003,
|
|
RPC_AUTH_GSS_KRB5I = 390004,
|
|
RPC_AUTH_GSS_KRB5P = 390005,
|
|
RPC_AUTH_GSS_LKEY = 390006,
|
|
RPC_AUTH_GSS_LKEYI = 390007,
|
|
RPC_AUTH_GSS_LKEYP = 390008,
|
|
RPC_AUTH_GSS_SPKM = 390009,
|
|
RPC_AUTH_GSS_SPKMI = 390010,
|
|
RPC_AUTH_GSS_SPKMP = 390011,
|
|
};
|
|
|
|
struct compound_hdr {
|
|
int32_t status;
|
|
uint32_t nops;
|
|
__be32 *nops_p;
|
|
uint32_t taglen;
|
|
char *tag;
|
|
uint32_t replen;
|
|
u32 minorversion;
|
|
};
|
|
|
|
struct nfs_open_confirmargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
nfs4_stateid *stateid;
|
|
struct nfs_seqid *seqid;
|
|
};
|
|
|
|
struct nfs_open_confirmres {
|
|
struct nfs4_sequence_res seq_res;
|
|
nfs4_stateid stateid;
|
|
struct nfs_seqid *seqid;
|
|
};
|
|
|
|
struct nfs4_layoutreturn_args;
|
|
|
|
struct nfs_closeargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
nfs4_stateid stateid;
|
|
struct nfs_seqid *seqid;
|
|
fmode_t fmode;
|
|
u32 share_access;
|
|
const u32 *bitmask;
|
|
u32 bitmask_store[3];
|
|
struct nfs4_layoutreturn_args *lr_args;
|
|
};
|
|
|
|
struct nfs4_xdr_opaque_data;
|
|
|
|
struct nfs4_layoutreturn_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct pnfs_layout_hdr *layout;
|
|
struct inode *inode;
|
|
struct pnfs_layout_range range;
|
|
nfs4_stateid stateid;
|
|
__u32 layout_type;
|
|
struct nfs4_xdr_opaque_data *ld_private;
|
|
};
|
|
|
|
struct nfs4_xdr_opaque_ops;
|
|
|
|
struct nfs4_xdr_opaque_data {
|
|
const struct nfs4_xdr_opaque_ops *ops;
|
|
void *data;
|
|
};
|
|
|
|
struct nfs4_xdr_opaque_ops {
|
|
void (*encode)(struct xdr_stream *, const void *, const struct nfs4_xdr_opaque_data *);
|
|
void (*free)(struct nfs4_xdr_opaque_data *);
|
|
};
|
|
|
|
struct nfs4_layoutreturn_res;
|
|
|
|
struct nfs_closeres {
|
|
struct nfs4_sequence_res seq_res;
|
|
nfs4_stateid stateid;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs_seqid *seqid;
|
|
const struct nfs_server *server;
|
|
struct nfs4_layoutreturn_res *lr_res;
|
|
int lr_ret;
|
|
};
|
|
|
|
struct nfs4_layoutreturn_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
u32 lrs_present;
|
|
nfs4_stateid stateid;
|
|
};
|
|
|
|
struct nfs_setattrargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
nfs4_stateid stateid;
|
|
struct iattr *iap;
|
|
const struct nfs_server *server;
|
|
const u32 *bitmask;
|
|
const struct nfs4_label *label;
|
|
};
|
|
|
|
typedef u64 clientid4;
|
|
|
|
struct nfs4_setclientid {
|
|
const nfs4_verifier *sc_verifier;
|
|
u32 sc_prog;
|
|
unsigned int sc_netid_len;
|
|
char sc_netid[6];
|
|
unsigned int sc_uaddr_len;
|
|
char sc_uaddr[58];
|
|
struct nfs_client *sc_clnt;
|
|
struct rpc_cred *sc_cred;
|
|
};
|
|
|
|
struct nfs4_setclientid_res {
|
|
u64 clientid;
|
|
nfs4_verifier confirm;
|
|
};
|
|
|
|
struct nfs_lowner {
|
|
__u64 clientid;
|
|
__u64 id;
|
|
dev_t s_dev;
|
|
};
|
|
|
|
struct nfs_lock_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
struct file_lock *fl;
|
|
struct nfs_seqid *lock_seqid;
|
|
nfs4_stateid lock_stateid;
|
|
struct nfs_seqid *open_seqid;
|
|
nfs4_stateid open_stateid;
|
|
struct nfs_lowner lock_owner;
|
|
unsigned char block: 1;
|
|
unsigned char reclaim: 1;
|
|
unsigned char new_lock: 1;
|
|
unsigned char new_lock_owner: 1;
|
|
};
|
|
|
|
struct nfs_lock_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
nfs4_stateid stateid;
|
|
struct nfs_seqid *lock_seqid;
|
|
struct nfs_seqid *open_seqid;
|
|
};
|
|
|
|
struct nfs_lockt_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
struct file_lock *fl;
|
|
struct nfs_lowner lock_owner;
|
|
};
|
|
|
|
struct nfs_lockt_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct file_lock *denied;
|
|
};
|
|
|
|
struct nfs_locku_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
struct file_lock *fl;
|
|
struct nfs_seqid *seqid;
|
|
nfs4_stateid stateid;
|
|
};
|
|
|
|
struct nfs_locku_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
nfs4_stateid stateid;
|
|
struct nfs_seqid *seqid;
|
|
};
|
|
|
|
struct nfs4_create_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
u32 ftype;
|
|
union {
|
|
struct {
|
|
struct page **pages;
|
|
unsigned int len;
|
|
} symlink;
|
|
struct {
|
|
u32 specdata1;
|
|
u32 specdata2;
|
|
} device;
|
|
} u;
|
|
const struct qstr *name;
|
|
const struct nfs_server *server;
|
|
const struct iattr *attrs;
|
|
const struct nfs_fh *dir_fh;
|
|
const u32 *bitmask;
|
|
const struct nfs4_label *label;
|
|
umode_t umask;
|
|
};
|
|
|
|
struct nfs4_readlink {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
unsigned int pgbase;
|
|
unsigned int pglen;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct nfs4_readdir_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
u64 cookie;
|
|
nfs4_verifier verifier;
|
|
u32 count;
|
|
struct page **pages;
|
|
unsigned int pgbase;
|
|
const u32 *bitmask;
|
|
bool plus;
|
|
};
|
|
|
|
struct nfs4_readdir_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
nfs4_verifier verifier;
|
|
unsigned int pgbase;
|
|
};
|
|
|
|
struct nfs4_server_caps_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
u32 attr_bitmask[3];
|
|
u32 exclcreat_bitmask[3];
|
|
u32 acl_bitmask;
|
|
u32 has_links;
|
|
u32 has_symlinks;
|
|
u32 fh_expire_type;
|
|
u32 case_insensitive;
|
|
u32 case_preserving;
|
|
};
|
|
|
|
struct nfs_getaclres {
|
|
struct nfs4_sequence_res seq_res;
|
|
enum nfs4_acl_type acl_type;
|
|
size_t acl_len;
|
|
size_t acl_data_offset;
|
|
int acl_flags;
|
|
struct page *acl_scratch;
|
|
};
|
|
|
|
struct nfs_setaclargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
enum nfs4_acl_type acl_type;
|
|
size_t acl_len;
|
|
struct page **acl_pages;
|
|
};
|
|
|
|
struct nfs4_secinfo_flavors;
|
|
|
|
struct nfs4_secinfo_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs4_secinfo_flavors *flavors;
|
|
};
|
|
|
|
struct nfs4_secinfo4 {
|
|
u32 flavor;
|
|
struct rpcsec_gss_info flavor_info;
|
|
};
|
|
|
|
struct nfs4_secinfo_flavors {
|
|
unsigned int num_flavors;
|
|
struct nfs4_secinfo4 flavors[0];
|
|
};
|
|
|
|
struct stateowner_id {
|
|
__u64 create_time;
|
|
__u32 uniquifier;
|
|
};
|
|
|
|
struct nfs4_layoutget_args;
|
|
|
|
struct nfs_openargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
struct nfs_seqid *seqid;
|
|
int open_flags;
|
|
fmode_t fmode;
|
|
u32 share_access;
|
|
u32 access;
|
|
__u64 clientid;
|
|
struct stateowner_id id;
|
|
union {
|
|
struct {
|
|
struct iattr *attrs;
|
|
nfs4_verifier verifier;
|
|
};
|
|
nfs4_stateid delegation;
|
|
fmode_t delegation_type;
|
|
} u;
|
|
const struct qstr *name;
|
|
const struct nfs_server *server;
|
|
const u32 *bitmask;
|
|
const u32 *open_bitmap;
|
|
enum open_claim_type4 claim;
|
|
enum createmode4 createmode;
|
|
const struct nfs4_label *label;
|
|
umode_t umask;
|
|
struct nfs4_layoutget_args *lg_args;
|
|
};
|
|
|
|
struct nfs4_layoutdriver_data {
|
|
struct page **pages;
|
|
__u32 pglen;
|
|
__u32 len;
|
|
};
|
|
|
|
struct nfs4_layoutget_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
__u32 type;
|
|
struct pnfs_layout_range range;
|
|
__u64 minlength;
|
|
__u32 maxcount;
|
|
struct inode *inode;
|
|
struct nfs_open_context *ctx;
|
|
nfs4_stateid stateid;
|
|
struct nfs4_layoutdriver_data layout;
|
|
};
|
|
|
|
struct nfs4_layoutget_res;
|
|
|
|
struct nfs_openres {
|
|
struct nfs4_sequence_res seq_res;
|
|
nfs4_stateid stateid;
|
|
struct nfs_fh fh;
|
|
struct nfs4_change_info cinfo;
|
|
__u32 rflags;
|
|
struct nfs_fattr *f_attr;
|
|
struct nfs_seqid *seqid;
|
|
const struct nfs_server *server;
|
|
fmode_t delegation_type;
|
|
nfs4_stateid delegation;
|
|
unsigned long pagemod_limit;
|
|
__u32 do_recall;
|
|
__u32 attrset[3];
|
|
struct nfs4_string *owner;
|
|
struct nfs4_string *group_owner;
|
|
__u32 access_request;
|
|
__u32 access_supported;
|
|
__u32 access_result;
|
|
struct nfs4_layoutget_res *lg_res;
|
|
};
|
|
|
|
struct nfs4_layoutget_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
int status;
|
|
__u32 return_on_close;
|
|
struct pnfs_layout_range range;
|
|
__u32 type;
|
|
nfs4_stateid stateid;
|
|
struct nfs4_layoutdriver_data *layoutp;
|
|
};
|
|
|
|
struct nfs_setattrres {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_fattr *fattr;
|
|
const struct nfs_server *server;
|
|
};
|
|
|
|
struct nfs4_fsinfo_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_fsinfo_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_fsinfo *fsinfo;
|
|
};
|
|
|
|
struct nfs4_accessargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const u32 *bitmask;
|
|
u32 access;
|
|
};
|
|
|
|
struct nfs4_accessres {
|
|
struct nfs4_sequence_res seq_res;
|
|
const struct nfs_server *server;
|
|
struct nfs_fattr *fattr;
|
|
u32 supported;
|
|
u32 access;
|
|
};
|
|
|
|
struct nfs4_getattr_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_getattr_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
const struct nfs_server *server;
|
|
struct nfs_fattr *fattr;
|
|
};
|
|
|
|
struct nfs4_lookup_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *dir_fh;
|
|
const struct qstr *name;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_lookup_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
const struct nfs_server *server;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs_fh *fh;
|
|
};
|
|
|
|
struct nfs4_lookup_root_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_link_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const struct nfs_fh *dir_fh;
|
|
const struct qstr *name;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_link_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
const struct nfs_server *server;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs4_change_info cinfo;
|
|
struct nfs_fattr *dir_attr;
|
|
};
|
|
|
|
struct nfs4_create_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
const struct nfs_server *server;
|
|
struct nfs_fh *fh;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs4_change_info dir_cinfo;
|
|
};
|
|
|
|
struct nfs4_pathconf_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_pathconf_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_pathconf *pathconf;
|
|
};
|
|
|
|
struct nfs4_statfs_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_statfs_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_fsstat *fsstat;
|
|
};
|
|
|
|
struct nfs4_readlink_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
};
|
|
|
|
struct nfs4_server_caps_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fhandle;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_delegreturnargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fhandle;
|
|
const nfs4_stateid *stateid;
|
|
const u32 *bitmask;
|
|
u32 bitmask_store[3];
|
|
struct nfs4_layoutreturn_args *lr_args;
|
|
};
|
|
|
|
struct nfs4_delegreturnres {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs_server *server;
|
|
struct nfs4_layoutreturn_res *lr_res;
|
|
int lr_ret;
|
|
};
|
|
|
|
struct nfs_getaclargs {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_fh *fh;
|
|
enum nfs4_acl_type acl_type;
|
|
size_t acl_len;
|
|
struct page **acl_pages;
|
|
};
|
|
|
|
struct nfs_setaclres {
|
|
struct nfs4_sequence_res seq_res;
|
|
};
|
|
|
|
struct nfs4_fs_locations_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *dir_fh;
|
|
const struct nfs_fh *fh;
|
|
const struct qstr *name;
|
|
struct page *page;
|
|
const u32 *bitmask;
|
|
clientid4 clientid;
|
|
unsigned char migration: 1;
|
|
unsigned char renew: 1;
|
|
};
|
|
|
|
struct nfs4_fs_locations_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs4_fs_locations *fs_locations;
|
|
unsigned char migration: 1;
|
|
unsigned char renew: 1;
|
|
};
|
|
|
|
struct nfs_release_lockowner_args {
|
|
struct nfs4_sequence_args seq_args;
|
|
struct nfs_lowner lock_owner;
|
|
};
|
|
|
|
struct nfs4_secinfo_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *dir_fh;
|
|
const struct qstr *name;
|
|
};
|
|
|
|
struct nfs4_fsid_present_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
clientid4 clientid;
|
|
unsigned char renew: 1;
|
|
};
|
|
|
|
struct nfs4_fsid_present_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
struct nfs_fh *fh;
|
|
unsigned char renew: 1;
|
|
};
|
|
|
|
struct nfs4_get_lease_time_args {
|
|
struct nfs4_sequence_args la_seq_args;
|
|
};
|
|
|
|
struct nfs4_get_lease_time_res {
|
|
struct nfs4_sequence_res lr_seq_res;
|
|
struct nfs_fsinfo *lr_fsinfo;
|
|
};
|
|
|
|
struct nfs4_lookupp_arg {
|
|
struct nfs4_sequence_args seq_args;
|
|
const struct nfs_fh *fh;
|
|
const u32 *bitmask;
|
|
};
|
|
|
|
struct nfs4_lookupp_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
const struct nfs_server *server;
|
|
struct nfs_fattr *fattr;
|
|
struct nfs_fh *fh;
|
|
};
|
|
|
|
struct netif_security_struct {
|
|
struct net *ns;
|
|
int ifindex;
|
|
u32 sid;
|
|
};
|
|
|
|
struct sel_netif {
|
|
struct list_head list;
|
|
struct netif_security_struct nsec;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct selinux_avc;
|
|
|
|
struct selinux_policy;
|
|
|
|
struct selinux_state {
|
|
bool disabled;
|
|
bool enforcing;
|
|
bool checkreqprot;
|
|
bool initialized;
|
|
bool policycap[8];
|
|
struct page *status_page;
|
|
struct mutex status_lock;
|
|
struct selinux_avc *avc;
|
|
struct selinux_policy __attribute__((btf_type_tag("rcu"))) *policy;
|
|
struct mutex policy_mutex;
|
|
};
|
|
|
|
struct hashtab_node;
|
|
|
|
struct hashtab {
|
|
struct hashtab_node **htable;
|
|
u32 size;
|
|
u32 nel;
|
|
};
|
|
|
|
struct symtab {
|
|
struct hashtab table;
|
|
u32 nprim;
|
|
};
|
|
|
|
struct avtab_node;
|
|
|
|
struct avtab {
|
|
struct avtab_node **htable;
|
|
u32 nel;
|
|
u32 nslot;
|
|
u32 mask;
|
|
};
|
|
|
|
struct ebitmap_node;
|
|
|
|
struct ebitmap {
|
|
struct ebitmap_node *node;
|
|
u32 highbit;
|
|
};
|
|
|
|
struct class_datum;
|
|
|
|
struct role_datum;
|
|
|
|
struct user_datum;
|
|
|
|
struct type_datum;
|
|
|
|
struct cond_bool_datum;
|
|
|
|
struct cond_node;
|
|
|
|
struct role_allow;
|
|
|
|
struct ocontext;
|
|
|
|
struct genfs;
|
|
|
|
struct policydb {
|
|
int mls_enabled;
|
|
struct symtab symtab[8];
|
|
char **sym_val_to_name[8];
|
|
struct class_datum **class_val_to_struct;
|
|
struct role_datum **role_val_to_struct;
|
|
struct user_datum **user_val_to_struct;
|
|
struct type_datum **type_val_to_struct;
|
|
struct avtab te_avtab;
|
|
struct hashtab role_tr;
|
|
struct ebitmap filename_trans_ttypes;
|
|
struct hashtab filename_trans;
|
|
u32 compat_filename_trans_count;
|
|
struct cond_bool_datum **bool_val_to_struct;
|
|
struct avtab te_cond_avtab;
|
|
struct cond_node *cond_list;
|
|
u32 cond_list_len;
|
|
struct role_allow *role_allow;
|
|
struct ocontext *ocontexts[9];
|
|
struct genfs *genfs;
|
|
struct hashtab range_tr;
|
|
struct ebitmap *type_attr_map_array;
|
|
struct ebitmap policycaps;
|
|
struct ebitmap permissive_map;
|
|
size_t len;
|
|
unsigned int policyvers;
|
|
unsigned int reject_unknown: 1;
|
|
unsigned int allow_unknown: 1;
|
|
u16 process_class;
|
|
u32 process_trans_perms;
|
|
};
|
|
|
|
struct selinux_mapping;
|
|
|
|
struct selinux_map {
|
|
struct selinux_mapping *mapping;
|
|
u16 size;
|
|
};
|
|
|
|
struct sidtab;
|
|
|
|
struct selinux_policy {
|
|
struct sidtab *sidtab;
|
|
struct policydb policydb;
|
|
struct selinux_map map;
|
|
u32 latest_granting;
|
|
};
|
|
|
|
enum elv_merge {
|
|
ELEVATOR_NO_MERGE = 0,
|
|
ELEVATOR_FRONT_MERGE = 1,
|
|
ELEVATOR_BACK_MERGE = 2,
|
|
ELEVATOR_DISCARD_MERGE = 3,
|
|
};
|
|
|
|
struct elevator_type;
|
|
|
|
struct blk_mq_alloc_data;
|
|
|
|
struct elevator_mq_ops {
|
|
int (*init_sched)(struct request_queue *, struct elevator_type *);
|
|
void (*exit_sched)(struct elevator_queue *);
|
|
int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int);
|
|
void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
|
|
void (*depth_updated)(struct blk_mq_hw_ctx *);
|
|
bool (*allow_merge)(struct request_queue *, struct request *, struct bio *);
|
|
bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int);
|
|
int (*request_merge)(struct request_queue *, struct request **, struct bio *);
|
|
void (*request_merged)(struct request_queue *, struct request *, enum elv_merge);
|
|
void (*requests_merged)(struct request_queue *, struct request *, struct request *);
|
|
void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *);
|
|
void (*prepare_request)(struct request *);
|
|
void (*finish_request)(struct request *);
|
|
void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, bool);
|
|
struct request * (*dispatch_request)(struct blk_mq_hw_ctx *);
|
|
bool (*has_work)(struct blk_mq_hw_ctx *);
|
|
void (*completed_request)(struct request *, u64);
|
|
void (*requeue_request)(struct request *);
|
|
struct request * (*former_request)(struct request_queue *, struct request *);
|
|
struct request * (*next_request)(struct request_queue *, struct request *);
|
|
void (*init_icq)(struct io_cq *);
|
|
void (*exit_icq)(struct io_cq *);
|
|
};
|
|
|
|
struct elv_fs_entry;
|
|
|
|
struct elevator_type {
|
|
struct kmem_cache *icq_cache;
|
|
struct elevator_mq_ops ops;
|
|
size_t icq_size;
|
|
size_t icq_align;
|
|
struct elv_fs_entry *elevator_attrs;
|
|
const char *elevator_name;
|
|
const char *elevator_alias;
|
|
const unsigned int elevator_features;
|
|
struct module *elevator_owner;
|
|
const struct blk_mq_debugfs_attr *queue_debugfs_attrs;
|
|
const struct blk_mq_debugfs_attr *hctx_debugfs_attrs;
|
|
char icq_cache_name[22];
|
|
struct list_head list;
|
|
};
|
|
|
|
struct elevator_queue {
|
|
struct elevator_type *type;
|
|
void *elevator_data;
|
|
struct kobject kobj;
|
|
struct mutex sysfs_lock;
|
|
unsigned long flags;
|
|
struct hlist_head hash[64];
|
|
};
|
|
|
|
struct blk_mq_alloc_data {
|
|
struct request_queue *q;
|
|
blk_mq_req_flags_t flags;
|
|
unsigned int shallow_depth;
|
|
blk_opf_t cmd_flags;
|
|
req_flags_t rq_flags;
|
|
unsigned int nr_tags;
|
|
struct request **cached_rq;
|
|
struct blk_mq_ctx *ctx;
|
|
struct blk_mq_hw_ctx *hctx;
|
|
};
|
|
|
|
struct elv_fs_entry {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct elevator_queue *, char *);
|
|
ssize_t (*store)(struct elevator_queue *, const char *, size_t);
|
|
};
|
|
|
|
enum dd_prio {
|
|
DD_RT_PRIO = 0,
|
|
DD_BE_PRIO = 1,
|
|
DD_IDLE_PRIO = 2,
|
|
DD_PRIO_MAX = 2,
|
|
};
|
|
|
|
enum dd_data_dir {
|
|
DD_READ = 0,
|
|
DD_WRITE = 1,
|
|
};
|
|
|
|
struct io_stats_per_prio {
|
|
uint32_t inserted;
|
|
uint32_t merged;
|
|
uint32_t dispatched;
|
|
atomic_t completed;
|
|
};
|
|
|
|
struct dd_per_prio {
|
|
struct list_head dispatch;
|
|
struct rb_root sort_list[2];
|
|
struct list_head fifo_list[2];
|
|
struct request *next_rq[2];
|
|
struct io_stats_per_prio stats;
|
|
};
|
|
|
|
struct deadline_data {
|
|
struct dd_per_prio per_prio[3];
|
|
enum dd_data_dir last_dir;
|
|
unsigned int batching;
|
|
unsigned int starved;
|
|
int fifo_expire[2];
|
|
int fifo_batch;
|
|
int writes_starved;
|
|
int front_merges;
|
|
u32 async_depth;
|
|
int prio_aging_expire;
|
|
spinlock_t lock;
|
|
spinlock_t zone_lock;
|
|
};
|
|
|
|
enum {
|
|
IORING_RSRC_FILE = 0,
|
|
IORING_RSRC_BUFFER = 1,
|
|
};
|
|
|
|
enum {
|
|
REQ_F_FIXED_FILE = 1,
|
|
REQ_F_IO_DRAIN = 2,
|
|
REQ_F_LINK = 4,
|
|
REQ_F_HARDLINK = 8,
|
|
REQ_F_FORCE_ASYNC = 16,
|
|
REQ_F_BUFFER_SELECT = 32,
|
|
REQ_F_CQE_SKIP = 64,
|
|
REQ_F_FAIL = 256,
|
|
REQ_F_INFLIGHT = 512,
|
|
REQ_F_CUR_POS = 1024,
|
|
REQ_F_NOWAIT = 2048,
|
|
REQ_F_LINK_TIMEOUT = 4096,
|
|
REQ_F_NEED_CLEANUP = 8192,
|
|
REQ_F_POLLED = 16384,
|
|
REQ_F_BUFFER_SELECTED = 32768,
|
|
REQ_F_BUFFER_RING = 65536,
|
|
REQ_F_REISSUE = 131072,
|
|
REQ_F_SUPPORT_NOWAIT = 1073741824,
|
|
REQ_F_ISREG = 2147483648,
|
|
REQ_F_CREDS = 262144,
|
|
REQ_F_REFCOUNT = 524288,
|
|
REQ_F_ARM_LTIMEOUT = 1048576,
|
|
REQ_F_ASYNC_DATA = 2097152,
|
|
REQ_F_SKIP_LINK_CQES = 4194304,
|
|
REQ_F_SINGLE_POLL = 8388608,
|
|
REQ_F_DOUBLE_POLL = 16777216,
|
|
REQ_F_PARTIAL_IO = 33554432,
|
|
REQ_F_APOLL_MULTISHOT = 134217728,
|
|
REQ_F_CQE32_INIT = 67108864,
|
|
REQ_F_CLEAR_POLLIN = 268435456,
|
|
REQ_F_HASH_LOCKED = 536870912,
|
|
};
|
|
|
|
enum {
|
|
IOU_OK = 0,
|
|
IOU_ISSUE_SKIP_COMPLETE = -529,
|
|
IOU_STOP_MULTISHOT = -125,
|
|
};
|
|
|
|
enum {
|
|
FOLL_WRITE = 1,
|
|
FOLL_GET = 2,
|
|
FOLL_DUMP = 4,
|
|
FOLL_FORCE = 8,
|
|
FOLL_NOWAIT = 16,
|
|
FOLL_NOFAULT = 32,
|
|
FOLL_HWPOISON = 64,
|
|
FOLL_ANON = 128,
|
|
FOLL_LONGTERM = 256,
|
|
FOLL_SPLIT_PMD = 512,
|
|
FOLL_PCI_P2PDMA = 1024,
|
|
FOLL_INTERRUPTIBLE = 2048,
|
|
};
|
|
|
|
enum io_uring_cmd_flags {
|
|
IO_URING_F_COMPLETE_DEFER = 1,
|
|
IO_URING_F_UNLOCKED = 2,
|
|
IO_URING_F_MULTISHOT = 4,
|
|
IO_URING_F_IOWQ = 8,
|
|
IO_URING_F_NONBLOCK = -2147483648,
|
|
IO_URING_F_SQE128 = 256,
|
|
IO_URING_F_CQE32 = 512,
|
|
IO_URING_F_IOPOLL = 1024,
|
|
};
|
|
|
|
struct io_rsrc_update {
|
|
struct file *file;
|
|
u64 arg;
|
|
u32 nr_args;
|
|
u32 offset;
|
|
};
|
|
|
|
struct scm_fp_list;
|
|
|
|
struct unix_skb_parms {
|
|
struct pid *pid;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
struct scm_fp_list *fp;
|
|
u32 secid;
|
|
u32 consumed;
|
|
};
|
|
|
|
struct scm_fp_list {
|
|
short count;
|
|
short max;
|
|
struct user_struct *user;
|
|
struct file *fp[253];
|
|
};
|
|
|
|
struct compat_iovec {
|
|
compat_uptr_t iov_base;
|
|
compat_size_t iov_len;
|
|
};
|
|
|
|
struct io_uring_rsrc_update2 {
|
|
__u32 offset;
|
|
__u32 resv;
|
|
__u64 data;
|
|
__u64 tags;
|
|
__u32 nr;
|
|
__u32 resv2;
|
|
};
|
|
|
|
struct io_uring_rsrc_register {
|
|
__u32 nr;
|
|
__u32 flags;
|
|
__u64 resv2;
|
|
__u64 data;
|
|
__u64 tags;
|
|
};
|
|
|
|
enum con_scroll {
|
|
SM_UP = 0,
|
|
SM_DOWN = 1,
|
|
};
|
|
|
|
enum vc_intensity {
|
|
VCI_HALF_BRIGHT = 0,
|
|
VCI_NORMAL = 1,
|
|
VCI_BOLD = 2,
|
|
VCI_MASK = 3,
|
|
};
|
|
|
|
struct vc_data;
|
|
|
|
struct console_font;
|
|
|
|
struct consw {
|
|
struct module *owner;
|
|
const char * (*con_startup)();
|
|
void (*con_init)(struct vc_data *, int);
|
|
void (*con_deinit)(struct vc_data *);
|
|
void (*con_clear)(struct vc_data *, int, int, int, int);
|
|
void (*con_putc)(struct vc_data *, int, int, int);
|
|
void (*con_putcs)(struct vc_data *, const unsigned short *, int, int, int);
|
|
void (*con_cursor)(struct vc_data *, int);
|
|
bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int);
|
|
int (*con_switch)(struct vc_data *);
|
|
int (*con_blank)(struct vc_data *, int, int);
|
|
int (*con_font_set)(struct vc_data *, struct console_font *, unsigned int, unsigned int);
|
|
int (*con_font_get)(struct vc_data *, struct console_font *, unsigned int);
|
|
int (*con_font_default)(struct vc_data *, struct console_font *, char *);
|
|
int (*con_resize)(struct vc_data *, unsigned int, unsigned int, unsigned int);
|
|
void (*con_set_palette)(struct vc_data *, const unsigned char *);
|
|
void (*con_scrolldelta)(struct vc_data *, int);
|
|
int (*con_set_origin)(struct vc_data *);
|
|
void (*con_save_screen)(struct vc_data *);
|
|
u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool);
|
|
void (*con_invert_region)(struct vc_data *, u16 *, int);
|
|
u16 * (*con_screen_pos)(const struct vc_data *, int);
|
|
unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
|
|
void (*con_flush_scrollback)(struct vc_data *);
|
|
int (*con_debug_enter)(struct vc_data *);
|
|
int (*con_debug_leave)(struct vc_data *);
|
|
};
|
|
|
|
struct vc_state {
|
|
unsigned int x;
|
|
unsigned int y;
|
|
unsigned char color;
|
|
unsigned char Gx_charset[2];
|
|
unsigned int charset: 1;
|
|
enum vc_intensity intensity;
|
|
bool italic;
|
|
bool underline;
|
|
bool blink;
|
|
bool reverse;
|
|
};
|
|
|
|
struct console_font {
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned int charcount;
|
|
unsigned char *data;
|
|
};
|
|
|
|
struct vt_mode {
|
|
char mode;
|
|
char waitv;
|
|
short relsig;
|
|
short acqsig;
|
|
short frsig;
|
|
};
|
|
|
|
struct uni_pagedict;
|
|
|
|
struct vc_data {
|
|
struct tty_port port;
|
|
struct vc_state state;
|
|
struct vc_state saved_state;
|
|
unsigned short vc_num;
|
|
unsigned int vc_cols;
|
|
unsigned int vc_rows;
|
|
unsigned int vc_size_row;
|
|
unsigned int vc_scan_lines;
|
|
unsigned int vc_cell_height;
|
|
unsigned long vc_origin;
|
|
unsigned long vc_scr_end;
|
|
unsigned long vc_visible_origin;
|
|
unsigned int vc_top;
|
|
unsigned int vc_bottom;
|
|
const struct consw *vc_sw;
|
|
unsigned short *vc_screenbuf;
|
|
unsigned int vc_screenbuf_size;
|
|
unsigned char vc_mode;
|
|
unsigned char vc_attr;
|
|
unsigned char vc_def_color;
|
|
unsigned char vc_ulcolor;
|
|
unsigned char vc_itcolor;
|
|
unsigned char vc_halfcolor;
|
|
unsigned int vc_cursor_type;
|
|
unsigned short vc_complement_mask;
|
|
unsigned short vc_s_complement_mask;
|
|
unsigned long vc_pos;
|
|
unsigned short vc_hi_font_mask;
|
|
struct console_font vc_font;
|
|
unsigned short vc_video_erase_char;
|
|
unsigned int vc_state;
|
|
unsigned int vc_npar;
|
|
unsigned int vc_par[16];
|
|
struct vt_mode vt_mode;
|
|
struct pid *vt_pid;
|
|
int vt_newvt;
|
|
wait_queue_head_t paste_wait;
|
|
unsigned int vc_disp_ctrl: 1;
|
|
unsigned int vc_toggle_meta: 1;
|
|
unsigned int vc_decscnm: 1;
|
|
unsigned int vc_decom: 1;
|
|
unsigned int vc_decawm: 1;
|
|
unsigned int vc_deccm: 1;
|
|
unsigned int vc_decim: 1;
|
|
unsigned int vc_priv: 3;
|
|
unsigned int vc_need_wrap: 1;
|
|
unsigned int vc_can_do_color: 1;
|
|
unsigned int vc_report_mouse: 2;
|
|
unsigned char vc_utf: 1;
|
|
unsigned char vc_utf_count;
|
|
int vc_utf_char;
|
|
unsigned long vc_tab_stop[4];
|
|
unsigned char vc_palette[48];
|
|
unsigned short *vc_translate;
|
|
unsigned int vc_resize_user;
|
|
unsigned int vc_bell_pitch;
|
|
unsigned int vc_bell_duration;
|
|
unsigned short vc_cur_blink_ms;
|
|
struct vc_data **vc_display_fg;
|
|
struct uni_pagedict *uni_pagedict;
|
|
struct uni_pagedict **uni_pagedict_loc;
|
|
u32 **vc_uni_lines;
|
|
};
|
|
|
|
typedef u32 phys_cpuid_t;
|
|
|
|
struct acpi_processor_flags {
|
|
u8 power: 1;
|
|
u8 performance: 1;
|
|
u8 throttling: 1;
|
|
u8 limit: 1;
|
|
u8 bm_control: 1;
|
|
u8 bm_check: 1;
|
|
u8 has_cst: 1;
|
|
u8 has_lpi: 1;
|
|
u8 power_setup_done: 1;
|
|
u8 bm_rld_set: 1;
|
|
u8 need_hotplug_init: 1;
|
|
};
|
|
|
|
struct acpi_processor_cx {
|
|
u8 valid;
|
|
u8 type;
|
|
u32 address;
|
|
u8 entry_method;
|
|
u8 index;
|
|
u32 latency;
|
|
u8 bm_sts_skip;
|
|
char desc[32];
|
|
};
|
|
|
|
struct acpi_lpi_state {
|
|
u32 min_residency;
|
|
u32 wake_latency;
|
|
u32 flags;
|
|
u32 arch_flags;
|
|
u32 res_cnt_freq;
|
|
u32 enable_parent_state;
|
|
u64 address;
|
|
u8 index;
|
|
u8 entry_method;
|
|
char desc[32];
|
|
};
|
|
|
|
struct acpi_processor_power {
|
|
int count;
|
|
union {
|
|
struct acpi_processor_cx states[8];
|
|
struct acpi_lpi_state lpi_states[8];
|
|
};
|
|
int timer_broadcast_on_state;
|
|
};
|
|
|
|
struct acpi_pct_register {
|
|
u8 descriptor;
|
|
u16 length;
|
|
u8 space_id;
|
|
u8 bit_width;
|
|
u8 bit_offset;
|
|
u8 reserved;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_tsd_package {
|
|
u64 num_entries;
|
|
u64 revision;
|
|
u64 domain;
|
|
u64 coord_type;
|
|
u64 num_processors;
|
|
};
|
|
|
|
struct acpi_processor_tx {
|
|
u16 power;
|
|
u16 performance;
|
|
};
|
|
|
|
struct acpi_processor_tx_tss;
|
|
|
|
struct acpi_processor;
|
|
|
|
struct acpi_processor_throttling {
|
|
unsigned int state;
|
|
unsigned int platform_limit;
|
|
struct acpi_pct_register control_register;
|
|
struct acpi_pct_register status_register;
|
|
short: 16;
|
|
unsigned int state_count;
|
|
int: 32;
|
|
struct acpi_processor_tx_tss *states_tss;
|
|
struct acpi_tsd_package domain_info;
|
|
cpumask_var_t shared_cpu_map;
|
|
int (*acpi_processor_get_throttling)(struct acpi_processor *);
|
|
int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool);
|
|
u32 address;
|
|
u8 duty_offset;
|
|
u8 duty_width;
|
|
u8 tsd_valid_flag;
|
|
char: 8;
|
|
unsigned int shared_type;
|
|
struct acpi_processor_tx states[16];
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_processor_lx {
|
|
int px;
|
|
int tx;
|
|
};
|
|
|
|
struct acpi_processor_limit {
|
|
struct acpi_processor_lx state;
|
|
struct acpi_processor_lx thermal;
|
|
struct acpi_processor_lx user;
|
|
};
|
|
|
|
struct acpi_processor_performance;
|
|
|
|
struct acpi_processor {
|
|
acpi_handle handle;
|
|
u32 acpi_id;
|
|
phys_cpuid_t phys_id;
|
|
u32 id;
|
|
u32 pblk;
|
|
int performance_platform_limit;
|
|
int throttling_platform_limit;
|
|
struct acpi_processor_flags flags;
|
|
struct acpi_processor_power power;
|
|
struct acpi_processor_performance *performance;
|
|
struct acpi_processor_throttling throttling;
|
|
struct acpi_processor_limit limit;
|
|
struct thermal_cooling_device *cdev;
|
|
struct device *dev;
|
|
struct freq_qos_request perflib_req;
|
|
struct freq_qos_request thermal_req;
|
|
};
|
|
|
|
struct acpi_psd_package {
|
|
u64 num_entries;
|
|
u64 revision;
|
|
u64 domain;
|
|
u64 coord_type;
|
|
u64 num_processors;
|
|
};
|
|
|
|
struct acpi_processor_px;
|
|
|
|
struct acpi_processor_performance {
|
|
unsigned int state;
|
|
unsigned int platform_limit;
|
|
struct acpi_pct_register control_register;
|
|
struct acpi_pct_register status_register;
|
|
short: 16;
|
|
unsigned int state_count;
|
|
int: 32;
|
|
struct acpi_processor_px *states;
|
|
struct acpi_psd_package domain_info;
|
|
cpumask_var_t shared_cpu_map;
|
|
unsigned int shared_type;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_processor_px {
|
|
u64 core_frequency;
|
|
u64 power;
|
|
u64 transition_latency;
|
|
u64 bus_master_latency;
|
|
u64 control;
|
|
u64 status;
|
|
};
|
|
|
|
struct acpi_processor_tx_tss {
|
|
u64 freqpercentage;
|
|
u64 power;
|
|
u64 transition_latency;
|
|
u64 control;
|
|
u64 status;
|
|
};
|
|
|
|
struct throttling_tstate {
|
|
unsigned int cpu;
|
|
int target_state;
|
|
};
|
|
|
|
struct acpi_processor_throttling_arg {
|
|
struct acpi_processor *pr;
|
|
int target_state;
|
|
bool force;
|
|
};
|
|
|
|
enum cons_flags {
|
|
CON_PRINTBUFFER = 1,
|
|
CON_CONSDEV = 2,
|
|
CON_ENABLED = 4,
|
|
CON_BOOT = 8,
|
|
CON_ANYTIME = 16,
|
|
CON_BRL = 32,
|
|
CON_EXTENDED = 64,
|
|
};
|
|
|
|
struct tty_file_private {
|
|
struct tty_struct *tty;
|
|
struct file *file;
|
|
struct list_head list;
|
|
};
|
|
|
|
typedef s32 compat_int_t;
|
|
|
|
typedef u32 compat_uint_t;
|
|
|
|
struct serial_struct32 {
|
|
compat_int_t type;
|
|
compat_int_t line;
|
|
compat_uint_t port;
|
|
compat_int_t irq;
|
|
compat_int_t flags;
|
|
compat_int_t xmit_fifo_size;
|
|
compat_int_t custom_divisor;
|
|
compat_int_t baud_base;
|
|
unsigned short close_delay;
|
|
char io_type;
|
|
char reserved_char;
|
|
compat_int_t hub6;
|
|
unsigned short closing_wait;
|
|
unsigned short closing_wait2;
|
|
compat_uint_t iomem_base;
|
|
unsigned short iomem_reg_shift;
|
|
unsigned int port_high;
|
|
compat_int_t reserved;
|
|
};
|
|
|
|
struct nvram_ops {
|
|
ssize_t (*get_size)();
|
|
unsigned char (*read_byte)(int);
|
|
void (*write_byte)(unsigned char, int);
|
|
ssize_t (*read)(char *, size_t, loff_t *);
|
|
ssize_t (*write)(char *, size_t, loff_t *);
|
|
long (*initialize)();
|
|
long (*set_checksum)();
|
|
};
|
|
|
|
struct tpm_pcr_attr {
|
|
int alg_id;
|
|
int pcr;
|
|
struct device_attribute attr;
|
|
};
|
|
|
|
enum tpm_chip_flags {
|
|
TPM_CHIP_FLAG_TPM2 = 2,
|
|
TPM_CHIP_FLAG_IRQ = 4,
|
|
TPM_CHIP_FLAG_VIRTUAL = 8,
|
|
TPM_CHIP_FLAG_HAVE_TIMEOUTS = 16,
|
|
TPM_CHIP_FLAG_ALWAYS_POWERED = 32,
|
|
TPM_CHIP_FLAG_FIRMWARE_POWER_MANAGED = 64,
|
|
TPM_CHIP_FLAG_FIRMWARE_UPGRADE = 128,
|
|
};
|
|
|
|
enum tpm_algorithms {
|
|
TPM_ALG_ERROR = 0,
|
|
TPM_ALG_SHA1 = 4,
|
|
TPM_ALG_KEYEDHASH = 8,
|
|
TPM_ALG_SHA256 = 11,
|
|
TPM_ALG_SHA384 = 12,
|
|
TPM_ALG_SHA512 = 13,
|
|
TPM_ALG_NULL = 16,
|
|
TPM_ALG_SM3_256 = 18,
|
|
};
|
|
|
|
enum tpm_buf_flags {
|
|
TPM_BUF_OVERFLOW = 1,
|
|
};
|
|
|
|
enum tpm_sub_capabilities {
|
|
TPM_CAP_PROP_PCR = 257,
|
|
TPM_CAP_PROP_MANUFACTURER = 259,
|
|
TPM_CAP_FLAG_PERM = 264,
|
|
TPM_CAP_FLAG_VOL = 265,
|
|
TPM_CAP_PROP_OWNER = 273,
|
|
TPM_CAP_PROP_TIS_TIMEOUT = 277,
|
|
TPM_CAP_PROP_TIS_DURATION = 288,
|
|
};
|
|
|
|
enum tpm_capabilities {
|
|
TPM_CAP_FLAG = 4,
|
|
TPM_CAP_PROP = 5,
|
|
TPM_CAP_VERSION_1_1 = 6,
|
|
TPM_CAP_VERSION_1_2 = 26,
|
|
};
|
|
|
|
enum tpm_duration {
|
|
TPM_SHORT = 0,
|
|
TPM_MEDIUM = 1,
|
|
TPM_LONG = 2,
|
|
TPM_LONG_LONG = 3,
|
|
TPM_UNDEFINED = 4,
|
|
TPM_NUM_DURATIONS = 4,
|
|
};
|
|
|
|
struct tpm_bios_log {
|
|
void *bios_event_log;
|
|
void *bios_event_log_end;
|
|
};
|
|
|
|
struct tpm_chip;
|
|
|
|
struct tpm_chip_seqops {
|
|
struct tpm_chip *chip;
|
|
const struct seq_operations *seqops;
|
|
};
|
|
|
|
struct hwrng {
|
|
const char *name;
|
|
int (*init)(struct hwrng *);
|
|
void (*cleanup)(struct hwrng *);
|
|
int (*data_present)(struct hwrng *, int);
|
|
int (*data_read)(struct hwrng *, u32 *);
|
|
int (*read)(struct hwrng *, void *, size_t, bool);
|
|
unsigned long priv;
|
|
unsigned short quality;
|
|
struct list_head list;
|
|
struct kref ref;
|
|
struct completion cleanup_done;
|
|
struct completion dying;
|
|
};
|
|
|
|
struct tpm_space {
|
|
u32 context_tbl[3];
|
|
u8 *context_buf;
|
|
u32 session_tbl[3];
|
|
u8 *session_buf;
|
|
u32 buf_size;
|
|
};
|
|
|
|
struct tpm_class_ops;
|
|
|
|
struct tpm_bank_info;
|
|
|
|
struct tpm_chip {
|
|
struct device dev;
|
|
struct device devs;
|
|
struct cdev cdev;
|
|
struct cdev cdevs;
|
|
struct rw_semaphore ops_sem;
|
|
const struct tpm_class_ops *ops;
|
|
struct tpm_bios_log log;
|
|
struct tpm_chip_seqops bin_log_seqops;
|
|
struct tpm_chip_seqops ascii_log_seqops;
|
|
unsigned int flags;
|
|
int dev_num;
|
|
unsigned long is_open;
|
|
char hwrng_name[64];
|
|
struct hwrng hwrng;
|
|
struct mutex tpm_mutex;
|
|
unsigned long timeout_a;
|
|
unsigned long timeout_b;
|
|
unsigned long timeout_c;
|
|
unsigned long timeout_d;
|
|
bool timeout_adjusted;
|
|
unsigned long duration[4];
|
|
bool duration_adjusted;
|
|
struct dentry *bios_dir[3];
|
|
const struct attribute_group *groups[8];
|
|
unsigned int groups_cnt;
|
|
u32 nr_allocated_banks;
|
|
struct tpm_bank_info *allocated_banks;
|
|
acpi_handle acpi_dev_handle;
|
|
char ppi_version[4];
|
|
struct tpm_space work_space;
|
|
u32 last_cc;
|
|
u32 nr_commands;
|
|
u32 *cc_attrs_tbl;
|
|
int locality;
|
|
};
|
|
|
|
struct tpm_class_ops {
|
|
unsigned int flags;
|
|
const u8 req_complete_mask;
|
|
const u8 req_complete_val;
|
|
bool (*req_canceled)(struct tpm_chip *, u8);
|
|
int (*recv)(struct tpm_chip *, u8 *, size_t);
|
|
int (*send)(struct tpm_chip *, u8 *, size_t);
|
|
void (*cancel)(struct tpm_chip *);
|
|
u8 (*status)(struct tpm_chip *);
|
|
void (*update_timeouts)(struct tpm_chip *, unsigned long *);
|
|
void (*update_durations)(struct tpm_chip *, unsigned long *);
|
|
int (*go_idle)(struct tpm_chip *);
|
|
int (*cmd_ready)(struct tpm_chip *);
|
|
int (*request_locality)(struct tpm_chip *, int);
|
|
int (*relinquish_locality)(struct tpm_chip *, int);
|
|
void (*clk_enable)(struct tpm_chip *, bool);
|
|
};
|
|
|
|
struct tpm_bank_info {
|
|
u16 alg_id;
|
|
u16 digest_size;
|
|
u16 crypto_id;
|
|
};
|
|
|
|
struct tpm_readpubek_out {
|
|
u8 algorithm[4];
|
|
u8 encscheme[2];
|
|
u8 sigscheme[2];
|
|
__be32 paramsize;
|
|
u8 parameters[12];
|
|
__be32 keysize;
|
|
u8 modulus[256];
|
|
u8 checksum[20];
|
|
};
|
|
|
|
struct tpm_header {
|
|
__be16 tag;
|
|
__be32 length;
|
|
union {
|
|
__be32 ordinal;
|
|
__be32 return_code;
|
|
};
|
|
} __attribute__((packed));
|
|
|
|
struct tpm_buf {
|
|
unsigned int flags;
|
|
u8 *data;
|
|
};
|
|
|
|
struct permanent_flags_t {
|
|
__be16 tag;
|
|
u8 disable;
|
|
u8 ownership;
|
|
u8 deactivated;
|
|
u8 readPubek;
|
|
u8 disableOwnerClear;
|
|
u8 allowMaintenance;
|
|
u8 physicalPresenceLifetimeLock;
|
|
u8 physicalPresenceHWEnable;
|
|
u8 physicalPresenceCMDEnable;
|
|
u8 CEKPUsed;
|
|
u8 TPMpost;
|
|
u8 TPMpostLock;
|
|
u8 FIPS;
|
|
u8 operator;
|
|
u8 enableRevokeEK;
|
|
u8 nvLocked;
|
|
u8 readSRKPub;
|
|
u8 tpmEstablished;
|
|
u8 maintenanceDone;
|
|
u8 disableFullDALogicInfo;
|
|
};
|
|
|
|
struct stclear_flags_t {
|
|
__be16 tag;
|
|
u8 deactivated;
|
|
u8 disableForceClear;
|
|
u8 physicalPresence;
|
|
u8 physicalPresenceLock;
|
|
u8 bGlobalLock;
|
|
} __attribute__((packed));
|
|
|
|
struct tpm1_version {
|
|
u8 major;
|
|
u8 minor;
|
|
u8 rev_major;
|
|
u8 rev_minor;
|
|
};
|
|
|
|
struct tpm1_version2 {
|
|
__be16 tag;
|
|
struct tpm1_version version;
|
|
};
|
|
|
|
struct timeout_t {
|
|
__be32 a;
|
|
__be32 b;
|
|
__be32 c;
|
|
__be32 d;
|
|
};
|
|
|
|
struct duration_t {
|
|
__be32 tpm_short;
|
|
__be32 tpm_medium;
|
|
__be32 tpm_long;
|
|
};
|
|
|
|
typedef union {
|
|
struct permanent_flags_t perm_flags;
|
|
struct stclear_flags_t stclear_flags;
|
|
__u8 owned;
|
|
__be32 num_pcrs;
|
|
struct tpm1_version version1;
|
|
struct tpm1_version2 version2;
|
|
__be32 manufacturer_id;
|
|
struct timeout_t timeout;
|
|
struct duration_t duration;
|
|
} cap_t;
|
|
|
|
struct tpm_digest {
|
|
u16 alg_id;
|
|
u8 digest[64];
|
|
};
|
|
|
|
enum drm_color_lut_tests {
|
|
DRM_COLOR_LUT_EQUAL_CHANNELS = 1,
|
|
DRM_COLOR_LUT_NON_DECREASING = 2,
|
|
};
|
|
|
|
struct drm_color_lut {
|
|
__u16 red;
|
|
__u16 green;
|
|
__u16 blue;
|
|
__u16 reserved;
|
|
};
|
|
|
|
struct drm_prop_enum_list {
|
|
int type;
|
|
const char *name;
|
|
};
|
|
|
|
struct drm_mode_crtc_lut {
|
|
__u32 crtc_id;
|
|
__u32 gamma_size;
|
|
__u64 red;
|
|
__u64 green;
|
|
__u64 blue;
|
|
};
|
|
|
|
struct drm_vma_offset_file {
|
|
struct rb_node vm_rb;
|
|
struct drm_file *vm_tag;
|
|
unsigned long vm_count;
|
|
};
|
|
|
|
struct hdcp_srm_header {
|
|
u8 srm_id;
|
|
u8 reserved;
|
|
__be16 srm_version;
|
|
u8 srm_gen_no;
|
|
} __attribute__((packed));
|
|
|
|
struct firmware {
|
|
size_t size;
|
|
const u8 *data;
|
|
void *priv;
|
|
};
|
|
|
|
struct drm_connector_funcs___2;
|
|
|
|
struct drm_connector_state___2;
|
|
|
|
struct drm_tile_group___2;
|
|
|
|
struct drm_connector___2 {
|
|
struct drm_device___2 *dev;
|
|
struct device *kdev;
|
|
struct device_attribute *attr;
|
|
struct fwnode_handle *fwnode;
|
|
struct list_head head;
|
|
struct list_head global_connector_list_entry;
|
|
struct drm_mode_object___2 base;
|
|
char *name;
|
|
struct mutex mutex;
|
|
unsigned int index;
|
|
int connector_type;
|
|
int connector_type_id;
|
|
bool interlace_allowed;
|
|
bool doublescan_allowed;
|
|
bool stereo_allowed;
|
|
bool ycbcr_420_allowed;
|
|
enum drm_connector_registration_state registration_state;
|
|
struct list_head modes;
|
|
enum drm_connector_status status;
|
|
struct list_head probed_modes;
|
|
struct drm_display_info display_info;
|
|
const struct drm_connector_funcs___2 *funcs;
|
|
struct drm_property_blob___2 *edid_blob_ptr;
|
|
struct drm_object_properties___2 properties;
|
|
struct drm_property___2 *scaling_mode_property;
|
|
struct drm_property___2 *vrr_capable_property;
|
|
struct drm_property___2 *colorspace_property;
|
|
struct drm_property_blob___2 *path_blob_ptr;
|
|
struct drm_property___2 *max_bpc_property;
|
|
struct drm_privacy_screen *privacy_screen;
|
|
struct notifier_block privacy_screen_notifier;
|
|
struct drm_property___2 *privacy_screen_sw_state_property;
|
|
struct drm_property___2 *privacy_screen_hw_state_property;
|
|
uint8_t polled;
|
|
int dpms;
|
|
const struct drm_connector_helper_funcs *helper_private;
|
|
struct drm_cmdline_mode cmdline_mode;
|
|
enum drm_connector_force force;
|
|
const struct drm_edid *edid_override;
|
|
struct mutex edid_override_mutex;
|
|
u64 epoch_counter;
|
|
u32 possible_encoders;
|
|
struct drm_encoder *encoder;
|
|
uint8_t eld[128];
|
|
bool latency_present[2];
|
|
int video_latency[2];
|
|
int audio_latency[2];
|
|
struct i2c_adapter *ddc;
|
|
int null_edid_counter;
|
|
unsigned int bad_edid_counter;
|
|
bool edid_corrupt;
|
|
u8 real_edid_checksum;
|
|
struct dentry *debugfs_entry;
|
|
struct drm_connector_state___2 *state;
|
|
struct drm_property_blob___2 *tile_blob_ptr;
|
|
bool has_tile;
|
|
struct drm_tile_group___2 *tile_group;
|
|
bool tile_is_single_monitor;
|
|
uint8_t num_h_tile;
|
|
uint8_t num_v_tile;
|
|
uint8_t tile_h_loc;
|
|
uint8_t tile_v_loc;
|
|
uint16_t tile_h_size;
|
|
uint16_t tile_v_size;
|
|
struct llist_node free_node;
|
|
struct hdr_sink_metadata hdr_sink_metadata;
|
|
};
|
|
|
|
struct drm_connector_funcs___2 {
|
|
int (*dpms)(struct drm_connector___2 *, int);
|
|
void (*reset)(struct drm_connector___2 *);
|
|
enum drm_connector_status (*detect)(struct drm_connector___2 *, bool);
|
|
void (*force)(struct drm_connector___2 *);
|
|
int (*fill_modes)(struct drm_connector___2 *, uint32_t, uint32_t);
|
|
int (*set_property)(struct drm_connector___2 *, struct drm_property___2 *, uint64_t);
|
|
int (*late_register)(struct drm_connector___2 *);
|
|
void (*early_unregister)(struct drm_connector___2 *);
|
|
void (*destroy)(struct drm_connector___2 *);
|
|
struct drm_connector_state___2 * (*atomic_duplicate_state)(struct drm_connector___2 *);
|
|
void (*atomic_destroy_state)(struct drm_connector___2 *, struct drm_connector_state___2 *);
|
|
int (*atomic_set_property)(struct drm_connector___2 *, struct drm_connector_state___2 *, struct drm_property___2 *, uint64_t);
|
|
int (*atomic_get_property)(struct drm_connector___2 *, const struct drm_connector_state___2 *, struct drm_property___2 *, uint64_t *);
|
|
void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state___2 *);
|
|
void (*oob_hotplug_event)(struct drm_connector___2 *);
|
|
void (*debugfs_init)(struct drm_connector___2 *, struct dentry *);
|
|
};
|
|
|
|
struct drm_connector_state___2 {
|
|
struct drm_connector___2 *connector;
|
|
struct drm_crtc *crtc;
|
|
struct drm_encoder *best_encoder;
|
|
enum drm_link_status link_status;
|
|
struct drm_atomic_state *state;
|
|
struct drm_crtc_commit *commit;
|
|
struct drm_tv_connector_state tv;
|
|
bool self_refresh_aware;
|
|
enum hdmi_picture_aspect picture_aspect_ratio;
|
|
unsigned int content_type;
|
|
unsigned int hdcp_content_type;
|
|
unsigned int scaling_mode;
|
|
unsigned int content_protection;
|
|
u32 colorspace;
|
|
struct drm_writeback_job *writeback_job;
|
|
u8 max_requested_bpc;
|
|
u8 max_bpc;
|
|
enum drm_privacy_screen_status privacy_screen_sw_state;
|
|
struct drm_property_blob___2 *hdr_output_metadata;
|
|
};
|
|
|
|
struct drm_tile_group___2 {
|
|
struct kref refcount;
|
|
struct drm_device___2 *dev;
|
|
int id;
|
|
u8 group_data[8];
|
|
};
|
|
|
|
enum intel_fbc_id {
|
|
INTEL_FBC_A = 0,
|
|
INTEL_FBC_B = 1,
|
|
I915_MAX_FBCS = 2,
|
|
};
|
|
|
|
enum {
|
|
I915_PRIORITY_MIN = -1024,
|
|
I915_PRIORITY_NORMAL = 0,
|
|
I915_PRIORITY_MAX = 1024,
|
|
I915_PRIORITY_HEARTBEAT = 1025,
|
|
I915_PRIORITY_DISPLAY = 1026,
|
|
};
|
|
|
|
struct rb_augment_callbacks {
|
|
void (*propagate)(struct rb_node *, struct rb_node *);
|
|
void (*copy)(struct rb_node *, struct rb_node *);
|
|
void (*rotate)(struct rb_node *, struct rb_node *);
|
|
};
|
|
|
|
struct intel_modifier_desc {
|
|
u64 modifier;
|
|
struct {
|
|
u8 from;
|
|
u8 until;
|
|
} display_ver;
|
|
const struct drm_format_info *formats;
|
|
int format_count;
|
|
u8 plane_caps;
|
|
struct {
|
|
u8 cc_planes: 3;
|
|
u8 packed_aux_planes: 4;
|
|
char: 1;
|
|
u8 planar_aux_planes: 4;
|
|
} ccs;
|
|
};
|
|
|
|
enum i9xx_plane_id {
|
|
PLANE_A = 0,
|
|
PLANE_B = 1,
|
|
PLANE_C = 2,
|
|
};
|
|
|
|
struct intel_plane_state;
|
|
|
|
struct intel_plane {
|
|
struct drm_plane base;
|
|
enum i9xx_plane_id i9xx_plane;
|
|
enum plane_id id;
|
|
enum pipe pipe;
|
|
bool need_async_flip_disable_wa;
|
|
u32 frontbuffer_bit;
|
|
struct {
|
|
u32 base;
|
|
u32 cntl;
|
|
u32 size;
|
|
} cursor;
|
|
struct intel_fbc *fbc;
|
|
int (*min_width)(const struct drm_framebuffer *, int, unsigned int);
|
|
int (*max_width)(const struct drm_framebuffer *, int, unsigned int);
|
|
int (*max_height)(const struct drm_framebuffer *, int, unsigned int);
|
|
unsigned int (*max_stride)(struct intel_plane *, u32, u64, unsigned int);
|
|
void (*update_noarm)(struct intel_plane *, const struct intel_crtc_state *, const struct intel_plane_state *);
|
|
void (*update_arm)(struct intel_plane *, const struct intel_crtc_state *, const struct intel_plane_state *);
|
|
void (*disable_arm)(struct intel_plane *, const struct intel_crtc_state *);
|
|
bool (*get_hw_state)(struct intel_plane *, enum pipe *);
|
|
int (*check_plane)(struct intel_crtc_state *, struct intel_plane_state *);
|
|
int (*min_cdclk)(const struct intel_crtc_state *, const struct intel_plane_state *);
|
|
void (*async_flip)(struct intel_plane *, const struct intel_crtc_state *, const struct intel_plane_state *, bool);
|
|
void (*enable_flip_done)(struct intel_plane *);
|
|
void (*disable_flip_done)(struct intel_plane *);
|
|
};
|
|
|
|
struct drm_intel_sprite_colorkey {
|
|
__u32 plane_id;
|
|
__u32 min_value;
|
|
__u32 channel_mask;
|
|
__u32 max_value;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct intel_plane_state {
|
|
struct drm_plane_state uapi;
|
|
struct {
|
|
struct drm_crtc *crtc;
|
|
struct drm_framebuffer *fb;
|
|
u16 alpha;
|
|
u16 pixel_blend_mode;
|
|
unsigned int rotation;
|
|
enum drm_color_encoding color_encoding;
|
|
enum drm_color_range color_range;
|
|
enum drm_scaling_filter scaling_filter;
|
|
} hw;
|
|
struct i915_vma___2 *ggtt_vma;
|
|
struct i915_vma___2 *dpt_vma;
|
|
unsigned long flags;
|
|
struct intel_fb_view view;
|
|
bool decrypt;
|
|
bool force_black;
|
|
u32 ctl;
|
|
u32 color_ctl;
|
|
u32 cus_ctl;
|
|
int scaler_id;
|
|
struct intel_plane *planar_linked_plane;
|
|
u32 planar_slave;
|
|
struct drm_intel_sprite_colorkey ckey;
|
|
struct drm_rect psr2_sel_fetch_area;
|
|
u64 ccval;
|
|
const char *no_fbc_reason;
|
|
};
|
|
|
|
struct fb_plane_view_dims {
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned int tile_width;
|
|
unsigned int tile_height;
|
|
};
|
|
|
|
struct intel_dvo_device;
|
|
|
|
struct intel_dvo_dev_ops {
|
|
bool (*init)(struct intel_dvo_device *, struct i2c_adapter *);
|
|
void (*create_resources)(struct intel_dvo_device *);
|
|
void (*dpms)(struct intel_dvo_device *, bool);
|
|
enum drm_mode_status (*mode_valid)(struct intel_dvo_device *, struct drm_display_mode *);
|
|
void (*prepare)(struct intel_dvo_device *);
|
|
void (*commit)(struct intel_dvo_device *);
|
|
void (*mode_set)(struct intel_dvo_device *, const struct drm_display_mode *, const struct drm_display_mode *);
|
|
enum drm_connector_status (*detect)(struct intel_dvo_device *);
|
|
bool (*get_hw_state)(struct intel_dvo_device *);
|
|
struct drm_display_mode * (*get_modes)(struct intel_dvo_device *);
|
|
void (*destroy)(struct intel_dvo_device *);
|
|
void (*dump_regs)(struct intel_dvo_device *);
|
|
};
|
|
|
|
struct intel_dvo_device {
|
|
const char *name;
|
|
int type;
|
|
enum port port;
|
|
u32 gpio;
|
|
int slave_addr;
|
|
const struct intel_dvo_dev_ops *dev_ops;
|
|
void *dev_priv;
|
|
struct i2c_adapter *i2c_bus;
|
|
};
|
|
|
|
struct tfp410_priv {
|
|
bool quiet;
|
|
};
|
|
|
|
enum hdmi_packet_type {
|
|
HDMI_PACKET_TYPE_NULL = 0,
|
|
HDMI_PACKET_TYPE_AUDIO_CLOCK_REGEN = 1,
|
|
HDMI_PACKET_TYPE_AUDIO_SAMPLE = 2,
|
|
HDMI_PACKET_TYPE_GENERAL_CONTROL = 3,
|
|
HDMI_PACKET_TYPE_ACP = 4,
|
|
HDMI_PACKET_TYPE_ISRC1 = 5,
|
|
HDMI_PACKET_TYPE_ISRC2 = 6,
|
|
HDMI_PACKET_TYPE_ONE_BIT_AUDIO_SAMPLE = 7,
|
|
HDMI_PACKET_TYPE_DST_AUDIO = 8,
|
|
HDMI_PACKET_TYPE_HBR_AUDIO_STREAM = 9,
|
|
HDMI_PACKET_TYPE_GAMUT_METADATA = 10,
|
|
};
|
|
|
|
struct drm_gem_shmem_object {
|
|
struct drm_gem_object base;
|
|
struct mutex pages_lock;
|
|
struct page **pages;
|
|
unsigned int pages_use_count;
|
|
int madv;
|
|
struct list_head madv_list;
|
|
unsigned int pages_mark_dirty_on_put: 1;
|
|
unsigned int pages_mark_accessed_on_put: 1;
|
|
struct sg_table *sgt;
|
|
struct mutex vmap_lock;
|
|
void *vaddr;
|
|
unsigned int vmap_use_count;
|
|
bool map_wc;
|
|
};
|
|
|
|
struct virtio_gpu_object {
|
|
struct drm_gem_shmem_object base;
|
|
uint32_t hw_res_handle;
|
|
bool dumb;
|
|
bool created;
|
|
bool host3d_blob;
|
|
bool guest_blob;
|
|
uint32_t blob_mem;
|
|
uint32_t blob_flags;
|
|
int uuid_state;
|
|
uuid_t uuid;
|
|
};
|
|
|
|
struct virtio_gpu_object_vram {
|
|
struct virtio_gpu_object base;
|
|
uint32_t map_state;
|
|
uint32_t map_info;
|
|
struct drm_mm_node vram_node;
|
|
};
|
|
|
|
struct virtio_gpu_mem_entry {
|
|
__le64 addr;
|
|
__le32 length;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_object_array {
|
|
struct ww_acquire_ctx ticket;
|
|
struct list_head next;
|
|
u32 nents;
|
|
u32 total;
|
|
struct drm_gem_object *objs[0];
|
|
};
|
|
|
|
struct virtio_gpu_object_params {
|
|
unsigned long size;
|
|
bool dumb;
|
|
bool virgl;
|
|
bool blob;
|
|
uint32_t format;
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t target;
|
|
uint32_t bind;
|
|
uint32_t depth;
|
|
uint32_t array_size;
|
|
uint32_t last_level;
|
|
uint32_t nr_samples;
|
|
uint32_t flags;
|
|
uint32_t ctx_id;
|
|
uint32_t blob_mem;
|
|
uint32_t blob_flags;
|
|
uint64_t blob_id;
|
|
};
|
|
|
|
struct virtio_gpu_object_shmem {
|
|
struct virtio_gpu_object base;
|
|
};
|
|
|
|
enum dev_prop_type {
|
|
DEV_PROP_U8 = 0,
|
|
DEV_PROP_U16 = 1,
|
|
DEV_PROP_U32 = 2,
|
|
DEV_PROP_U64 = 3,
|
|
DEV_PROP_STRING = 4,
|
|
DEV_PROP_REF = 5,
|
|
};
|
|
|
|
enum {
|
|
IRQD_TRIGGER_MASK = 15,
|
|
IRQD_SETAFFINITY_PENDING = 256,
|
|
IRQD_ACTIVATED = 512,
|
|
IRQD_NO_BALANCING = 1024,
|
|
IRQD_PER_CPU = 2048,
|
|
IRQD_AFFINITY_SET = 4096,
|
|
IRQD_LEVEL = 8192,
|
|
IRQD_WAKEUP_STATE = 16384,
|
|
IRQD_MOVE_PCNTXT = 32768,
|
|
IRQD_IRQ_DISABLED = 65536,
|
|
IRQD_IRQ_MASKED = 131072,
|
|
IRQD_IRQ_INPROGRESS = 262144,
|
|
IRQD_WAKEUP_ARMED = 524288,
|
|
IRQD_FORWARDED_TO_VCPU = 1048576,
|
|
IRQD_AFFINITY_MANAGED = 2097152,
|
|
IRQD_IRQ_STARTED = 4194304,
|
|
IRQD_MANAGED_SHUTDOWN = 8388608,
|
|
IRQD_SINGLE_TARGET = 16777216,
|
|
IRQD_DEFAULT_TRIGGER_SET = 33554432,
|
|
IRQD_CAN_RESERVE = 67108864,
|
|
IRQD_MSI_NOMASK_QUIRK = 134217728,
|
|
IRQD_HANDLE_ENFORCE_IRQCTX = 268435456,
|
|
IRQD_AFFINITY_ON_ACTIVATE = 536870912,
|
|
IRQD_IRQ_ENABLED_ON_SUSPEND = 1073741824,
|
|
};
|
|
|
|
struct mfd_cell;
|
|
|
|
struct pdev_archdata {};
|
|
|
|
struct platform_device_id;
|
|
|
|
struct platform_device {
|
|
const char *name;
|
|
int id;
|
|
bool id_auto;
|
|
struct device dev;
|
|
u64 platform_dma_mask;
|
|
struct device_dma_parameters dma_parms;
|
|
u32 num_resources;
|
|
struct resource *resource;
|
|
const struct platform_device_id *id_entry;
|
|
const char *driver_override;
|
|
struct mfd_cell *mfd_cell;
|
|
struct pdev_archdata archdata;
|
|
};
|
|
|
|
struct platform_device_id {
|
|
char name[20];
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
struct platform_object {
|
|
struct platform_device pdev;
|
|
char name[0];
|
|
};
|
|
|
|
struct platform_driver {
|
|
int (*probe)(struct platform_device *);
|
|
int (*remove)(struct platform_device *);
|
|
void (*remove_new)(struct platform_device *);
|
|
void (*shutdown)(struct platform_device *);
|
|
int (*suspend)(struct platform_device *, pm_message_t);
|
|
int (*resume)(struct platform_device *);
|
|
struct device_driver driver;
|
|
const struct platform_device_id *id_table;
|
|
bool prevent_deferred_probe;
|
|
bool driver_managed_dma;
|
|
};
|
|
|
|
struct property_entry {
|
|
const char *name;
|
|
size_t length;
|
|
bool is_inline;
|
|
enum dev_prop_type type;
|
|
union {
|
|
const void *pointer;
|
|
union {
|
|
u8 u8_data[8];
|
|
u16 u16_data[4];
|
|
u32 u32_data[2];
|
|
u64 u64_data[1];
|
|
const char *str[1];
|
|
} value;
|
|
};
|
|
};
|
|
|
|
struct software_node {
|
|
const char *name;
|
|
const struct software_node *parent;
|
|
const struct property_entry *properties;
|
|
};
|
|
|
|
struct irq_affinity_devres {
|
|
unsigned int count;
|
|
unsigned int irq[0];
|
|
};
|
|
|
|
struct platform_device_info {
|
|
struct device *parent;
|
|
struct fwnode_handle *fwnode;
|
|
bool of_node_reused;
|
|
const char *name;
|
|
int id;
|
|
const struct resource *res;
|
|
unsigned int num_res;
|
|
const void *data;
|
|
size_t size_data;
|
|
u64 dma_mask;
|
|
const struct property_entry *properties;
|
|
};
|
|
|
|
struct value_name_pair;
|
|
|
|
struct sa_name_list {
|
|
int opcode;
|
|
const struct value_name_pair *arr;
|
|
int arr_sz;
|
|
};
|
|
|
|
struct value_name_pair {
|
|
int value;
|
|
const char *name;
|
|
};
|
|
|
|
struct error_info {
|
|
unsigned short code12;
|
|
unsigned short size;
|
|
};
|
|
|
|
struct error_info2 {
|
|
unsigned char code1;
|
|
unsigned char code2_min;
|
|
unsigned char code2_max;
|
|
const char *str;
|
|
const char *fmt;
|
|
};
|
|
|
|
enum scsi_devinfo_key {
|
|
SCSI_DEVINFO_GLOBAL = 0,
|
|
SCSI_DEVINFO_SPI = 1,
|
|
};
|
|
|
|
struct scsi_dev_info_list {
|
|
struct list_head dev_info_list;
|
|
char vendor[8];
|
|
char model[16];
|
|
blist_flags_t flags;
|
|
unsigned int compatible;
|
|
};
|
|
|
|
struct scsi_dev_info_list_table {
|
|
struct list_head node;
|
|
struct list_head scsi_dev_info_list;
|
|
const char *name;
|
|
int key;
|
|
};
|
|
|
|
struct double_list {
|
|
struct list_head *top;
|
|
struct list_head *bottom;
|
|
};
|
|
|
|
union inet_addr {
|
|
__u32 all[4];
|
|
__be32 ip;
|
|
__be32 ip6[4];
|
|
struct in_addr in;
|
|
struct in6_addr in6;
|
|
};
|
|
|
|
struct netpoll {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
char dev_name[16];
|
|
const char *name;
|
|
union inet_addr local_ip;
|
|
union inet_addr remote_ip;
|
|
bool ipv6;
|
|
u16 local_port;
|
|
u16 remote_port;
|
|
u8 remote_mac[6];
|
|
};
|
|
|
|
struct netconsole_target {
|
|
struct list_head list;
|
|
bool enabled;
|
|
bool extended;
|
|
struct netpoll np;
|
|
};
|
|
|
|
struct module_version_attribute {
|
|
struct module_attribute mattr;
|
|
const char *module_name;
|
|
const char *version;
|
|
};
|
|
|
|
enum {
|
|
NETIF_MSG_DRV_BIT = 0,
|
|
NETIF_MSG_PROBE_BIT = 1,
|
|
NETIF_MSG_LINK_BIT = 2,
|
|
NETIF_MSG_TIMER_BIT = 3,
|
|
NETIF_MSG_IFDOWN_BIT = 4,
|
|
NETIF_MSG_IFUP_BIT = 5,
|
|
NETIF_MSG_RX_ERR_BIT = 6,
|
|
NETIF_MSG_TX_ERR_BIT = 7,
|
|
NETIF_MSG_TX_QUEUED_BIT = 8,
|
|
NETIF_MSG_INTR_BIT = 9,
|
|
NETIF_MSG_TX_DONE_BIT = 10,
|
|
NETIF_MSG_RX_STATUS_BIT = 11,
|
|
NETIF_MSG_PKTDATA_BIT = 12,
|
|
NETIF_MSG_HW_BIT = 13,
|
|
NETIF_MSG_WOL_BIT = 14,
|
|
NETIF_MSG_CLASS_COUNT = 15,
|
|
};
|
|
|
|
enum chip_flags {
|
|
HasHltClk = 1,
|
|
HasLWake = 2,
|
|
};
|
|
|
|
enum RTL8139_registers {
|
|
MAC0 = 0,
|
|
MAR0 = 8,
|
|
TxStatus0 = 16,
|
|
TxAddr0 = 32,
|
|
RxBuf = 48,
|
|
ChipCmd = 55,
|
|
RxBufPtr = 56,
|
|
RxBufAddr = 58,
|
|
IntrMask = 60,
|
|
IntrStatus = 62,
|
|
TxConfig = 64,
|
|
RxConfig = 68,
|
|
Timer = 72,
|
|
RxMissed = 76,
|
|
Cfg9346 = 80,
|
|
Config0 = 81,
|
|
Config1 = 82,
|
|
TimerInt = 84,
|
|
MediaStatus = 88,
|
|
Config3 = 89,
|
|
Config4 = 90,
|
|
HltClk = 91,
|
|
MultiIntr = 92,
|
|
TxSummary = 96,
|
|
BasicModeCtrl = 98,
|
|
BasicModeStatus = 100,
|
|
NWayAdvert = 102,
|
|
NWayLPAR = 104,
|
|
NWayExpansion = 106,
|
|
FIFOTMS = 112,
|
|
CSCR = 116,
|
|
PARA78 = 120,
|
|
FlashReg = 212,
|
|
PARA7c = 124,
|
|
Config5 = 216,
|
|
};
|
|
|
|
enum Config1Bits {
|
|
Cfg1_PM_Enable = 1,
|
|
Cfg1_VPD_Enable = 2,
|
|
Cfg1_PIO = 4,
|
|
Cfg1_MMIO = 8,
|
|
LWAKE = 16,
|
|
Cfg1_Driver_Load = 32,
|
|
Cfg1_LED0 = 64,
|
|
Cfg1_LED1 = 128,
|
|
SLEEP = 2,
|
|
PWRDN = 1,
|
|
};
|
|
|
|
enum Cfg9346Bits {
|
|
Cfg9346_Lock = 0,
|
|
Cfg9346_Unlock = 192,
|
|
};
|
|
|
|
enum Config4Bits {
|
|
LWPTN = 4,
|
|
};
|
|
|
|
enum ChipCmdBits {
|
|
CmdReset = 16,
|
|
CmdRxEnb = 8,
|
|
CmdTxEnb = 4,
|
|
RxBufEmpty = 1,
|
|
};
|
|
|
|
enum IntrStatusBits {
|
|
PCIErr = 32768,
|
|
PCSTimeout = 16384,
|
|
RxFIFOOver = 64,
|
|
RxUnderrun = 32,
|
|
RxOverflow = 16,
|
|
TxErr = 8,
|
|
TxOK = 4,
|
|
RxErr = 2,
|
|
RxOK = 1,
|
|
RxAckBits = 81,
|
|
};
|
|
|
|
enum CSCRBits {
|
|
CSCR_LinkOKBit = 1024,
|
|
CSCR_LinkChangeBit = 2048,
|
|
CSCR_LinkStatusBits = 61440,
|
|
CSCR_LinkDownOffCmd = 960,
|
|
CSCR_LinkDownCmd = 62400,
|
|
};
|
|
|
|
enum {
|
|
HAS_MII_XCVR = 65536,
|
|
HAS_CHIP_XCVR = 131072,
|
|
HAS_LNK_CHNG = 262144,
|
|
};
|
|
|
|
enum TxStatusBits {
|
|
TxHostOwns = 8192,
|
|
TxUnderrun = 16384,
|
|
TxStatOK = 32768,
|
|
TxOutOfWindow = 536870912,
|
|
TxAborted = 1073741824,
|
|
TxCarrierLost = 2147483648,
|
|
};
|
|
|
|
enum tx_config_bits {
|
|
TxIFGShift = 24,
|
|
TxIFG84 = 0,
|
|
TxIFG88 = 16777216,
|
|
TxIFG92 = 33554432,
|
|
TxIFG96 = 50331648,
|
|
TxLoopBack = 393216,
|
|
TxCRC = 65536,
|
|
TxClearAbt = 1,
|
|
TxDMAShift = 8,
|
|
TxRetryShift = 4,
|
|
TxVersionMask = 2088763392,
|
|
};
|
|
|
|
enum rx_mode_bits {
|
|
AcceptErr = 32,
|
|
AcceptRunt = 16,
|
|
AcceptBroadcast = 8,
|
|
AcceptMulticast = 4,
|
|
AcceptMyPhys = 2,
|
|
AcceptAllPhys = 1,
|
|
};
|
|
|
|
enum Config3Bits {
|
|
Cfg3_FBtBEn = 1,
|
|
Cfg3_FuncRegEn = 2,
|
|
Cfg3_CLKRUN_En = 4,
|
|
Cfg3_CardB_En = 8,
|
|
Cfg3_LinkUp = 16,
|
|
Cfg3_Magic = 32,
|
|
Cfg3_PARM_En = 64,
|
|
Cfg3_GNTSel = 128,
|
|
};
|
|
|
|
enum ClearBitMasks {
|
|
MultiIntrClear = 61440,
|
|
ChipCmdClear = 226,
|
|
Config1Clear = 206,
|
|
};
|
|
|
|
enum netdev_queue_state_t {
|
|
__QUEUE_STATE_DRV_XOFF = 0,
|
|
__QUEUE_STATE_STACK_XOFF = 1,
|
|
__QUEUE_STATE_FROZEN = 2,
|
|
};
|
|
|
|
enum Config5Bits {
|
|
Cfg5_PME_STS = 1,
|
|
Cfg5_LANWake = 2,
|
|
Cfg5_LDPS = 4,
|
|
Cfg5_FIFOAddrPtr = 8,
|
|
Cfg5_UWF = 16,
|
|
Cfg5_MWF = 32,
|
|
Cfg5_BWF = 64,
|
|
};
|
|
|
|
enum ethtool_stringset {
|
|
ETH_SS_TEST = 0,
|
|
ETH_SS_STATS = 1,
|
|
ETH_SS_PRIV_FLAGS = 2,
|
|
ETH_SS_NTUPLE_FILTERS = 3,
|
|
ETH_SS_FEATURES = 4,
|
|
ETH_SS_RSS_HASH_FUNCS = 5,
|
|
ETH_SS_TUNABLES = 6,
|
|
ETH_SS_PHY_STATS = 7,
|
|
ETH_SS_PHY_TUNABLES = 8,
|
|
ETH_SS_LINK_MODES = 9,
|
|
ETH_SS_MSG_CLASSES = 10,
|
|
ETH_SS_WOL_MODES = 11,
|
|
ETH_SS_SOF_TIMESTAMPING = 12,
|
|
ETH_SS_TS_TX_TYPES = 13,
|
|
ETH_SS_TS_RX_FILTERS = 14,
|
|
ETH_SS_UDP_TUNNEL_TYPES = 15,
|
|
ETH_SS_STATS_STD = 16,
|
|
ETH_SS_STATS_ETH_PHY = 17,
|
|
ETH_SS_STATS_ETH_MAC = 18,
|
|
ETH_SS_STATS_ETH_CTRL = 19,
|
|
ETH_SS_STATS_RMON = 20,
|
|
ETH_SS_COUNT = 21,
|
|
};
|
|
|
|
enum RxStatusBits {
|
|
RxMulticast = 32768,
|
|
RxPhysical = 16384,
|
|
RxBroadcast = 8192,
|
|
RxBadSymbol = 32,
|
|
RxRunt = 16,
|
|
RxTooLong = 8,
|
|
RxCRCErr = 4,
|
|
RxBadAlign = 2,
|
|
RxStatusOK = 1,
|
|
};
|
|
|
|
struct netdev_hw_addr {
|
|
struct list_head list;
|
|
struct rb_node node;
|
|
unsigned char addr[32];
|
|
unsigned char type;
|
|
bool global_use;
|
|
int sync_cnt;
|
|
int refcount;
|
|
int synced;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct rtl8139_stats {
|
|
u64 packets;
|
|
u64 bytes;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
typedef enum {
|
|
CH_8139 = 0,
|
|
CH_8139_K = 1,
|
|
CH_8139A = 2,
|
|
CH_8139A_G = 3,
|
|
CH_8139B = 4,
|
|
CH_8130 = 5,
|
|
CH_8139C = 6,
|
|
CH_8100 = 7,
|
|
CH_8100B_8139D = 8,
|
|
CH_8101 = 9,
|
|
} chip_t;
|
|
|
|
struct rtl_extra_stats {
|
|
unsigned long early_rx;
|
|
unsigned long tx_buf_mapped;
|
|
unsigned long tx_timeouts;
|
|
unsigned long rx_lost_in_ring;
|
|
};
|
|
|
|
struct mii_if_info {
|
|
int phy_id;
|
|
int advertising;
|
|
int phy_id_mask;
|
|
int reg_num_mask;
|
|
unsigned int full_duplex: 1;
|
|
unsigned int force_media: 1;
|
|
unsigned int supports_gmii: 1;
|
|
struct net_device *dev;
|
|
int (*mdio_read)(struct net_device *, int, int);
|
|
void (*mdio_write)(struct net_device *, int, int, int);
|
|
};
|
|
|
|
struct rtl8139_private {
|
|
void *mmio_addr;
|
|
int drv_flags;
|
|
struct pci_dev *pci_dev;
|
|
u32 msg_enable;
|
|
struct napi_struct napi;
|
|
struct net_device *dev;
|
|
unsigned char *rx_ring;
|
|
unsigned int cur_rx;
|
|
struct rtl8139_stats rx_stats;
|
|
dma_addr_t rx_ring_dma;
|
|
unsigned int tx_flag;
|
|
unsigned long cur_tx;
|
|
unsigned long dirty_tx;
|
|
struct rtl8139_stats tx_stats;
|
|
unsigned char *tx_buf[4];
|
|
unsigned char *tx_bufs;
|
|
dma_addr_t tx_bufs_dma;
|
|
signed char phys[4];
|
|
char twistie;
|
|
char twist_row;
|
|
char twist_col;
|
|
unsigned int watchdog_fired: 1;
|
|
unsigned int default_port: 4;
|
|
unsigned int have_thread: 1;
|
|
spinlock_t lock;
|
|
spinlock_t rx_lock;
|
|
chip_t chipset;
|
|
u32 rx_config;
|
|
struct rtl_extra_stats xstats;
|
|
struct delayed_work thread;
|
|
struct mii_if_info mii;
|
|
unsigned int regs_len;
|
|
unsigned long fifo_copy_timeout;
|
|
};
|
|
|
|
struct pcmcia_socket;
|
|
|
|
struct pccard_resource_ops {
|
|
int (*validate_mem)(struct pcmcia_socket *);
|
|
int (*find_io)(struct pcmcia_socket *, unsigned int, unsigned int *, unsigned int, unsigned int, struct resource **);
|
|
struct resource * (*find_mem)(unsigned long, unsigned long, unsigned long, int, struct pcmcia_socket *);
|
|
int (*init)(struct pcmcia_socket *);
|
|
void (*exit)(struct pcmcia_socket *);
|
|
};
|
|
|
|
typedef unsigned int u_int;
|
|
|
|
typedef unsigned char u_char;
|
|
|
|
struct socket_state_t {
|
|
u_int flags;
|
|
u_int csc_mask;
|
|
u_char Vcc;
|
|
u_char Vpp;
|
|
u_char io_irq;
|
|
};
|
|
|
|
typedef struct socket_state_t socket_state_t;
|
|
|
|
typedef unsigned short u_short;
|
|
|
|
struct pccard_mem_map {
|
|
u_char map;
|
|
u_char flags;
|
|
u_short speed;
|
|
phys_addr_t static_start;
|
|
u_int card_start;
|
|
struct resource *res;
|
|
};
|
|
|
|
typedef struct pccard_mem_map pccard_mem_map;
|
|
|
|
struct io_window_t {
|
|
u_int InUse;
|
|
u_int Config;
|
|
struct resource *res;
|
|
};
|
|
|
|
typedef struct io_window_t io_window_t;
|
|
|
|
struct pccard_operations;
|
|
|
|
struct pcmcia_callback;
|
|
|
|
struct pcmcia_socket {
|
|
struct module *owner;
|
|
socket_state_t socket;
|
|
u_int state;
|
|
u_int suspended_state;
|
|
u_short functions;
|
|
u_short lock_count;
|
|
pccard_mem_map cis_mem;
|
|
void *cis_virt;
|
|
io_window_t io[2];
|
|
pccard_mem_map win[4];
|
|
struct list_head cis_cache;
|
|
size_t fake_cis_len;
|
|
u8 *fake_cis;
|
|
struct list_head socket_list;
|
|
struct completion socket_released;
|
|
unsigned int sock;
|
|
u_int features;
|
|
u_int irq_mask;
|
|
u_int map_size;
|
|
u_int io_offset;
|
|
u_int pci_irq;
|
|
struct pci_dev *cb_dev;
|
|
u8 resource_setup_done;
|
|
struct pccard_operations *ops;
|
|
struct pccard_resource_ops *resource_ops;
|
|
void *resource_data;
|
|
void (*zoom_video)(struct pcmcia_socket *, int);
|
|
int (*power_hook)(struct pcmcia_socket *, int);
|
|
void (*tune_bridge)(struct pcmcia_socket *, struct pci_bus *);
|
|
struct task_struct *thread;
|
|
struct completion thread_done;
|
|
unsigned int thread_events;
|
|
unsigned int sysfs_events;
|
|
struct mutex skt_mutex;
|
|
struct mutex ops_mutex;
|
|
spinlock_t thread_lock;
|
|
struct pcmcia_callback *callback;
|
|
struct list_head devices_list;
|
|
u8 device_count;
|
|
u8 pcmcia_pfc;
|
|
atomic_t present;
|
|
unsigned int pcmcia_irq;
|
|
struct device dev;
|
|
void *driver_data;
|
|
int resume_status;
|
|
};
|
|
|
|
struct pccard_io_map;
|
|
|
|
struct pccard_operations {
|
|
int (*init)(struct pcmcia_socket *);
|
|
int (*suspend)(struct pcmcia_socket *);
|
|
int (*get_status)(struct pcmcia_socket *, u_int *);
|
|
int (*set_socket)(struct pcmcia_socket *, socket_state_t *);
|
|
int (*set_io_map)(struct pcmcia_socket *, struct pccard_io_map *);
|
|
int (*set_mem_map)(struct pcmcia_socket *, struct pccard_mem_map *);
|
|
};
|
|
|
|
struct pccard_io_map {
|
|
u_char map;
|
|
u_char flags;
|
|
u_short speed;
|
|
phys_addr_t start;
|
|
phys_addr_t stop;
|
|
};
|
|
|
|
struct pcmcia_callback {
|
|
struct module *owner;
|
|
int (*add)(struct pcmcia_socket *);
|
|
int (*remove)(struct pcmcia_socket *);
|
|
void (*requery)(struct pcmcia_socket *);
|
|
int (*validate)(struct pcmcia_socket *, unsigned int *);
|
|
int (*suspend)(struct pcmcia_socket *);
|
|
int (*early_resume)(struct pcmcia_socket *);
|
|
int (*resume)(struct pcmcia_socket *);
|
|
};
|
|
|
|
typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *);
|
|
|
|
typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *);
|
|
|
|
typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *);
|
|
|
|
typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *);
|
|
|
|
typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *);
|
|
|
|
typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *);
|
|
|
|
typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *);
|
|
|
|
struct xhci_hcd;
|
|
|
|
struct xhci_container_ctx;
|
|
|
|
typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int);
|
|
|
|
struct s3_save {
|
|
u32 command;
|
|
u32 dev_nt;
|
|
u64 dcbaa_ptr;
|
|
u32 config_reg;
|
|
};
|
|
|
|
struct xhci_bus_state {
|
|
unsigned long bus_suspended;
|
|
unsigned long next_statechange;
|
|
u32 port_c_suspend;
|
|
u32 suspended_ports;
|
|
u32 port_remote_wakeup;
|
|
unsigned long resuming_ports;
|
|
};
|
|
|
|
struct xhci_port;
|
|
|
|
struct xhci_hub {
|
|
struct xhci_port **ports;
|
|
unsigned int num_ports;
|
|
struct usb_hcd *hcd;
|
|
struct xhci_bus_state bus_state;
|
|
u8 maj_rev;
|
|
u8 min_rev;
|
|
};
|
|
|
|
struct xhci_cap_regs;
|
|
|
|
struct xhci_op_regs;
|
|
|
|
struct xhci_run_regs;
|
|
|
|
struct xhci_doorbell_array;
|
|
|
|
struct xhci_device_context_array;
|
|
|
|
struct xhci_interrupter;
|
|
|
|
struct xhci_ring;
|
|
|
|
struct xhci_command;
|
|
|
|
struct xhci_scratchpad;
|
|
|
|
struct xhci_virt_device;
|
|
|
|
struct xhci_root_port_bw_info;
|
|
|
|
struct xhci_port_cap;
|
|
|
|
struct xhci_hcd {
|
|
struct usb_hcd *main_hcd;
|
|
struct usb_hcd *shared_hcd;
|
|
struct xhci_cap_regs *cap_regs;
|
|
struct xhci_op_regs *op_regs;
|
|
struct xhci_run_regs *run_regs;
|
|
struct xhci_doorbell_array *dba;
|
|
__u32 hcs_params1;
|
|
__u32 hcs_params2;
|
|
__u32 hcs_params3;
|
|
__u32 hcc_params;
|
|
__u32 hcc_params2;
|
|
spinlock_t lock;
|
|
u8 sbrn;
|
|
u16 hci_version;
|
|
u8 max_slots;
|
|
u16 max_interrupters;
|
|
u8 max_ports;
|
|
u8 isoc_threshold;
|
|
u32 imod_interval;
|
|
u32 isoc_bei_interval;
|
|
int event_ring_max;
|
|
int page_size;
|
|
int page_shift;
|
|
int msix_count;
|
|
struct clk *clk;
|
|
struct clk *reg_clk;
|
|
struct reset_control *reset;
|
|
struct xhci_device_context_array *dcbaa;
|
|
struct xhci_interrupter *interrupter;
|
|
struct xhci_ring *cmd_ring;
|
|
unsigned int cmd_ring_state;
|
|
struct list_head cmd_list;
|
|
unsigned int cmd_ring_reserved_trbs;
|
|
struct delayed_work cmd_timer;
|
|
struct completion cmd_ring_stop_completion;
|
|
struct xhci_command *current_cmd;
|
|
struct xhci_scratchpad *scratchpad;
|
|
struct mutex mutex;
|
|
struct xhci_virt_device *devs[256];
|
|
struct xhci_root_port_bw_info *rh_bw;
|
|
struct dma_pool *device_pool;
|
|
struct dma_pool *segment_pool;
|
|
struct dma_pool *small_streams_pool;
|
|
struct dma_pool *medium_streams_pool;
|
|
unsigned int xhc_state;
|
|
unsigned long run_graceperiod;
|
|
struct s3_save s3;
|
|
unsigned long long quirks;
|
|
unsigned int num_active_eps;
|
|
unsigned int limit_active_eps;
|
|
struct xhci_port *hw_ports;
|
|
struct xhci_hub usb2_rhub;
|
|
struct xhci_hub usb3_rhub;
|
|
unsigned int hw_lpm_support: 1;
|
|
unsigned int broken_suspend: 1;
|
|
unsigned int allow_single_roothub: 1;
|
|
u32 *ext_caps;
|
|
unsigned int num_ext_caps;
|
|
struct xhci_port_cap *port_caps;
|
|
unsigned int num_port_caps;
|
|
struct timer_list comp_mode_recovery_timer;
|
|
u32 port_status_u0;
|
|
u16 test_mode;
|
|
struct dentry *debugfs_root;
|
|
struct dentry *debugfs_slots;
|
|
struct list_head regset_list;
|
|
void *dbc;
|
|
unsigned long priv[0];
|
|
};
|
|
|
|
struct xhci_cap_regs {
|
|
__le32 hc_capbase;
|
|
__le32 hcs_params1;
|
|
__le32 hcs_params2;
|
|
__le32 hcs_params3;
|
|
__le32 hcc_params;
|
|
__le32 db_off;
|
|
__le32 run_regs_off;
|
|
__le32 hcc_params2;
|
|
};
|
|
|
|
struct xhci_op_regs {
|
|
__le32 command;
|
|
__le32 status;
|
|
__le32 page_size;
|
|
__le32 reserved1;
|
|
__le32 reserved2;
|
|
__le32 dev_notification;
|
|
__le64 cmd_ring;
|
|
__le32 reserved3[4];
|
|
__le64 dcbaa_ptr;
|
|
__le32 config_reg;
|
|
__le32 reserved4[241];
|
|
__le32 port_status_base;
|
|
__le32 port_power_base;
|
|
__le32 port_link_base;
|
|
__le32 reserved5;
|
|
__le32 reserved6[1016];
|
|
};
|
|
|
|
struct xhci_intr_reg {
|
|
__le32 irq_pending;
|
|
__le32 irq_control;
|
|
__le32 erst_size;
|
|
__le32 rsvd;
|
|
__le64 erst_base;
|
|
__le64 erst_dequeue;
|
|
};
|
|
|
|
struct xhci_run_regs {
|
|
__le32 microframe_index;
|
|
__le32 rsvd[7];
|
|
struct xhci_intr_reg ir_set[128];
|
|
};
|
|
|
|
struct xhci_doorbell_array {
|
|
__le32 doorbell[256];
|
|
};
|
|
|
|
struct xhci_device_context_array {
|
|
__le64 dev_context_ptrs[256];
|
|
dma_addr_t dma;
|
|
};
|
|
|
|
struct xhci_erst_entry;
|
|
|
|
struct xhci_erst {
|
|
struct xhci_erst_entry *entries;
|
|
unsigned int num_entries;
|
|
dma_addr_t erst_dma_addr;
|
|
unsigned int erst_size;
|
|
};
|
|
|
|
struct xhci_interrupter {
|
|
struct xhci_ring *event_ring;
|
|
struct xhci_erst erst;
|
|
struct xhci_intr_reg *ir_set;
|
|
unsigned int intr_num;
|
|
u32 s3_irq_pending;
|
|
u32 s3_irq_control;
|
|
u32 s3_erst_size;
|
|
u64 s3_erst_base;
|
|
u64 s3_erst_dequeue;
|
|
};
|
|
|
|
enum xhci_ring_type {
|
|
TYPE_CTRL = 0,
|
|
TYPE_ISOC = 1,
|
|
TYPE_BULK = 2,
|
|
TYPE_INTR = 3,
|
|
TYPE_STREAM = 4,
|
|
TYPE_COMMAND = 5,
|
|
TYPE_EVENT = 6,
|
|
};
|
|
|
|
struct xhci_segment;
|
|
|
|
union xhci_trb;
|
|
|
|
struct xhci_ring {
|
|
struct xhci_segment *first_seg;
|
|
struct xhci_segment *last_seg;
|
|
union xhci_trb *enqueue;
|
|
struct xhci_segment *enq_seg;
|
|
union xhci_trb *dequeue;
|
|
struct xhci_segment *deq_seg;
|
|
struct list_head td_list;
|
|
u32 cycle_state;
|
|
unsigned int stream_id;
|
|
unsigned int num_segs;
|
|
unsigned int num_trbs_free;
|
|
unsigned int num_trbs_free_temp;
|
|
unsigned int bounce_buf_len;
|
|
enum xhci_ring_type type;
|
|
bool last_td_was_short;
|
|
struct xarray *trb_address_map;
|
|
};
|
|
|
|
struct xhci_segment {
|
|
union xhci_trb *trbs;
|
|
struct xhci_segment *next;
|
|
dma_addr_t dma;
|
|
dma_addr_t bounce_dma;
|
|
void *bounce_buf;
|
|
unsigned int bounce_offs;
|
|
unsigned int bounce_len;
|
|
};
|
|
|
|
struct xhci_link_trb {
|
|
__le64 segment_ptr;
|
|
__le32 intr_target;
|
|
__le32 control;
|
|
};
|
|
|
|
struct xhci_transfer_event {
|
|
__le64 buffer;
|
|
__le32 transfer_len;
|
|
__le32 flags;
|
|
};
|
|
|
|
struct xhci_event_cmd {
|
|
__le64 cmd_trb;
|
|
__le32 status;
|
|
__le32 flags;
|
|
};
|
|
|
|
struct xhci_generic_trb {
|
|
__le32 field[4];
|
|
};
|
|
|
|
union xhci_trb {
|
|
struct xhci_link_trb link;
|
|
struct xhci_transfer_event trans_event;
|
|
struct xhci_event_cmd event_cmd;
|
|
struct xhci_generic_trb generic;
|
|
};
|
|
|
|
struct xhci_erst_entry {
|
|
__le64 seg_addr;
|
|
__le32 seg_size;
|
|
__le32 rsvd;
|
|
};
|
|
|
|
struct xhci_command {
|
|
struct xhci_container_ctx *in_ctx;
|
|
u32 status;
|
|
int slot_id;
|
|
struct completion *completion;
|
|
union xhci_trb *command_trb;
|
|
struct list_head cmd_list;
|
|
};
|
|
|
|
struct xhci_container_ctx {
|
|
unsigned int type;
|
|
int size;
|
|
u8 *bytes;
|
|
dma_addr_t dma;
|
|
};
|
|
|
|
struct xhci_scratchpad {
|
|
u64 *sp_array;
|
|
dma_addr_t sp_dma;
|
|
void **sp_buffers;
|
|
};
|
|
|
|
struct xhci_bw_info {
|
|
unsigned int ep_interval;
|
|
unsigned int mult;
|
|
unsigned int num_packets;
|
|
unsigned int max_packet_size;
|
|
unsigned int max_esit_payload;
|
|
unsigned int type;
|
|
};
|
|
|
|
struct xhci_stream_info;
|
|
|
|
struct xhci_virt_ep {
|
|
struct xhci_virt_device *vdev;
|
|
unsigned int ep_index;
|
|
struct xhci_ring *ring;
|
|
struct xhci_stream_info *stream_info;
|
|
struct xhci_ring *new_ring;
|
|
unsigned int err_count;
|
|
unsigned int ep_state;
|
|
struct list_head cancelled_td_list;
|
|
struct xhci_hcd *xhci;
|
|
struct xhci_segment *queued_deq_seg;
|
|
union xhci_trb *queued_deq_ptr;
|
|
bool skip;
|
|
struct xhci_bw_info bw_info;
|
|
struct list_head bw_endpoint_list;
|
|
int next_frame_id;
|
|
bool use_extended_tbc;
|
|
};
|
|
|
|
struct xhci_interval_bw_table;
|
|
|
|
struct xhci_tt_bw_info;
|
|
|
|
struct xhci_virt_device {
|
|
int slot_id;
|
|
struct usb_device *udev;
|
|
struct xhci_container_ctx *out_ctx;
|
|
struct xhci_container_ctx *in_ctx;
|
|
struct xhci_virt_ep eps[31];
|
|
u8 fake_port;
|
|
u8 real_port;
|
|
struct xhci_interval_bw_table *bw_table;
|
|
struct xhci_tt_bw_info *tt_info;
|
|
unsigned long flags;
|
|
u16 current_mel;
|
|
void *debugfs_private;
|
|
};
|
|
|
|
struct xhci_stream_ctx;
|
|
|
|
struct xhci_stream_info {
|
|
struct xhci_ring **stream_rings;
|
|
unsigned int num_streams;
|
|
struct xhci_stream_ctx *stream_ctx_array;
|
|
unsigned int num_stream_ctxs;
|
|
dma_addr_t ctx_array_dma;
|
|
struct xarray trb_address_map;
|
|
struct xhci_command *free_streams_command;
|
|
};
|
|
|
|
struct xhci_stream_ctx {
|
|
__le64 stream_ring;
|
|
__le32 reserved[2];
|
|
};
|
|
|
|
struct xhci_interval_bw {
|
|
unsigned int num_packets;
|
|
struct list_head endpoints;
|
|
unsigned int overhead[3];
|
|
};
|
|
|
|
struct xhci_interval_bw_table {
|
|
unsigned int interval0_esit_payload;
|
|
struct xhci_interval_bw interval_bw[16];
|
|
unsigned int bw_used;
|
|
unsigned int ss_bw_in;
|
|
unsigned int ss_bw_out;
|
|
};
|
|
|
|
struct xhci_tt_bw_info {
|
|
struct list_head tt_list;
|
|
int slot_id;
|
|
int ttport;
|
|
struct xhci_interval_bw_table bw_table;
|
|
int active_eps;
|
|
};
|
|
|
|
struct xhci_root_port_bw_info {
|
|
struct list_head tts;
|
|
unsigned int num_active_tts;
|
|
struct xhci_interval_bw_table bw_table;
|
|
};
|
|
|
|
struct xhci_port {
|
|
__le32 *addr;
|
|
int hw_portnum;
|
|
int hcd_portnum;
|
|
struct xhci_hub *rhub;
|
|
struct xhci_port_cap *port_cap;
|
|
unsigned int lpm_incapable: 1;
|
|
unsigned long resume_timestamp;
|
|
bool rexit_active;
|
|
struct completion rexit_done;
|
|
struct completion u3exit_done;
|
|
};
|
|
|
|
struct xhci_port_cap {
|
|
u32 *psi;
|
|
u8 psi_count;
|
|
u8 psi_uid_count;
|
|
u8 maj_rev;
|
|
u8 min_rev;
|
|
};
|
|
|
|
typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *);
|
|
|
|
typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *);
|
|
|
|
typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *);
|
|
|
|
typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *);
|
|
|
|
typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *);
|
|
|
|
typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *);
|
|
|
|
typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *);
|
|
|
|
typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *);
|
|
|
|
typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *);
|
|
|
|
struct xhci_ep_ctx;
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *);
|
|
|
|
struct xhci_ep_ctx {
|
|
__le32 ep_info;
|
|
__le32 ep_info2;
|
|
__le64 deq;
|
|
__le32 tx_info;
|
|
__le32 reserved[3];
|
|
};
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *);
|
|
|
|
struct xhci_slot_ctx;
|
|
|
|
typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *);
|
|
|
|
struct xhci_slot_ctx {
|
|
__le32 dev_info;
|
|
__le32 dev_info2;
|
|
__le32 tt_info;
|
|
__le32 dev_state;
|
|
__le32 reserved[4];
|
|
};
|
|
|
|
typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *);
|
|
|
|
struct xhci_input_control_ctx;
|
|
|
|
typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *);
|
|
|
|
struct xhci_input_control_ctx {
|
|
__le32 drop_flags;
|
|
__le32 add_flags;
|
|
__le32 rsvd2[6];
|
|
};
|
|
|
|
typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *);
|
|
|
|
typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *);
|
|
|
|
typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *);
|
|
|
|
typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *);
|
|
|
|
typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *);
|
|
|
|
typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *);
|
|
|
|
typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32);
|
|
|
|
typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32);
|
|
|
|
typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32);
|
|
|
|
typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32);
|
|
|
|
typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32);
|
|
|
|
struct dbc_request;
|
|
|
|
typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *);
|
|
|
|
struct xhci_dbc;
|
|
|
|
struct dbc_request {
|
|
void *buf;
|
|
unsigned int length;
|
|
dma_addr_t dma;
|
|
void (*complete)(struct xhci_dbc *, struct dbc_request *);
|
|
struct list_head list_pool;
|
|
int status;
|
|
unsigned int actual;
|
|
struct xhci_dbc *dbc;
|
|
struct list_head list_pending;
|
|
dma_addr_t trb_dma;
|
|
union xhci_trb *trb;
|
|
unsigned int direction: 1;
|
|
};
|
|
|
|
enum dbc_state {
|
|
DS_DISABLED = 0,
|
|
DS_INITIALIZED = 1,
|
|
DS_ENABLED = 2,
|
|
DS_CONNECTED = 3,
|
|
DS_CONFIGURED = 4,
|
|
DS_STALLED = 5,
|
|
};
|
|
|
|
struct dbc_ep {
|
|
struct xhci_dbc *dbc;
|
|
struct list_head list_pending;
|
|
struct xhci_ring *ring;
|
|
unsigned int direction: 1;
|
|
};
|
|
|
|
struct dbc_regs;
|
|
|
|
struct dbc_str_descs;
|
|
|
|
struct dbc_driver;
|
|
|
|
struct xhci_dbc {
|
|
spinlock_t lock;
|
|
struct device *dev;
|
|
struct xhci_hcd *xhci;
|
|
struct dbc_regs *regs;
|
|
struct xhci_ring *ring_evt;
|
|
struct xhci_ring *ring_in;
|
|
struct xhci_ring *ring_out;
|
|
struct xhci_erst erst;
|
|
struct xhci_container_ctx *ctx;
|
|
struct dbc_str_descs *string;
|
|
dma_addr_t string_dma;
|
|
size_t string_size;
|
|
enum dbc_state state;
|
|
struct delayed_work event_work;
|
|
unsigned int resume_required: 1;
|
|
struct dbc_ep eps[2];
|
|
const struct dbc_driver *driver;
|
|
void *priv;
|
|
};
|
|
|
|
struct dbc_regs {
|
|
__le32 capability;
|
|
__le32 doorbell;
|
|
__le32 ersts;
|
|
__le32 __reserved_0;
|
|
__le64 erstba;
|
|
__le64 erdp;
|
|
__le32 control;
|
|
__le32 status;
|
|
__le32 portsc;
|
|
__le32 __reserved_1;
|
|
__le64 dccp;
|
|
__le32 devinfo1;
|
|
__le32 devinfo2;
|
|
};
|
|
|
|
struct dbc_str_descs {
|
|
char string0[64];
|
|
char manufacturer[64];
|
|
char product[64];
|
|
char serial[64];
|
|
};
|
|
|
|
struct dbc_driver {
|
|
int (*configure)(struct xhci_dbc *);
|
|
void (*disconnect)(struct xhci_dbc *);
|
|
};
|
|
|
|
typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *);
|
|
|
|
typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *);
|
|
|
|
typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *);
|
|
|
|
struct trace_event_raw_xhci_log_msg {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_ctx {
|
|
struct trace_entry ent;
|
|
int ctx_64;
|
|
unsigned int ctx_type;
|
|
dma_addr_t ctx_dma;
|
|
u8 *ctx_va;
|
|
unsigned int ctx_ep_num;
|
|
int slot_id;
|
|
u32 __data_loc_ctx_data;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_trb {
|
|
struct trace_entry ent;
|
|
u32 type;
|
|
u32 field0;
|
|
u32 field1;
|
|
u32 field2;
|
|
u32 field3;
|
|
u32 __data_loc_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_free_virt_dev {
|
|
struct trace_entry ent;
|
|
void *vdev;
|
|
unsigned long long out_ctx;
|
|
unsigned long long in_ctx;
|
|
u8 fake_port;
|
|
u8 real_port;
|
|
u16 current_mel;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_virt_dev {
|
|
struct trace_entry ent;
|
|
void *vdev;
|
|
unsigned long long out_ctx;
|
|
unsigned long long in_ctx;
|
|
int devnum;
|
|
int state;
|
|
int speed;
|
|
u8 portnum;
|
|
u8 level;
|
|
int slot_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_urb {
|
|
struct trace_entry ent;
|
|
void *urb;
|
|
unsigned int pipe;
|
|
unsigned int stream;
|
|
int status;
|
|
unsigned int flags;
|
|
int num_mapped_sgs;
|
|
int num_sgs;
|
|
int length;
|
|
int actual;
|
|
int epnum;
|
|
int dir_in;
|
|
int type;
|
|
int slot_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_ep_ctx {
|
|
struct trace_entry ent;
|
|
u32 info;
|
|
u32 info2;
|
|
u64 deq;
|
|
u32 tx_info;
|
|
u32 __data_loc_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_slot_ctx {
|
|
struct trace_entry ent;
|
|
u32 info;
|
|
u32 info2;
|
|
u32 tt_info;
|
|
u32 state;
|
|
u32 __data_loc_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_ctrl_ctx {
|
|
struct trace_entry ent;
|
|
u32 drop;
|
|
u32 add;
|
|
u32 __data_loc_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_ring {
|
|
struct trace_entry ent;
|
|
u32 type;
|
|
void *ring;
|
|
dma_addr_t enq;
|
|
dma_addr_t deq;
|
|
dma_addr_t enq_seg;
|
|
dma_addr_t deq_seg;
|
|
unsigned int num_segs;
|
|
unsigned int stream_id;
|
|
unsigned int cycle_state;
|
|
unsigned int num_trbs_free;
|
|
unsigned int bounce_buf_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_portsc {
|
|
struct trace_entry ent;
|
|
u32 portnum;
|
|
u32 portsc;
|
|
u32 __data_loc_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_log_doorbell {
|
|
struct trace_entry ent;
|
|
u32 slot;
|
|
u32 doorbell;
|
|
u32 __data_loc_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xhci_dbc_log_request {
|
|
struct trace_entry ent;
|
|
struct dbc_request *req;
|
|
bool dir;
|
|
unsigned int actual;
|
|
unsigned int length;
|
|
int status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_msg {
|
|
u32 msg;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_ctx {
|
|
u32 ctx_data;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_trb {
|
|
u32 str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_free_virt_dev {};
|
|
|
|
struct trace_event_data_offsets_xhci_log_virt_dev {};
|
|
|
|
struct trace_event_data_offsets_xhci_log_urb {};
|
|
|
|
struct trace_event_data_offsets_xhci_log_ep_ctx {
|
|
u32 str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_slot_ctx {
|
|
u32 str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_ctrl_ctx {
|
|
u32 str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_ring {};
|
|
|
|
struct trace_event_data_offsets_xhci_log_portsc {
|
|
u32 str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_log_doorbell {
|
|
u32 str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xhci_dbc_log_request {};
|
|
|
|
struct cyclecounter {
|
|
u64 (*read)(const struct cyclecounter *);
|
|
u64 mask;
|
|
u32 mult;
|
|
u32 shift;
|
|
};
|
|
|
|
struct timecounter {
|
|
const struct cyclecounter *cc;
|
|
u64 cycle_last;
|
|
u64 nsec;
|
|
u64 mask;
|
|
u64 frac;
|
|
};
|
|
|
|
struct ptp_vclock {
|
|
struct ptp_clock *pclock;
|
|
struct ptp_clock_info info;
|
|
struct ptp_clock *clock;
|
|
struct hlist_node vclock_hash_node;
|
|
struct cyclecounter cc;
|
|
struct timecounter tc;
|
|
struct mutex lock;
|
|
};
|
|
|
|
struct update_util_data {
|
|
void (*func)(struct update_util_data *, u64, unsigned int);
|
|
};
|
|
|
|
struct pstate_data {
|
|
int current_pstate;
|
|
int min_pstate;
|
|
int max_pstate;
|
|
int max_pstate_physical;
|
|
int perf_ctl_scaling;
|
|
int scaling;
|
|
int turbo_pstate;
|
|
unsigned int min_freq;
|
|
unsigned int max_freq;
|
|
unsigned int turbo_freq;
|
|
};
|
|
|
|
struct vid_data {
|
|
int min;
|
|
int max;
|
|
int turbo;
|
|
int32_t ratio;
|
|
};
|
|
|
|
struct sample {
|
|
int32_t core_avg_perf;
|
|
int32_t busy_scaled;
|
|
u64 aperf;
|
|
u64 mperf;
|
|
u64 tsc;
|
|
u64 time;
|
|
};
|
|
|
|
struct cpudata {
|
|
int cpu;
|
|
unsigned int policy;
|
|
struct update_util_data update_util;
|
|
bool update_util_set;
|
|
struct pstate_data pstate;
|
|
struct vid_data vid;
|
|
u64 last_update;
|
|
u64 last_sample_time;
|
|
u64 aperf_mperf_shift;
|
|
u64 prev_aperf;
|
|
u64 prev_mperf;
|
|
u64 prev_tsc;
|
|
u64 prev_cummulative_iowait;
|
|
struct sample sample;
|
|
int32_t min_perf_ratio;
|
|
int32_t max_perf_ratio;
|
|
struct acpi_processor_performance acpi_perf_data;
|
|
bool valid_pss_table;
|
|
unsigned int iowait_boost;
|
|
s16 epp_powersave;
|
|
s16 epp_policy;
|
|
s16 epp_default;
|
|
s16 epp_cached;
|
|
u64 hwp_req_cached;
|
|
u64 hwp_cap_cached;
|
|
u64 last_io_update;
|
|
unsigned int sched_flags;
|
|
u32 hwp_boost_min;
|
|
bool suspended;
|
|
struct delayed_work hwp_notify_work;
|
|
};
|
|
|
|
struct pstate_funcs {
|
|
int (*get_max)(int);
|
|
int (*get_max_physical)(int);
|
|
int (*get_min)(int);
|
|
int (*get_turbo)(int);
|
|
int (*get_scaling)();
|
|
int (*get_cpu_scaling)(int);
|
|
int (*get_aperf_mperf_shift)();
|
|
u64 (*get_val)(struct cpudata *, int);
|
|
void (*get_vid)(struct cpudata *);
|
|
};
|
|
|
|
struct global_params {
|
|
bool no_turbo;
|
|
bool turbo_disabled;
|
|
bool turbo_disabled_mf;
|
|
int max_perf_pct;
|
|
int min_perf_pct;
|
|
};
|
|
|
|
enum acpi_predicate {
|
|
all_versions = 0,
|
|
less_than_or_equal = 1,
|
|
equal = 2,
|
|
greater_than_or_equal = 3,
|
|
};
|
|
|
|
struct acpi_platform_list {
|
|
char oem_id[7];
|
|
char oem_table_id[9];
|
|
u32 oem_revision;
|
|
char *table;
|
|
enum acpi_predicate pred;
|
|
char *reason;
|
|
u32 data;
|
|
};
|
|
|
|
enum energy_perf_value_index {
|
|
EPP_INDEX_DEFAULT = 0,
|
|
EPP_INDEX_PERFORMANCE = 1,
|
|
EPP_INDEX_BALANCE_PERFORMANCE = 2,
|
|
EPP_INDEX_BALANCE_POWERSAVE = 3,
|
|
EPP_INDEX_POWERSAVE = 4,
|
|
};
|
|
|
|
enum acpi_preferred_pm_profiles {
|
|
PM_UNSPECIFIED = 0,
|
|
PM_DESKTOP = 1,
|
|
PM_MOBILE = 2,
|
|
PM_WORKSTATION = 3,
|
|
PM_ENTERPRISE_SERVER = 4,
|
|
PM_SOHO_SERVER = 5,
|
|
PM_APPLIANCE_PC = 6,
|
|
PM_PERFORMANCE_SERVER = 7,
|
|
PM_TABLET = 8,
|
|
};
|
|
|
|
enum {
|
|
PSS = 0,
|
|
PPC = 1,
|
|
};
|
|
|
|
struct cppc_perf_caps {
|
|
u32 guaranteed_perf;
|
|
u32 highest_perf;
|
|
u32 nominal_perf;
|
|
u32 lowest_perf;
|
|
u32 lowest_nonlinear_perf;
|
|
u32 lowest_freq;
|
|
u32 nominal_freq;
|
|
u32 energy_perf;
|
|
};
|
|
|
|
struct hiddev_usage_ref {
|
|
__u32 report_type;
|
|
__u32 report_id;
|
|
__u32 field_index;
|
|
__u32 usage_index;
|
|
__u32 usage_code;
|
|
__s32 value;
|
|
};
|
|
|
|
struct hiddev;
|
|
|
|
struct hiddev_list {
|
|
struct hiddev_usage_ref buffer[2048];
|
|
int head;
|
|
int tail;
|
|
unsigned int flags;
|
|
struct fasync_struct *fasync;
|
|
struct hiddev *hiddev;
|
|
struct list_head node;
|
|
struct mutex thread_lock;
|
|
};
|
|
|
|
struct hiddev {
|
|
int minor;
|
|
int exist;
|
|
int open;
|
|
struct mutex existancelock;
|
|
wait_queue_head_t wait;
|
|
struct hid_device *hid;
|
|
struct list_head list;
|
|
spinlock_t list_lock;
|
|
bool initialized;
|
|
};
|
|
|
|
struct hiddev_report_info {
|
|
__u32 report_type;
|
|
__u32 report_id;
|
|
__u32 num_fields;
|
|
};
|
|
|
|
struct hid_control_fifo {
|
|
unsigned char dir;
|
|
struct hid_report *report;
|
|
char *raw_report;
|
|
};
|
|
|
|
struct hid_output_fifo {
|
|
struct hid_report *report;
|
|
char *raw_report;
|
|
};
|
|
|
|
struct usb_ctrlrequest;
|
|
|
|
struct usbhid_device {
|
|
struct hid_device *hid;
|
|
struct usb_interface *intf;
|
|
int ifnum;
|
|
unsigned int bufsize;
|
|
struct urb *urbin;
|
|
char *inbuf;
|
|
dma_addr_t inbuf_dma;
|
|
struct urb *urbctrl;
|
|
struct usb_ctrlrequest *cr;
|
|
struct hid_control_fifo ctrl[256];
|
|
unsigned char ctrlhead;
|
|
unsigned char ctrltail;
|
|
char *ctrlbuf;
|
|
dma_addr_t ctrlbuf_dma;
|
|
unsigned long last_ctrl;
|
|
struct urb *urbout;
|
|
struct hid_output_fifo out[256];
|
|
unsigned char outhead;
|
|
unsigned char outtail;
|
|
char *outbuf;
|
|
dma_addr_t outbuf_dma;
|
|
unsigned long last_out;
|
|
struct mutex mutex;
|
|
spinlock_t lock;
|
|
unsigned long iofl;
|
|
struct timer_list io_retry;
|
|
unsigned long stop_retry;
|
|
unsigned int retry_delay;
|
|
struct work_struct reset_work;
|
|
wait_queue_head_t wait;
|
|
};
|
|
|
|
struct usb_ctrlrequest {
|
|
__u8 bRequestType;
|
|
__u8 bRequest;
|
|
__le16 wValue;
|
|
__le16 wIndex;
|
|
__le16 wLength;
|
|
};
|
|
|
|
struct hiddev_event {
|
|
unsigned int hid;
|
|
int value;
|
|
};
|
|
|
|
struct hiddev_collection_info {
|
|
__u32 index;
|
|
__u32 type;
|
|
__u32 usage;
|
|
__u32 level;
|
|
};
|
|
|
|
struct hiddev_field_info {
|
|
__u32 report_type;
|
|
__u32 report_id;
|
|
__u32 field_index;
|
|
__u32 maxusage;
|
|
__u32 flags;
|
|
__u32 physical;
|
|
__u32 logical;
|
|
__u32 application;
|
|
__s32 logical_minimum;
|
|
__s32 logical_maximum;
|
|
__s32 physical_minimum;
|
|
__s32 physical_maximum;
|
|
__u32 unit_exponent;
|
|
__u32 unit;
|
|
};
|
|
|
|
struct hiddev_devinfo {
|
|
__u32 bustype;
|
|
__u32 busnum;
|
|
__u32 devnum;
|
|
__u32 ifnum;
|
|
__s16 vendor;
|
|
__s16 product;
|
|
__s16 version;
|
|
__u32 num_applications;
|
|
};
|
|
|
|
struct hiddev_usage_ref_multi {
|
|
struct hiddev_usage_ref uref;
|
|
__u32 num_values;
|
|
__s32 values[1024];
|
|
};
|
|
|
|
struct hdac_bus;
|
|
|
|
struct hdac_device;
|
|
|
|
struct hdac_bus_ops {
|
|
int (*command)(struct hdac_bus *, unsigned int);
|
|
int (*get_response)(struct hdac_bus *, unsigned int, unsigned int *);
|
|
void (*link_power)(struct hdac_device *, bool);
|
|
};
|
|
|
|
struct hdac_rb {
|
|
__le32 *buf;
|
|
dma_addr_t addr;
|
|
unsigned short rp;
|
|
unsigned short wp;
|
|
int cmds[8];
|
|
u32 res[8];
|
|
};
|
|
|
|
struct hdac_ext_bus_ops;
|
|
|
|
struct drm_audio_component;
|
|
|
|
struct hdac_bus {
|
|
struct device *dev;
|
|
const struct hdac_bus_ops *ops;
|
|
const struct hdac_ext_bus_ops *ext_ops;
|
|
unsigned long addr;
|
|
void *remap_addr;
|
|
int irq;
|
|
void *ppcap;
|
|
void *spbcap;
|
|
void *mlcap;
|
|
void *gtscap;
|
|
void *drsmcap;
|
|
struct list_head codec_list;
|
|
unsigned int num_codecs;
|
|
struct hdac_device *caddr_tbl[16];
|
|
u32 unsol_queue[128];
|
|
unsigned int unsol_rp;
|
|
unsigned int unsol_wp;
|
|
struct work_struct unsol_work;
|
|
unsigned long codec_mask;
|
|
unsigned long codec_powered;
|
|
struct hdac_rb corb;
|
|
struct hdac_rb rirb;
|
|
unsigned int last_cmd[8];
|
|
wait_queue_head_t rirb_wq;
|
|
struct snd_dma_buffer rb;
|
|
struct snd_dma_buffer posbuf;
|
|
int dma_type;
|
|
struct list_head stream_list;
|
|
bool chip_init: 1;
|
|
bool aligned_mmio: 1;
|
|
bool sync_write: 1;
|
|
bool use_posbuf: 1;
|
|
bool snoop: 1;
|
|
bool align_bdle_4k: 1;
|
|
bool reverse_assign: 1;
|
|
bool corbrp_self_clear: 1;
|
|
bool polling_mode: 1;
|
|
bool needs_damn_long_delay: 1;
|
|
int poll_count;
|
|
int bdl_pos_adj;
|
|
unsigned int dma_stop_delay;
|
|
spinlock_t reg_lock;
|
|
struct mutex cmd_mutex;
|
|
struct mutex lock;
|
|
struct drm_audio_component *audio_component;
|
|
long display_power_status;
|
|
unsigned long display_power_active;
|
|
int num_streams;
|
|
int idx;
|
|
struct list_head hlink_list;
|
|
bool cmd_dma_state;
|
|
unsigned int sdo_limit;
|
|
};
|
|
|
|
struct hdac_ext_bus_ops {
|
|
int (*hdev_attach)(struct hdac_device *);
|
|
int (*hdev_detach)(struct hdac_device *);
|
|
};
|
|
|
|
typedef u16 hda_nid_t;
|
|
|
|
struct regmap;
|
|
|
|
struct snd_array {
|
|
unsigned int used;
|
|
unsigned int alloced;
|
|
unsigned int elem_size;
|
|
unsigned int alloc_align;
|
|
void *list;
|
|
};
|
|
|
|
struct hdac_widget_tree;
|
|
|
|
struct hdac_device {
|
|
struct device dev;
|
|
int type;
|
|
struct hdac_bus *bus;
|
|
unsigned int addr;
|
|
struct list_head list;
|
|
hda_nid_t afg;
|
|
hda_nid_t mfg;
|
|
unsigned int vendor_id;
|
|
unsigned int subsystem_id;
|
|
unsigned int revision_id;
|
|
unsigned int afg_function_id;
|
|
unsigned int mfg_function_id;
|
|
unsigned int afg_unsol: 1;
|
|
unsigned int mfg_unsol: 1;
|
|
unsigned int power_caps;
|
|
const char *vendor_name;
|
|
const char *chip_name;
|
|
int (*exec_verb)(struct hdac_device *, unsigned int, unsigned int, unsigned int *);
|
|
unsigned int num_nodes;
|
|
hda_nid_t start_nid;
|
|
hda_nid_t end_nid;
|
|
atomic_t in_pm;
|
|
struct mutex widget_lock;
|
|
struct hdac_widget_tree *widgets;
|
|
struct regmap *regmap;
|
|
struct mutex regmap_lock;
|
|
struct snd_array vendor_verbs;
|
|
bool lazy_cache: 1;
|
|
bool caps_overwriting: 1;
|
|
bool cache_coef: 1;
|
|
unsigned int registered: 1;
|
|
};
|
|
|
|
struct drm_audio_component_ops;
|
|
|
|
struct drm_audio_component_audio_ops;
|
|
|
|
struct drm_audio_component {
|
|
struct device *dev;
|
|
const struct drm_audio_component_ops *ops;
|
|
const struct drm_audio_component_audio_ops *audio_ops;
|
|
struct completion master_bind_complete;
|
|
};
|
|
|
|
struct drm_audio_component_ops {
|
|
struct module *owner;
|
|
unsigned long (*get_power)(struct device *);
|
|
void (*put_power)(struct device *, unsigned long);
|
|
void (*codec_wake_override)(struct device *, bool);
|
|
int (*get_cdclk_freq)(struct device *);
|
|
int (*sync_audio_rate)(struct device *, int, int, int);
|
|
int (*get_eld)(struct device *, int, int, bool *, unsigned char *, int);
|
|
};
|
|
|
|
struct drm_audio_component_audio_ops {
|
|
void *audio_ptr;
|
|
void (*pin_eld_notify)(void *, int, int);
|
|
int (*pin2port)(void *, int);
|
|
int (*master_bind)(struct device *, struct drm_audio_component *);
|
|
void (*master_unbind)(struct device *, struct drm_audio_component *);
|
|
};
|
|
|
|
struct hda_device_id;
|
|
|
|
struct hdac_driver {
|
|
struct device_driver driver;
|
|
int type;
|
|
const struct hda_device_id *id_table;
|
|
int (*match)(struct hdac_device *, struct hdac_driver *);
|
|
void (*unsol_event)(struct hdac_device *, unsigned int);
|
|
int (*probe)(struct hdac_device *);
|
|
int (*remove)(struct hdac_device *);
|
|
void (*shutdown)(struct hdac_device *);
|
|
};
|
|
|
|
struct hda_device_id {
|
|
__u32 vendor_id;
|
|
__u32 rev_id;
|
|
__u8 api_version;
|
|
const char *name;
|
|
unsigned long driver_data;
|
|
};
|
|
|
|
struct sch_frag_data {
|
|
unsigned long dst;
|
|
struct qdisc_skb_cb cb;
|
|
__be16 inner_protocol;
|
|
u16 vlan_tci;
|
|
__be16 vlan_proto;
|
|
unsigned int l2_len;
|
|
u8 l2_data[18];
|
|
int (*xmit)(struct sk_buff *);
|
|
};
|
|
|
|
struct tc_skb_cb {
|
|
struct qdisc_skb_cb qdisc_cb;
|
|
u16 mru;
|
|
u8 post_ct: 1;
|
|
u8 post_ct_snat: 1;
|
|
u8 post_ct_dnat: 1;
|
|
u16 zone;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,
|
|
ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1,
|
|
ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_RINGS_UNSPEC = 0,
|
|
ETHTOOL_A_RINGS_HEADER = 1,
|
|
ETHTOOL_A_RINGS_RX_MAX = 2,
|
|
ETHTOOL_A_RINGS_RX_MINI_MAX = 3,
|
|
ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4,
|
|
ETHTOOL_A_RINGS_TX_MAX = 5,
|
|
ETHTOOL_A_RINGS_RX = 6,
|
|
ETHTOOL_A_RINGS_RX_MINI = 7,
|
|
ETHTOOL_A_RINGS_RX_JUMBO = 8,
|
|
ETHTOOL_A_RINGS_TX = 9,
|
|
ETHTOOL_A_RINGS_RX_BUF_LEN = 10,
|
|
ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11,
|
|
ETHTOOL_A_RINGS_CQE_SIZE = 12,
|
|
ETHTOOL_A_RINGS_TX_PUSH = 13,
|
|
ETHTOOL_A_RINGS_RX_PUSH = 14,
|
|
__ETHTOOL_A_RINGS_CNT = 15,
|
|
ETHTOOL_A_RINGS_MAX = 14,
|
|
};
|
|
|
|
enum ethtool_supported_ring_param {
|
|
ETHTOOL_RING_USE_RX_BUF_LEN = 1,
|
|
ETHTOOL_RING_USE_CQE_SIZE = 2,
|
|
ETHTOOL_RING_USE_TX_PUSH = 4,
|
|
ETHTOOL_RING_USE_RX_PUSH = 8,
|
|
};
|
|
|
|
struct rings_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_ringparam ringparam;
|
|
struct kernel_ethtool_ringparam kernel_ringparam;
|
|
};
|
|
|
|
struct nf_conntrack_l4proto {
|
|
u_int8_t l4proto;
|
|
bool allow_clash;
|
|
u16 nlattr_size;
|
|
bool (*can_early_drop)(const struct nf_conn *);
|
|
int (*to_nlattr)(struct sk_buff *, struct nlattr *, struct nf_conn *, bool);
|
|
int (*from_nlattr)(struct nlattr **, struct nf_conn *);
|
|
int (*tuple_to_nlattr)(struct sk_buff *, const struct nf_conntrack_tuple *);
|
|
unsigned int (*nlattr_tuple_size)();
|
|
int (*nlattr_to_tuple)(struct nlattr **, struct nf_conntrack_tuple *, u_int32_t);
|
|
const struct nla_policy *nla_policy;
|
|
struct {
|
|
int (*nlattr_to_obj)(struct nlattr **, struct net *, void *);
|
|
int (*obj_to_nlattr)(struct sk_buff *, const void *);
|
|
u16 obj_size;
|
|
u16 nlattr_max;
|
|
const struct nla_policy *nla_policy;
|
|
} ctnl_timeout;
|
|
};
|
|
|
|
enum ctattr_timeout_generic {
|
|
CTA_TIMEOUT_GENERIC_UNSPEC = 0,
|
|
CTA_TIMEOUT_GENERIC_TIMEOUT = 1,
|
|
__CTA_TIMEOUT_GENERIC_MAX = 2,
|
|
};
|
|
|
|
struct compat_delta;
|
|
|
|
struct xt_af {
|
|
struct mutex mutex;
|
|
struct list_head match;
|
|
struct list_head target;
|
|
struct mutex compat_mutex;
|
|
struct compat_delta *compat_tab;
|
|
unsigned int number;
|
|
unsigned int cur;
|
|
};
|
|
|
|
struct compat_delta {
|
|
unsigned int offset;
|
|
int delta;
|
|
};
|
|
|
|
enum audit_nfcfgop {
|
|
AUDIT_XT_OP_REGISTER = 0,
|
|
AUDIT_XT_OP_REPLACE = 1,
|
|
AUDIT_XT_OP_UNREGISTER = 2,
|
|
AUDIT_NFT_OP_TABLE_REGISTER = 3,
|
|
AUDIT_NFT_OP_TABLE_UNREGISTER = 4,
|
|
AUDIT_NFT_OP_CHAIN_REGISTER = 5,
|
|
AUDIT_NFT_OP_CHAIN_UNREGISTER = 6,
|
|
AUDIT_NFT_OP_RULE_REGISTER = 7,
|
|
AUDIT_NFT_OP_RULE_UNREGISTER = 8,
|
|
AUDIT_NFT_OP_SET_REGISTER = 9,
|
|
AUDIT_NFT_OP_SET_UNREGISTER = 10,
|
|
AUDIT_NFT_OP_SETELEM_REGISTER = 11,
|
|
AUDIT_NFT_OP_SETELEM_UNREGISTER = 12,
|
|
AUDIT_NFT_OP_GEN_REGISTER = 13,
|
|
AUDIT_NFT_OP_OBJ_REGISTER = 14,
|
|
AUDIT_NFT_OP_OBJ_UNREGISTER = 15,
|
|
AUDIT_NFT_OP_OBJ_RESET = 16,
|
|
AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17,
|
|
AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18,
|
|
AUDIT_NFT_OP_INVALID = 19,
|
|
};
|
|
|
|
enum {
|
|
MTTG_TRAV_INIT = 0,
|
|
MTTG_TRAV_NFP_UNSPEC = 1,
|
|
MTTG_TRAV_NFP_SPEC = 2,
|
|
MTTG_TRAV_DONE = 3,
|
|
};
|
|
|
|
struct compat_xt_entry_match {
|
|
union {
|
|
struct {
|
|
u_int16_t match_size;
|
|
char name[29];
|
|
u_int8_t revision;
|
|
} user;
|
|
struct {
|
|
u_int16_t match_size;
|
|
compat_uptr_t match;
|
|
} kernel;
|
|
u_int16_t match_size;
|
|
} u;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct compat_xt_entry_target {
|
|
union {
|
|
struct {
|
|
u_int16_t target_size;
|
|
char name[29];
|
|
u_int8_t revision;
|
|
} user;
|
|
struct {
|
|
u_int16_t target_size;
|
|
compat_uptr_t target;
|
|
} kernel;
|
|
u_int16_t target_size;
|
|
} u;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct xt_table_info;
|
|
|
|
struct xt_table {
|
|
struct list_head list;
|
|
unsigned int valid_hooks;
|
|
struct xt_table_info *private;
|
|
struct nf_hook_ops *ops;
|
|
struct module *me;
|
|
u_int8_t af;
|
|
int priority;
|
|
const char name[32];
|
|
};
|
|
|
|
struct xt_table_info {
|
|
unsigned int size;
|
|
unsigned int number;
|
|
unsigned int initial_entries;
|
|
unsigned int hook_entry[5];
|
|
unsigned int underflow[5];
|
|
unsigned int stacksize;
|
|
void ***jumpstack;
|
|
unsigned char entries[0];
|
|
};
|
|
|
|
struct xt_template {
|
|
struct list_head list;
|
|
int (*table_init)(struct net *);
|
|
struct module *me;
|
|
char name[32];
|
|
};
|
|
|
|
struct xt_entry_match {
|
|
union {
|
|
struct {
|
|
__u16 match_size;
|
|
char name[29];
|
|
__u8 revision;
|
|
} user;
|
|
struct {
|
|
__u16 match_size;
|
|
struct xt_match *match;
|
|
} kernel;
|
|
__u16 match_size;
|
|
} u;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct nf_mttg_trav {
|
|
struct list_head *head;
|
|
struct list_head *curr;
|
|
uint8_t class;
|
|
};
|
|
|
|
struct xt_counters {
|
|
__u64 pcnt;
|
|
__u64 bcnt;
|
|
};
|
|
|
|
struct xt_entry_target {
|
|
union {
|
|
struct {
|
|
__u16 target_size;
|
|
char name[29];
|
|
__u8 revision;
|
|
} user;
|
|
struct {
|
|
__u16 target_size;
|
|
struct xt_target *target;
|
|
} kernel;
|
|
__u16 target_size;
|
|
} u;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct compat_xt_error_target {
|
|
struct compat_xt_entry_target t;
|
|
char errorname[30];
|
|
};
|
|
|
|
struct compat_xt_standard_target {
|
|
struct compat_xt_entry_target t;
|
|
compat_uint_t verdict;
|
|
};
|
|
|
|
struct xt_error_target {
|
|
struct xt_entry_target target;
|
|
char errorname[30];
|
|
};
|
|
|
|
struct xt_standard_target {
|
|
struct xt_entry_target target;
|
|
int verdict;
|
|
};
|
|
|
|
typedef u64 compat_u64;
|
|
|
|
struct compat_xt_counters {
|
|
compat_u64 pcnt;
|
|
compat_u64 bcnt;
|
|
};
|
|
|
|
struct compat_xt_counters_info {
|
|
char name[32];
|
|
compat_uint_t num_counters;
|
|
struct compat_xt_counters counters[0];
|
|
} __attribute__((packed));
|
|
|
|
struct xt_counters_info {
|
|
char name[32];
|
|
unsigned int num_counters;
|
|
struct xt_counters counters[0];
|
|
};
|
|
|
|
struct xt_pernet {
|
|
struct list_head tables[11];
|
|
};
|
|
|
|
struct xt_percpu_counter_alloc_state {
|
|
unsigned int off;
|
|
const char __attribute__((btf_type_tag("percpu"))) *mem;
|
|
};
|
|
|
|
struct in_ifaddr {
|
|
struct hlist_node hash;
|
|
struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_next;
|
|
struct in_device *ifa_dev;
|
|
struct callback_head callback_head;
|
|
__be32 ifa_local;
|
|
__be32 ifa_address;
|
|
__be32 ifa_mask;
|
|
__u32 ifa_rt_priority;
|
|
__be32 ifa_broadcast;
|
|
unsigned char ifa_scope;
|
|
unsigned char ifa_prefixlen;
|
|
unsigned char ifa_proto;
|
|
__u32 ifa_flags;
|
|
char ifa_label[16];
|
|
__u32 ifa_valid_lft;
|
|
__u32 ifa_preferred_lft;
|
|
unsigned long ifa_cstamp;
|
|
unsigned long ifa_tstamp;
|
|
};
|
|
|
|
struct ip_sf_list;
|
|
|
|
struct ip_mc_list {
|
|
struct in_device *interface;
|
|
__be32 multiaddr;
|
|
unsigned int sfmode;
|
|
struct ip_sf_list *sources;
|
|
struct ip_sf_list *tomb;
|
|
unsigned long sfcount[2];
|
|
union {
|
|
struct ip_mc_list *next;
|
|
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu;
|
|
};
|
|
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_hash;
|
|
struct timer_list timer;
|
|
int users;
|
|
refcount_t refcnt;
|
|
spinlock_t lock;
|
|
char tm_running;
|
|
char reporter;
|
|
char unsolicit_count;
|
|
char loaded;
|
|
unsigned char gsquery;
|
|
unsigned char crcount;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ip_sf_list {
|
|
struct ip_sf_list *sf_next;
|
|
unsigned long sf_count[2];
|
|
__be32 sf_inaddr;
|
|
unsigned char sf_gsresp;
|
|
unsigned char sf_oldin;
|
|
unsigned char sf_crcount;
|
|
};
|
|
|
|
struct devinet_sysctl_table {
|
|
struct ctl_table_header *sysctl_header;
|
|
struct ctl_table devinet_vars[34];
|
|
};
|
|
|
|
struct rtnl_af_ops {
|
|
struct list_head list;
|
|
int family;
|
|
int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32);
|
|
size_t (*get_link_af_size)(const struct net_device *, u32);
|
|
int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
|
|
int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
|
|
int (*fill_stats_af)(struct sk_buff *, const struct net_device *);
|
|
size_t (*get_stats_af_size)(const struct net_device *);
|
|
};
|
|
|
|
enum {
|
|
RTN_UNSPEC = 0,
|
|
RTN_UNICAST = 1,
|
|
RTN_LOCAL = 2,
|
|
RTN_BROADCAST = 3,
|
|
RTN_ANYCAST = 4,
|
|
RTN_MULTICAST = 5,
|
|
RTN_BLACKHOLE = 6,
|
|
RTN_UNREACHABLE = 7,
|
|
RTN_PROHIBIT = 8,
|
|
RTN_THROW = 9,
|
|
RTN_NAT = 10,
|
|
RTN_XRESOLVE = 11,
|
|
__RTN_MAX = 12,
|
|
};
|
|
|
|
enum {
|
|
IPV4_DEVCONF_FORWARDING = 1,
|
|
IPV4_DEVCONF_MC_FORWARDING = 2,
|
|
IPV4_DEVCONF_PROXY_ARP = 3,
|
|
IPV4_DEVCONF_ACCEPT_REDIRECTS = 4,
|
|
IPV4_DEVCONF_SECURE_REDIRECTS = 5,
|
|
IPV4_DEVCONF_SEND_REDIRECTS = 6,
|
|
IPV4_DEVCONF_SHARED_MEDIA = 7,
|
|
IPV4_DEVCONF_RP_FILTER = 8,
|
|
IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9,
|
|
IPV4_DEVCONF_BOOTP_RELAY = 10,
|
|
IPV4_DEVCONF_LOG_MARTIANS = 11,
|
|
IPV4_DEVCONF_TAG = 12,
|
|
IPV4_DEVCONF_ARPFILTER = 13,
|
|
IPV4_DEVCONF_MEDIUM_ID = 14,
|
|
IPV4_DEVCONF_NOXFRM = 15,
|
|
IPV4_DEVCONF_NOPOLICY = 16,
|
|
IPV4_DEVCONF_FORCE_IGMP_VERSION = 17,
|
|
IPV4_DEVCONF_ARP_ANNOUNCE = 18,
|
|
IPV4_DEVCONF_ARP_IGNORE = 19,
|
|
IPV4_DEVCONF_PROMOTE_SECONDARIES = 20,
|
|
IPV4_DEVCONF_ARP_ACCEPT = 21,
|
|
IPV4_DEVCONF_ARP_NOTIFY = 22,
|
|
IPV4_DEVCONF_ACCEPT_LOCAL = 23,
|
|
IPV4_DEVCONF_SRC_VMARK = 24,
|
|
IPV4_DEVCONF_PROXY_ARP_PVLAN = 25,
|
|
IPV4_DEVCONF_ROUTE_LOCALNET = 26,
|
|
IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27,
|
|
IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28,
|
|
IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29,
|
|
IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30,
|
|
IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31,
|
|
IPV4_DEVCONF_BC_FORWARDING = 32,
|
|
IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33,
|
|
__IPV4_DEVCONF_MAX = 34,
|
|
};
|
|
|
|
enum {
|
|
IFA_UNSPEC = 0,
|
|
IFA_ADDRESS = 1,
|
|
IFA_LOCAL = 2,
|
|
IFA_LABEL = 3,
|
|
IFA_BROADCAST = 4,
|
|
IFA_ANYCAST = 5,
|
|
IFA_CACHEINFO = 6,
|
|
IFA_MULTICAST = 7,
|
|
IFA_FLAGS = 8,
|
|
IFA_RT_PRIORITY = 9,
|
|
IFA_TARGET_NETNSID = 10,
|
|
IFA_PROTO = 11,
|
|
__IFA_MAX = 12,
|
|
};
|
|
|
|
enum {
|
|
NEIGH_VAR_MCAST_PROBES = 0,
|
|
NEIGH_VAR_UCAST_PROBES = 1,
|
|
NEIGH_VAR_APP_PROBES = 2,
|
|
NEIGH_VAR_MCAST_REPROBES = 3,
|
|
NEIGH_VAR_RETRANS_TIME = 4,
|
|
NEIGH_VAR_BASE_REACHABLE_TIME = 5,
|
|
NEIGH_VAR_DELAY_PROBE_TIME = 6,
|
|
NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7,
|
|
NEIGH_VAR_GC_STALETIME = 8,
|
|
NEIGH_VAR_QUEUE_LEN_BYTES = 9,
|
|
NEIGH_VAR_PROXY_QLEN = 10,
|
|
NEIGH_VAR_ANYCAST_DELAY = 11,
|
|
NEIGH_VAR_PROXY_DELAY = 12,
|
|
NEIGH_VAR_LOCKTIME = 13,
|
|
NEIGH_VAR_QUEUE_LEN = 14,
|
|
NEIGH_VAR_RETRANS_TIME_MS = 15,
|
|
NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16,
|
|
NEIGH_VAR_GC_INTERVAL = 17,
|
|
NEIGH_VAR_GC_THRESH1 = 18,
|
|
NEIGH_VAR_GC_THRESH2 = 19,
|
|
NEIGH_VAR_GC_THRESH3 = 20,
|
|
NEIGH_VAR_MAX = 21,
|
|
};
|
|
|
|
enum {
|
|
NETCONFA_UNSPEC = 0,
|
|
NETCONFA_IFINDEX = 1,
|
|
NETCONFA_FORWARDING = 2,
|
|
NETCONFA_RP_FILTER = 3,
|
|
NETCONFA_MC_FORWARDING = 4,
|
|
NETCONFA_PROXY_NEIGH = 5,
|
|
NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN = 6,
|
|
NETCONFA_INPUT = 7,
|
|
NETCONFA_BC_FORWARDING = 8,
|
|
__NETCONFA_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
IFLA_INET_UNSPEC = 0,
|
|
IFLA_INET_CONF = 1,
|
|
__IFLA_INET_MAX = 2,
|
|
};
|
|
|
|
struct fib_result {
|
|
__be32 prefix;
|
|
unsigned char prefixlen;
|
|
unsigned char nh_sel;
|
|
unsigned char type;
|
|
unsigned char scope;
|
|
u32 tclassid;
|
|
struct fib_nh_common *nhc;
|
|
struct fib_info *fi;
|
|
struct fib_table *table;
|
|
struct hlist_head *fa_head;
|
|
};
|
|
|
|
struct ifaddrmsg {
|
|
__u8 ifa_family;
|
|
__u8 ifa_prefixlen;
|
|
__u8 ifa_flags;
|
|
__u8 ifa_scope;
|
|
__u32 ifa_index;
|
|
};
|
|
|
|
struct ifa_cacheinfo {
|
|
__u32 ifa_prefered;
|
|
__u32 ifa_valid;
|
|
__u32 cstamp;
|
|
__u32 tstamp;
|
|
};
|
|
|
|
struct inet_fill_args {
|
|
u32 portid;
|
|
u32 seq;
|
|
int event;
|
|
unsigned int flags;
|
|
int netnsid;
|
|
int ifindex;
|
|
};
|
|
|
|
struct netconfmsg {
|
|
__u8 ncm_family;
|
|
};
|
|
|
|
struct in_validator_info {
|
|
__be32 ivi_addr;
|
|
struct in_device *ivi_dev;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
enum tunnel_encap_types {
|
|
TUNNEL_ENCAP_NONE = 0,
|
|
TUNNEL_ENCAP_FOU = 1,
|
|
TUNNEL_ENCAP_GUE = 2,
|
|
TUNNEL_ENCAP_MPLS = 3,
|
|
};
|
|
|
|
enum metadata_type {
|
|
METADATA_IP_TUNNEL = 0,
|
|
METADATA_HW_PORT_MUX = 1,
|
|
METADATA_MACSEC = 2,
|
|
METADATA_XFRM = 3,
|
|
};
|
|
|
|
enum lwtunnel_encap_types {
|
|
LWTUNNEL_ENCAP_NONE = 0,
|
|
LWTUNNEL_ENCAP_MPLS = 1,
|
|
LWTUNNEL_ENCAP_IP = 2,
|
|
LWTUNNEL_ENCAP_ILA = 3,
|
|
LWTUNNEL_ENCAP_IP6 = 4,
|
|
LWTUNNEL_ENCAP_SEG6 = 5,
|
|
LWTUNNEL_ENCAP_BPF = 6,
|
|
LWTUNNEL_ENCAP_SEG6_LOCAL = 7,
|
|
LWTUNNEL_ENCAP_RPL = 8,
|
|
LWTUNNEL_ENCAP_IOAM6 = 9,
|
|
LWTUNNEL_ENCAP_XFRM = 10,
|
|
__LWTUNNEL_ENCAP_MAX = 11,
|
|
};
|
|
|
|
enum {
|
|
IFLA_UNSPEC = 0,
|
|
IFLA_ADDRESS = 1,
|
|
IFLA_BROADCAST = 2,
|
|
IFLA_IFNAME = 3,
|
|
IFLA_MTU = 4,
|
|
IFLA_LINK = 5,
|
|
IFLA_QDISC = 6,
|
|
IFLA_STATS = 7,
|
|
IFLA_COST = 8,
|
|
IFLA_PRIORITY = 9,
|
|
IFLA_MASTER = 10,
|
|
IFLA_WIRELESS = 11,
|
|
IFLA_PROTINFO = 12,
|
|
IFLA_TXQLEN = 13,
|
|
IFLA_MAP = 14,
|
|
IFLA_WEIGHT = 15,
|
|
IFLA_OPERSTATE = 16,
|
|
IFLA_LINKMODE = 17,
|
|
IFLA_LINKINFO = 18,
|
|
IFLA_NET_NS_PID = 19,
|
|
IFLA_IFALIAS = 20,
|
|
IFLA_NUM_VF = 21,
|
|
IFLA_VFINFO_LIST = 22,
|
|
IFLA_STATS64 = 23,
|
|
IFLA_VF_PORTS = 24,
|
|
IFLA_PORT_SELF = 25,
|
|
IFLA_AF_SPEC = 26,
|
|
IFLA_GROUP = 27,
|
|
IFLA_NET_NS_FD = 28,
|
|
IFLA_EXT_MASK = 29,
|
|
IFLA_PROMISCUITY = 30,
|
|
IFLA_NUM_TX_QUEUES = 31,
|
|
IFLA_NUM_RX_QUEUES = 32,
|
|
IFLA_CARRIER = 33,
|
|
IFLA_PHYS_PORT_ID = 34,
|
|
IFLA_CARRIER_CHANGES = 35,
|
|
IFLA_PHYS_SWITCH_ID = 36,
|
|
IFLA_LINK_NETNSID = 37,
|
|
IFLA_PHYS_PORT_NAME = 38,
|
|
IFLA_PROTO_DOWN = 39,
|
|
IFLA_GSO_MAX_SEGS = 40,
|
|
IFLA_GSO_MAX_SIZE = 41,
|
|
IFLA_PAD = 42,
|
|
IFLA_XDP = 43,
|
|
IFLA_EVENT = 44,
|
|
IFLA_NEW_NETNSID = 45,
|
|
IFLA_IF_NETNSID = 46,
|
|
IFLA_TARGET_NETNSID = 46,
|
|
IFLA_CARRIER_UP_COUNT = 47,
|
|
IFLA_CARRIER_DOWN_COUNT = 48,
|
|
IFLA_NEW_IFINDEX = 49,
|
|
IFLA_MIN_MTU = 50,
|
|
IFLA_MAX_MTU = 51,
|
|
IFLA_PROP_LIST = 52,
|
|
IFLA_ALT_IFNAME = 53,
|
|
IFLA_PERM_ADDRESS = 54,
|
|
IFLA_PROTO_DOWN_REASON = 55,
|
|
IFLA_PARENT_DEV_NAME = 56,
|
|
IFLA_PARENT_DEV_BUS_NAME = 57,
|
|
IFLA_GRO_MAX_SIZE = 58,
|
|
IFLA_TSO_MAX_SIZE = 59,
|
|
IFLA_TSO_MAX_SEGS = 60,
|
|
IFLA_ALLMULTI = 61,
|
|
IFLA_DEVLINK_PORT = 62,
|
|
IFLA_GSO_IPV4_MAX_SIZE = 63,
|
|
IFLA_GRO_IPV4_MAX_SIZE = 64,
|
|
__IFLA_MAX = 65,
|
|
};
|
|
|
|
enum {
|
|
IFLA_GRE_UNSPEC = 0,
|
|
IFLA_GRE_LINK = 1,
|
|
IFLA_GRE_IFLAGS = 2,
|
|
IFLA_GRE_OFLAGS = 3,
|
|
IFLA_GRE_IKEY = 4,
|
|
IFLA_GRE_OKEY = 5,
|
|
IFLA_GRE_LOCAL = 6,
|
|
IFLA_GRE_REMOTE = 7,
|
|
IFLA_GRE_TTL = 8,
|
|
IFLA_GRE_TOS = 9,
|
|
IFLA_GRE_PMTUDISC = 10,
|
|
IFLA_GRE_ENCAP_LIMIT = 11,
|
|
IFLA_GRE_FLOWINFO = 12,
|
|
IFLA_GRE_FLAGS = 13,
|
|
IFLA_GRE_ENCAP_TYPE = 14,
|
|
IFLA_GRE_ENCAP_FLAGS = 15,
|
|
IFLA_GRE_ENCAP_SPORT = 16,
|
|
IFLA_GRE_ENCAP_DPORT = 17,
|
|
IFLA_GRE_COLLECT_METADATA = 18,
|
|
IFLA_GRE_IGNORE_DF = 19,
|
|
IFLA_GRE_FWMARK = 20,
|
|
IFLA_GRE_ERSPAN_INDEX = 21,
|
|
IFLA_GRE_ERSPAN_VER = 22,
|
|
IFLA_GRE_ERSPAN_DIR = 23,
|
|
IFLA_GRE_ERSPAN_HWID = 24,
|
|
__IFLA_GRE_MAX = 25,
|
|
};
|
|
|
|
enum erspan_encap_type {
|
|
ERSPAN_ENCAP_NOVLAN = 0,
|
|
ERSPAN_ENCAP_ISL = 1,
|
|
ERSPAN_ENCAP_8021Q = 2,
|
|
ERSPAN_ENCAP_INFRAME = 3,
|
|
};
|
|
|
|
enum erspan_bso {
|
|
BSO_NOERROR = 0,
|
|
BSO_SHORT = 1,
|
|
BSO_OVERSIZED = 2,
|
|
BSO_BAD = 3,
|
|
};
|
|
|
|
struct ip_tunnel_key {
|
|
__be64 tun_id;
|
|
union {
|
|
struct {
|
|
__be32 src;
|
|
__be32 dst;
|
|
} ipv4;
|
|
struct {
|
|
struct in6_addr src;
|
|
struct in6_addr dst;
|
|
} ipv6;
|
|
} u;
|
|
__be16 tun_flags;
|
|
u8 tos;
|
|
u8 ttl;
|
|
__be32 label;
|
|
__be16 tp_src;
|
|
__be16 tp_dst;
|
|
__u8 flow_flags;
|
|
};
|
|
|
|
struct ip_tunnel_info {
|
|
struct ip_tunnel_key key;
|
|
struct dst_cache dst_cache;
|
|
u8 options_len;
|
|
u8 mode;
|
|
};
|
|
|
|
struct hw_port_info {
|
|
struct net_device *lower_dev;
|
|
u32 port_id;
|
|
};
|
|
|
|
typedef u64 sci_t;
|
|
|
|
struct macsec_info {
|
|
sci_t sci;
|
|
};
|
|
|
|
struct xfrm_md_info {
|
|
u32 if_id;
|
|
int link;
|
|
struct dst_entry *dst_orig;
|
|
};
|
|
|
|
struct metadata_dst {
|
|
struct dst_entry dst;
|
|
enum metadata_type type;
|
|
union {
|
|
struct ip_tunnel_info tun_info;
|
|
struct hw_port_info port_info;
|
|
struct macsec_info macsec_info;
|
|
struct xfrm_md_info xfrm_info;
|
|
} u;
|
|
};
|
|
|
|
struct qtag_prefix {
|
|
__be16 eth_type;
|
|
__be16 tci;
|
|
};
|
|
|
|
struct erspan_md2 {
|
|
__be32 timestamp;
|
|
__be16 sgt;
|
|
__u8 hwid_upper: 2;
|
|
__u8 ft: 5;
|
|
__u8 p: 1;
|
|
__u8 o: 1;
|
|
__u8 gra: 2;
|
|
__u8 dir: 1;
|
|
__u8 hwid: 4;
|
|
};
|
|
|
|
struct erspan_metadata {
|
|
int version;
|
|
union {
|
|
__be32 index;
|
|
struct erspan_md2 md2;
|
|
} u;
|
|
};
|
|
|
|
struct icmphdr {
|
|
__u8 type;
|
|
__u8 code;
|
|
__sum16 checksum;
|
|
union {
|
|
struct {
|
|
__be16 id;
|
|
__be16 sequence;
|
|
} echo;
|
|
__be32 gateway;
|
|
struct {
|
|
__be16 __unused;
|
|
__be16 mtu;
|
|
} frag;
|
|
__u8 reserved[4];
|
|
} un;
|
|
};
|
|
|
|
struct ifinfomsg {
|
|
unsigned char ifi_family;
|
|
unsigned char __ifi_pad;
|
|
unsigned short ifi_type;
|
|
int ifi_index;
|
|
unsigned int ifi_flags;
|
|
unsigned int ifi_change;
|
|
};
|
|
|
|
struct ip_tunnel_net {
|
|
struct net_device *fb_tunnel_dev;
|
|
struct rtnl_link_ops *rtnl_link_ops;
|
|
struct hlist_head tunnels[128];
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *collect_md_tun;
|
|
int type;
|
|
};
|
|
|
|
struct bpf_flow_keys;
|
|
|
|
struct bpf_sock;
|
|
|
|
struct __sk_buff {
|
|
__u32 len;
|
|
__u32 pkt_type;
|
|
__u32 mark;
|
|
__u32 queue_mapping;
|
|
__u32 protocol;
|
|
__u32 vlan_present;
|
|
__u32 vlan_tci;
|
|
__u32 vlan_proto;
|
|
__u32 priority;
|
|
__u32 ingress_ifindex;
|
|
__u32 ifindex;
|
|
__u32 tc_index;
|
|
__u32 cb[5];
|
|
__u32 hash;
|
|
__u32 tc_classid;
|
|
__u32 data;
|
|
__u32 data_end;
|
|
__u32 napi_id;
|
|
__u32 family;
|
|
__u32 remote_ip4;
|
|
__u32 local_ip4;
|
|
__u32 remote_ip6[4];
|
|
__u32 local_ip6[4];
|
|
__u32 remote_port;
|
|
__u32 local_port;
|
|
__u32 data_meta;
|
|
union {
|
|
struct bpf_flow_keys *flow_keys;
|
|
};
|
|
__u64 tstamp;
|
|
__u32 wire_len;
|
|
__u32 gso_segs;
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
__u32 gso_size;
|
|
__u8 tstamp_type;
|
|
__u64 hwtstamp;
|
|
};
|
|
|
|
struct bpf_flow_keys {
|
|
__u16 nhoff;
|
|
__u16 thoff;
|
|
__u16 addr_proto;
|
|
__u8 is_frag;
|
|
__u8 is_first_frag;
|
|
__u8 is_encap;
|
|
__u8 ip_proto;
|
|
__be16 n_proto;
|
|
__be16 sport;
|
|
__be16 dport;
|
|
union {
|
|
struct {
|
|
__be32 ipv4_src;
|
|
__be32 ipv4_dst;
|
|
};
|
|
struct {
|
|
__u32 ipv6_src[4];
|
|
__u32 ipv6_dst[4];
|
|
};
|
|
};
|
|
__u32 flags;
|
|
__be32 flow_label;
|
|
};
|
|
|
|
struct bpf_sock {
|
|
__u32 bound_dev_if;
|
|
__u32 family;
|
|
__u32 type;
|
|
__u32 protocol;
|
|
__u32 mark;
|
|
__u32 priority;
|
|
__u32 src_ip4;
|
|
__u32 src_ip6[4];
|
|
__u32 src_port;
|
|
__be16 dst_port;
|
|
__u32 dst_ip4;
|
|
__u32 dst_ip6[4];
|
|
__u32 state;
|
|
__s32 rx_queue_mapping;
|
|
};
|
|
|
|
struct bpf_xfrm_info {
|
|
u32 if_id;
|
|
int link;
|
|
};
|
|
|
|
struct ipv6_rpl_sr_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
__u8 type;
|
|
__u8 segments_left;
|
|
__u32 cmpre: 4;
|
|
__u32 cmpri: 4;
|
|
__u32 reserved: 4;
|
|
__u32 pad: 4;
|
|
__u32 reserved1: 16;
|
|
union {
|
|
struct {
|
|
struct { } __empty_addr;
|
|
struct in6_addr addr[0];
|
|
};
|
|
struct {
|
|
struct { } __empty_data;
|
|
__u8 data[0];
|
|
};
|
|
} segments;
|
|
};
|
|
|
|
struct ioam6_pernet_data {
|
|
struct mutex lock;
|
|
struct rhashtable namespaces;
|
|
struct rhashtable schemas;
|
|
};
|
|
|
|
enum {
|
|
IOAM6_ATTR_UNSPEC = 0,
|
|
IOAM6_ATTR_NS_ID = 1,
|
|
IOAM6_ATTR_NS_DATA = 2,
|
|
IOAM6_ATTR_NS_DATA_WIDE = 3,
|
|
IOAM6_ATTR_SC_ID = 4,
|
|
IOAM6_ATTR_SC_DATA = 5,
|
|
IOAM6_ATTR_SC_NONE = 6,
|
|
IOAM6_ATTR_PAD = 7,
|
|
__IOAM6_ATTR_MAX = 8,
|
|
};
|
|
|
|
enum {
|
|
IOAM6_CMD_UNSPEC = 0,
|
|
IOAM6_CMD_ADD_NAMESPACE = 1,
|
|
IOAM6_CMD_DEL_NAMESPACE = 2,
|
|
IOAM6_CMD_DUMP_NAMESPACES = 3,
|
|
IOAM6_CMD_ADD_SCHEMA = 4,
|
|
IOAM6_CMD_DEL_SCHEMA = 5,
|
|
IOAM6_CMD_DUMP_SCHEMAS = 6,
|
|
IOAM6_CMD_NS_SET_SCHEMA = 7,
|
|
__IOAM6_CMD_MAX = 8,
|
|
};
|
|
|
|
struct ioam6_namespace;
|
|
|
|
struct ioam6_schema {
|
|
struct rhash_head head;
|
|
struct callback_head rcu;
|
|
struct ioam6_namespace __attribute__((btf_type_tag("rcu"))) *ns;
|
|
u32 id;
|
|
int len;
|
|
__be32 hdr;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct ioam6_namespace {
|
|
struct rhash_head head;
|
|
struct callback_head rcu;
|
|
struct ioam6_schema __attribute__((btf_type_tag("rcu"))) *schema;
|
|
__be16 id;
|
|
__be32 data;
|
|
__be64 data_wide;
|
|
};
|
|
|
|
struct rhashtable_walker {
|
|
struct list_head list;
|
|
struct bucket_table *tbl;
|
|
};
|
|
|
|
struct rhashtable_iter {
|
|
struct rhashtable *ht;
|
|
struct rhash_head *p;
|
|
struct rhlist_head *list;
|
|
struct rhashtable_walker walker;
|
|
unsigned int slot;
|
|
unsigned int skip;
|
|
bool end_of_table;
|
|
};
|
|
|
|
struct ioam6_trace_hdr {
|
|
__be16 namespace_id;
|
|
char: 2;
|
|
__u8 overflow: 1;
|
|
__u8 nodelen: 5;
|
|
__u8 remlen: 7;
|
|
union {
|
|
__be32 type_be32;
|
|
struct {
|
|
__u32 bit7: 1;
|
|
__u32 bit6: 1;
|
|
__u32 bit5: 1;
|
|
__u32 bit4: 1;
|
|
__u32 bit3: 1;
|
|
__u32 bit2: 1;
|
|
__u32 bit1: 1;
|
|
__u32 bit0: 1;
|
|
__u32 bit15: 1;
|
|
__u32 bit14: 1;
|
|
__u32 bit13: 1;
|
|
__u32 bit12: 1;
|
|
__u32 bit11: 1;
|
|
__u32 bit10: 1;
|
|
__u32 bit9: 1;
|
|
__u32 bit8: 1;
|
|
__u32 bit23: 1;
|
|
__u32 bit22: 1;
|
|
__u32 bit21: 1;
|
|
__u32 bit20: 1;
|
|
__u32 bit19: 1;
|
|
__u32 bit18: 1;
|
|
__u32 bit17: 1;
|
|
__u32 bit16: 1;
|
|
} type;
|
|
};
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct ip6_tnl_encap_ops {
|
|
size_t (*encap_hlen)(struct ip_tunnel_encap *);
|
|
int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi6 *);
|
|
int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
|
|
};
|
|
|
|
struct udphdr {
|
|
__be16 source;
|
|
__be16 dest;
|
|
__be16 len;
|
|
__sum16 check;
|
|
};
|
|
|
|
struct guehdr {
|
|
union {
|
|
struct {
|
|
__u8 hlen: 5;
|
|
__u8 control: 1;
|
|
__u8 version: 2;
|
|
__u8 proto_ctype;
|
|
__be16 flags;
|
|
};
|
|
__be32 word;
|
|
};
|
|
};
|
|
|
|
struct inet6_protocol {
|
|
int (*handler)(struct sk_buff *);
|
|
int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct svc_rqst;
|
|
|
|
struct auth_domain;
|
|
|
|
struct auth_ops {
|
|
char *name;
|
|
struct module *owner;
|
|
int flavour;
|
|
int (*accept)(struct svc_rqst *);
|
|
int (*release)(struct svc_rqst *);
|
|
void (*domain_release)(struct auth_domain *);
|
|
int (*set_client)(struct svc_rqst *);
|
|
};
|
|
|
|
struct gss_api_mech;
|
|
|
|
struct svc_cred {
|
|
kuid_t cr_uid;
|
|
kgid_t cr_gid;
|
|
struct group_info *cr_group_info;
|
|
u32 cr_flavor;
|
|
char *cr_raw_principal;
|
|
char *cr_principal;
|
|
char *cr_targ_princ;
|
|
struct gss_api_mech *cr_gss_mech;
|
|
};
|
|
|
|
struct cache_deferred_req;
|
|
|
|
struct cache_req {
|
|
struct cache_deferred_req * (*defer)(struct cache_req *);
|
|
unsigned long thread_wait;
|
|
};
|
|
|
|
struct svc_cacherep;
|
|
|
|
struct svc_serv;
|
|
|
|
struct svc_pool;
|
|
|
|
struct svc_procedure;
|
|
|
|
struct svc_deferred_req;
|
|
|
|
struct svc_rqst {
|
|
struct list_head rq_all;
|
|
struct callback_head rq_rcu_head;
|
|
struct svc_xprt *rq_xprt;
|
|
struct __kernel_sockaddr_storage rq_addr;
|
|
size_t rq_addrlen;
|
|
struct __kernel_sockaddr_storage rq_daddr;
|
|
size_t rq_daddrlen;
|
|
struct svc_serv *rq_server;
|
|
struct svc_pool *rq_pool;
|
|
const struct svc_procedure *rq_procinfo;
|
|
struct auth_ops *rq_authop;
|
|
struct svc_cred rq_cred;
|
|
void *rq_xprt_ctxt;
|
|
struct svc_deferred_req *rq_deferred;
|
|
struct xdr_buf rq_arg;
|
|
struct xdr_stream rq_arg_stream;
|
|
struct xdr_stream rq_res_stream;
|
|
struct page *rq_scratch_page;
|
|
struct xdr_buf rq_res;
|
|
struct page *rq_pages[260];
|
|
struct page **rq_respages;
|
|
struct page **rq_next_page;
|
|
struct page **rq_page_end;
|
|
struct pagevec rq_pvec;
|
|
struct kvec rq_vec[259];
|
|
struct bio_vec rq_bvec[259];
|
|
__be32 rq_xid;
|
|
u32 rq_prog;
|
|
u32 rq_vers;
|
|
u32 rq_proc;
|
|
u32 rq_prot;
|
|
int rq_cachetype;
|
|
unsigned long rq_flags;
|
|
ktime_t rq_qtime;
|
|
void *rq_argp;
|
|
void *rq_resp;
|
|
__be32 *rq_accept_statp;
|
|
void *rq_auth_data;
|
|
__be32 rq_auth_stat;
|
|
int rq_auth_slack;
|
|
int rq_reserved;
|
|
ktime_t rq_stime;
|
|
struct cache_req rq_chandle;
|
|
struct auth_domain *rq_client;
|
|
struct auth_domain *rq_gssclient;
|
|
struct svc_cacherep *rq_cacherep;
|
|
struct task_struct *rq_task;
|
|
struct net *rq_bc_net;
|
|
void **rq_lease_breaker;
|
|
};
|
|
|
|
struct svc_xprt_class;
|
|
|
|
struct svc_xprt_ops;
|
|
|
|
struct svc_xprt {
|
|
struct svc_xprt_class *xpt_class;
|
|
const struct svc_xprt_ops *xpt_ops;
|
|
struct kref xpt_ref;
|
|
struct list_head xpt_list;
|
|
struct list_head xpt_ready;
|
|
unsigned long xpt_flags;
|
|
struct svc_serv *xpt_server;
|
|
atomic_t xpt_reserved;
|
|
atomic_t xpt_nr_rqsts;
|
|
struct mutex xpt_mutex;
|
|
spinlock_t xpt_lock;
|
|
void *xpt_auth_cache;
|
|
struct list_head xpt_deferred;
|
|
struct __kernel_sockaddr_storage xpt_local;
|
|
size_t xpt_locallen;
|
|
struct __kernel_sockaddr_storage xpt_remote;
|
|
size_t xpt_remotelen;
|
|
char xpt_remotebuf[58];
|
|
struct list_head xpt_users;
|
|
struct net *xpt_net;
|
|
netns_tracker ns_tracker;
|
|
const struct cred *xpt_cred;
|
|
struct rpc_xprt *xpt_bc_xprt;
|
|
struct rpc_xprt_switch *xpt_bc_xps;
|
|
};
|
|
|
|
struct svc_xprt_class {
|
|
const char *xcl_name;
|
|
struct module *xcl_owner;
|
|
const struct svc_xprt_ops *xcl_ops;
|
|
struct list_head xcl_list;
|
|
u32 xcl_max_payload;
|
|
int xcl_ident;
|
|
};
|
|
|
|
struct svc_xprt_ops {
|
|
struct svc_xprt * (*xpo_create)(struct svc_serv *, struct net *, struct sockaddr *, int, int);
|
|
struct svc_xprt * (*xpo_accept)(struct svc_xprt *);
|
|
int (*xpo_has_wspace)(struct svc_xprt *);
|
|
int (*xpo_recvfrom)(struct svc_rqst *);
|
|
int (*xpo_sendto)(struct svc_rqst *);
|
|
int (*xpo_result_payload)(struct svc_rqst *, unsigned int, unsigned int);
|
|
void (*xpo_release_rqst)(struct svc_rqst *);
|
|
void (*xpo_detach)(struct svc_xprt *);
|
|
void (*xpo_free)(struct svc_xprt *);
|
|
void (*xpo_kill_temp_xprt)(struct svc_xprt *);
|
|
void (*xpo_start_tls)(struct svc_xprt *);
|
|
};
|
|
|
|
struct svc_program;
|
|
|
|
struct svc_stat;
|
|
|
|
struct svc_serv {
|
|
struct svc_program *sv_program;
|
|
struct svc_stat *sv_stats;
|
|
spinlock_t sv_lock;
|
|
struct kref sv_refcnt;
|
|
unsigned int sv_nrthreads;
|
|
unsigned int sv_maxconn;
|
|
unsigned int sv_max_payload;
|
|
unsigned int sv_max_mesg;
|
|
unsigned int sv_xdrsize;
|
|
struct list_head sv_permsocks;
|
|
struct list_head sv_tempsocks;
|
|
int sv_tmpcnt;
|
|
struct timer_list sv_temptimer;
|
|
char *sv_name;
|
|
unsigned int sv_nrpools;
|
|
struct svc_pool *sv_pools;
|
|
int (*sv_threadfn)(void *);
|
|
};
|
|
|
|
struct svc_version;
|
|
|
|
struct svc_process_info;
|
|
|
|
struct svc_program {
|
|
struct svc_program *pg_next;
|
|
u32 pg_prog;
|
|
unsigned int pg_lovers;
|
|
unsigned int pg_hivers;
|
|
unsigned int pg_nvers;
|
|
const struct svc_version **pg_vers;
|
|
char *pg_name;
|
|
char *pg_class;
|
|
struct svc_stat *pg_stats;
|
|
int (*pg_authenticate)(struct svc_rqst *);
|
|
__be32 (*pg_init_request)(struct svc_rqst *, const struct svc_program *, struct svc_process_info *);
|
|
int (*pg_rpcbind_set)(struct net *, const struct svc_program *, u32, int, unsigned short, unsigned short);
|
|
};
|
|
|
|
struct svc_version {
|
|
u32 vs_vers;
|
|
u32 vs_nproc;
|
|
const struct svc_procedure *vs_proc;
|
|
unsigned long __attribute__((btf_type_tag("percpu"))) *vs_count;
|
|
u32 vs_xdrsize;
|
|
bool vs_hidden;
|
|
bool vs_rpcb_optnl;
|
|
bool vs_need_cong_ctrl;
|
|
int (*vs_dispatch)(struct svc_rqst *);
|
|
};
|
|
|
|
struct svc_procedure {
|
|
__be32 (*pc_func)(struct svc_rqst *);
|
|
bool (*pc_decode)(struct svc_rqst *, struct xdr_stream *);
|
|
bool (*pc_encode)(struct svc_rqst *, struct xdr_stream *);
|
|
void (*pc_release)(struct svc_rqst *);
|
|
unsigned int pc_argsize;
|
|
unsigned int pc_argzero;
|
|
unsigned int pc_ressize;
|
|
unsigned int pc_cachetype;
|
|
unsigned int pc_xdrressize;
|
|
const char *pc_name;
|
|
};
|
|
|
|
struct svc_stat {
|
|
struct svc_program *program;
|
|
unsigned int netcnt;
|
|
unsigned int netudpcnt;
|
|
unsigned int nettcpcnt;
|
|
unsigned int nettcpconn;
|
|
unsigned int rpccnt;
|
|
unsigned int rpcbadfmt;
|
|
unsigned int rpcbadauth;
|
|
unsigned int rpcbadclnt;
|
|
};
|
|
|
|
struct svc_process_info {
|
|
union {
|
|
int (*dispatch)(struct svc_rqst *);
|
|
struct {
|
|
unsigned int lovers;
|
|
unsigned int hivers;
|
|
} mismatch;
|
|
};
|
|
};
|
|
|
|
struct svc_pool {
|
|
unsigned int sp_id;
|
|
spinlock_t sp_lock;
|
|
struct list_head sp_sockets;
|
|
unsigned int sp_nrthreads;
|
|
struct list_head sp_all_threads;
|
|
struct percpu_counter sp_sockets_queued;
|
|
struct percpu_counter sp_threads_woken;
|
|
struct percpu_counter sp_threads_timedout;
|
|
unsigned long sp_flags;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct gss_api_ops;
|
|
|
|
struct pf_desc;
|
|
|
|
struct gss_api_mech {
|
|
struct list_head gm_list;
|
|
struct module *gm_owner;
|
|
struct rpcsec_gss_oid gm_oid;
|
|
char *gm_name;
|
|
const struct gss_api_ops *gm_ops;
|
|
int gm_pf_num;
|
|
struct pf_desc *gm_pfs;
|
|
const char *gm_upcall_enctypes;
|
|
};
|
|
|
|
struct gss_ctx;
|
|
|
|
struct gss_api_ops {
|
|
int (*gss_import_sec_context)(const void *, size_t, struct gss_ctx *, time64_t *, gfp_t);
|
|
u32 (*gss_get_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *);
|
|
u32 (*gss_verify_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *);
|
|
u32 (*gss_wrap)(struct gss_ctx *, int, struct xdr_buf *, struct page **);
|
|
u32 (*gss_unwrap)(struct gss_ctx *, int, int, struct xdr_buf *);
|
|
void (*gss_delete_sec_context)(void *);
|
|
};
|
|
|
|
struct gss_ctx {
|
|
struct gss_api_mech *mech_type;
|
|
void *internal_ctx_id;
|
|
unsigned int slack;
|
|
unsigned int align;
|
|
};
|
|
|
|
struct pf_desc {
|
|
u32 pseudoflavor;
|
|
u32 qop;
|
|
u32 service;
|
|
char *name;
|
|
char *auth_domain_name;
|
|
struct auth_domain *domain;
|
|
bool datatouch;
|
|
};
|
|
|
|
struct auth_domain {
|
|
struct kref ref;
|
|
struct hlist_node hash;
|
|
char *name;
|
|
struct auth_ops *flavour;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct cache_head;
|
|
|
|
struct cache_deferred_req {
|
|
struct hlist_node hash;
|
|
struct list_head recent;
|
|
struct cache_head *item;
|
|
void *owner;
|
|
void (*revisit)(struct cache_deferred_req *, int);
|
|
};
|
|
|
|
struct svc_deferred_req {
|
|
u32 prot;
|
|
struct svc_xprt *xprt;
|
|
struct __kernel_sockaddr_storage addr;
|
|
size_t addrlen;
|
|
struct __kernel_sockaddr_storage daddr;
|
|
size_t daddrlen;
|
|
void *xprt_ctxt;
|
|
struct cache_deferred_req handle;
|
|
int argslen;
|
|
__be32 args[0];
|
|
};
|
|
|
|
struct cache_head {
|
|
struct hlist_node cache_list;
|
|
time64_t expiry_time;
|
|
time64_t last_refresh;
|
|
struct kref ref;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct mesh_rmc {
|
|
struct hlist_head bucket[256];
|
|
u32 idx_mask;
|
|
};
|
|
|
|
enum ieee80211_filter_flags {
|
|
FIF_ALLMULTI = 2,
|
|
FIF_FCSFAIL = 4,
|
|
FIF_PLCPFAIL = 8,
|
|
FIF_BCN_PRBRESP_PROMISC = 16,
|
|
FIF_CONTROL = 32,
|
|
FIF_OTHER_BSS = 64,
|
|
FIF_PSPOLL = 128,
|
|
FIF_PROBE_REQ = 256,
|
|
FIF_MCAST_ACTION = 512,
|
|
};
|
|
|
|
enum {
|
|
SCAN_SW_SCANNING = 0,
|
|
SCAN_HW_SCANNING = 1,
|
|
SCAN_ONCHANNEL_SCANNING = 2,
|
|
SCAN_COMPLETED = 3,
|
|
SCAN_ABORTED = 4,
|
|
SCAN_HW_CANCELLED = 5,
|
|
SCAN_BEACON_WAIT = 6,
|
|
SCAN_BEACON_DONE = 7,
|
|
};
|
|
|
|
enum ieee80211_radiotap_mcs_have {
|
|
IEEE80211_RADIOTAP_MCS_HAVE_BW = 1,
|
|
IEEE80211_RADIOTAP_MCS_HAVE_MCS = 2,
|
|
IEEE80211_RADIOTAP_MCS_HAVE_GI = 4,
|
|
IEEE80211_RADIOTAP_MCS_HAVE_FMT = 8,
|
|
IEEE80211_RADIOTAP_MCS_HAVE_FEC = 16,
|
|
IEEE80211_RADIOTAP_MCS_HAVE_STBC = 32,
|
|
};
|
|
|
|
enum ieee80211_radiotap_vht_known {
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_STBC = 1,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_TXOP_PS_NA = 2,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_GI = 4,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_SGI_NSYM_DIS = 8,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_LDPC_EXTRA_OFDM_SYM = 16,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED = 32,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH = 64,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_GROUP_ID = 128,
|
|
IEEE80211_RADIOTAP_VHT_KNOWN_PARTIAL_AID = 256,
|
|
};
|
|
|
|
enum nl80211_channel_type {
|
|
NL80211_CHAN_NO_HT = 0,
|
|
NL80211_CHAN_HT20 = 1,
|
|
NL80211_CHAN_HT40MINUS = 2,
|
|
NL80211_CHAN_HT40PLUS = 3,
|
|
};
|
|
|
|
enum rate_control_capabilities {
|
|
RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1,
|
|
RATE_CTRL_CAPA_AMPDU_TRIGGER = 2,
|
|
};
|
|
|
|
enum {
|
|
IEEE80211_RX_MSG = 1,
|
|
IEEE80211_TX_STATUS_MSG = 2,
|
|
};
|
|
|
|
struct inet6_ifaddr {
|
|
struct in6_addr addr;
|
|
__u32 prefix_len;
|
|
__u32 rt_priority;
|
|
__u32 valid_lft;
|
|
__u32 prefered_lft;
|
|
refcount_t refcnt;
|
|
spinlock_t lock;
|
|
int state;
|
|
__u32 flags;
|
|
__u8 dad_probes;
|
|
__u8 stable_privacy_retry;
|
|
__u16 scope;
|
|
__u64 dad_nonce;
|
|
unsigned long cstamp;
|
|
unsigned long tstamp;
|
|
struct delayed_work dad_work;
|
|
struct inet6_dev *idev;
|
|
struct fib6_info *rt;
|
|
struct hlist_node addr_lst;
|
|
struct list_head if_list;
|
|
struct list_head if_list_aux;
|
|
struct list_head tmp_list;
|
|
struct inet6_ifaddr *ifpub;
|
|
int regen_count;
|
|
bool tokenized;
|
|
u8 ifa_proto;
|
|
struct callback_head rcu;
|
|
struct in6_addr peer_addr;
|
|
};
|
|
|
|
struct netlbl_audit {
|
|
u32 secid;
|
|
kuid_t loginuid;
|
|
unsigned int sessionid;
|
|
};
|
|
|
|
struct lwtunnel_encap_ops {
|
|
int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *);
|
|
void (*destroy_state)(struct lwtunnel_state *);
|
|
int (*output)(struct net *, struct sock *, struct sk_buff *);
|
|
int (*input)(struct sk_buff *);
|
|
int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *);
|
|
int (*get_encap_size)(struct lwtunnel_state *);
|
|
int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *);
|
|
int (*xmit)(struct sk_buff *);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct mpls_link_stats {
|
|
__u64 rx_packets;
|
|
__u64 tx_packets;
|
|
__u64 rx_bytes;
|
|
__u64 tx_bytes;
|
|
__u64 rx_errors;
|
|
__u64 tx_errors;
|
|
__u64 rx_dropped;
|
|
__u64 tx_dropped;
|
|
__u64 rx_noroute;
|
|
};
|
|
|
|
struct mpls_pcpu_stats {
|
|
struct mpls_link_stats stats;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
enum {
|
|
MPLS_IPTUNNEL_UNSPEC = 0,
|
|
MPLS_IPTUNNEL_DST = 1,
|
|
MPLS_IPTUNNEL_TTL = 2,
|
|
__MPLS_IPTUNNEL_MAX = 3,
|
|
};
|
|
|
|
enum mpls_ttl_propagation {
|
|
MPLS_TTL_PROP_DEFAULT = 0,
|
|
MPLS_TTL_PROP_ENABLED = 1,
|
|
MPLS_TTL_PROP_DISABLED = 2,
|
|
};
|
|
|
|
enum {
|
|
NEIGH_ARP_TABLE = 0,
|
|
NEIGH_ND_TABLE = 1,
|
|
NEIGH_DN_TABLE = 2,
|
|
NEIGH_NR_TABLES = 3,
|
|
NEIGH_LINK_TABLE = 3,
|
|
};
|
|
|
|
enum {
|
|
LWTUNNEL_XMIT_DONE = 0,
|
|
LWTUNNEL_XMIT_CONTINUE = 1,
|
|
};
|
|
|
|
struct mpls_iptunnel_encap {
|
|
u8 labels;
|
|
u8 ttl_propagate;
|
|
u8 default_ttl;
|
|
u8 reserved1;
|
|
u32 label[0];
|
|
};
|
|
|
|
struct mpls_shim_hdr {
|
|
__be32 label_stack_entry;
|
|
};
|
|
|
|
enum pci_bf_sort_state {
|
|
pci_bf_sort_default = 0,
|
|
pci_force_nobf = 1,
|
|
pci_force_bf = 2,
|
|
pci_dmi_bf = 3,
|
|
};
|
|
|
|
enum {
|
|
MEMREMAP_WB = 1,
|
|
MEMREMAP_WT = 2,
|
|
MEMREMAP_WC = 4,
|
|
MEMREMAP_ENC = 8,
|
|
MEMREMAP_DEC = 16,
|
|
};
|
|
|
|
enum {
|
|
PCI_REASSIGN_ALL_RSRC = 1,
|
|
PCI_REASSIGN_ALL_BUS = 2,
|
|
PCI_PROBE_ONLY = 4,
|
|
PCI_CAN_SKIP_ISA_ALIGN = 8,
|
|
PCI_ENABLE_PROC_DOMAINS = 16,
|
|
PCI_COMPAT_DOMAIN_0 = 32,
|
|
PCI_SCAN_ALL_PCIE_DEVS = 64,
|
|
};
|
|
|
|
struct setup_data {
|
|
__u64 next;
|
|
__u32 type;
|
|
__u32 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct pci_setup_rom {
|
|
struct setup_data data;
|
|
uint16_t vendor;
|
|
uint16_t devid;
|
|
uint64_t pcilen;
|
|
unsigned long segment;
|
|
unsigned long bus;
|
|
unsigned long device;
|
|
unsigned long function;
|
|
uint8_t romdata[0];
|
|
};
|
|
|
|
struct dmi_header {
|
|
u8 type;
|
|
u8 length;
|
|
u16 handle;
|
|
};
|
|
|
|
struct cstate_model {
|
|
unsigned long core_events;
|
|
unsigned long pkg_events;
|
|
unsigned long quirks;
|
|
};
|
|
|
|
struct perf_msr {
|
|
u64 msr;
|
|
struct attribute_group *grp;
|
|
bool (*test)(int, void *);
|
|
bool no_check;
|
|
u64 mask;
|
|
};
|
|
|
|
struct perf_pmu_events_attr {
|
|
struct device_attribute attr;
|
|
u64 id;
|
|
const char *event_str;
|
|
};
|
|
|
|
enum perf_cstate_pkg_events {
|
|
PERF_CSTATE_PKG_C2_RES = 0,
|
|
PERF_CSTATE_PKG_C3_RES = 1,
|
|
PERF_CSTATE_PKG_C6_RES = 2,
|
|
PERF_CSTATE_PKG_C7_RES = 3,
|
|
PERF_CSTATE_PKG_C8_RES = 4,
|
|
PERF_CSTATE_PKG_C9_RES = 5,
|
|
PERF_CSTATE_PKG_C10_RES = 6,
|
|
PERF_CSTATE_PKG_EVENT_MAX = 7,
|
|
};
|
|
|
|
enum perf_cstate_core_events {
|
|
PERF_CSTATE_CORE_C1_RES = 0,
|
|
PERF_CSTATE_CORE_C3_RES = 1,
|
|
PERF_CSTATE_CORE_C6_RES = 2,
|
|
PERF_CSTATE_CORE_C7_RES = 3,
|
|
PERF_CSTATE_CORE_EVENT_MAX = 4,
|
|
};
|
|
|
|
enum vmx_feature_leafs {
|
|
MISC_FEATURES = 0,
|
|
PRIMARY_CTLS = 1,
|
|
SECONDARY_CTLS = 2,
|
|
TERTIARY_CTLS_LOW = 3,
|
|
TERTIARY_CTLS_HIGH = 4,
|
|
NR_VMX_FEATURE_WORDS = 5,
|
|
};
|
|
|
|
typedef unsigned long mce_banks_t[1];
|
|
|
|
enum {
|
|
CMCI_STORM_NONE = 0,
|
|
CMCI_STORM_ACTIVE = 1,
|
|
CMCI_STORM_SUBSIDED = 2,
|
|
};
|
|
|
|
enum mcp_flags {
|
|
MCP_TIMESTAMP = 1,
|
|
MCP_UC = 2,
|
|
MCP_DONTLOG = 4,
|
|
MCP_QUEUE_LOG = 8,
|
|
};
|
|
|
|
struct equiv_cpu_entry;
|
|
|
|
struct equiv_cpu_table {
|
|
unsigned int num_entries;
|
|
struct equiv_cpu_entry *entry;
|
|
};
|
|
|
|
struct equiv_cpu_entry {
|
|
u32 installed_cpu;
|
|
u32 fixed_errata_mask;
|
|
u32 fixed_errata_compare;
|
|
u16 equiv_cpu;
|
|
u16 res;
|
|
};
|
|
|
|
enum ucode_state {
|
|
UCODE_OK = 0,
|
|
UCODE_NEW = 1,
|
|
UCODE_UPDATED = 2,
|
|
UCODE_NFOUND = 3,
|
|
UCODE_ERROR = 4,
|
|
};
|
|
|
|
struct microcode_ops {
|
|
enum ucode_state (*request_microcode_fw)(int, struct device *);
|
|
void (*microcode_fini_cpu)(int);
|
|
enum ucode_state (*apply_microcode)(int);
|
|
int (*collect_cpu_info)(int, struct cpu_signature *);
|
|
};
|
|
|
|
struct microcode_header_amd {
|
|
u32 data_code;
|
|
u32 patch_id;
|
|
u16 mc_patch_data_id;
|
|
u8 mc_patch_data_len;
|
|
u8 init_flag;
|
|
u32 mc_patch_data_checksum;
|
|
u32 nb_dev_id;
|
|
u32 sb_dev_id;
|
|
u16 processor_rev_id;
|
|
u8 nb_rev_id;
|
|
u8 sb_rev_id;
|
|
u8 bios_api_rev;
|
|
u8 reserved1[3];
|
|
u32 match_reg[8];
|
|
};
|
|
|
|
struct microcode_amd {
|
|
struct microcode_header_amd hdr;
|
|
unsigned int mpb[0];
|
|
};
|
|
|
|
struct ucode_patch {
|
|
struct list_head plist;
|
|
void *data;
|
|
unsigned int size;
|
|
u32 patch_id;
|
|
u16 equiv_cpu;
|
|
};
|
|
|
|
struct cpio_data {
|
|
void *data;
|
|
size_t size;
|
|
char name[18];
|
|
};
|
|
|
|
struct cont_desc {
|
|
struct microcode_amd *mc;
|
|
u32 cpuid_1_eax;
|
|
u32 psize;
|
|
u8 *data;
|
|
size_t size;
|
|
};
|
|
|
|
enum perf_event_x86_regs {
|
|
PERF_REG_X86_AX = 0,
|
|
PERF_REG_X86_BX = 1,
|
|
PERF_REG_X86_CX = 2,
|
|
PERF_REG_X86_DX = 3,
|
|
PERF_REG_X86_SI = 4,
|
|
PERF_REG_X86_DI = 5,
|
|
PERF_REG_X86_BP = 6,
|
|
PERF_REG_X86_SP = 7,
|
|
PERF_REG_X86_IP = 8,
|
|
PERF_REG_X86_FLAGS = 9,
|
|
PERF_REG_X86_CS = 10,
|
|
PERF_REG_X86_SS = 11,
|
|
PERF_REG_X86_DS = 12,
|
|
PERF_REG_X86_ES = 13,
|
|
PERF_REG_X86_FS = 14,
|
|
PERF_REG_X86_GS = 15,
|
|
PERF_REG_X86_R8 = 16,
|
|
PERF_REG_X86_R9 = 17,
|
|
PERF_REG_X86_R10 = 18,
|
|
PERF_REG_X86_R11 = 19,
|
|
PERF_REG_X86_R12 = 20,
|
|
PERF_REG_X86_R13 = 21,
|
|
PERF_REG_X86_R14 = 22,
|
|
PERF_REG_X86_R15 = 23,
|
|
PERF_REG_X86_32_MAX = 16,
|
|
PERF_REG_X86_64_MAX = 24,
|
|
PERF_REG_X86_XMM0 = 32,
|
|
PERF_REG_X86_XMM1 = 34,
|
|
PERF_REG_X86_XMM2 = 36,
|
|
PERF_REG_X86_XMM3 = 38,
|
|
PERF_REG_X86_XMM4 = 40,
|
|
PERF_REG_X86_XMM5 = 42,
|
|
PERF_REG_X86_XMM6 = 44,
|
|
PERF_REG_X86_XMM7 = 46,
|
|
PERF_REG_X86_XMM8 = 48,
|
|
PERF_REG_X86_XMM9 = 50,
|
|
PERF_REG_X86_XMM10 = 52,
|
|
PERF_REG_X86_XMM11 = 54,
|
|
PERF_REG_X86_XMM12 = 56,
|
|
PERF_REG_X86_XMM13 = 58,
|
|
PERF_REG_X86_XMM14 = 60,
|
|
PERF_REG_X86_XMM15 = 62,
|
|
PERF_REG_X86_XMM_MAX = 64,
|
|
};
|
|
|
|
enum perf_sample_regs_abi {
|
|
PERF_SAMPLE_REGS_ABI_NONE = 0,
|
|
PERF_SAMPLE_REGS_ABI_32 = 1,
|
|
PERF_SAMPLE_REGS_ABI_64 = 2,
|
|
};
|
|
|
|
struct x86_perf_regs {
|
|
struct pt_regs regs;
|
|
u64 *xmm_regs;
|
|
};
|
|
|
|
typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *);
|
|
|
|
typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int);
|
|
|
|
typedef void (*btf_trace_softirq_entry)(void *, unsigned int);
|
|
|
|
typedef void (*btf_trace_softirq_exit)(void *, unsigned int);
|
|
|
|
typedef void (*btf_trace_softirq_raise)(void *, unsigned int);
|
|
|
|
struct tasklet_head {
|
|
struct tasklet_struct *head;
|
|
struct tasklet_struct **tail;
|
|
};
|
|
|
|
struct smp_hotplug_thread {
|
|
struct task_struct * __attribute__((btf_type_tag("percpu"))) *store;
|
|
struct list_head list;
|
|
int (*thread_should_run)(unsigned int);
|
|
void (*thread_fn)(unsigned int);
|
|
void (*create)(unsigned int);
|
|
void (*setup)(unsigned int);
|
|
void (*cleanup)(unsigned int, bool);
|
|
void (*park)(unsigned int);
|
|
void (*unpark)(unsigned int);
|
|
bool selfparking;
|
|
const char *thread_comm;
|
|
};
|
|
|
|
enum {
|
|
TASKLET_STATE_SCHED = 0,
|
|
TASKLET_STATE_RUN = 1,
|
|
};
|
|
|
|
struct trace_event_raw_irq_handler_entry {
|
|
struct trace_entry ent;
|
|
int irq;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_irq_handler_exit {
|
|
struct trace_entry ent;
|
|
int irq;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_softirq {
|
|
struct trace_entry ent;
|
|
unsigned int vec;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_irq_handler_entry {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_irq_handler_exit {};
|
|
|
|
struct trace_event_data_offsets_softirq {};
|
|
|
|
struct __kernel_old_timeval {
|
|
__kernel_long_t tv_sec;
|
|
__kernel_long_t tv_usec;
|
|
};
|
|
|
|
struct __kernel_old_itimerval {
|
|
struct __kernel_old_timeval it_interval;
|
|
struct __kernel_old_timeval it_value;
|
|
};
|
|
|
|
struct old_timeval32 {
|
|
old_time32_t tv_sec;
|
|
s32 tv_usec;
|
|
};
|
|
|
|
struct old_itimerval32 {
|
|
struct old_timeval32 it_interval;
|
|
struct old_timeval32 it_value;
|
|
};
|
|
|
|
struct itimerspec64 {
|
|
struct timespec64 it_interval;
|
|
struct timespec64 it_value;
|
|
};
|
|
|
|
typedef int __kernel_mqd_t;
|
|
|
|
typedef __kernel_mqd_t mqd_t;
|
|
|
|
struct mq_attr {
|
|
__kernel_long_t mq_flags;
|
|
__kernel_long_t mq_maxmsg;
|
|
__kernel_long_t mq_msgsize;
|
|
__kernel_long_t mq_curmsgs;
|
|
__kernel_long_t __reserved[4];
|
|
};
|
|
|
|
struct audit_cap_data {
|
|
kernel_cap_t permitted;
|
|
kernel_cap_t inheritable;
|
|
union {
|
|
unsigned int fE;
|
|
kernel_cap_t effective;
|
|
};
|
|
kernel_cap_t ambient;
|
|
kuid_t rootid;
|
|
};
|
|
|
|
struct audit_ntp_val {
|
|
long long oldval;
|
|
long long newval;
|
|
};
|
|
|
|
struct audit_ntp_data {
|
|
struct audit_ntp_val vals[6];
|
|
};
|
|
|
|
struct open_how {
|
|
__u64 flags;
|
|
__u64 mode;
|
|
__u64 resolve;
|
|
};
|
|
|
|
enum audit_state {
|
|
AUDIT_STATE_DISABLED = 0,
|
|
AUDIT_STATE_BUILD = 1,
|
|
AUDIT_STATE_RECORD = 2,
|
|
};
|
|
|
|
struct audit_names {
|
|
struct list_head list;
|
|
struct filename *name;
|
|
int name_len;
|
|
bool hidden;
|
|
unsigned long ino;
|
|
dev_t dev;
|
|
umode_t mode;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
dev_t rdev;
|
|
u32 osid;
|
|
struct audit_cap_data fcap;
|
|
unsigned int fcap_ver;
|
|
unsigned char type;
|
|
bool should_free;
|
|
};
|
|
|
|
struct audit_proctitle {
|
|
int len;
|
|
char *value;
|
|
};
|
|
|
|
struct audit_aux_data;
|
|
|
|
struct audit_tree_refs;
|
|
|
|
struct audit_context {
|
|
int dummy;
|
|
enum {
|
|
AUDIT_CTX_UNUSED = 0,
|
|
AUDIT_CTX_SYSCALL = 1,
|
|
AUDIT_CTX_URING = 2,
|
|
} context;
|
|
enum audit_state state;
|
|
enum audit_state current_state;
|
|
unsigned int serial;
|
|
int major;
|
|
int uring_op;
|
|
struct timespec64 ctime;
|
|
unsigned long argv[4];
|
|
long return_code;
|
|
u64 prio;
|
|
int return_valid;
|
|
struct audit_names preallocated_names[5];
|
|
int name_count;
|
|
struct list_head names_list;
|
|
char *filterkey;
|
|
struct path pwd;
|
|
struct audit_aux_data *aux;
|
|
struct audit_aux_data *aux_pids;
|
|
struct __kernel_sockaddr_storage *sockaddr;
|
|
size_t sockaddr_len;
|
|
pid_t ppid;
|
|
kuid_t uid;
|
|
kuid_t euid;
|
|
kuid_t suid;
|
|
kuid_t fsuid;
|
|
kgid_t gid;
|
|
kgid_t egid;
|
|
kgid_t sgid;
|
|
kgid_t fsgid;
|
|
unsigned long personality;
|
|
int arch;
|
|
pid_t target_pid;
|
|
kuid_t target_auid;
|
|
kuid_t target_uid;
|
|
unsigned int target_sessionid;
|
|
u32 target_sid;
|
|
char target_comm[16];
|
|
struct audit_tree_refs *trees;
|
|
struct audit_tree_refs *first_trees;
|
|
struct list_head killed_trees;
|
|
int tree_count;
|
|
int type;
|
|
union {
|
|
struct {
|
|
int nargs;
|
|
long args[6];
|
|
} socketcall;
|
|
struct {
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
u32 osid;
|
|
int has_perm;
|
|
uid_t perm_uid;
|
|
gid_t perm_gid;
|
|
umode_t perm_mode;
|
|
unsigned long qbytes;
|
|
} ipc;
|
|
struct {
|
|
mqd_t mqdes;
|
|
struct mq_attr mqstat;
|
|
} mq_getsetattr;
|
|
struct {
|
|
mqd_t mqdes;
|
|
int sigev_signo;
|
|
} mq_notify;
|
|
struct {
|
|
mqd_t mqdes;
|
|
size_t msg_len;
|
|
unsigned int msg_prio;
|
|
struct timespec64 abs_timeout;
|
|
} mq_sendrecv;
|
|
struct {
|
|
int oflag;
|
|
umode_t mode;
|
|
struct mq_attr attr;
|
|
} mq_open;
|
|
struct {
|
|
pid_t pid;
|
|
struct audit_cap_data cap;
|
|
} capset;
|
|
struct {
|
|
int fd;
|
|
int flags;
|
|
} mmap;
|
|
struct open_how openat2;
|
|
struct {
|
|
int argc;
|
|
} execve;
|
|
struct {
|
|
char *name;
|
|
} module;
|
|
struct {
|
|
struct audit_ntp_data ntp_data;
|
|
struct timespec64 tk_injoffset;
|
|
} time;
|
|
};
|
|
int fds[2];
|
|
struct audit_proctitle proctitle;
|
|
};
|
|
|
|
enum {
|
|
Audit_equal = 0,
|
|
Audit_not_equal = 1,
|
|
Audit_bitmask = 2,
|
|
Audit_bittest = 3,
|
|
Audit_lt = 4,
|
|
Audit_gt = 5,
|
|
Audit_le = 6,
|
|
Audit_ge = 7,
|
|
Audit_bad = 8,
|
|
};
|
|
|
|
enum {
|
|
HASH_SIZE = 128,
|
|
};
|
|
|
|
struct audit_tree;
|
|
|
|
struct audit_node {
|
|
struct list_head list;
|
|
struct audit_tree *owner;
|
|
unsigned int index;
|
|
};
|
|
|
|
struct audit_chunk {
|
|
struct list_head hash;
|
|
unsigned long key;
|
|
struct fsnotify_mark *mark;
|
|
struct list_head trees;
|
|
int count;
|
|
atomic_long_t refs;
|
|
struct callback_head head;
|
|
struct audit_node owners[0];
|
|
};
|
|
|
|
struct audit_tree {
|
|
refcount_t count;
|
|
int goner;
|
|
struct audit_chunk *root;
|
|
struct list_head chunks;
|
|
struct list_head rules;
|
|
struct list_head list;
|
|
struct list_head same_root;
|
|
struct callback_head head;
|
|
char pathname[0];
|
|
};
|
|
|
|
struct audit_tree_mark {
|
|
struct fsnotify_mark mark;
|
|
struct audit_chunk *chunk;
|
|
};
|
|
|
|
struct audit_field;
|
|
|
|
struct audit_watch;
|
|
|
|
struct audit_fsnotify_mark;
|
|
|
|
struct audit_krule {
|
|
u32 pflags;
|
|
u32 flags;
|
|
u32 listnr;
|
|
u32 action;
|
|
u32 mask[64];
|
|
u32 buflen;
|
|
u32 field_count;
|
|
char *filterkey;
|
|
struct audit_field *fields;
|
|
struct audit_field *arch_f;
|
|
struct audit_field *inode_f;
|
|
struct audit_watch *watch;
|
|
struct audit_tree *tree;
|
|
struct audit_fsnotify_mark *exe;
|
|
struct list_head rlist;
|
|
struct list_head list;
|
|
u64 prio;
|
|
};
|
|
|
|
struct audit_field {
|
|
u32 type;
|
|
union {
|
|
u32 val;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
struct {
|
|
char *lsm_str;
|
|
void *lsm_rule;
|
|
};
|
|
};
|
|
u32 op;
|
|
};
|
|
|
|
struct audit_entry {
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
struct audit_krule rule;
|
|
};
|
|
|
|
struct dyn_event;
|
|
|
|
struct dyn_event_operations {
|
|
struct list_head list;
|
|
int (*create)(const char *);
|
|
int (*show)(struct seq_file *, struct dyn_event *);
|
|
bool (*is_busy)(struct dyn_event *);
|
|
int (*free)(struct dyn_event *);
|
|
bool (*match)(const char *, const char *, int, const char **, struct dyn_event *);
|
|
};
|
|
|
|
struct dyn_event {
|
|
struct list_head list;
|
|
struct dyn_event_operations *ops;
|
|
};
|
|
|
|
enum fetch_op {
|
|
FETCH_OP_NOP = 0,
|
|
FETCH_OP_REG = 1,
|
|
FETCH_OP_STACK = 2,
|
|
FETCH_OP_STACKP = 3,
|
|
FETCH_OP_RETVAL = 4,
|
|
FETCH_OP_IMM = 5,
|
|
FETCH_OP_COMM = 6,
|
|
FETCH_OP_ARG = 7,
|
|
FETCH_OP_FOFFS = 8,
|
|
FETCH_OP_DATA = 9,
|
|
FETCH_OP_DEREF = 10,
|
|
FETCH_OP_UDEREF = 11,
|
|
FETCH_OP_ST_RAW = 12,
|
|
FETCH_OP_ST_MEM = 13,
|
|
FETCH_OP_ST_UMEM = 14,
|
|
FETCH_OP_ST_STRING = 15,
|
|
FETCH_OP_ST_USTRING = 16,
|
|
FETCH_OP_ST_SYMSTR = 17,
|
|
FETCH_OP_MOD_BF = 18,
|
|
FETCH_OP_LP_ARRAY = 19,
|
|
FETCH_OP_TP_ARG = 20,
|
|
FETCH_OP_END = 21,
|
|
FETCH_NOP_SYMBOL = 22,
|
|
};
|
|
|
|
enum dynevent_type {
|
|
DYNEVENT_TYPE_SYNTH = 1,
|
|
DYNEVENT_TYPE_KPROBE = 2,
|
|
DYNEVENT_TYPE_NONE = 3,
|
|
};
|
|
|
|
enum bpf_task_fd_type {
|
|
BPF_FD_TYPE_RAW_TRACEPOINT = 0,
|
|
BPF_FD_TYPE_TRACEPOINT = 1,
|
|
BPF_FD_TYPE_KPROBE = 2,
|
|
BPF_FD_TYPE_KRETPROBE = 3,
|
|
BPF_FD_TYPE_UPROBE = 4,
|
|
BPF_FD_TYPE_URETPROBE = 5,
|
|
};
|
|
|
|
enum probe_print_type {
|
|
PROBE_PRINT_NORMAL = 0,
|
|
PROBE_PRINT_RETURN = 1,
|
|
PROBE_PRINT_EVENT = 2,
|
|
};
|
|
|
|
enum {
|
|
TP_ERR_FILE_NOT_FOUND = 0,
|
|
TP_ERR_NO_REGULAR_FILE = 1,
|
|
TP_ERR_BAD_REFCNT = 2,
|
|
TP_ERR_REFCNT_OPEN_BRACE = 3,
|
|
TP_ERR_BAD_REFCNT_SUFFIX = 4,
|
|
TP_ERR_BAD_UPROBE_OFFS = 5,
|
|
TP_ERR_MAXACT_NO_KPROBE = 6,
|
|
TP_ERR_BAD_MAXACT = 7,
|
|
TP_ERR_MAXACT_TOO_BIG = 8,
|
|
TP_ERR_BAD_PROBE_ADDR = 9,
|
|
TP_ERR_BAD_RETPROBE = 10,
|
|
TP_ERR_BAD_ADDR_SUFFIX = 11,
|
|
TP_ERR_NO_GROUP_NAME = 12,
|
|
TP_ERR_GROUP_TOO_LONG = 13,
|
|
TP_ERR_BAD_GROUP_NAME = 14,
|
|
TP_ERR_NO_EVENT_NAME = 15,
|
|
TP_ERR_EVENT_TOO_LONG = 16,
|
|
TP_ERR_BAD_EVENT_NAME = 17,
|
|
TP_ERR_EVENT_EXIST = 18,
|
|
TP_ERR_RETVAL_ON_PROBE = 19,
|
|
TP_ERR_BAD_STACK_NUM = 20,
|
|
TP_ERR_BAD_ARG_NUM = 21,
|
|
TP_ERR_BAD_VAR = 22,
|
|
TP_ERR_BAD_REG_NAME = 23,
|
|
TP_ERR_BAD_MEM_ADDR = 24,
|
|
TP_ERR_BAD_IMM = 25,
|
|
TP_ERR_IMMSTR_NO_CLOSE = 26,
|
|
TP_ERR_FILE_ON_KPROBE = 27,
|
|
TP_ERR_BAD_FILE_OFFS = 28,
|
|
TP_ERR_SYM_ON_UPROBE = 29,
|
|
TP_ERR_TOO_MANY_OPS = 30,
|
|
TP_ERR_DEREF_NEED_BRACE = 31,
|
|
TP_ERR_BAD_DEREF_OFFS = 32,
|
|
TP_ERR_DEREF_OPEN_BRACE = 33,
|
|
TP_ERR_COMM_CANT_DEREF = 34,
|
|
TP_ERR_BAD_FETCH_ARG = 35,
|
|
TP_ERR_ARRAY_NO_CLOSE = 36,
|
|
TP_ERR_BAD_ARRAY_SUFFIX = 37,
|
|
TP_ERR_BAD_ARRAY_NUM = 38,
|
|
TP_ERR_ARRAY_TOO_BIG = 39,
|
|
TP_ERR_BAD_TYPE = 40,
|
|
TP_ERR_BAD_STRING = 41,
|
|
TP_ERR_BAD_SYMSTRING = 42,
|
|
TP_ERR_BAD_BITFIELD = 43,
|
|
TP_ERR_ARG_NAME_TOO_LONG = 44,
|
|
TP_ERR_NO_ARG_NAME = 45,
|
|
TP_ERR_BAD_ARG_NAME = 46,
|
|
TP_ERR_USED_ARG_NAME = 47,
|
|
TP_ERR_ARG_TOO_LONG = 48,
|
|
TP_ERR_NO_ARG_BODY = 49,
|
|
TP_ERR_BAD_INSN_BNDRY = 50,
|
|
TP_ERR_FAIL_REG_PROBE = 51,
|
|
TP_ERR_DIFF_PROBE_TYPE = 52,
|
|
TP_ERR_DIFF_ARG_TYPE = 53,
|
|
TP_ERR_SAME_PROBE = 54,
|
|
TP_ERR_NO_EVENT_INFO = 55,
|
|
TP_ERR_BAD_ATTACH_EVENT = 56,
|
|
TP_ERR_BAD_ATTACH_ARG = 57,
|
|
TP_ERR_NO_EP_FILTER = 58,
|
|
};
|
|
|
|
typedef u8 kprobe_opcode_t;
|
|
|
|
struct kprobe;
|
|
|
|
typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *);
|
|
|
|
typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long);
|
|
|
|
struct arch_specific_insn {
|
|
kprobe_opcode_t *insn;
|
|
unsigned int boostable: 1;
|
|
unsigned char size;
|
|
union {
|
|
unsigned char opcode;
|
|
struct {
|
|
unsigned char type;
|
|
} jcc;
|
|
struct {
|
|
unsigned char type;
|
|
unsigned char asize;
|
|
} loop;
|
|
struct {
|
|
unsigned char reg;
|
|
} indirect;
|
|
};
|
|
s32 rel32;
|
|
void (*emulate_op)(struct kprobe *, struct pt_regs *);
|
|
int tp_len;
|
|
};
|
|
|
|
struct kprobe {
|
|
struct hlist_node hlist;
|
|
struct list_head list;
|
|
unsigned long nmissed;
|
|
kprobe_opcode_t *addr;
|
|
const char *symbol_name;
|
|
unsigned int offset;
|
|
kprobe_pre_handler_t pre_handler;
|
|
kprobe_post_handler_t post_handler;
|
|
kprobe_opcode_t opcode;
|
|
struct arch_specific_insn ainsn;
|
|
u32 flags;
|
|
};
|
|
|
|
struct kretprobe_instance;
|
|
|
|
typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *);
|
|
|
|
struct kretprobe {
|
|
struct kprobe kp;
|
|
kretprobe_handler_t handler;
|
|
kretprobe_handler_t entry_handler;
|
|
int maxactive;
|
|
int nmissed;
|
|
size_t data_size;
|
|
struct rethook *rh;
|
|
};
|
|
|
|
struct fetch_insn;
|
|
|
|
struct fetch_type;
|
|
|
|
struct probe_arg {
|
|
struct fetch_insn *code;
|
|
bool dynamic;
|
|
unsigned int offset;
|
|
unsigned int count;
|
|
const char *name;
|
|
const char *comm;
|
|
char *fmt;
|
|
const struct fetch_type *type;
|
|
};
|
|
|
|
struct trace_probe_event;
|
|
|
|
struct trace_probe {
|
|
struct list_head list;
|
|
struct trace_probe_event *event;
|
|
ssize_t size;
|
|
unsigned int nr_args;
|
|
struct probe_arg args[0];
|
|
};
|
|
|
|
struct trace_kprobe {
|
|
struct dyn_event devent;
|
|
struct kretprobe rp;
|
|
unsigned long __attribute__((btf_type_tag("percpu"))) *nhit;
|
|
const char *symbol;
|
|
struct trace_probe tp;
|
|
};
|
|
|
|
struct kretprobe_instance {
|
|
struct rethook_node node;
|
|
char data[0];
|
|
};
|
|
|
|
struct trace_uprobe_filter {
|
|
rwlock_t rwlock;
|
|
int nr_systemwide;
|
|
struct list_head perf_events;
|
|
};
|
|
|
|
struct trace_probe_event {
|
|
unsigned int flags;
|
|
struct trace_event_class class;
|
|
struct trace_event_call call;
|
|
struct list_head files;
|
|
struct list_head probes;
|
|
struct trace_uprobe_filter filter[0];
|
|
};
|
|
|
|
struct fetch_insn {
|
|
enum fetch_op op;
|
|
union {
|
|
unsigned int param;
|
|
struct {
|
|
unsigned int size;
|
|
int offset;
|
|
};
|
|
struct {
|
|
unsigned char basesize;
|
|
unsigned char lshift;
|
|
unsigned char rshift;
|
|
};
|
|
unsigned long immediate;
|
|
void *data;
|
|
};
|
|
};
|
|
|
|
typedef int (*print_type_func_t)(struct trace_seq *, void *, void *);
|
|
|
|
struct fetch_type {
|
|
const char *name;
|
|
size_t size;
|
|
bool is_signed;
|
|
bool is_string;
|
|
print_type_func_t print;
|
|
const char *fmt;
|
|
const char *fmttype;
|
|
};
|
|
|
|
struct event_file_link {
|
|
struct trace_event_file *file;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct kretprobe_trace_entry_head {
|
|
struct trace_entry ent;
|
|
unsigned long func;
|
|
unsigned long ret_ip;
|
|
};
|
|
|
|
struct kprobe_trace_entry_head {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
};
|
|
|
|
struct dynevent_cmd;
|
|
|
|
typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *);
|
|
|
|
struct dynevent_cmd {
|
|
struct seq_buf seq;
|
|
const char *event_name;
|
|
unsigned int n_fields;
|
|
enum dynevent_type type;
|
|
dynevent_create_fn_t run_command;
|
|
void *private_data;
|
|
};
|
|
|
|
struct dynevent_arg {
|
|
const char *str;
|
|
char separator;
|
|
};
|
|
|
|
typedef int (*dynevent_check_arg_fn_t)(void *);
|
|
|
|
enum {
|
|
DUMP_PREFIX_NONE = 0,
|
|
DUMP_PREFIX_ADDRESS = 1,
|
|
DUMP_PREFIX_OFFSET = 2,
|
|
};
|
|
|
|
struct constant_table {
|
|
const char *name;
|
|
int value;
|
|
};
|
|
|
|
enum legacy_fs_param {
|
|
LEGACY_FS_UNSET_PARAMS = 0,
|
|
LEGACY_FS_MONOLITHIC_PARAMS = 1,
|
|
LEGACY_FS_INDIVIDUAL_PARAMS = 2,
|
|
};
|
|
|
|
struct legacy_fs_context {
|
|
char *legacy_data;
|
|
size_t data_size;
|
|
enum legacy_fs_param param_type;
|
|
};
|
|
|
|
struct lock_manager {
|
|
struct list_head list;
|
|
bool block_opens;
|
|
};
|
|
|
|
struct iomap_folio_ops;
|
|
|
|
struct iomap {
|
|
u64 addr;
|
|
loff_t offset;
|
|
u64 length;
|
|
u16 type;
|
|
u16 flags;
|
|
struct block_device *bdev;
|
|
struct dax_device *dax_dev;
|
|
void *inline_data;
|
|
void *private;
|
|
const struct iomap_folio_ops *folio_ops;
|
|
u64 validity_cookie;
|
|
};
|
|
|
|
struct iomap_swapfile_info {
|
|
struct iomap iomap;
|
|
struct swap_info_struct *sis;
|
|
uint64_t lowest_ppage;
|
|
uint64_t highest_ppage;
|
|
unsigned long nr_pages;
|
|
int nr_extents;
|
|
struct file *file;
|
|
};
|
|
|
|
struct iomap_iter;
|
|
|
|
struct iomap_folio_ops {
|
|
struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int);
|
|
void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *);
|
|
bool (*iomap_valid)(struct inode *, const struct iomap *);
|
|
};
|
|
|
|
struct iomap_iter {
|
|
struct inode *inode;
|
|
loff_t pos;
|
|
u64 len;
|
|
s64 processed;
|
|
unsigned int flags;
|
|
struct iomap iomap;
|
|
struct iomap srcmap;
|
|
void *private;
|
|
};
|
|
|
|
struct iomap_ops {
|
|
int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *);
|
|
int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *);
|
|
};
|
|
|
|
typedef int (*proc_write_t)(struct file *, char *, size_t);
|
|
|
|
typedef u32 nlink_t;
|
|
|
|
struct proc_dir_entry {
|
|
atomic_t in_use;
|
|
refcount_t refcnt;
|
|
struct list_head pde_openers;
|
|
spinlock_t pde_unload_lock;
|
|
struct completion *pde_unload_completion;
|
|
const struct inode_operations *proc_iops;
|
|
union {
|
|
const struct proc_ops *proc_ops;
|
|
const struct file_operations *proc_dir_ops;
|
|
};
|
|
const struct dentry_operations *proc_dops;
|
|
union {
|
|
const struct seq_operations *seq_ops;
|
|
int (*single_show)(struct seq_file *, void *);
|
|
};
|
|
proc_write_t write;
|
|
void *data;
|
|
unsigned int state_size;
|
|
unsigned int low_ino;
|
|
nlink_t nlink;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
loff_t size;
|
|
struct proc_dir_entry *parent;
|
|
struct rb_root subdir;
|
|
struct rb_node subdir_node;
|
|
char *name;
|
|
umode_t mode;
|
|
u8 flags;
|
|
u8 namelen;
|
|
char inline_name[0];
|
|
};
|
|
|
|
union proc_op {
|
|
int (*proc_get_link)(struct dentry *, struct path *);
|
|
int (*proc_show)(struct seq_file *, struct pid_namespace *, struct pid *, struct task_struct *);
|
|
const char *lsm;
|
|
};
|
|
|
|
struct proc_inode {
|
|
struct pid *pid;
|
|
unsigned int fd;
|
|
union proc_op op;
|
|
struct proc_dir_entry *pde;
|
|
struct ctl_table_header *sysctl;
|
|
struct ctl_table *sysctl_entry;
|
|
struct hlist_node sibling_inodes;
|
|
const struct proc_ns_operations *ns_ops;
|
|
struct inode vfs_inode;
|
|
};
|
|
|
|
struct bpf_iter_aux_info;
|
|
|
|
enum ext4_journal_trigger_type {
|
|
EXT4_JTR_ORPHAN_FILE = 0,
|
|
EXT4_JTR_NONE = 1,
|
|
};
|
|
|
|
enum {
|
|
BLOCK_BITMAP = 0,
|
|
INODE_BITMAP = 1,
|
|
INODE_TABLE = 2,
|
|
GROUP_TABLE_COUNT = 3,
|
|
};
|
|
|
|
struct ext4_rcu_ptr {
|
|
struct callback_head rcu;
|
|
void *ptr;
|
|
};
|
|
|
|
struct ext4_group_desc {
|
|
__le32 bg_block_bitmap_lo;
|
|
__le32 bg_inode_bitmap_lo;
|
|
__le32 bg_inode_table_lo;
|
|
__le16 bg_free_blocks_count_lo;
|
|
__le16 bg_free_inodes_count_lo;
|
|
__le16 bg_used_dirs_count_lo;
|
|
__le16 bg_flags;
|
|
__le32 bg_exclude_bitmap_lo;
|
|
__le16 bg_block_bitmap_csum_lo;
|
|
__le16 bg_inode_bitmap_csum_lo;
|
|
__le16 bg_itable_unused_lo;
|
|
__le16 bg_checksum;
|
|
__le32 bg_block_bitmap_hi;
|
|
__le32 bg_inode_bitmap_hi;
|
|
__le32 bg_inode_table_hi;
|
|
__le16 bg_free_blocks_count_hi;
|
|
__le16 bg_free_inodes_count_hi;
|
|
__le16 bg_used_dirs_count_hi;
|
|
__le16 bg_itable_unused_hi;
|
|
__le32 bg_exclude_bitmap_hi;
|
|
__le16 bg_block_bitmap_csum_hi;
|
|
__le16 bg_inode_bitmap_csum_hi;
|
|
__u32 bg_reserved;
|
|
};
|
|
|
|
struct ext4_new_group_data {
|
|
__u32 group;
|
|
__u64 block_bitmap;
|
|
__u64 inode_bitmap;
|
|
__u64 inode_table;
|
|
__u32 blocks_count;
|
|
__u16 reserved_blocks;
|
|
__u16 mdata_blocks;
|
|
__u32 free_clusters_count;
|
|
};
|
|
|
|
typedef enum {
|
|
EXT4_IGET_NORMAL = 0,
|
|
EXT4_IGET_SPECIAL = 1,
|
|
EXT4_IGET_HANDLE = 2,
|
|
EXT4_IGET_BAD = 4,
|
|
} ext4_iget_flags;
|
|
|
|
struct ext4_new_flex_group_data {
|
|
struct ext4_new_group_data *groups;
|
|
__u16 *bg_flags;
|
|
ext4_group_t count;
|
|
};
|
|
|
|
struct ext4_iloc {
|
|
struct buffer_head *bh;
|
|
unsigned long offset;
|
|
ext4_group_t block_group;
|
|
};
|
|
|
|
struct nfs3_getaclargs {
|
|
struct nfs_fh *fh;
|
|
int mask;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct nfs3_getaclres {
|
|
struct nfs_fattr *fattr;
|
|
int mask;
|
|
unsigned int acl_access_count;
|
|
unsigned int acl_default_count;
|
|
struct posix_acl *acl_access;
|
|
struct posix_acl *acl_default;
|
|
};
|
|
|
|
struct nfs3_setaclargs {
|
|
struct inode *inode;
|
|
int mask;
|
|
struct posix_acl *acl_access;
|
|
struct posix_acl *acl_default;
|
|
size_t len;
|
|
unsigned int npages;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct nlm_host;
|
|
|
|
struct nlm_lockowner {
|
|
struct list_head list;
|
|
refcount_t count;
|
|
struct nlm_host *host;
|
|
fl_owner_t owner;
|
|
uint32_t pid;
|
|
};
|
|
|
|
struct nsm_handle;
|
|
|
|
struct nlm_host {
|
|
struct hlist_node h_hash;
|
|
struct __kernel_sockaddr_storage h_addr;
|
|
size_t h_addrlen;
|
|
struct __kernel_sockaddr_storage h_srcaddr;
|
|
size_t h_srcaddrlen;
|
|
struct rpc_clnt *h_rpcclnt;
|
|
char *h_name;
|
|
u32 h_version;
|
|
unsigned short h_proto;
|
|
unsigned short h_reclaiming: 1;
|
|
unsigned short h_server: 1;
|
|
unsigned short h_noresvport: 1;
|
|
unsigned short h_inuse: 1;
|
|
wait_queue_head_t h_gracewait;
|
|
struct rw_semaphore h_rwsem;
|
|
u32 h_state;
|
|
u32 h_nsmstate;
|
|
u32 h_pidcount;
|
|
refcount_t h_count;
|
|
struct mutex h_mutex;
|
|
unsigned long h_nextrebind;
|
|
unsigned long h_expires;
|
|
struct list_head h_lockowners;
|
|
spinlock_t h_lock;
|
|
struct list_head h_granted;
|
|
struct list_head h_reclaim;
|
|
struct nsm_handle *h_nsmhandle;
|
|
char *h_addrbuf;
|
|
struct net *net;
|
|
const struct cred *h_cred;
|
|
char nodename[65];
|
|
const struct nlmclnt_operations *h_nlmclnt_ops;
|
|
};
|
|
|
|
struct nsm_private {
|
|
unsigned char data[16];
|
|
};
|
|
|
|
struct nsm_handle {
|
|
struct list_head sm_link;
|
|
refcount_t sm_count;
|
|
char *sm_mon_name;
|
|
char *sm_name;
|
|
struct __kernel_sockaddr_storage sm_addr;
|
|
size_t sm_addrlen;
|
|
unsigned int sm_monitored: 1;
|
|
unsigned int sm_sticky: 1;
|
|
struct nsm_private sm_priv;
|
|
char sm_addrbuf[51];
|
|
};
|
|
|
|
struct nlmsvc_binding {
|
|
__be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int);
|
|
void (*fclose)(struct file *);
|
|
};
|
|
|
|
struct lockd_net {
|
|
unsigned int nlmsvc_users;
|
|
unsigned long next_gc;
|
|
unsigned long nrhosts;
|
|
struct delayed_work grace_period_end;
|
|
struct lock_manager lockd_manager;
|
|
struct list_head nsm_handles;
|
|
};
|
|
|
|
enum p9_cache_modes {
|
|
CACHE_NONE = 0,
|
|
CACHE_MMAP = 1,
|
|
CACHE_LOOSE = 2,
|
|
CACHE_FSCACHE = 3,
|
|
nr__p9_cache_modes = 4,
|
|
};
|
|
|
|
enum p9_session_flags {
|
|
V9FS_PROTO_2000U = 1,
|
|
V9FS_PROTO_2000L = 2,
|
|
V9FS_ACCESS_SINGLE = 4,
|
|
V9FS_ACCESS_USER = 8,
|
|
V9FS_ACCESS_CLIENT = 16,
|
|
V9FS_POSIX_ACL = 32,
|
|
};
|
|
|
|
struct v9fs_session_info {
|
|
unsigned char flags;
|
|
unsigned char nodev;
|
|
unsigned short debug;
|
|
unsigned int afid;
|
|
unsigned int cache;
|
|
char *uname;
|
|
char *aname;
|
|
unsigned int maxdata;
|
|
kuid_t dfltuid;
|
|
kgid_t dfltgid;
|
|
kuid_t uid;
|
|
struct p9_client *clnt;
|
|
struct list_head slist;
|
|
struct rw_semaphore rename_sem;
|
|
long session_lock_timeout;
|
|
};
|
|
|
|
struct p9_rstatfs {
|
|
u32 type;
|
|
u32 bsize;
|
|
u64 blocks;
|
|
u64 bfree;
|
|
u64 bavail;
|
|
u64 files;
|
|
u64 ffree;
|
|
u64 fsid;
|
|
u32 namelen;
|
|
};
|
|
|
|
struct mls_level {
|
|
u32 sens;
|
|
struct ebitmap cat;
|
|
};
|
|
|
|
struct mls_range {
|
|
struct mls_level level[2];
|
|
};
|
|
|
|
struct context {
|
|
u32 user;
|
|
u32 role;
|
|
u32 type;
|
|
u32 len;
|
|
struct mls_range range;
|
|
char *str;
|
|
};
|
|
|
|
struct sidtab_str_cache;
|
|
|
|
struct sidtab_entry {
|
|
u32 sid;
|
|
u32 hash;
|
|
struct context context;
|
|
struct sidtab_str_cache __attribute__((btf_type_tag("rcu"))) *cache;
|
|
struct hlist_node list;
|
|
};
|
|
|
|
struct ebitmap_node {
|
|
struct ebitmap_node *next;
|
|
unsigned long maps[6];
|
|
u32 startbit;
|
|
};
|
|
|
|
struct sidtab_str_cache {
|
|
struct callback_head rcu_member;
|
|
struct list_head lru_member;
|
|
struct sidtab_entry *parent;
|
|
u32 len;
|
|
char str[0];
|
|
};
|
|
|
|
struct sidtab_node_inner;
|
|
|
|
struct sidtab_node_leaf;
|
|
|
|
union sidtab_entry_inner {
|
|
struct sidtab_node_inner *ptr_inner;
|
|
struct sidtab_node_leaf *ptr_leaf;
|
|
};
|
|
|
|
struct sidtab_isid_entry {
|
|
int set;
|
|
struct sidtab_entry entry;
|
|
};
|
|
|
|
struct sidtab_convert_params;
|
|
|
|
struct sidtab {
|
|
union sidtab_entry_inner roots[4];
|
|
u32 count;
|
|
struct sidtab_convert_params *convert;
|
|
bool frozen;
|
|
spinlock_t lock;
|
|
u32 cache_free_slots;
|
|
struct list_head cache_lru_list;
|
|
spinlock_t cache_lock;
|
|
struct sidtab_isid_entry isids[27];
|
|
struct hlist_head context_to_sid[512];
|
|
};
|
|
|
|
struct sidtab_node_inner {
|
|
union sidtab_entry_inner entries[512];
|
|
};
|
|
|
|
struct sidtab_node_leaf {
|
|
struct sidtab_entry entries[39];
|
|
};
|
|
|
|
struct convert_context_args;
|
|
|
|
struct sidtab_convert_params {
|
|
struct convert_context_args *args;
|
|
struct sidtab *target;
|
|
};
|
|
|
|
struct convert_context_args {
|
|
struct selinux_state *state;
|
|
struct policydb *oldp;
|
|
struct policydb *newp;
|
|
};
|
|
|
|
struct hashtab_node {
|
|
void *key;
|
|
void *datum;
|
|
struct hashtab_node *next;
|
|
};
|
|
|
|
struct common_datum;
|
|
|
|
struct constraint_node;
|
|
|
|
struct class_datum {
|
|
u32 value;
|
|
char *comkey;
|
|
struct common_datum *comdatum;
|
|
struct symtab permissions;
|
|
struct constraint_node *constraints;
|
|
struct constraint_node *validatetrans;
|
|
char default_user;
|
|
char default_role;
|
|
char default_type;
|
|
char default_range;
|
|
};
|
|
|
|
struct common_datum {
|
|
u32 value;
|
|
struct symtab permissions;
|
|
};
|
|
|
|
struct constraint_expr;
|
|
|
|
struct constraint_node {
|
|
u32 permissions;
|
|
struct constraint_expr *expr;
|
|
struct constraint_node *next;
|
|
};
|
|
|
|
struct type_set;
|
|
|
|
struct constraint_expr {
|
|
u32 expr_type;
|
|
u32 attr;
|
|
u32 op;
|
|
struct ebitmap names;
|
|
struct type_set *type_names;
|
|
struct constraint_expr *next;
|
|
};
|
|
|
|
struct type_set {
|
|
struct ebitmap types;
|
|
struct ebitmap negset;
|
|
u32 flags;
|
|
};
|
|
|
|
struct role_datum {
|
|
u32 value;
|
|
u32 bounds;
|
|
struct ebitmap dominates;
|
|
struct ebitmap types;
|
|
};
|
|
|
|
struct user_datum {
|
|
u32 value;
|
|
u32 bounds;
|
|
struct ebitmap roles;
|
|
struct mls_range range;
|
|
struct mls_level dfltlevel;
|
|
};
|
|
|
|
struct type_datum {
|
|
u32 value;
|
|
u32 bounds;
|
|
unsigned char primary;
|
|
unsigned char attribute;
|
|
};
|
|
|
|
struct avtab_key {
|
|
u16 source_type;
|
|
u16 target_type;
|
|
u16 target_class;
|
|
u16 specified;
|
|
};
|
|
|
|
struct avtab_extended_perms;
|
|
|
|
struct avtab_datum {
|
|
union {
|
|
u32 data;
|
|
struct avtab_extended_perms *xperms;
|
|
} u;
|
|
};
|
|
|
|
struct avtab_node {
|
|
struct avtab_key key;
|
|
struct avtab_datum datum;
|
|
struct avtab_node *next;
|
|
};
|
|
|
|
struct extended_perms_data {
|
|
u32 p[8];
|
|
};
|
|
|
|
struct avtab_extended_perms {
|
|
u8 specified;
|
|
u8 driver;
|
|
struct extended_perms_data perms;
|
|
};
|
|
|
|
struct cond_bool_datum {
|
|
__u32 value;
|
|
int state;
|
|
};
|
|
|
|
struct role_allow {
|
|
u32 role;
|
|
u32 new_role;
|
|
struct role_allow *next;
|
|
};
|
|
|
|
struct ocontext {
|
|
union {
|
|
char *name;
|
|
struct {
|
|
u8 protocol;
|
|
u16 low_port;
|
|
u16 high_port;
|
|
} port;
|
|
struct {
|
|
u32 addr;
|
|
u32 mask;
|
|
} node;
|
|
struct {
|
|
u32 addr[4];
|
|
u32 mask[4];
|
|
} node6;
|
|
struct {
|
|
u64 subnet_prefix;
|
|
u16 low_pkey;
|
|
u16 high_pkey;
|
|
} ibpkey;
|
|
struct {
|
|
char *dev_name;
|
|
u8 port;
|
|
} ibendport;
|
|
} u;
|
|
union {
|
|
u32 sclass;
|
|
u32 behavior;
|
|
} v;
|
|
struct context context[2];
|
|
u32 sid[2];
|
|
struct ocontext *next;
|
|
};
|
|
|
|
struct genfs {
|
|
char *fstype;
|
|
struct ocontext *head;
|
|
struct genfs *next;
|
|
};
|
|
|
|
struct selinux_mapping {
|
|
u16 value;
|
|
unsigned int num_perms;
|
|
u32 perms[32];
|
|
};
|
|
|
|
struct crypto_rng {
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
enum crypto_attr_type_t {
|
|
CRYPTOCFGA_UNSPEC = 0,
|
|
CRYPTOCFGA_PRIORITY_VAL = 1,
|
|
CRYPTOCFGA_REPORT_LARVAL = 2,
|
|
CRYPTOCFGA_REPORT_HASH = 3,
|
|
CRYPTOCFGA_REPORT_BLKCIPHER = 4,
|
|
CRYPTOCFGA_REPORT_AEAD = 5,
|
|
CRYPTOCFGA_REPORT_COMPRESS = 6,
|
|
CRYPTOCFGA_REPORT_RNG = 7,
|
|
CRYPTOCFGA_REPORT_CIPHER = 8,
|
|
CRYPTOCFGA_REPORT_AKCIPHER = 9,
|
|
CRYPTOCFGA_REPORT_KPP = 10,
|
|
CRYPTOCFGA_REPORT_ACOMP = 11,
|
|
CRYPTOCFGA_STAT_LARVAL = 12,
|
|
CRYPTOCFGA_STAT_HASH = 13,
|
|
CRYPTOCFGA_STAT_BLKCIPHER = 14,
|
|
CRYPTOCFGA_STAT_AEAD = 15,
|
|
CRYPTOCFGA_STAT_COMPRESS = 16,
|
|
CRYPTOCFGA_STAT_RNG = 17,
|
|
CRYPTOCFGA_STAT_CIPHER = 18,
|
|
CRYPTOCFGA_STAT_AKCIPHER = 19,
|
|
CRYPTOCFGA_STAT_KPP = 20,
|
|
CRYPTOCFGA_STAT_ACOMP = 21,
|
|
__CRYPTOCFGA_MAX = 22,
|
|
};
|
|
|
|
struct rng_alg {
|
|
int (*generate)(struct crypto_rng *, const u8 *, unsigned int, u8 *, unsigned int);
|
|
int (*seed)(struct crypto_rng *, const u8 *, unsigned int);
|
|
void (*set_ent)(struct crypto_rng *, const u8 *, unsigned int);
|
|
unsigned int seedsize;
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct crypto_report_rng {
|
|
char type[64];
|
|
unsigned int seedsize;
|
|
};
|
|
|
|
typedef u32 compat_ulong_t;
|
|
|
|
typedef u32 compat_caddr_t;
|
|
|
|
struct blkpg_ioctl_arg {
|
|
int op;
|
|
int flags;
|
|
int datalen;
|
|
void __attribute__((btf_type_tag("user"))) *data;
|
|
};
|
|
|
|
struct blkpg_partition {
|
|
long long start;
|
|
long long length;
|
|
int pno;
|
|
char devname[64];
|
|
char volname[64];
|
|
};
|
|
|
|
struct pr_preempt {
|
|
__u64 old_key;
|
|
__u64 new_key;
|
|
__u32 type;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct pr_clear {
|
|
__u64 key;
|
|
__u32 flags;
|
|
__u32 __pad;
|
|
};
|
|
|
|
struct pr_reservation {
|
|
__u64 key;
|
|
__u32 type;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct pr_registration {
|
|
__u64 old_key;
|
|
__u64 new_key;
|
|
__u32 flags;
|
|
__u32 __pad;
|
|
};
|
|
|
|
struct compat_hd_geometry {
|
|
unsigned char heads;
|
|
unsigned char sectors;
|
|
unsigned short cylinders;
|
|
u32 start;
|
|
};
|
|
|
|
struct compat_blkpg_ioctl_arg {
|
|
compat_int_t op;
|
|
compat_int_t flags;
|
|
compat_int_t datalen;
|
|
compat_caddr_t data;
|
|
};
|
|
|
|
struct io_splice {
|
|
struct file *file_out;
|
|
loff_t off_out;
|
|
loff_t off_in;
|
|
u64 len;
|
|
int splice_fd_in;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct pipe_buffer;
|
|
|
|
struct pipe_inode_info {
|
|
struct mutex mutex;
|
|
wait_queue_head_t rd_wait;
|
|
wait_queue_head_t wr_wait;
|
|
unsigned int head;
|
|
unsigned int tail;
|
|
unsigned int max_usage;
|
|
unsigned int ring_size;
|
|
unsigned int nr_accounted;
|
|
unsigned int readers;
|
|
unsigned int writers;
|
|
unsigned int files;
|
|
unsigned int r_counter;
|
|
unsigned int w_counter;
|
|
bool poll_usage;
|
|
struct page *tmp_page;
|
|
struct fasync_struct *fasync_readers;
|
|
struct fasync_struct *fasync_writers;
|
|
struct pipe_buffer *bufs;
|
|
struct user_struct *user;
|
|
};
|
|
|
|
struct pipe_buf_operations;
|
|
|
|
struct pipe_buffer {
|
|
struct page *page;
|
|
unsigned int offset;
|
|
unsigned int len;
|
|
const struct pipe_buf_operations *ops;
|
|
unsigned int flags;
|
|
unsigned long private;
|
|
};
|
|
|
|
struct pipe_buf_operations {
|
|
int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *);
|
|
void (*release)(struct pipe_inode_info *, struct pipe_buffer *);
|
|
bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *);
|
|
bool (*get)(struct pipe_inode_info *, struct pipe_buffer *);
|
|
};
|
|
|
|
union nested_table {
|
|
union nested_table __attribute__((btf_type_tag("rcu"))) *table;
|
|
struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket;
|
|
};
|
|
|
|
struct reciprocal_value_adv {
|
|
u32 m;
|
|
u8 sh;
|
|
u8 exp;
|
|
bool is_wide_m;
|
|
};
|
|
|
|
enum cc_attr {
|
|
CC_ATTR_MEM_ENCRYPT = 0,
|
|
CC_ATTR_HOST_MEM_ENCRYPT = 1,
|
|
CC_ATTR_GUEST_MEM_ENCRYPT = 2,
|
|
CC_ATTR_GUEST_STATE_ENCRYPT = 3,
|
|
CC_ATTR_GUEST_UNROLL_STRING_IO = 4,
|
|
CC_ATTR_GUEST_SEV_SNP = 5,
|
|
CC_ATTR_HOTPLUG_DISABLED = 6,
|
|
};
|
|
|
|
struct rcec_ea {
|
|
u8 nextbusn;
|
|
u8 lastbusn;
|
|
u32 bitmap;
|
|
};
|
|
|
|
struct pci_sriov {
|
|
int pos;
|
|
int nres;
|
|
u32 cap;
|
|
u16 ctrl;
|
|
u16 total_VFs;
|
|
u16 initial_VFs;
|
|
u16 num_VFs;
|
|
u16 offset;
|
|
u16 stride;
|
|
u16 vf_device;
|
|
u32 pgsz;
|
|
u8 link;
|
|
u8 max_VF_buses;
|
|
u16 driver_max_VFs;
|
|
struct pci_dev *dev;
|
|
struct pci_dev *self;
|
|
u32 class;
|
|
u8 hdr_type;
|
|
u16 subsystem_vendor;
|
|
u16 subsystem_device;
|
|
resource_size_t barsz[6];
|
|
bool drivers_autoprobe;
|
|
};
|
|
|
|
typedef u64 pci_bus_addr_t;
|
|
|
|
struct pci_bus_region {
|
|
pci_bus_addr_t start;
|
|
pci_bus_addr_t end;
|
|
};
|
|
|
|
enum backlight_update_reason {
|
|
BACKLIGHT_UPDATE_HOTKEY = 0,
|
|
BACKLIGHT_UPDATE_SYSFS = 1,
|
|
};
|
|
|
|
enum backlight_notification {
|
|
BACKLIGHT_REGISTERED = 0,
|
|
BACKLIGHT_UNREGISTERED = 1,
|
|
};
|
|
|
|
typedef int (*dr_match_t)(struct device *, void *, void *);
|
|
|
|
struct acpi_signal_fatal_info {
|
|
u32 type;
|
|
u32 code;
|
|
u32 argument;
|
|
};
|
|
|
|
typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **);
|
|
|
|
struct acpi_simple_repair_info {
|
|
char name[4];
|
|
u32 unexpected_btypes;
|
|
u32 package_index;
|
|
acpi_object_converter object_converter;
|
|
};
|
|
|
|
enum acpi_return_package_types {
|
|
ACPI_PTYPE1_FIXED = 1,
|
|
ACPI_PTYPE1_VAR = 2,
|
|
ACPI_PTYPE1_OPTION = 3,
|
|
ACPI_PTYPE2 = 4,
|
|
ACPI_PTYPE2_COUNT = 5,
|
|
ACPI_PTYPE2_PKG_COUNT = 6,
|
|
ACPI_PTYPE2_FIXED = 7,
|
|
ACPI_PTYPE2_MIN = 8,
|
|
ACPI_PTYPE2_REV_FIXED = 9,
|
|
ACPI_PTYPE2_FIX_VAR = 10,
|
|
ACPI_PTYPE2_VAR_VAR = 11,
|
|
ACPI_PTYPE2_UUID_PAIR = 12,
|
|
ACPI_PTYPE_CUSTOM = 13,
|
|
};
|
|
|
|
union acpi_predefined_info;
|
|
|
|
struct acpi_evaluate_info {
|
|
struct acpi_namespace_node *prefix_node;
|
|
const char *relative_pathname;
|
|
union acpi_operand_object **parameters;
|
|
struct acpi_namespace_node *node;
|
|
union acpi_operand_object *obj_desc;
|
|
char *full_pathname;
|
|
const union acpi_predefined_info *predefined;
|
|
union acpi_operand_object *return_object;
|
|
union acpi_operand_object *parent_package;
|
|
u32 return_flags;
|
|
u32 return_btype;
|
|
u16 param_count;
|
|
u16 node_flags;
|
|
u8 pass_number;
|
|
u8 return_object_type;
|
|
u8 flags;
|
|
};
|
|
|
|
struct acpi_name_info {
|
|
char name[4];
|
|
u16 argument_list;
|
|
u8 expected_btypes;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_package_info {
|
|
u8 type;
|
|
u8 object_type1;
|
|
u8 count1;
|
|
u8 object_type2;
|
|
u8 count2;
|
|
u16 reserved;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_package_info2 {
|
|
u8 type;
|
|
u8 count;
|
|
u8 object_type[4];
|
|
u8 reserved;
|
|
};
|
|
|
|
struct acpi_package_info3 {
|
|
u8 type;
|
|
u8 count;
|
|
u8 object_type[2];
|
|
u8 tail_object_type;
|
|
u16 reserved;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_package_info4 {
|
|
u8 type;
|
|
u8 object_type1;
|
|
u8 count1;
|
|
u8 sub_object_types;
|
|
u8 pkg_count;
|
|
u16 reserved;
|
|
} __attribute__((packed));
|
|
|
|
union acpi_predefined_info {
|
|
struct acpi_name_info info;
|
|
struct acpi_package_info ret_info;
|
|
struct acpi_package_info2 ret_info2;
|
|
struct acpi_package_info3 ret_info3;
|
|
struct acpi_package_info4 ret_info4;
|
|
};
|
|
|
|
struct acpi_pkg_info {
|
|
u8 *free_space;
|
|
acpi_size length;
|
|
u32 object_space;
|
|
u32 num_packages;
|
|
};
|
|
|
|
typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *);
|
|
|
|
typedef u64 async_cookie_t;
|
|
|
|
struct acpi_offsets {
|
|
size_t offset;
|
|
u8 mode;
|
|
};
|
|
|
|
enum {
|
|
ACPI_BATTERY_ALARM_PRESENT = 0,
|
|
ACPI_BATTERY_XINFO_PRESENT = 1,
|
|
ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY = 2,
|
|
ACPI_BATTERY_QUIRK_THINKPAD_MAH = 3,
|
|
ACPI_BATTERY_QUIRK_DEGRADED_FULL_CHARGE = 4,
|
|
};
|
|
|
|
enum dmi_entry_type {
|
|
DMI_ENTRY_BIOS = 0,
|
|
DMI_ENTRY_SYSTEM = 1,
|
|
DMI_ENTRY_BASEBOARD = 2,
|
|
DMI_ENTRY_CHASSIS = 3,
|
|
DMI_ENTRY_PROCESSOR = 4,
|
|
DMI_ENTRY_MEM_CONTROLLER = 5,
|
|
DMI_ENTRY_MEM_MODULE = 6,
|
|
DMI_ENTRY_CACHE = 7,
|
|
DMI_ENTRY_PORT_CONNECTOR = 8,
|
|
DMI_ENTRY_SYSTEM_SLOT = 9,
|
|
DMI_ENTRY_ONBOARD_DEVICE = 10,
|
|
DMI_ENTRY_OEMSTRINGS = 11,
|
|
DMI_ENTRY_SYSCONF = 12,
|
|
DMI_ENTRY_BIOS_LANG = 13,
|
|
DMI_ENTRY_GROUP_ASSOC = 14,
|
|
DMI_ENTRY_SYSTEM_EVENT_LOG = 15,
|
|
DMI_ENTRY_PHYS_MEM_ARRAY = 16,
|
|
DMI_ENTRY_MEM_DEVICE = 17,
|
|
DMI_ENTRY_32_MEM_ERROR = 18,
|
|
DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19,
|
|
DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20,
|
|
DMI_ENTRY_BUILTIN_POINTING_DEV = 21,
|
|
DMI_ENTRY_PORTABLE_BATTERY = 22,
|
|
DMI_ENTRY_SYSTEM_RESET = 23,
|
|
DMI_ENTRY_HW_SECURITY = 24,
|
|
DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25,
|
|
DMI_ENTRY_VOLTAGE_PROBE = 26,
|
|
DMI_ENTRY_COOLING_DEV = 27,
|
|
DMI_ENTRY_TEMP_PROBE = 28,
|
|
DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29,
|
|
DMI_ENTRY_OOB_REMOTE_ACCESS = 30,
|
|
DMI_ENTRY_BIS_ENTRY = 31,
|
|
DMI_ENTRY_SYSTEM_BOOT = 32,
|
|
DMI_ENTRY_MGMT_DEV = 33,
|
|
DMI_ENTRY_MGMT_DEV_COMPONENT = 34,
|
|
DMI_ENTRY_MGMT_DEV_THRES = 35,
|
|
DMI_ENTRY_MEM_CHANNEL = 36,
|
|
DMI_ENTRY_IPMI_DEV = 37,
|
|
DMI_ENTRY_SYS_POWER_SUPPLY = 38,
|
|
DMI_ENTRY_ADDITIONAL = 39,
|
|
DMI_ENTRY_ONBOARD_DEV_EXT = 40,
|
|
DMI_ENTRY_MGMT_CONTROLLER_HOST = 41,
|
|
DMI_ENTRY_INACTIVE = 126,
|
|
DMI_ENTRY_END_OF_TABLE = 127,
|
|
};
|
|
|
|
enum {
|
|
POWER_SUPPLY_STATUS_UNKNOWN = 0,
|
|
POWER_SUPPLY_STATUS_CHARGING = 1,
|
|
POWER_SUPPLY_STATUS_DISCHARGING = 2,
|
|
POWER_SUPPLY_STATUS_NOT_CHARGING = 3,
|
|
POWER_SUPPLY_STATUS_FULL = 4,
|
|
};
|
|
|
|
enum {
|
|
POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0,
|
|
POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL = 1,
|
|
POWER_SUPPLY_CAPACITY_LEVEL_LOW = 2,
|
|
POWER_SUPPLY_CAPACITY_LEVEL_NORMAL = 3,
|
|
POWER_SUPPLY_CAPACITY_LEVEL_HIGH = 4,
|
|
POWER_SUPPLY_CAPACITY_LEVEL_FULL = 5,
|
|
};
|
|
|
|
enum {
|
|
POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0,
|
|
POWER_SUPPLY_TECHNOLOGY_NiMH = 1,
|
|
POWER_SUPPLY_TECHNOLOGY_LION = 2,
|
|
POWER_SUPPLY_TECHNOLOGY_LIPO = 3,
|
|
POWER_SUPPLY_TECHNOLOGY_LiFe = 4,
|
|
POWER_SUPPLY_TECHNOLOGY_NiCd = 5,
|
|
POWER_SUPPLY_TECHNOLOGY_LiMn = 6,
|
|
};
|
|
|
|
struct acpi_battery {
|
|
struct mutex lock;
|
|
struct mutex sysfs_lock;
|
|
struct power_supply *bat;
|
|
struct power_supply_desc bat_desc;
|
|
struct acpi_device *device;
|
|
struct notifier_block pm_nb;
|
|
struct list_head list;
|
|
unsigned long update_time;
|
|
int revision;
|
|
int rate_now;
|
|
int capacity_now;
|
|
int voltage_now;
|
|
int design_capacity;
|
|
int full_charge_capacity;
|
|
int technology;
|
|
int design_voltage;
|
|
int design_capacity_warning;
|
|
int design_capacity_low;
|
|
int cycle_count;
|
|
int measurement_accuracy;
|
|
int max_sampling_time;
|
|
int min_sampling_time;
|
|
int max_averaging_interval;
|
|
int min_averaging_interval;
|
|
int capacity_granularity_1;
|
|
int capacity_granularity_2;
|
|
int alarm;
|
|
char model_number[64];
|
|
char serial_number[64];
|
|
char type[64];
|
|
char oem_info[64];
|
|
int state;
|
|
int power_unit;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct acpi_battery_hook {
|
|
const char *name;
|
|
int (*add_battery)(struct power_supply *, struct acpi_battery_hook *);
|
|
int (*remove_battery)(struct power_supply *, struct acpi_battery_hook *);
|
|
struct list_head list;
|
|
};
|
|
|
|
typedef void (*async_func_t)(void *, async_cookie_t);
|
|
|
|
struct ldsem_waiter {
|
|
struct list_head list;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
struct hpets;
|
|
|
|
struct hpet;
|
|
|
|
struct hpet_timer;
|
|
|
|
struct hpet_dev {
|
|
struct hpets *hd_hpets;
|
|
struct hpet *hd_hpet;
|
|
struct hpet_timer *hd_timer;
|
|
unsigned long hd_ireqfreq;
|
|
unsigned long hd_irqdata;
|
|
wait_queue_head_t hd_waitqueue;
|
|
struct fasync_struct *hd_async_queue;
|
|
unsigned int hd_flags;
|
|
unsigned int hd_irq;
|
|
unsigned int hd_hdwirq;
|
|
char hd_name[7];
|
|
};
|
|
|
|
struct clocksource;
|
|
|
|
struct hpets {
|
|
struct hpets *hp_next;
|
|
struct hpet *hp_hpet;
|
|
unsigned long hp_hpet_phys;
|
|
struct clocksource *hp_clocksource;
|
|
unsigned long long hp_tick_freq;
|
|
unsigned long hp_delta;
|
|
unsigned int hp_ntimer;
|
|
unsigned int hp_which;
|
|
struct hpet_dev hp_dev[0];
|
|
};
|
|
|
|
struct hpet_timer {
|
|
u64 hpet_config;
|
|
union {
|
|
u64 _hpet_hc64;
|
|
u32 _hpet_hc32;
|
|
unsigned long _hpet_compare;
|
|
} _u1;
|
|
u64 hpet_fsb[2];
|
|
};
|
|
|
|
struct hpet {
|
|
u64 hpet_cap;
|
|
u64 res0;
|
|
u64 hpet_config;
|
|
u64 res1;
|
|
u64 hpet_isr;
|
|
u64 res2[25];
|
|
union {
|
|
u64 _hpet_mc64;
|
|
u32 _hpet_mc32;
|
|
unsigned long _hpet_mc;
|
|
} _u0;
|
|
u64 res3;
|
|
struct hpet_timer hpet_timers[0];
|
|
};
|
|
|
|
enum clocksource_ids {
|
|
CSID_GENERIC = 0,
|
|
CSID_ARM_ARCH_COUNTER = 1,
|
|
CSID_MAX = 2,
|
|
};
|
|
|
|
struct clocksource {
|
|
u64 (*read)(struct clocksource *);
|
|
u64 mask;
|
|
u32 mult;
|
|
u32 shift;
|
|
u64 max_idle_ns;
|
|
u32 maxadj;
|
|
u32 uncertainty_margin;
|
|
u64 max_cycles;
|
|
const char *name;
|
|
struct list_head list;
|
|
int rating;
|
|
enum clocksource_ids id;
|
|
enum vdso_clock_mode vdso_clock_mode;
|
|
unsigned long flags;
|
|
int (*enable)(struct clocksource *);
|
|
void (*disable)(struct clocksource *);
|
|
void (*suspend)(struct clocksource *);
|
|
void (*resume)(struct clocksource *);
|
|
void (*mark_unstable)(struct clocksource *);
|
|
void (*tick_stable)(struct clocksource *);
|
|
struct list_head wd_list;
|
|
u64 cs_last;
|
|
u64 wd_last;
|
|
struct module *owner;
|
|
};
|
|
|
|
struct hpet_data {
|
|
unsigned long hd_phys_address;
|
|
void *hd_address;
|
|
unsigned short hd_nirqs;
|
|
unsigned int hd_state;
|
|
unsigned int hd_irq[32];
|
|
};
|
|
|
|
struct acpi_resource;
|
|
|
|
typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *);
|
|
|
|
struct acpi_resource_irq {
|
|
u8 descriptor_length;
|
|
u8 triggering;
|
|
u8 polarity;
|
|
u8 shareable;
|
|
u8 wake_capable;
|
|
u8 interrupt_count;
|
|
u8 interrupts[1];
|
|
};
|
|
|
|
struct acpi_resource_dma {
|
|
u8 type;
|
|
u8 bus_master;
|
|
u8 transfer;
|
|
u8 channel_count;
|
|
u8 channels[1];
|
|
};
|
|
|
|
struct acpi_resource_start_dependent {
|
|
u8 descriptor_length;
|
|
u8 compatibility_priority;
|
|
u8 performance_robustness;
|
|
};
|
|
|
|
struct acpi_resource_io {
|
|
u8 io_decode;
|
|
u8 alignment;
|
|
u8 address_length;
|
|
u16 minimum;
|
|
u16 maximum;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_fixed_io {
|
|
u16 address;
|
|
u8 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_fixed_dma {
|
|
u16 request_lines;
|
|
u16 channels;
|
|
u8 width;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_vendor {
|
|
u16 byte_length;
|
|
u8 byte_data[1];
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_vendor_typed {
|
|
u16 byte_length;
|
|
u8 uuid_subtype;
|
|
u8 uuid[16];
|
|
u8 byte_data[1];
|
|
};
|
|
|
|
struct acpi_resource_end_tag {
|
|
u8 checksum;
|
|
};
|
|
|
|
struct acpi_resource_memory24 {
|
|
u8 write_protect;
|
|
u16 minimum;
|
|
u16 maximum;
|
|
u16 alignment;
|
|
u16 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_memory32 {
|
|
u8 write_protect;
|
|
u32 minimum;
|
|
u32 maximum;
|
|
u32 alignment;
|
|
u32 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_fixed_memory32 {
|
|
u8 write_protect;
|
|
u32 address;
|
|
u32 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_memory_attribute {
|
|
u8 write_protect;
|
|
u8 caching;
|
|
u8 range_type;
|
|
u8 translation;
|
|
};
|
|
|
|
struct acpi_io_attribute {
|
|
u8 range_type;
|
|
u8 translation;
|
|
u8 translation_type;
|
|
u8 reserved1;
|
|
};
|
|
|
|
union acpi_resource_attribute {
|
|
struct acpi_memory_attribute mem;
|
|
struct acpi_io_attribute io;
|
|
u8 type_specific;
|
|
};
|
|
|
|
struct acpi_address16_attribute {
|
|
u16 granularity;
|
|
u16 minimum;
|
|
u16 maximum;
|
|
u16 translation_offset;
|
|
u16 address_length;
|
|
};
|
|
|
|
struct acpi_resource_source {
|
|
u8 index;
|
|
u16 string_length;
|
|
char *string_ptr;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_address16 {
|
|
u8 resource_type;
|
|
u8 producer_consumer;
|
|
u8 decode;
|
|
u8 min_address_fixed;
|
|
u8 max_address_fixed;
|
|
union acpi_resource_attribute info;
|
|
struct acpi_address16_attribute address;
|
|
struct acpi_resource_source resource_source;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_address32_attribute {
|
|
u32 granularity;
|
|
u32 minimum;
|
|
u32 maximum;
|
|
u32 translation_offset;
|
|
u32 address_length;
|
|
};
|
|
|
|
struct acpi_resource_address32 {
|
|
u8 resource_type;
|
|
u8 producer_consumer;
|
|
u8 decode;
|
|
u8 min_address_fixed;
|
|
u8 max_address_fixed;
|
|
union acpi_resource_attribute info;
|
|
struct acpi_address32_attribute address;
|
|
struct acpi_resource_source resource_source;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_address64_attribute {
|
|
u64 granularity;
|
|
u64 minimum;
|
|
u64 maximum;
|
|
u64 translation_offset;
|
|
u64 address_length;
|
|
};
|
|
|
|
struct acpi_resource_address64 {
|
|
u8 resource_type;
|
|
u8 producer_consumer;
|
|
u8 decode;
|
|
u8 min_address_fixed;
|
|
u8 max_address_fixed;
|
|
union acpi_resource_attribute info;
|
|
struct acpi_address64_attribute address;
|
|
struct acpi_resource_source resource_source;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_extended_address64 {
|
|
u8 resource_type;
|
|
u8 producer_consumer;
|
|
u8 decode;
|
|
u8 min_address_fixed;
|
|
u8 max_address_fixed;
|
|
union acpi_resource_attribute info;
|
|
u8 revision_ID;
|
|
struct acpi_address64_attribute address;
|
|
u64 type_specific;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_extended_irq {
|
|
u8 producer_consumer;
|
|
u8 triggering;
|
|
u8 polarity;
|
|
u8 shareable;
|
|
u8 wake_capable;
|
|
u8 interrupt_count;
|
|
struct acpi_resource_source resource_source;
|
|
u32 interrupts[1];
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_generic_register {
|
|
u8 space_id;
|
|
u8 bit_width;
|
|
u8 bit_offset;
|
|
u8 access_size;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_gpio {
|
|
u8 revision_id;
|
|
u8 connection_type;
|
|
u8 producer_consumer;
|
|
u8 pin_config;
|
|
u8 shareable;
|
|
u8 wake_capable;
|
|
u8 io_restriction;
|
|
u8 triggering;
|
|
u8 polarity;
|
|
u16 drive_strength;
|
|
u16 debounce_timeout;
|
|
u16 pin_table_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u16 *pin_table;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_i2c_serialbus {
|
|
u8 revision_id;
|
|
u8 type;
|
|
u8 producer_consumer;
|
|
u8 slave_mode;
|
|
u8 connection_sharing;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u8 *vendor_data;
|
|
u8 access_mode;
|
|
u16 slave_address;
|
|
u32 connection_speed;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_spi_serialbus {
|
|
u8 revision_id;
|
|
u8 type;
|
|
u8 producer_consumer;
|
|
u8 slave_mode;
|
|
u8 connection_sharing;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u8 *vendor_data;
|
|
u8 wire_mode;
|
|
u8 device_polarity;
|
|
u8 data_bit_length;
|
|
u8 clock_phase;
|
|
u8 clock_polarity;
|
|
u16 device_selection;
|
|
u32 connection_speed;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_uart_serialbus {
|
|
u8 revision_id;
|
|
u8 type;
|
|
u8 producer_consumer;
|
|
u8 slave_mode;
|
|
u8 connection_sharing;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u8 *vendor_data;
|
|
u8 endian;
|
|
u8 data_bits;
|
|
u8 stop_bits;
|
|
u8 flow_control;
|
|
u8 parity;
|
|
u8 lines_enabled;
|
|
u16 rx_fifo_size;
|
|
u16 tx_fifo_size;
|
|
u32 default_baud_rate;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_csi2_serialbus {
|
|
u8 revision_id;
|
|
u8 type;
|
|
u8 producer_consumer;
|
|
u8 slave_mode;
|
|
u8 connection_sharing;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u8 *vendor_data;
|
|
u8 local_port_instance;
|
|
u8 phy_type;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_common_serialbus {
|
|
u8 revision_id;
|
|
u8 type;
|
|
u8 producer_consumer;
|
|
u8 slave_mode;
|
|
u8 connection_sharing;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_pin_function {
|
|
u8 revision_id;
|
|
u8 pin_config;
|
|
u8 shareable;
|
|
u16 function_number;
|
|
u16 pin_table_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u16 *pin_table;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_pin_config {
|
|
u8 revision_id;
|
|
u8 producer_consumer;
|
|
u8 shareable;
|
|
u8 pin_config_type;
|
|
u32 pin_config_value;
|
|
u16 pin_table_length;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
u16 *pin_table;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_label {
|
|
u16 string_length;
|
|
char *string_ptr;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_pin_group {
|
|
u8 revision_id;
|
|
u8 producer_consumer;
|
|
u16 pin_table_length;
|
|
u16 vendor_length;
|
|
u16 *pin_table;
|
|
struct acpi_resource_label resource_label;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_pin_group_function {
|
|
u8 revision_id;
|
|
u8 producer_consumer;
|
|
u8 shareable;
|
|
u16 function_number;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
struct acpi_resource_label resource_source_label;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_pin_group_config {
|
|
u8 revision_id;
|
|
u8 producer_consumer;
|
|
u8 shareable;
|
|
u8 pin_config_type;
|
|
u32 pin_config_value;
|
|
u16 vendor_length;
|
|
struct acpi_resource_source resource_source;
|
|
struct acpi_resource_label resource_source_label;
|
|
u8 *vendor_data;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_resource_address {
|
|
u8 resource_type;
|
|
u8 producer_consumer;
|
|
u8 decode;
|
|
u8 min_address_fixed;
|
|
u8 max_address_fixed;
|
|
union acpi_resource_attribute info;
|
|
};
|
|
|
|
union acpi_resource_data {
|
|
struct acpi_resource_irq irq;
|
|
struct acpi_resource_dma dma;
|
|
struct acpi_resource_start_dependent start_dpf;
|
|
struct acpi_resource_io io;
|
|
struct acpi_resource_fixed_io fixed_io;
|
|
struct acpi_resource_fixed_dma fixed_dma;
|
|
struct acpi_resource_vendor vendor;
|
|
struct acpi_resource_vendor_typed vendor_typed;
|
|
struct acpi_resource_end_tag end_tag;
|
|
struct acpi_resource_memory24 memory24;
|
|
struct acpi_resource_memory32 memory32;
|
|
struct acpi_resource_fixed_memory32 fixed_memory32;
|
|
struct acpi_resource_address16 address16;
|
|
struct acpi_resource_address32 address32;
|
|
struct acpi_resource_address64 address64;
|
|
struct acpi_resource_extended_address64 ext_address64;
|
|
struct acpi_resource_extended_irq extended_irq;
|
|
struct acpi_resource_generic_register generic_reg;
|
|
struct acpi_resource_gpio gpio;
|
|
struct acpi_resource_i2c_serialbus i2c_serial_bus;
|
|
struct acpi_resource_spi_serialbus spi_serial_bus;
|
|
struct acpi_resource_uart_serialbus uart_serial_bus;
|
|
struct acpi_resource_csi2_serialbus csi2_serial_bus;
|
|
struct acpi_resource_common_serialbus common_serial_bus;
|
|
struct acpi_resource_pin_function pin_function;
|
|
struct acpi_resource_pin_config pin_config;
|
|
struct acpi_resource_pin_group pin_group;
|
|
struct acpi_resource_pin_group_function pin_group_function;
|
|
struct acpi_resource_pin_group_config pin_group_config;
|
|
struct acpi_resource_address address;
|
|
};
|
|
|
|
struct acpi_resource {
|
|
u32 type;
|
|
u32 length;
|
|
union acpi_resource_data data;
|
|
} __attribute__((packed));
|
|
|
|
struct hpet_info {
|
|
unsigned long hi_ireqfreq;
|
|
unsigned long hi_flags;
|
|
unsigned short hi_hpet;
|
|
unsigned short hi_timer;
|
|
};
|
|
|
|
struct compat_hpet_info {
|
|
compat_ulong_t hi_ireqfreq;
|
|
compat_ulong_t hi_flags;
|
|
unsigned short hi_hpet;
|
|
unsigned short hi_timer;
|
|
};
|
|
|
|
enum crb_loc_state {
|
|
CRB_LOC_STATE_LOC_ASSIGNED = 2,
|
|
CRB_LOC_STATE_TPM_REG_VALID_STS = 128,
|
|
};
|
|
|
|
enum crb_loc_ctrl {
|
|
CRB_LOC_CTRL_REQUEST_ACCESS = 1,
|
|
CRB_LOC_CTRL_RELINQUISH = 2,
|
|
};
|
|
|
|
enum tpm2_timeouts {
|
|
TPM2_TIMEOUT_A = 750,
|
|
TPM2_TIMEOUT_B = 2000,
|
|
TPM2_TIMEOUT_C = 200,
|
|
TPM2_TIMEOUT_D = 30,
|
|
TPM2_DURATION_SHORT = 20,
|
|
TPM2_DURATION_MEDIUM = 750,
|
|
TPM2_DURATION_LONG = 2000,
|
|
TPM2_DURATION_LONG_LONG = 300000,
|
|
TPM2_DURATION_DEFAULT = 120000,
|
|
};
|
|
|
|
enum crb_ctrl_req {
|
|
CRB_CTRL_REQ_CMD_READY = 1,
|
|
CRB_CTRL_REQ_GO_IDLE = 2,
|
|
};
|
|
|
|
enum crb_cancel {
|
|
CRB_CANCEL_INVOKE = 1,
|
|
};
|
|
|
|
enum crb_ctrl_sts {
|
|
CRB_CTRL_STS_ERROR = 1,
|
|
CRB_CTRL_STS_TPM_IDLE = 2,
|
|
};
|
|
|
|
enum crb_start {
|
|
CRB_START_INVOKE = 1,
|
|
};
|
|
|
|
enum crb_defaults {
|
|
CRB_ACPI_START_REVISION_ID = 1,
|
|
CRB_ACPI_START_INDEX = 1,
|
|
};
|
|
|
|
enum crb_status {
|
|
CRB_DRV_STS_COMPLETE = 1,
|
|
};
|
|
|
|
struct tpm2_crb_smc {
|
|
u32 interrupt;
|
|
u8 interrupt_flags;
|
|
u8 op_flags;
|
|
u16 reserved2;
|
|
u32 smc_func_id;
|
|
};
|
|
|
|
struct tpm2_crb_pluton {
|
|
u64 start_addr;
|
|
u64 reply_addr;
|
|
};
|
|
|
|
struct crb_regs_head;
|
|
|
|
struct crb_regs_tail;
|
|
|
|
struct crb_priv {
|
|
u32 sm;
|
|
const char *hid;
|
|
struct crb_regs_head *regs_h;
|
|
struct crb_regs_tail *regs_t;
|
|
u8 *cmd;
|
|
u8 *rsp;
|
|
u32 cmd_size;
|
|
u32 smc_func_id;
|
|
u32 *pluton_start_addr;
|
|
u32 *pluton_reply_addr;
|
|
};
|
|
|
|
struct crb_regs_head {
|
|
u32 loc_state;
|
|
u32 reserved1;
|
|
u32 loc_ctrl;
|
|
u32 loc_sts;
|
|
u8 reserved2[32];
|
|
u64 intf_id;
|
|
u64 ctrl_ext;
|
|
};
|
|
|
|
struct crb_regs_tail {
|
|
u32 ctrl_req;
|
|
u32 ctrl_sts;
|
|
u32 ctrl_cancel;
|
|
u32 ctrl_start;
|
|
u32 ctrl_int_enable;
|
|
u32 ctrl_int_sts;
|
|
u32 ctrl_cmd_size;
|
|
u32 ctrl_cmd_pa_low;
|
|
u32 ctrl_cmd_pa_high;
|
|
u32 ctrl_rsp_size;
|
|
u64 ctrl_rsp_pa;
|
|
};
|
|
|
|
struct acpi_table_tpm2 {
|
|
struct acpi_table_header header;
|
|
u16 platform_class;
|
|
u16 reserved;
|
|
u64 control_address;
|
|
u32 start_method;
|
|
} __attribute__((packed));
|
|
|
|
struct resource_win {
|
|
struct resource res;
|
|
resource_size_t offset;
|
|
};
|
|
|
|
struct drm_mode_rmfb_work {
|
|
struct work_struct work;
|
|
struct list_head fbs;
|
|
};
|
|
|
|
struct drm_mode_fb_cmd {
|
|
__u32 fb_id;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 pitch;
|
|
__u32 bpp;
|
|
__u32 depth;
|
|
__u32 handle;
|
|
};
|
|
|
|
struct drm_mode_fb_dirty_cmd {
|
|
__u32 fb_id;
|
|
__u32 flags;
|
|
__u32 color;
|
|
__u32 num_clips;
|
|
__u64 clips_ptr;
|
|
};
|
|
|
|
struct insert_pte_data {
|
|
u64 offset;
|
|
};
|
|
|
|
struct sgt_dma {
|
|
struct scatterlist *sg;
|
|
dma_addr_t dma;
|
|
dma_addr_t max;
|
|
};
|
|
|
|
struct i915_deps;
|
|
|
|
enum phy___2 {
|
|
PHY_NONE = -1,
|
|
PHY_A = 0,
|
|
PHY_B = 1,
|
|
PHY_C = 2,
|
|
PHY_D = 3,
|
|
PHY_E = 4,
|
|
PHY_F = 5,
|
|
PHY_G = 6,
|
|
PHY_H = 7,
|
|
PHY_I = 8,
|
|
I915_MAX_PHYS = 9,
|
|
};
|
|
|
|
enum tc_port {
|
|
TC_PORT_NONE = -1,
|
|
TC_PORT_1 = 0,
|
|
TC_PORT_2 = 1,
|
|
TC_PORT_3 = 2,
|
|
TC_PORT_4 = 3,
|
|
TC_PORT_5 = 4,
|
|
TC_PORT_6 = 5,
|
|
I915_MAX_TC_PORTS = 6,
|
|
};
|
|
|
|
struct intel_load_detect_pipe {
|
|
struct drm_atomic_state *restore_state;
|
|
};
|
|
|
|
struct drm_i915_get_pipe_from_crtc_id {
|
|
__u32 crtc_id;
|
|
__u32 pipe;
|
|
};
|
|
|
|
struct intel_dsi;
|
|
|
|
struct intel_dsi_host {
|
|
struct mipi_dsi_host base;
|
|
struct intel_dsi *intel_dsi;
|
|
enum port port;
|
|
struct mipi_dsi_device *device;
|
|
};
|
|
|
|
struct intel_dsi {
|
|
struct intel_encoder base;
|
|
struct intel_dsi_host *dsi_hosts[9];
|
|
intel_wakeref_t io_wakeref[9];
|
|
struct gpio_desc *gpio_panel;
|
|
struct gpio_desc *gpio_backlight;
|
|
struct intel_connector *attached_connector;
|
|
union {
|
|
u16 ports;
|
|
u16 phys;
|
|
};
|
|
bool hs;
|
|
int channel;
|
|
u16 operation_mode;
|
|
unsigned int lane_count;
|
|
int i2c_bus_num;
|
|
enum mipi_dsi_pixel_format pixel_format;
|
|
int video_mode;
|
|
u8 eotp_pkt;
|
|
u8 clock_stop;
|
|
u8 escape_clk_div;
|
|
u8 dual_link;
|
|
bool bgr_enabled;
|
|
u8 pixel_overlap;
|
|
u32 port_bits;
|
|
u32 bw_timer;
|
|
u32 dphy_reg;
|
|
u32 dphy_data_lane_reg;
|
|
u32 video_frmt_cfg_bits;
|
|
u16 lp_byte_clk;
|
|
u16 hs_tx_timeout;
|
|
u16 lp_rx_timeout;
|
|
u16 turn_arnd_val;
|
|
u16 rst_timer_val;
|
|
u16 hs_to_lp_count;
|
|
u16 clk_lp_to_hs_count;
|
|
u16 clk_hs_to_lp_count;
|
|
u16 init_count;
|
|
u32 pclk;
|
|
u16 burst_mode_ratio;
|
|
u16 backlight_off_delay;
|
|
u16 backlight_on_delay;
|
|
u16 panel_on_delay;
|
|
u16 panel_off_delay;
|
|
u16 panel_pwr_cycle_delay;
|
|
ktime_t panel_power_off_time;
|
|
};
|
|
|
|
enum bus_notifier_event {
|
|
BUS_NOTIFY_ADD_DEVICE = 0,
|
|
BUS_NOTIFY_DEL_DEVICE = 1,
|
|
BUS_NOTIFY_REMOVED_DEVICE = 2,
|
|
BUS_NOTIFY_BIND_DRIVER = 3,
|
|
BUS_NOTIFY_BOUND_DRIVER = 4,
|
|
BUS_NOTIFY_UNBIND_DRIVER = 5,
|
|
BUS_NOTIFY_UNBOUND_DRIVER = 6,
|
|
BUS_NOTIFY_DRIVER_NOT_BOUND = 7,
|
|
};
|
|
|
|
struct device_attach_data {
|
|
struct device *dev;
|
|
bool check_async;
|
|
bool want_async;
|
|
bool have_async;
|
|
};
|
|
|
|
struct dma_fence_chain {
|
|
struct dma_fence base;
|
|
struct dma_fence __attribute__((btf_type_tag("rcu"))) *prev;
|
|
u64 prev_seqno;
|
|
struct dma_fence *fence;
|
|
union {
|
|
struct dma_fence_cb cb;
|
|
struct irq_work work;
|
|
};
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct dma_fence_unwrap {
|
|
struct dma_fence *chain;
|
|
struct dma_fence *array;
|
|
unsigned int index;
|
|
};
|
|
|
|
struct dma_fence_array {
|
|
struct dma_fence base;
|
|
spinlock_t lock;
|
|
unsigned int num_fences;
|
|
atomic_t num_pending;
|
|
struct dma_fence **fences;
|
|
struct irq_work work;
|
|
};
|
|
|
|
enum scsi_scan_mode {
|
|
SCSI_SCAN_INITIAL = 0,
|
|
SCSI_SCAN_RESCAN = 1,
|
|
SCSI_SCAN_MANUAL = 2,
|
|
};
|
|
|
|
struct scsi_event {
|
|
enum scsi_device_event evt_type;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct class_interface {
|
|
struct list_head node;
|
|
struct class *class;
|
|
int (*add_dev)(struct device *, struct class_interface *);
|
|
void (*remove_dev)(struct device *, struct class_interface *);
|
|
};
|
|
|
|
typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int);
|
|
|
|
struct dev_ext_attribute {
|
|
struct device_attribute attr;
|
|
void *var;
|
|
};
|
|
|
|
enum gpiod_flags {
|
|
GPIOD_ASIS = 0,
|
|
GPIOD_IN = 1,
|
|
GPIOD_OUT_LOW = 3,
|
|
GPIOD_OUT_HIGH = 7,
|
|
GPIOD_OUT_LOW_OPEN_DRAIN = 11,
|
|
GPIOD_OUT_HIGH_OPEN_DRAIN = 15,
|
|
};
|
|
|
|
struct trace_event_raw_mdio_access {
|
|
struct trace_entry ent;
|
|
char busid[61];
|
|
char read;
|
|
u8 addr;
|
|
u16 val;
|
|
unsigned int regnum;
|
|
char __data[0];
|
|
};
|
|
|
|
struct mdio_driver {
|
|
struct mdio_driver_common mdiodrv;
|
|
int (*probe)(struct mdio_device *);
|
|
void (*remove)(struct mdio_device *);
|
|
void (*shutdown)(struct mdio_device *);
|
|
};
|
|
|
|
struct mdio_board_info {
|
|
const char *bus_id;
|
|
char modalias[32];
|
|
int mdio_addr;
|
|
const void *platform_data;
|
|
};
|
|
|
|
struct trace_event_data_offsets_mdio_access {};
|
|
|
|
struct mdio_bus_stat_attr {
|
|
int addr;
|
|
unsigned int field_offset;
|
|
};
|
|
|
|
struct devlink_fmsg;
|
|
|
|
struct devlink_health_reporter_ops {
|
|
char *name;
|
|
int (*recover)(struct devlink_health_reporter *, void *, struct netlink_ext_ack *);
|
|
int (*dump)(struct devlink_health_reporter *, struct devlink_fmsg *, void *, struct netlink_ext_ack *);
|
|
int (*diagnose)(struct devlink_health_reporter *, struct devlink_fmsg *, struct netlink_ext_ack *);
|
|
int (*test)(struct devlink_health_reporter *, struct netlink_ext_ack *);
|
|
};
|
|
|
|
struct nsim_dev_dummy_reporter_ctx {
|
|
char *break_msg;
|
|
};
|
|
|
|
enum xhci_cancelled_td_status {
|
|
TD_DIRTY = 0,
|
|
TD_HALTED = 1,
|
|
TD_CLEARING_CACHE = 2,
|
|
TD_CLEARED = 3,
|
|
};
|
|
|
|
struct xhci_td {
|
|
struct list_head td_list;
|
|
struct list_head cancelled_td_list;
|
|
int status;
|
|
enum xhci_cancelled_td_status cancel_status;
|
|
struct urb *urb;
|
|
struct xhci_segment *start_seg;
|
|
union xhci_trb *first_trb;
|
|
union xhci_trb *last_trb;
|
|
struct xhci_segment *last_trb_seg;
|
|
struct xhci_segment *bounce_seg;
|
|
bool urb_length_set;
|
|
unsigned int num_trbs;
|
|
};
|
|
|
|
struct urb_priv___3 {
|
|
int num_tds;
|
|
int num_tds_done;
|
|
struct xhci_td td[0];
|
|
};
|
|
|
|
struct byd_data {
|
|
struct timer_list timer;
|
|
struct psmouse *psmouse;
|
|
s32 abs_x;
|
|
s32 abs_y;
|
|
volatile unsigned long last_touch_time;
|
|
bool btn_left;
|
|
bool btn_right;
|
|
bool touch;
|
|
};
|
|
|
|
struct badblocks {
|
|
struct device *dev;
|
|
int count;
|
|
int unacked_exist;
|
|
int shift;
|
|
u64 *page;
|
|
int changed;
|
|
seqlock_t lock;
|
|
sector_t sector;
|
|
sector_t size;
|
|
};
|
|
|
|
struct mddev;
|
|
|
|
struct md_sysfs_entry {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct mddev *, char *);
|
|
ssize_t (*store)(struct mddev *, const char *, size_t);
|
|
};
|
|
|
|
struct md_cluster_info;
|
|
|
|
struct md_personality;
|
|
|
|
struct md_thread;
|
|
|
|
struct bitmap;
|
|
|
|
struct md_rdev;
|
|
|
|
struct mddev {
|
|
void *private;
|
|
struct md_personality *pers;
|
|
dev_t unit;
|
|
int md_minor;
|
|
struct list_head disks;
|
|
unsigned long flags;
|
|
unsigned long sb_flags;
|
|
int suspended;
|
|
struct percpu_ref active_io;
|
|
int ro;
|
|
int sysfs_active;
|
|
struct gendisk *gendisk;
|
|
struct kobject kobj;
|
|
int hold_active;
|
|
int major_version;
|
|
int minor_version;
|
|
int patch_version;
|
|
int persistent;
|
|
int external;
|
|
char metadata_type[17];
|
|
int chunk_sectors;
|
|
time64_t ctime;
|
|
time64_t utime;
|
|
int level;
|
|
int layout;
|
|
char clevel[16];
|
|
int raid_disks;
|
|
int max_disks;
|
|
sector_t dev_sectors;
|
|
sector_t array_sectors;
|
|
int external_size;
|
|
__u64 events;
|
|
int can_decrease_events;
|
|
char uuid[16];
|
|
sector_t reshape_position;
|
|
int delta_disks;
|
|
int new_level;
|
|
int new_layout;
|
|
int new_chunk_sectors;
|
|
int reshape_backwards;
|
|
struct md_thread *thread;
|
|
struct md_thread *sync_thread;
|
|
char *last_sync_action;
|
|
sector_t curr_resync;
|
|
sector_t curr_resync_completed;
|
|
unsigned long resync_mark;
|
|
sector_t resync_mark_cnt;
|
|
sector_t curr_mark_cnt;
|
|
sector_t resync_max_sectors;
|
|
atomic64_t resync_mismatches;
|
|
sector_t suspend_lo;
|
|
sector_t suspend_hi;
|
|
int sync_speed_min;
|
|
int sync_speed_max;
|
|
int parallel_resync;
|
|
int ok_start_degraded;
|
|
unsigned long recovery;
|
|
int recovery_disabled;
|
|
int in_sync;
|
|
struct mutex open_mutex;
|
|
struct mutex reconfig_mutex;
|
|
atomic_t active;
|
|
atomic_t openers;
|
|
int changed;
|
|
int degraded;
|
|
atomic_t recovery_active;
|
|
wait_queue_head_t recovery_wait;
|
|
sector_t recovery_cp;
|
|
sector_t resync_min;
|
|
sector_t resync_max;
|
|
struct kernfs_node *sysfs_state;
|
|
struct kernfs_node *sysfs_action;
|
|
struct kernfs_node *sysfs_completed;
|
|
struct kernfs_node *sysfs_degraded;
|
|
struct kernfs_node *sysfs_level;
|
|
struct work_struct del_work;
|
|
spinlock_t lock;
|
|
wait_queue_head_t sb_wait;
|
|
atomic_t pending_writes;
|
|
unsigned int safemode;
|
|
unsigned int safemode_delay;
|
|
struct timer_list safemode_timer;
|
|
struct percpu_ref writes_pending;
|
|
int sync_checkers;
|
|
struct request_queue *queue;
|
|
struct bitmap *bitmap;
|
|
struct {
|
|
struct file *file;
|
|
loff_t offset;
|
|
unsigned long space;
|
|
loff_t default_offset;
|
|
unsigned long default_space;
|
|
struct mutex mutex;
|
|
unsigned long chunksize;
|
|
unsigned long daemon_sleep;
|
|
unsigned long max_write_behind;
|
|
int external;
|
|
int nodes;
|
|
char cluster_name[64];
|
|
} bitmap_info;
|
|
atomic_t max_corr_read_errors;
|
|
struct list_head all_mddevs;
|
|
const struct attribute_group *to_remove;
|
|
struct bio_set bio_set;
|
|
struct bio_set sync_set;
|
|
struct bio_set io_acct_set;
|
|
struct bio *flush_bio;
|
|
atomic_t flush_pending;
|
|
ktime_t start_flush;
|
|
ktime_t prev_flush_start;
|
|
struct work_struct flush_work;
|
|
struct work_struct event_work;
|
|
mempool_t *serial_info_pool;
|
|
void (*sync_super)(struct mddev *, struct md_rdev *);
|
|
struct md_cluster_info *cluster_info;
|
|
unsigned int good_device_nr;
|
|
unsigned int noio_flag;
|
|
bool has_superblocks: 1;
|
|
bool fail_last_dev: 1;
|
|
bool serialize_policy: 1;
|
|
};
|
|
|
|
struct md_personality {
|
|
char *name;
|
|
int level;
|
|
struct list_head list;
|
|
struct module *owner;
|
|
bool (*make_request)(struct mddev *, struct bio *);
|
|
int (*run)(struct mddev *);
|
|
int (*start)(struct mddev *);
|
|
void (*free)(struct mddev *, void *);
|
|
void (*status)(struct seq_file *, struct mddev *);
|
|
void (*error_handler)(struct mddev *, struct md_rdev *);
|
|
int (*hot_add_disk)(struct mddev *, struct md_rdev *);
|
|
int (*hot_remove_disk)(struct mddev *, struct md_rdev *);
|
|
int (*spare_active)(struct mddev *);
|
|
sector_t (*sync_request)(struct mddev *, sector_t, int *);
|
|
int (*resize)(struct mddev *, sector_t);
|
|
sector_t (*size)(struct mddev *, sector_t, int);
|
|
int (*check_reshape)(struct mddev *);
|
|
int (*start_reshape)(struct mddev *);
|
|
void (*finish_reshape)(struct mddev *);
|
|
void (*update_reshape_pos)(struct mddev *);
|
|
void (*quiesce)(struct mddev *, int);
|
|
void * (*takeover)(struct mddev *);
|
|
int (*change_consistency_policy)(struct mddev *, const char *);
|
|
};
|
|
|
|
struct serial_in_rdev;
|
|
|
|
struct md_rdev {
|
|
struct list_head same_set;
|
|
sector_t sectors;
|
|
struct mddev *mddev;
|
|
int last_events;
|
|
struct block_device *meta_bdev;
|
|
struct block_device *bdev;
|
|
struct page *sb_page;
|
|
struct page *bb_page;
|
|
int sb_loaded;
|
|
__u64 sb_events;
|
|
sector_t data_offset;
|
|
sector_t new_data_offset;
|
|
sector_t sb_start;
|
|
int sb_size;
|
|
int preferred_minor;
|
|
struct kobject kobj;
|
|
unsigned long flags;
|
|
wait_queue_head_t blocked_wait;
|
|
int desc_nr;
|
|
int raid_disk;
|
|
int new_raid_disk;
|
|
int saved_raid_disk;
|
|
union {
|
|
sector_t recovery_offset;
|
|
sector_t journal_tail;
|
|
};
|
|
atomic_t nr_pending;
|
|
atomic_t read_errors;
|
|
time64_t last_read_error;
|
|
atomic_t corrected_errors;
|
|
struct serial_in_rdev *serial;
|
|
struct work_struct del_work;
|
|
struct kernfs_node *sysfs_state;
|
|
struct kernfs_node *sysfs_unack_badblocks;
|
|
struct kernfs_node *sysfs_badblocks;
|
|
struct badblocks badblocks;
|
|
struct {
|
|
short offset;
|
|
unsigned int size;
|
|
sector_t sector;
|
|
} ppl;
|
|
};
|
|
|
|
struct serial_in_rdev {
|
|
struct rb_root_cached serial_rb;
|
|
spinlock_t serial_lock;
|
|
wait_queue_head_t serial_io_wait;
|
|
};
|
|
|
|
struct md_thread {
|
|
void (*run)(struct md_thread *);
|
|
struct mddev *mddev;
|
|
wait_queue_head_t wqueue;
|
|
unsigned long flags;
|
|
struct task_struct *tsk;
|
|
unsigned long timeout;
|
|
void *private;
|
|
};
|
|
|
|
struct bitmap_page;
|
|
|
|
struct bitmap_counts {
|
|
spinlock_t lock;
|
|
struct bitmap_page *bp;
|
|
unsigned long pages;
|
|
unsigned long missing_pages;
|
|
unsigned long chunkshift;
|
|
unsigned long chunks;
|
|
};
|
|
|
|
struct bitmap_storage {
|
|
struct file *file;
|
|
struct page *sb_page;
|
|
struct page **filemap;
|
|
unsigned long *filemap_attr;
|
|
unsigned long file_pages;
|
|
unsigned long bytes;
|
|
};
|
|
|
|
struct bitmap {
|
|
struct bitmap_counts counts;
|
|
struct mddev *mddev;
|
|
__u64 events_cleared;
|
|
int need_sync;
|
|
struct bitmap_storage storage;
|
|
unsigned long flags;
|
|
int allclean;
|
|
atomic_t behind_writes;
|
|
unsigned long behind_writes_used;
|
|
unsigned long daemon_lastrun;
|
|
unsigned long last_end_sync;
|
|
atomic_t pending_writes;
|
|
wait_queue_head_t write_wait;
|
|
wait_queue_head_t overflow_wait;
|
|
wait_queue_head_t behind_wait;
|
|
struct kernfs_node *sysfs_can_clear;
|
|
int cluster_slot;
|
|
};
|
|
|
|
struct bitmap_page {
|
|
char *map;
|
|
unsigned int hijacked: 1;
|
|
unsigned int pending: 1;
|
|
unsigned int count: 30;
|
|
};
|
|
|
|
enum bitmap_state {
|
|
BITMAP_STALE = 1,
|
|
BITMAP_WRITE_ERROR = 2,
|
|
BITMAP_HOSTENDIAN = 15,
|
|
};
|
|
|
|
enum bitmap_page_attr {
|
|
BITMAP_PAGE_DIRTY = 0,
|
|
BITMAP_PAGE_PENDING = 1,
|
|
BITMAP_PAGE_NEEDWRITE = 2,
|
|
};
|
|
|
|
enum mddev_sb_flags {
|
|
MD_SB_CHANGE_DEVS = 0,
|
|
MD_SB_CHANGE_CLEAN = 1,
|
|
MD_SB_CHANGE_PENDING = 2,
|
|
MD_SB_NEED_REWRITE = 3,
|
|
};
|
|
|
|
enum mddev_flags {
|
|
MD_ARRAY_FIRST_USE = 0,
|
|
MD_CLOSING = 1,
|
|
MD_JOURNAL_CLEAN = 2,
|
|
MD_HAS_JOURNAL = 3,
|
|
MD_CLUSTER_RESYNC_LOCKED = 4,
|
|
MD_FAILFAST_SUPPORTED = 5,
|
|
MD_HAS_PPL = 6,
|
|
MD_HAS_MULTIPLE_PPLS = 7,
|
|
MD_ALLOW_SB_UPDATE = 8,
|
|
MD_UPDATING_SB = 9,
|
|
MD_NOT_READY = 10,
|
|
MD_BROKEN = 11,
|
|
MD_DELETED = 12,
|
|
};
|
|
|
|
enum recovery_flags {
|
|
MD_RECOVERY_RUNNING = 0,
|
|
MD_RECOVERY_SYNC = 1,
|
|
MD_RECOVERY_RECOVER = 2,
|
|
MD_RECOVERY_INTR = 3,
|
|
MD_RECOVERY_DONE = 4,
|
|
MD_RECOVERY_NEEDED = 5,
|
|
MD_RECOVERY_REQUESTED = 6,
|
|
MD_RECOVERY_CHECK = 7,
|
|
MD_RECOVERY_RESHAPE = 8,
|
|
MD_RECOVERY_FROZEN = 9,
|
|
MD_RECOVERY_ERROR = 10,
|
|
MD_RECOVERY_WAIT = 11,
|
|
MD_RESYNCING_REMOTE = 12,
|
|
};
|
|
|
|
enum flag_bits {
|
|
Faulty = 0,
|
|
In_sync = 1,
|
|
Bitmap_sync = 2,
|
|
WriteMostly = 3,
|
|
AutoDetected = 4,
|
|
Blocked = 5,
|
|
WriteErrorSeen = 6,
|
|
FaultRecorded = 7,
|
|
BlockedBadBlocks = 8,
|
|
WantReplacement = 9,
|
|
Replacement = 10,
|
|
Candidate = 11,
|
|
Journal = 12,
|
|
ClusterRemove = 13,
|
|
RemoveSynchronized = 14,
|
|
ExternalBbl = 15,
|
|
FailFast = 16,
|
|
LastDev = 17,
|
|
CollisionCheck = 18,
|
|
};
|
|
|
|
typedef __u16 bitmap_counter_t;
|
|
|
|
struct cgroup_subsys_state;
|
|
|
|
struct bitmap_super_s {
|
|
__le32 magic;
|
|
__le32 version;
|
|
__u8 uuid[16];
|
|
__le64 events;
|
|
__le64 events_cleared;
|
|
__le64 sync_size;
|
|
__le32 state;
|
|
__le32 chunksize;
|
|
__le32 daemon_sleep;
|
|
__le32 write_behind;
|
|
__le32 sectors_reserved;
|
|
__le32 nodes;
|
|
__u8 cluster_name[64];
|
|
__u8 pad[120];
|
|
};
|
|
|
|
typedef struct bitmap_super_s bitmap_super_t;
|
|
|
|
struct hid_usage_entry {
|
|
unsigned int page;
|
|
unsigned int usage;
|
|
const char *description;
|
|
};
|
|
|
|
struct hid_debug_list {
|
|
struct {
|
|
union {
|
|
struct __kfifo kfifo;
|
|
char *type;
|
|
const char *const_type;
|
|
char (*rectype)[0];
|
|
char *ptr;
|
|
const char *ptr_const;
|
|
};
|
|
char buf[0];
|
|
} hid_debug_fifo;
|
|
struct fasync_struct *fasync;
|
|
struct hid_device *hdev;
|
|
struct list_head node;
|
|
struct mutex read_mutex;
|
|
};
|
|
|
|
struct link_ctl_info {
|
|
snd_ctl_elem_type_t type;
|
|
int count;
|
|
int min_val;
|
|
int max_val;
|
|
};
|
|
|
|
struct link_master;
|
|
|
|
struct link_follower {
|
|
struct list_head list;
|
|
struct link_master *master;
|
|
struct link_ctl_info info;
|
|
int vals[2];
|
|
unsigned int flags;
|
|
struct snd_kcontrol *kctl;
|
|
struct snd_kcontrol follower;
|
|
};
|
|
|
|
struct link_master {
|
|
struct list_head followers;
|
|
struct link_ctl_info info;
|
|
int val;
|
|
unsigned int tlv[4];
|
|
void (*hook)(void *, int);
|
|
void *hook_private_data;
|
|
};
|
|
|
|
struct snd_device;
|
|
|
|
struct snd_device_ops {
|
|
int (*dev_free)(struct snd_device *);
|
|
int (*dev_register)(struct snd_device *);
|
|
int (*dev_disconnect)(struct snd_device *);
|
|
};
|
|
|
|
enum snd_device_state {
|
|
SNDRV_DEV_BUILD = 0,
|
|
SNDRV_DEV_REGISTERED = 1,
|
|
SNDRV_DEV_DISCONNECTED = 2,
|
|
};
|
|
|
|
enum snd_device_type {
|
|
SNDRV_DEV_LOWLEVEL = 0,
|
|
SNDRV_DEV_INFO = 1,
|
|
SNDRV_DEV_BUS = 2,
|
|
SNDRV_DEV_CODEC = 3,
|
|
SNDRV_DEV_PCM = 4,
|
|
SNDRV_DEV_COMPRESS = 5,
|
|
SNDRV_DEV_RAWMIDI = 6,
|
|
SNDRV_DEV_TIMER = 7,
|
|
SNDRV_DEV_SEQUENCER = 8,
|
|
SNDRV_DEV_HWDEP = 9,
|
|
SNDRV_DEV_JACK = 10,
|
|
SNDRV_DEV_CONTROL = 11,
|
|
};
|
|
|
|
struct snd_device {
|
|
struct list_head list;
|
|
struct snd_card *card;
|
|
enum snd_device_state state;
|
|
enum snd_device_type type;
|
|
void *device_data;
|
|
const struct snd_device_ops *ops;
|
|
};
|
|
|
|
struct snd_seq_device {
|
|
struct snd_card *card;
|
|
int device;
|
|
const char *id;
|
|
char name[80];
|
|
int argsize;
|
|
void *driver_data;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_seq_device *);
|
|
struct device dev;
|
|
};
|
|
|
|
struct snd_seq_driver {
|
|
struct device_driver driver;
|
|
char *id;
|
|
int argsize;
|
|
};
|
|
|
|
struct hda_vendor_id {
|
|
unsigned int id;
|
|
const char *name;
|
|
};
|
|
|
|
struct hda_rate_tbl {
|
|
unsigned int hz;
|
|
unsigned int alsa_bits;
|
|
unsigned int hda_fmt;
|
|
};
|
|
|
|
enum {
|
|
HDA_DEV_CORE = 0,
|
|
HDA_DEV_LEGACY = 1,
|
|
HDA_DEV_ASOC = 2,
|
|
};
|
|
|
|
enum {
|
|
AC_GRP_AUDIO_FUNCTION = 1,
|
|
AC_GRP_MODEM_FUNCTION = 2,
|
|
};
|
|
|
|
enum {
|
|
AC_WID_AUD_OUT = 0,
|
|
AC_WID_AUD_IN = 1,
|
|
AC_WID_AUD_MIX = 2,
|
|
AC_WID_AUD_SEL = 3,
|
|
AC_WID_PIN = 4,
|
|
AC_WID_POWER = 5,
|
|
AC_WID_VOL_KNB = 6,
|
|
AC_WID_BEEP = 7,
|
|
AC_WID_VENDOR = 15,
|
|
};
|
|
|
|
struct tcphdr {
|
|
__be16 source;
|
|
__be16 dest;
|
|
__be32 seq;
|
|
__be32 ack_seq;
|
|
__u16 res1: 4;
|
|
__u16 doff: 4;
|
|
__u16 fin: 1;
|
|
__u16 syn: 1;
|
|
__u16 rst: 1;
|
|
__u16 psh: 1;
|
|
__u16 ack: 1;
|
|
__u16 urg: 1;
|
|
__u16 ece: 1;
|
|
__u16 cwr: 1;
|
|
__be16 window;
|
|
__sum16 check;
|
|
__be16 urg_ptr;
|
|
};
|
|
|
|
struct tso_t {
|
|
int next_frag_idx;
|
|
int size;
|
|
void *data;
|
|
u16 ip_id;
|
|
u8 tlen;
|
|
bool ipv6;
|
|
u32 tcp_seq;
|
|
};
|
|
|
|
struct bpf_local_storage_cache {
|
|
spinlock_t idx_lock;
|
|
u64 idx_usage_counts[16];
|
|
};
|
|
|
|
union bpf_iter_link_info;
|
|
|
|
typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *);
|
|
|
|
typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *);
|
|
|
|
typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *);
|
|
|
|
typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *);
|
|
|
|
typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *);
|
|
|
|
struct bpf_iter_reg {
|
|
const char *target;
|
|
bpf_iter_attach_target_t attach_target;
|
|
bpf_iter_detach_target_t detach_target;
|
|
bpf_iter_show_fdinfo_t show_fdinfo;
|
|
bpf_iter_fill_link_info_t fill_link_info;
|
|
bpf_iter_get_func_proto_t get_func_proto;
|
|
u32 ctx_arg_info_size;
|
|
u32 feature;
|
|
struct bpf_ctx_arg_aux ctx_arg_info[2];
|
|
const struct bpf_iter_seq_info *seq_info;
|
|
};
|
|
|
|
union bpf_iter_link_info {
|
|
struct {
|
|
__u32 map_fd;
|
|
} map;
|
|
struct {
|
|
enum bpf_cgroup_iter_order order;
|
|
__u32 cgroup_fd;
|
|
__u64 cgroup_id;
|
|
} cgroup;
|
|
struct {
|
|
__u32 tid;
|
|
__u32 pid;
|
|
__u32 pid_fd;
|
|
} task;
|
|
};
|
|
|
|
enum {
|
|
SK_DIAG_BPF_STORAGE_REQ_NONE = 0,
|
|
SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1,
|
|
__SK_DIAG_BPF_STORAGE_REQ_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
BPF_LOCAL_STORAGE_GET_F_CREATE = 1,
|
|
BPF_SK_STORAGE_GET_F_CREATE = 1,
|
|
};
|
|
|
|
enum {
|
|
SK_DIAG_BPF_STORAGE_REP_NONE = 0,
|
|
SK_DIAG_BPF_STORAGE = 1,
|
|
__SK_DIAG_BPF_STORAGE_REP_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
SK_DIAG_BPF_STORAGE_NONE = 0,
|
|
SK_DIAG_BPF_STORAGE_PAD = 1,
|
|
SK_DIAG_BPF_STORAGE_MAP_ID = 2,
|
|
SK_DIAG_BPF_STORAGE_MAP_VALUE = 3,
|
|
__SK_DIAG_BPF_STORAGE_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
BTF_SOCK_TYPE_INET = 0,
|
|
BTF_SOCK_TYPE_INET_CONN = 1,
|
|
BTF_SOCK_TYPE_INET_REQ = 2,
|
|
BTF_SOCK_TYPE_INET_TW = 3,
|
|
BTF_SOCK_TYPE_REQ = 4,
|
|
BTF_SOCK_TYPE_SOCK = 5,
|
|
BTF_SOCK_TYPE_SOCK_COMMON = 6,
|
|
BTF_SOCK_TYPE_TCP = 7,
|
|
BTF_SOCK_TYPE_TCP_REQ = 8,
|
|
BTF_SOCK_TYPE_TCP_TW = 9,
|
|
BTF_SOCK_TYPE_TCP6 = 10,
|
|
BTF_SOCK_TYPE_UDP = 11,
|
|
BTF_SOCK_TYPE_UDP6 = 12,
|
|
BTF_SOCK_TYPE_UNIX = 13,
|
|
BTF_SOCK_TYPE_MPTCP = 14,
|
|
BTF_SOCK_TYPE_SOCKET = 15,
|
|
MAX_BTF_SOCK_TYPE = 16,
|
|
};
|
|
|
|
struct bpf_local_storage_elem {
|
|
struct hlist_node map_node;
|
|
struct hlist_node snode;
|
|
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage;
|
|
struct callback_head rcu;
|
|
long: 64;
|
|
struct bpf_local_storage_data sdata;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t);
|
|
|
|
typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t);
|
|
|
|
typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *);
|
|
|
|
struct bpf_sk_storage_diag {
|
|
u32 nr_maps;
|
|
struct bpf_map *maps[0];
|
|
};
|
|
|
|
struct bpf_iter_seq_sk_storage_map_info {
|
|
struct bpf_map *map;
|
|
unsigned int bucket_id;
|
|
unsigned int skip_elems;
|
|
};
|
|
|
|
struct bpf_iter_meta;
|
|
|
|
struct bpf_iter__bpf_sk_storage_map {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct bpf_map *map;
|
|
};
|
|
union {
|
|
struct sock *sk;
|
|
};
|
|
union {
|
|
void *value;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_meta {
|
|
union {
|
|
struct seq_file *seq;
|
|
};
|
|
u64 session_id;
|
|
u64 seq_num;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_FEATURES_UNSPEC = 0,
|
|
ETHTOOL_A_FEATURES_HEADER = 1,
|
|
ETHTOOL_A_FEATURES_HW = 2,
|
|
ETHTOOL_A_FEATURES_WANTED = 3,
|
|
ETHTOOL_A_FEATURES_ACTIVE = 4,
|
|
ETHTOOL_A_FEATURES_NOCHANGE = 5,
|
|
__ETHTOOL_A_FEATURES_CNT = 6,
|
|
ETHTOOL_A_FEATURES_MAX = 5,
|
|
};
|
|
|
|
struct features_reply_data {
|
|
struct ethnl_reply_data base;
|
|
u32 hw[2];
|
|
u32 wanted[2];
|
|
u32 active[2];
|
|
u32 nochange[2];
|
|
u32 all[2];
|
|
};
|
|
|
|
typedef const char (* const ethnl_string_array_t)[32];
|
|
|
|
enum ctattr_l4proto {
|
|
CTA_PROTO_UNSPEC = 0,
|
|
CTA_PROTO_NUM = 1,
|
|
CTA_PROTO_SRC_PORT = 2,
|
|
CTA_PROTO_DST_PORT = 3,
|
|
CTA_PROTO_ICMP_ID = 4,
|
|
CTA_PROTO_ICMP_TYPE = 5,
|
|
CTA_PROTO_ICMP_CODE = 6,
|
|
CTA_PROTO_ICMPV6_ID = 7,
|
|
CTA_PROTO_ICMPV6_TYPE = 8,
|
|
CTA_PROTO_ICMPV6_CODE = 9,
|
|
__CTA_PROTO_MAX = 10,
|
|
};
|
|
|
|
enum ctattr_timeout_icmp {
|
|
CTA_TIMEOUT_ICMP_UNSPEC = 0,
|
|
CTA_TIMEOUT_ICMP_TIMEOUT = 1,
|
|
__CTA_TIMEOUT_ICMP_MAX = 2,
|
|
};
|
|
|
|
struct nf_ct_timeout {
|
|
__u16 l3num;
|
|
const struct nf_conntrack_l4proto *l4proto;
|
|
char data[0];
|
|
};
|
|
|
|
struct nf_conn_timeout {
|
|
struct nf_ct_timeout __attribute__((btf_type_tag("rcu"))) *timeout;
|
|
};
|
|
|
|
enum tcp_ca_state {
|
|
TCP_CA_Open = 0,
|
|
TCP_CA_Disorder = 1,
|
|
TCP_CA_CWR = 2,
|
|
TCP_CA_Recovery = 3,
|
|
TCP_CA_Loss = 4,
|
|
};
|
|
|
|
enum {
|
|
SOCK_WAKE_IO = 0,
|
|
SOCK_WAKE_WAITD = 1,
|
|
SOCK_WAKE_SPACE = 2,
|
|
SOCK_WAKE_URG = 3,
|
|
};
|
|
|
|
enum tcp_chrono {
|
|
TCP_CHRONO_UNSPEC = 0,
|
|
TCP_CHRONO_BUSY = 1,
|
|
TCP_CHRONO_RWND_LIMITED = 2,
|
|
TCP_CHRONO_SNDBUF_LIMITED = 3,
|
|
__TCP_CHRONO_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
TCP_FLAG_CWR = 32768,
|
|
TCP_FLAG_ECE = 16384,
|
|
TCP_FLAG_URG = 8192,
|
|
TCP_FLAG_ACK = 4096,
|
|
TCP_FLAG_PSH = 2048,
|
|
TCP_FLAG_RST = 1024,
|
|
TCP_FLAG_SYN = 512,
|
|
TCP_FLAG_FIN = 256,
|
|
TCP_RESERVED_BITS = 15,
|
|
TCP_DATA_OFFSET = 240,
|
|
};
|
|
|
|
enum {
|
|
TCP_MIB_NUM = 0,
|
|
TCP_MIB_RTOALGORITHM = 1,
|
|
TCP_MIB_RTOMIN = 2,
|
|
TCP_MIB_RTOMAX = 3,
|
|
TCP_MIB_MAXCONN = 4,
|
|
TCP_MIB_ACTIVEOPENS = 5,
|
|
TCP_MIB_PASSIVEOPENS = 6,
|
|
TCP_MIB_ATTEMPTFAILS = 7,
|
|
TCP_MIB_ESTABRESETS = 8,
|
|
TCP_MIB_CURRESTAB = 9,
|
|
TCP_MIB_INSEGS = 10,
|
|
TCP_MIB_OUTSEGS = 11,
|
|
TCP_MIB_RETRANSSEGS = 12,
|
|
TCP_MIB_INERRS = 13,
|
|
TCP_MIB_OUTRSTS = 14,
|
|
TCP_MIB_CSUMERRORS = 15,
|
|
__TCP_MIB_MAX = 16,
|
|
};
|
|
|
|
enum {
|
|
BPF_SOCK_OPS_VOID = 0,
|
|
BPF_SOCK_OPS_TIMEOUT_INIT = 1,
|
|
BPF_SOCK_OPS_RWND_INIT = 2,
|
|
BPF_SOCK_OPS_TCP_CONNECT_CB = 3,
|
|
BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 4,
|
|
BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 5,
|
|
BPF_SOCK_OPS_NEEDS_ECN = 6,
|
|
BPF_SOCK_OPS_BASE_RTT = 7,
|
|
BPF_SOCK_OPS_RTO_CB = 8,
|
|
BPF_SOCK_OPS_RETRANS_CB = 9,
|
|
BPF_SOCK_OPS_STATE_CB = 10,
|
|
BPF_SOCK_OPS_TCP_LISTEN_CB = 11,
|
|
BPF_SOCK_OPS_RTT_CB = 12,
|
|
BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 13,
|
|
BPF_SOCK_OPS_HDR_OPT_LEN_CB = 14,
|
|
BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 15,
|
|
};
|
|
|
|
enum {
|
|
BPF_SOCK_OPS_RTO_CB_FLAG = 1,
|
|
BPF_SOCK_OPS_RETRANS_CB_FLAG = 2,
|
|
BPF_SOCK_OPS_STATE_CB_FLAG = 4,
|
|
BPF_SOCK_OPS_RTT_CB_FLAG = 8,
|
|
BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16,
|
|
BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32,
|
|
BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64,
|
|
BPF_SOCK_OPS_ALL_CB_FLAGS = 127,
|
|
};
|
|
|
|
enum cgroup_bpf_attach_type {
|
|
CGROUP_BPF_ATTACH_TYPE_INVALID = -1,
|
|
CGROUP_INET_INGRESS = 0,
|
|
CGROUP_INET_EGRESS = 1,
|
|
CGROUP_INET_SOCK_CREATE = 2,
|
|
CGROUP_SOCK_OPS = 3,
|
|
CGROUP_DEVICE = 4,
|
|
CGROUP_INET4_BIND = 5,
|
|
CGROUP_INET6_BIND = 6,
|
|
CGROUP_INET4_CONNECT = 7,
|
|
CGROUP_INET6_CONNECT = 8,
|
|
CGROUP_INET4_POST_BIND = 9,
|
|
CGROUP_INET6_POST_BIND = 10,
|
|
CGROUP_UDP4_SENDMSG = 11,
|
|
CGROUP_UDP6_SENDMSG = 12,
|
|
CGROUP_SYSCTL = 13,
|
|
CGROUP_UDP4_RECVMSG = 14,
|
|
CGROUP_UDP6_RECVMSG = 15,
|
|
CGROUP_GETSOCKOPT = 16,
|
|
CGROUP_SETSOCKOPT = 17,
|
|
CGROUP_INET4_GETPEERNAME = 18,
|
|
CGROUP_INET6_GETPEERNAME = 19,
|
|
CGROUP_INET4_GETSOCKNAME = 20,
|
|
CGROUP_INET6_GETSOCKNAME = 21,
|
|
CGROUP_INET_SOCK_RELEASE = 22,
|
|
CGROUP_LSM_START = 23,
|
|
CGROUP_LSM_END = 32,
|
|
MAX_CGROUP_BPF_ATTACH_TYPE = 33,
|
|
};
|
|
|
|
enum inet_csk_ack_state_t {
|
|
ICSK_ACK_SCHED = 1,
|
|
ICSK_ACK_TIMER = 2,
|
|
ICSK_ACK_PUSHED = 4,
|
|
ICSK_ACK_PUSHED2 = 8,
|
|
ICSK_ACK_NOW = 16,
|
|
};
|
|
|
|
enum tcp_ca_ack_event_flags {
|
|
CA_ACK_SLOWPATH = 1,
|
|
CA_ACK_WIN_UPDATE = 2,
|
|
CA_ACK_ECE = 4,
|
|
};
|
|
|
|
enum tcp_queue {
|
|
TCP_FRAG_IN_WRITE_QUEUE = 0,
|
|
TCP_FRAG_IN_RTX_QUEUE = 1,
|
|
};
|
|
|
|
enum {
|
|
SCM_TSTAMP_SND = 0,
|
|
SCM_TSTAMP_SCHED = 1,
|
|
SCM_TSTAMP_ACK = 2,
|
|
};
|
|
|
|
enum tcp_fastopen_client_fail {
|
|
TFO_STATUS_UNSPEC = 0,
|
|
TFO_COOKIE_UNAVAILABLE = 1,
|
|
TFO_DATA_NOT_ACKED = 2,
|
|
TFO_SYN_RETRANSMITTED = 3,
|
|
};
|
|
|
|
struct tcp_skb_cb {
|
|
__u32 seq;
|
|
__u32 end_seq;
|
|
union {
|
|
__u32 tcp_tw_isn;
|
|
struct {
|
|
u16 tcp_gso_segs;
|
|
u16 tcp_gso_size;
|
|
};
|
|
};
|
|
__u8 tcp_flags;
|
|
__u8 sacked;
|
|
__u8 ip_dsfield;
|
|
__u8 txstamp_ack: 1;
|
|
__u8 eor: 1;
|
|
__u8 has_rxtstamp: 1;
|
|
__u8 unused: 5;
|
|
__u32 ack_seq;
|
|
union {
|
|
struct {
|
|
__u32 is_app_limited: 1;
|
|
__u32 delivered_ce: 20;
|
|
__u32 unused: 11;
|
|
__u32 delivered;
|
|
u64 first_tx_mstamp;
|
|
u64 delivered_mstamp;
|
|
} tx;
|
|
union {
|
|
struct inet_skb_parm h4;
|
|
struct inet6_skb_parm h6;
|
|
} header;
|
|
};
|
|
};
|
|
|
|
union tcp_word_hdr {
|
|
struct tcphdr hdr;
|
|
__be32 words[5];
|
|
};
|
|
|
|
struct tcp_sack_block_wire {
|
|
__be32 start_seq;
|
|
__be32 end_seq;
|
|
};
|
|
|
|
struct bpf_sock_ops_kern {
|
|
struct sock *sk;
|
|
union {
|
|
u32 args[4];
|
|
u32 reply;
|
|
u32 replylong[4];
|
|
};
|
|
struct sk_buff *syn_skb;
|
|
struct sk_buff *skb;
|
|
void *skb_data_end;
|
|
u8 op;
|
|
u8 is_fullsock;
|
|
u8 remaining_opt_len;
|
|
u64 temp;
|
|
};
|
|
|
|
struct mptcp_ext {
|
|
union {
|
|
u64 data_ack;
|
|
u32 data_ack32;
|
|
};
|
|
u64 data_seq;
|
|
u32 subflow_seq;
|
|
u16 data_len;
|
|
__sum16 csum;
|
|
u8 use_map: 1;
|
|
u8 dsn64: 1;
|
|
u8 data_fin: 1;
|
|
u8 use_ack: 1;
|
|
u8 ack64: 1;
|
|
u8 mpc_map: 1;
|
|
u8 frozen: 1;
|
|
u8 reset_transient: 1;
|
|
u8 reset_reason: 4;
|
|
u8 csum_reqd: 1;
|
|
u8 infinite_map: 1;
|
|
};
|
|
|
|
struct tcp_sacktag_state {
|
|
u64 first_sackt;
|
|
u64 last_sackt;
|
|
u32 reord;
|
|
u32 sack_delivered;
|
|
int flag;
|
|
unsigned int mss_now;
|
|
struct rate_sample *rate;
|
|
};
|
|
|
|
struct ic_device {
|
|
struct ic_device *next;
|
|
struct net_device *dev;
|
|
unsigned short flags;
|
|
short able;
|
|
__be32 xid;
|
|
};
|
|
|
|
enum {
|
|
Root_NFS = 255,
|
|
Root_CIFS = 254,
|
|
Root_RAM0 = 1048576,
|
|
Root_RAM1 = 1048577,
|
|
Root_FD0 = 2097152,
|
|
Root_HDA1 = 3145729,
|
|
Root_HDA2 = 3145730,
|
|
Root_SDA1 = 8388609,
|
|
Root_SDA2 = 8388610,
|
|
Root_HDC1 = 23068673,
|
|
Root_SR0 = 11534336,
|
|
};
|
|
|
|
struct bootp_pkt {
|
|
struct iphdr iph;
|
|
struct udphdr udph;
|
|
u8 op;
|
|
u8 htype;
|
|
u8 hlen;
|
|
u8 hops;
|
|
__be32 xid;
|
|
__be16 secs;
|
|
__be16 flags;
|
|
__be32 client_ip;
|
|
__be32 your_ip;
|
|
__be32 server_ip;
|
|
__be32 relay_ip;
|
|
u8 hw_addr[16];
|
|
u8 serv_name[64];
|
|
u8 boot_file[128];
|
|
u8 exten[312];
|
|
};
|
|
|
|
struct arphdr {
|
|
__be16 ar_hrd;
|
|
__be16 ar_pro;
|
|
unsigned char ar_hln;
|
|
unsigned char ar_pln;
|
|
__be16 ar_op;
|
|
};
|
|
|
|
struct rtentry {
|
|
unsigned long rt_pad1;
|
|
struct sockaddr rt_dst;
|
|
struct sockaddr rt_gateway;
|
|
struct sockaddr rt_genmask;
|
|
unsigned short rt_flags;
|
|
short rt_pad2;
|
|
unsigned long rt_pad3;
|
|
void *rt_pad4;
|
|
short rt_metric;
|
|
char __attribute__((btf_type_tag("user"))) *rt_dev;
|
|
unsigned long rt_mtu;
|
|
unsigned long rt_window;
|
|
unsigned short rt_irtt;
|
|
};
|
|
|
|
struct scm_stat {
|
|
atomic_t nr_fds;
|
|
};
|
|
|
|
struct unix_address;
|
|
|
|
struct unix_sock {
|
|
struct sock sk;
|
|
struct unix_address *addr;
|
|
struct path path;
|
|
struct mutex iolock;
|
|
struct mutex bindlock;
|
|
struct sock *peer;
|
|
struct list_head link;
|
|
atomic_long_t inflight;
|
|
spinlock_t lock;
|
|
unsigned long gc_flags;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct socket_wq peer_wq;
|
|
wait_queue_entry_t peer_wake;
|
|
struct scm_stat scm_stat;
|
|
struct sk_buff *oob_skb;
|
|
long: 64;
|
|
};
|
|
|
|
struct sockaddr_un {
|
|
__kernel_sa_family_t sun_family;
|
|
char sun_path[108];
|
|
};
|
|
|
|
struct unix_address {
|
|
refcount_t refcnt;
|
|
int len;
|
|
struct sockaddr_un name[0];
|
|
};
|
|
|
|
enum fib_event_type {
|
|
FIB_EVENT_ENTRY_REPLACE = 0,
|
|
FIB_EVENT_ENTRY_APPEND = 1,
|
|
FIB_EVENT_ENTRY_ADD = 2,
|
|
FIB_EVENT_ENTRY_DEL = 3,
|
|
FIB_EVENT_RULE_ADD = 4,
|
|
FIB_EVENT_RULE_DEL = 5,
|
|
FIB_EVENT_NH_ADD = 6,
|
|
FIB_EVENT_NH_DEL = 7,
|
|
FIB_EVENT_VIF_ADD = 8,
|
|
FIB_EVENT_VIF_DEL = 9,
|
|
};
|
|
|
|
struct fib_notifier_info {
|
|
int family;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
struct icmpv6_echo {
|
|
__be16 identifier;
|
|
__be16 sequence;
|
|
};
|
|
|
|
struct icmpv6_nd_advt {
|
|
__u32 reserved: 5;
|
|
__u32 override: 1;
|
|
__u32 solicited: 1;
|
|
__u32 router: 1;
|
|
__u32 reserved2: 24;
|
|
};
|
|
|
|
struct icmpv6_nd_ra {
|
|
__u8 hop_limit;
|
|
__u8 reserved: 3;
|
|
__u8 router_pref: 2;
|
|
__u8 home_agent: 1;
|
|
__u8 other: 1;
|
|
__u8 managed: 1;
|
|
__be16 rt_lifetime;
|
|
};
|
|
|
|
struct icmp6hdr {
|
|
__u8 icmp6_type;
|
|
__u8 icmp6_code;
|
|
__sum16 icmp6_cksum;
|
|
union {
|
|
__be32 un_data32[1];
|
|
__be16 un_data16[2];
|
|
__u8 un_data8[4];
|
|
struct icmpv6_echo u_echo;
|
|
struct icmpv6_nd_advt u_nd_advt;
|
|
struct icmpv6_nd_ra u_nd_ra;
|
|
} icmp6_dataun;
|
|
};
|
|
|
|
struct svc_pool_map {
|
|
int count;
|
|
int mode;
|
|
unsigned int npools;
|
|
unsigned int *pool_to;
|
|
unsigned int *to_pool;
|
|
};
|
|
|
|
enum {
|
|
SVC_POOL_AUTO = -1,
|
|
SVC_POOL_GLOBAL = 0,
|
|
SVC_POOL_PERCPU = 1,
|
|
SVC_POOL_PERNODE = 2,
|
|
};
|
|
|
|
enum rpc_reply_stat {
|
|
RPC_MSG_ACCEPTED = 0,
|
|
RPC_MSG_DENIED = 1,
|
|
};
|
|
|
|
enum rpc_reject_stat {
|
|
RPC_MISMATCH = 0,
|
|
RPC_AUTH_ERROR = 1,
|
|
};
|
|
|
|
enum rpc_accept_stat {
|
|
RPC_SUCCESS = 0,
|
|
RPC_PROG_UNAVAIL = 1,
|
|
RPC_PROG_MISMATCH = 2,
|
|
RPC_PROC_UNAVAIL = 3,
|
|
RPC_GARBAGE_ARGS = 4,
|
|
RPC_SYSTEM_ERR = 5,
|
|
RPC_DROP_REPLY = 60000,
|
|
};
|
|
|
|
struct strp_stats {
|
|
unsigned long long msgs;
|
|
unsigned long long bytes;
|
|
unsigned int mem_fail;
|
|
unsigned int need_more_hdr;
|
|
unsigned int msg_too_big;
|
|
unsigned int msg_timeouts;
|
|
unsigned int bad_hdr_len;
|
|
};
|
|
|
|
struct strparser;
|
|
|
|
struct strp_callbacks {
|
|
int (*parse_msg)(struct strparser *, struct sk_buff *);
|
|
void (*rcv_msg)(struct strparser *, struct sk_buff *);
|
|
int (*read_sock_done)(struct strparser *, int);
|
|
void (*abort_parser)(struct strparser *, int);
|
|
void (*lock)(struct strparser *);
|
|
void (*unlock)(struct strparser *);
|
|
};
|
|
|
|
struct strparser {
|
|
struct sock *sk;
|
|
u32 stopped: 1;
|
|
u32 paused: 1;
|
|
u32 aborted: 1;
|
|
u32 interrupted: 1;
|
|
u32 unrecov_intr: 1;
|
|
struct sk_buff **skb_nextp;
|
|
struct sk_buff *skb_head;
|
|
unsigned int need_bytes;
|
|
struct delayed_work msg_timer_work;
|
|
struct work_struct work;
|
|
struct strp_stats stats;
|
|
struct strp_callbacks cb;
|
|
};
|
|
|
|
struct strp_msg {
|
|
int full_len;
|
|
int offset;
|
|
};
|
|
|
|
struct _strp_msg {
|
|
struct strp_msg strp;
|
|
int accum_len;
|
|
};
|
|
|
|
typedef void (*btf_trace_drv_return_void)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_return_int)(void *, struct ieee80211_local *, int);
|
|
|
|
typedef void (*btf_trace_drv_return_bool)(void *, struct ieee80211_local *, bool);
|
|
|
|
typedef void (*btf_trace_drv_return_u32)(void *, struct ieee80211_local *, u32);
|
|
|
|
typedef void (*btf_trace_drv_return_u64)(void *, struct ieee80211_local *, u64);
|
|
|
|
typedef void (*btf_trace_drv_start)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_get_et_strings)(void *, struct ieee80211_local *, u32);
|
|
|
|
typedef void (*btf_trace_drv_get_et_sset_count)(void *, struct ieee80211_local *, u32);
|
|
|
|
typedef void (*btf_trace_drv_get_et_stats)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_suspend)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_resume)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_set_wakeup)(void *, struct ieee80211_local *, bool);
|
|
|
|
typedef void (*btf_trace_drv_stop)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_add_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_change_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum nl80211_iftype, bool);
|
|
|
|
typedef void (*btf_trace_drv_remove_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_config)(void *, struct ieee80211_local *, u32);
|
|
|
|
typedef void (*btf_trace_drv_vif_cfg_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64);
|
|
|
|
typedef void (*btf_trace_drv_link_info_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, u64);
|
|
|
|
typedef void (*btf_trace_drv_prepare_multicast)(void *, struct ieee80211_local *, int);
|
|
|
|
typedef void (*btf_trace_drv_configure_filter)(void *, struct ieee80211_local *, unsigned int, unsigned int *, u64);
|
|
|
|
typedef void (*btf_trace_drv_config_iface_filter)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_drv_set_tim)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool);
|
|
|
|
typedef void (*btf_trace_drv_set_key)(void *, struct ieee80211_local *, enum set_key_cmd, struct ieee80211_sub_if_data *, struct ieee80211_sta *, struct ieee80211_key_conf *);
|
|
|
|
typedef void (*btf_trace_drv_update_tkip_key)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32);
|
|
|
|
typedef void (*btf_trace_drv_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_cancel_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_sched_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_sched_scan_stop)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_sw_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const u8 *);
|
|
|
|
typedef void (*btf_trace_drv_sw_scan_complete)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_get_stats)(void *, struct ieee80211_local *, struct ieee80211_low_level_stats *, int);
|
|
|
|
typedef void (*btf_trace_drv_get_key_seq)(void *, struct ieee80211_local *, struct ieee80211_key_conf *);
|
|
|
|
typedef void (*btf_trace_drv_set_frag_threshold)(void *, struct ieee80211_local *, u32);
|
|
|
|
typedef void (*btf_trace_drv_set_rts_threshold)(void *, struct ieee80211_local *, u32);
|
|
|
|
typedef void (*btf_trace_drv_set_coverage_class)(void *, struct ieee80211_local *, s16);
|
|
|
|
typedef void (*btf_trace_drv_sta_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum sta_notify_cmd, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sta_state)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state);
|
|
|
|
typedef void (*btf_trace_drv_sta_set_txpwr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sta_rc_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u32);
|
|
|
|
typedef void (*btf_trace_drv_sta_statistics)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sta_add)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sta_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sta_pre_rcu_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sync_rx_queues)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_sta_rate_tbl_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_conf_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, u16, const struct ieee80211_tx_queue_params *);
|
|
|
|
typedef void (*btf_trace_drv_get_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_set_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64);
|
|
|
|
typedef void (*btf_trace_drv_offset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, s64);
|
|
|
|
typedef void (*btf_trace_drv_reset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_tx_last_beacon)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_ampdu_action)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_ampdu_params *);
|
|
|
|
typedef void (*btf_trace_drv_get_survey)(void *, struct ieee80211_local *, int, struct survey_info *);
|
|
|
|
typedef void (*btf_trace_drv_flush)(void *, struct ieee80211_local *, u32, bool);
|
|
|
|
typedef void (*btf_trace_drv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *);
|
|
|
|
typedef void (*btf_trace_drv_set_antenna)(void *, struct ieee80211_local *, u32, u32, int);
|
|
|
|
typedef void (*btf_trace_drv_get_antenna)(void *, struct ieee80211_local *, u32, u32, int);
|
|
|
|
typedef void (*btf_trace_drv_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel *, unsigned int, enum ieee80211_roc_type);
|
|
|
|
typedef void (*btf_trace_drv_cancel_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_set_ringparam)(void *, struct ieee80211_local *, u32, u32);
|
|
|
|
typedef void (*btf_trace_drv_get_ringparam)(void *, struct ieee80211_local *, u32 *, u32 *, u32 *, u32 *);
|
|
|
|
typedef void (*btf_trace_drv_tx_frames_pending)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_offchannel_tx_cancel_wait)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_drv_set_bitrate_mask)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_bitrate_mask *);
|
|
|
|
typedef void (*btf_trace_drv_set_rekey_data)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_gtk_rekey_data *);
|
|
|
|
typedef void (*btf_trace_drv_event_callback)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct ieee80211_event *);
|
|
|
|
typedef void (*btf_trace_drv_release_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
|
|
|
|
typedef void (*btf_trace_drv_allow_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
|
|
|
|
typedef void (*btf_trace_drv_mgd_prepare_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool);
|
|
|
|
typedef void (*btf_trace_drv_mgd_complete_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool);
|
|
|
|
typedef void (*btf_trace_drv_mgd_protect_tdls_discover)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_add_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *);
|
|
|
|
typedef void (*btf_trace_drv_remove_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *);
|
|
|
|
typedef void (*btf_trace_drv_change_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *, u32);
|
|
|
|
typedef void (*btf_trace_drv_switch_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode);
|
|
|
|
typedef void (*btf_trace_drv_assign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *);
|
|
|
|
typedef void (*btf_trace_drv_unassign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *);
|
|
|
|
typedef void (*btf_trace_drv_start_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *);
|
|
|
|
typedef void (*btf_trace_drv_stop_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *);
|
|
|
|
typedef void (*btf_trace_drv_reconfig_complete)(void *, struct ieee80211_local *, enum ieee80211_reconfig_type);
|
|
|
|
typedef void (*btf_trace_drv_ipv6_addr_change)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_join_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *);
|
|
|
|
typedef void (*btf_trace_drv_leave_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_get_expected_throughput)(void *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_start_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *);
|
|
|
|
typedef void (*btf_trace_drv_stop_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_nan_change_conf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *, u32);
|
|
|
|
typedef void (*btf_trace_drv_add_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_nan_func *);
|
|
|
|
typedef void (*btf_trace_drv_del_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8);
|
|
|
|
typedef void (*btf_trace_drv_start_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_abort_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_set_default_unicast_key)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int);
|
|
|
|
typedef void (*btf_trace_drv_channel_switch_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_drv_pre_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *);
|
|
|
|
typedef void (*btf_trace_drv_post_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_abort_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_channel_switch_rx_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *);
|
|
|
|
typedef void (*btf_trace_drv_get_txpower)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int, int);
|
|
|
|
typedef void (*btf_trace_drv_tdls_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_drv_tdls_cancel_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_tdls_recv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_tdls_ch_sw_params *);
|
|
|
|
struct txq_info;
|
|
|
|
typedef void (*btf_trace_drv_wake_tx_queue)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct txq_info *);
|
|
|
|
struct codel_stats {
|
|
u32 maxpacket;
|
|
u32 drop_count;
|
|
u32 drop_len;
|
|
u32 ecn_mark;
|
|
u32 ce_mark;
|
|
};
|
|
|
|
struct txq_info {
|
|
struct fq_tin tin;
|
|
struct codel_vars def_cvars;
|
|
struct codel_stats cstats;
|
|
u16 schedule_round;
|
|
struct list_head schedule_order;
|
|
struct sk_buff_head frags;
|
|
unsigned long flags;
|
|
struct ieee80211_txq txq;
|
|
};
|
|
|
|
typedef void (*btf_trace_drv_get_ftm_responder_stats)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_ftm_responder_stats *);
|
|
|
|
typedef void (*btf_trace_drv_update_vif_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_drv_sta_set_4addr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool);
|
|
|
|
typedef void (*btf_trace_drv_sta_set_decap_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool);
|
|
|
|
struct ieee80211_twt_params;
|
|
|
|
typedef void (*btf_trace_drv_add_twt_setup)(void *, struct ieee80211_local *, struct ieee80211_sta *, struct ieee80211_twt_setup *, struct ieee80211_twt_params *);
|
|
|
|
struct ieee80211_twt_params {
|
|
__le16 req_type;
|
|
__le64 twt;
|
|
u8 min_twt_dur;
|
|
__le16 mantissa;
|
|
u8 channel;
|
|
} __attribute__((packed));
|
|
|
|
typedef void (*btf_trace_drv_twt_teardown_request)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8);
|
|
|
|
typedef void (*btf_trace_drv_net_fill_forward_path)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_drv_change_vif_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16);
|
|
|
|
typedef void (*btf_trace_drv_change_sta_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u16, u16);
|
|
|
|
typedef void (*btf_trace_api_start_tx_ba_session)(void *, struct ieee80211_sta *, u16);
|
|
|
|
typedef void (*btf_trace_api_start_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16);
|
|
|
|
typedef void (*btf_trace_api_stop_tx_ba_session)(void *, struct ieee80211_sta *, u16);
|
|
|
|
typedef void (*btf_trace_api_stop_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16);
|
|
|
|
typedef void (*btf_trace_api_restart_hw)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_api_beacon_loss)(void *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_api_connection_loss)(void *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_api_disconnect)(void *, struct ieee80211_sub_if_data *, bool);
|
|
|
|
typedef void (*btf_trace_api_cqm_rssi_notify)(void *, struct ieee80211_sub_if_data *, enum nl80211_cqm_rssi_threshold_event, s32);
|
|
|
|
typedef void (*btf_trace_api_cqm_beacon_loss_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
|
|
|
|
typedef void (*btf_trace_api_scan_completed)(void *, struct ieee80211_local *, bool);
|
|
|
|
typedef void (*btf_trace_api_sched_scan_results)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_api_sched_scan_stopped)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_api_sta_block_awake)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool);
|
|
|
|
typedef void (*btf_trace_api_chswitch_done)(void *, struct ieee80211_sub_if_data *, bool);
|
|
|
|
typedef void (*btf_trace_api_ready_on_channel)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_api_remain_on_channel_expired)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_api_gtk_rekey_notify)(void *, struct ieee80211_sub_if_data *, const u8 *, const u8 *);
|
|
|
|
typedef void (*btf_trace_api_enable_rssi_reports)(void *, struct ieee80211_sub_if_data *, int, int);
|
|
|
|
typedef void (*btf_trace_api_eosp)(void *, struct ieee80211_local *, struct ieee80211_sta *);
|
|
|
|
typedef void (*btf_trace_api_send_eosp_nullfunc)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8);
|
|
|
|
typedef void (*btf_trace_api_sta_set_buffered)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8, bool);
|
|
|
|
typedef void (*btf_trace_api_radar_detected)(void *, struct ieee80211_local *);
|
|
|
|
typedef void (*btf_trace_wake_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason);
|
|
|
|
typedef void (*btf_trace_stop_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason);
|
|
|
|
struct trace_event_raw_local_only_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_return_int {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_return_bool {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
bool ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_return_u32 {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_return_u64 {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u64 ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_local_u32_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 value;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_wakeup {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
bool enabled;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_local_sdata_addr_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_change_interface {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 new_type;
|
|
bool new_p2p;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 changed;
|
|
u32 flags;
|
|
int power_level;
|
|
int dynamic_ps_timeout;
|
|
u16 listen_interval;
|
|
u8 long_frame_max_tx_count;
|
|
u8 short_frame_max_tx_count;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
int smps;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_vif_cfg_changed {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u64 changed;
|
|
bool assoc;
|
|
bool ibss_joined;
|
|
bool ibss_creator;
|
|
u16 aid;
|
|
u32 __data_loc_arp_addr_list;
|
|
int arp_addr_cnt;
|
|
u32 __data_loc_ssid;
|
|
int s1g;
|
|
bool idle;
|
|
bool ps;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_link_info_changed {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u64 changed;
|
|
int link_id;
|
|
bool cts;
|
|
bool shortpre;
|
|
bool shortslot;
|
|
bool enable_beacon;
|
|
u8 dtimper;
|
|
u16 bcnint;
|
|
u16 assoc_cap;
|
|
u64 sync_tsf;
|
|
u32 sync_device_ts;
|
|
u8 sync_dtim_count;
|
|
u32 basic_rates;
|
|
int mcast_rate[6];
|
|
u16 ht_operation_mode;
|
|
s32 cqm_rssi_thold;
|
|
s32 cqm_rssi_hyst;
|
|
u32 channel_width;
|
|
u32 channel_cfreq1;
|
|
u32 channel_cfreq1_offset;
|
|
bool qos;
|
|
bool hidden_ssid;
|
|
int txpower;
|
|
u8 p2p_oppps_ctwindow;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_prepare_multicast {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int mc_count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_configure_filter {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
unsigned int changed;
|
|
unsigned int total;
|
|
u64 multicast;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_config_iface_filter {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
unsigned int filter_flags;
|
|
unsigned int changed_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_tim {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
bool set;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u32 cipher;
|
|
u8 hw_key_idx;
|
|
u8 flags;
|
|
s8 keyidx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_update_tkip_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u32 iv32;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_local_sdata_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_sw_scan_start {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char mac_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_stats {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
unsigned int ackfail;
|
|
unsigned int rtsfail;
|
|
unsigned int fcserr;
|
|
unsigned int rtssucc;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_key_seq {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 cipher;
|
|
u8 hw_key_idx;
|
|
u8 flags;
|
|
s8 keyidx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_coverage_class {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
s16 value;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_sta_notify {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u32 cmd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_sta_state {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u32 old_state;
|
|
u32 new_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_sta_set_txpwr {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
s16 txpwr;
|
|
u8 type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_sta_rc_update {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u32 changed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sta_event {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_conf_tx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
unsigned int link_id;
|
|
u16 ac;
|
|
u16 txop;
|
|
u16 cw_min;
|
|
u16 cw_max;
|
|
u8 aifs;
|
|
bool uapsd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_tsf {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u64 tsf;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_offset_tsf {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
s64 tsf_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_ampdu_action {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
enum ieee80211_ampdu_mlme_action ieee80211_ampdu_mlme_action;
|
|
char sta_addr[6];
|
|
u16 tid;
|
|
u16 ssn;
|
|
u16 buf_size;
|
|
bool amsdu;
|
|
u16 timeout;
|
|
u16 action;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_survey {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int idx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_flush {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
bool drop;
|
|
u32 queues;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u64 timestamp;
|
|
u32 device_timestamp;
|
|
bool block_tx;
|
|
u8 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_antenna {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 tx_ant;
|
|
u32 rx_ant;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_antenna {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 tx_ant;
|
|
u32 rx_ant;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_remain_on_channel {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
int center_freq;
|
|
int freq_offset;
|
|
unsigned int duration;
|
|
u32 type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_ringparam {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 tx;
|
|
u32 rx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_ringparam {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 tx;
|
|
u32 tx_max;
|
|
u32 rx;
|
|
u32 rx_max;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_bitrate_mask {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 legacy_2g;
|
|
u32 legacy_5g;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_rekey_data {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 kek[16];
|
|
u8 kck[16];
|
|
u8 replay_ctr[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_event_callback {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_release_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
u16 tids;
|
|
int num_frames;
|
|
int reason;
|
|
bool more_data;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mgd_prepare_complete_tx_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 duration;
|
|
u16 subtype;
|
|
u8 success;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_local_chanctx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u32 min_control_freq;
|
|
u32 min_freq_offset;
|
|
u32 min_chan_width;
|
|
u32 min_center_freq1;
|
|
u32 min_freq1_offset;
|
|
u32 min_center_freq2;
|
|
u8 rx_chains_static;
|
|
u8 rx_chains_dynamic;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_change_chanctx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u32 min_control_freq;
|
|
u32 min_freq_offset;
|
|
u32 min_chan_width;
|
|
u32 min_center_freq1;
|
|
u32 min_freq1_offset;
|
|
u32 min_center_freq2;
|
|
u8 rx_chains_static;
|
|
u8 rx_chains_dynamic;
|
|
u32 changed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_switch_vif_chanctx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int n_vifs;
|
|
u32 mode;
|
|
u32 __data_loc_vifs;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_local_sdata_chanctx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u32 min_control_freq;
|
|
u32 min_freq_offset;
|
|
u32 min_chan_width;
|
|
u32 min_center_freq1;
|
|
u32 min_freq1_offset;
|
|
u32 min_center_freq2;
|
|
u8 rx_chains_static;
|
|
u8 rx_chains_dynamic;
|
|
unsigned int link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_start_ap {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 link_id;
|
|
u8 dtimper;
|
|
u16 bcnint;
|
|
u32 __data_loc_ssid;
|
|
bool hidden_ssid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_stop_ap {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_reconfig_complete {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u8 reconfig_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_join_ibss {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 dtimper;
|
|
u16 bcnint;
|
|
u32 __data_loc_ssid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_expected_throughput {
|
|
struct trace_entry ent;
|
|
char sta_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_start_nan {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 master_pref;
|
|
u8 bands;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_stop_nan {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_nan_change_conf {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 master_pref;
|
|
u8 bands;
|
|
u32 changes;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_add_nan_func {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 type;
|
|
u8 inst_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_del_nan_func {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 instance_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_set_default_unicast_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
int key_idx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_channel_switch_beacon {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_pre_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u64 timestamp;
|
|
u32 device_timestamp;
|
|
bool block_tx;
|
|
u8 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_channel_switch_rx_beacon {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u64 timestamp;
|
|
u32 device_timestamp;
|
|
bool block_tx;
|
|
u8 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_txpower {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
int dbm;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_tdls_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u8 oper_class;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_tdls_cancel_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_tdls_recv_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 action_code;
|
|
char sta_addr[6];
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u32 status;
|
|
bool peer_initiator;
|
|
u32 timestamp;
|
|
u16 switch_time;
|
|
u16 switch_timeout;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_wake_tx_queue {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u8 ac;
|
|
u8 tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_get_ftm_responder_stats {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sta_flag_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
bool enabled;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_add_twt_setup {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
u8 dialog_token;
|
|
u8 control;
|
|
__le16 req_type;
|
|
__le64 twt;
|
|
u8 duration;
|
|
__le16 mantissa;
|
|
u8 channel;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_twt_teardown_request {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
u8 flowid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_change_vif_links {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u16 old_links;
|
|
u16 new_links;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drv_change_sta_links {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char sta_addr[6];
|
|
u16 old_links;
|
|
u16 new_links;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_start_tx_ba_session {
|
|
struct trace_entry ent;
|
|
char sta_addr[6];
|
|
u16 tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_start_tx_ba_cb {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 ra[6];
|
|
u16 tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_stop_tx_ba_session {
|
|
struct trace_entry ent;
|
|
char sta_addr[6];
|
|
u16 tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_stop_tx_ba_cb {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 ra[6];
|
|
u16 tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_beacon_loss {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_connection_loss {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_disconnect {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
int reconnect;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_cqm_rssi_notify {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u32 rssi_event;
|
|
s32 rssi_level;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_scan_completed {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
bool aborted;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_sched_scan_results {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_sched_scan_stopped {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_sta_block_awake {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
bool block;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_chswitch_done {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
bool success;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_gtk_rekey_notify {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
u8 bssid[6];
|
|
u8 replay_ctr[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_enable_rssi_reports {
|
|
struct trace_entry ent;
|
|
enum nl80211_iftype vif_type;
|
|
void *sdata;
|
|
bool p2p;
|
|
u32 __data_loc_vif_name;
|
|
int rssi_min_thold;
|
|
int rssi_max_thold;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_eosp {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_send_eosp_nullfunc {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
u8 tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_sta_set_buffered {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char sta_addr[6];
|
|
u8 tid;
|
|
bool buffered;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_api_radar_detected {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wake_queue {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u16 queue;
|
|
u32 reason;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_stop_queue {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u16 queue;
|
|
u32 reason;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_local_sdata_addr_evt {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_local_sdata_evt {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_change_interface {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_vif_cfg_changed {
|
|
u32 vif_name;
|
|
u32 arp_addr_list;
|
|
u32 ssid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_link_info_changed {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_config_iface_filter {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_set_key {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_update_tkip_key {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_sw_scan_start {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_sta_notify {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_sta_state {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_sta_set_txpwr {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_sta_rc_update {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_sta_event {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_conf_tx {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_set_tsf {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_offset_tsf {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_ampdu_action {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_channel_switch {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_remain_on_channel {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_set_bitrate_mask {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_set_rekey_data {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_event_callback {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_mgd_prepare_complete_tx_evt {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_switch_vif_chanctx {
|
|
u32 vifs;
|
|
};
|
|
|
|
struct trace_event_data_offsets_local_sdata_chanctx {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_start_ap {
|
|
u32 vif_name;
|
|
u32 ssid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_stop_ap {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_join_ibss {
|
|
u32 vif_name;
|
|
u32 ssid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_start_nan {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_stop_nan {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_nan_change_conf {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_add_nan_func {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_del_nan_func {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_set_default_unicast_key {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_channel_switch_beacon {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_pre_channel_switch {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_channel_switch_rx_beacon {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_get_txpower {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_tdls_channel_switch {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_tdls_cancel_channel_switch {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_tdls_recv_channel_switch {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_wake_tx_queue {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_get_ftm_responder_stats {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_sta_flag_evt {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_change_vif_links {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_drv_change_sta_links {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_start_tx_ba_cb {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_stop_tx_ba_cb {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_beacon_loss {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_connection_loss {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_disconnect {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_cqm_rssi_notify {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_chswitch_done {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_gtk_rekey_notify {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_api_enable_rssi_reports {
|
|
u32 vif_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_local_only_evt {};
|
|
|
|
struct trace_event_data_offsets_local_u32_evt {};
|
|
|
|
struct trace_event_data_offsets_drv_return_int {};
|
|
|
|
struct trace_event_data_offsets_drv_return_bool {};
|
|
|
|
struct trace_event_data_offsets_drv_return_u32 {};
|
|
|
|
struct trace_event_data_offsets_drv_return_u64 {};
|
|
|
|
struct trace_event_data_offsets_drv_set_wakeup {};
|
|
|
|
struct trace_event_data_offsets_drv_config {};
|
|
|
|
struct trace_event_data_offsets_drv_prepare_multicast {};
|
|
|
|
struct trace_event_data_offsets_drv_configure_filter {};
|
|
|
|
struct trace_event_data_offsets_drv_set_tim {};
|
|
|
|
struct trace_event_data_offsets_drv_get_stats {};
|
|
|
|
struct trace_event_data_offsets_drv_get_key_seq {};
|
|
|
|
struct trace_event_data_offsets_drv_set_coverage_class {};
|
|
|
|
struct trace_event_data_offsets_drv_get_survey {};
|
|
|
|
struct trace_event_data_offsets_drv_flush {};
|
|
|
|
struct trace_event_data_offsets_drv_set_antenna {};
|
|
|
|
struct trace_event_data_offsets_drv_get_antenna {};
|
|
|
|
struct trace_event_data_offsets_drv_set_ringparam {};
|
|
|
|
struct trace_event_data_offsets_drv_get_ringparam {};
|
|
|
|
struct trace_event_data_offsets_release_evt {};
|
|
|
|
struct trace_event_data_offsets_local_chanctx {};
|
|
|
|
struct trace_event_data_offsets_drv_change_chanctx {};
|
|
|
|
struct trace_vif_entry {
|
|
enum nl80211_iftype vif_type;
|
|
bool p2p;
|
|
char vif_name[16];
|
|
} __attribute__((packed));
|
|
|
|
struct trace_chandef_entry {
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 chan_width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
};
|
|
|
|
struct trace_switch_entry {
|
|
struct trace_vif_entry vif;
|
|
unsigned int link_id;
|
|
struct trace_chandef_entry old_chandef;
|
|
struct trace_chandef_entry new_chandef;
|
|
} __attribute__((packed));
|
|
|
|
struct trace_event_data_offsets_drv_reconfig_complete {};
|
|
|
|
struct trace_event_data_offsets_drv_get_expected_throughput {};
|
|
|
|
struct trace_event_data_offsets_drv_add_twt_setup {};
|
|
|
|
struct trace_event_data_offsets_drv_twt_teardown_request {};
|
|
|
|
struct trace_event_data_offsets_api_start_tx_ba_session {};
|
|
|
|
struct trace_event_data_offsets_api_stop_tx_ba_session {};
|
|
|
|
struct trace_event_data_offsets_api_scan_completed {};
|
|
|
|
struct trace_event_data_offsets_api_sched_scan_results {};
|
|
|
|
struct trace_event_data_offsets_api_sched_scan_stopped {};
|
|
|
|
struct trace_event_data_offsets_api_sta_block_awake {};
|
|
|
|
struct trace_event_data_offsets_api_eosp {};
|
|
|
|
struct trace_event_data_offsets_api_send_eosp_nullfunc {};
|
|
|
|
struct trace_event_data_offsets_api_sta_set_buffered {};
|
|
|
|
struct trace_event_data_offsets_api_radar_detected {};
|
|
|
|
struct trace_event_data_offsets_wake_queue {};
|
|
|
|
struct trace_event_data_offsets_stop_queue {};
|
|
|
|
struct intel_uncore_box;
|
|
|
|
struct intel_uncore_ops {
|
|
void (*init_box)(struct intel_uncore_box *);
|
|
void (*exit_box)(struct intel_uncore_box *);
|
|
void (*disable_box)(struct intel_uncore_box *);
|
|
void (*enable_box)(struct intel_uncore_box *);
|
|
void (*disable_event)(struct intel_uncore_box *, struct perf_event *);
|
|
void (*enable_event)(struct intel_uncore_box *, struct perf_event *);
|
|
u64 (*read_counter)(struct intel_uncore_box *, struct perf_event *);
|
|
int (*hw_config)(struct intel_uncore_box *, struct perf_event *);
|
|
struct event_constraint * (*get_constraint)(struct intel_uncore_box *, struct perf_event *);
|
|
void (*put_constraint)(struct intel_uncore_box *, struct perf_event *);
|
|
};
|
|
|
|
struct intel_uncore_extra_reg {
|
|
raw_spinlock_t lock;
|
|
u64 config;
|
|
u64 config1;
|
|
u64 config2;
|
|
atomic_t ref;
|
|
};
|
|
|
|
struct intel_uncore_pmu;
|
|
|
|
struct intel_uncore_box {
|
|
int dieid;
|
|
int n_active;
|
|
int n_events;
|
|
int cpu;
|
|
unsigned long flags;
|
|
atomic_t refcnt;
|
|
struct perf_event *events[10];
|
|
struct perf_event *event_list[10];
|
|
struct event_constraint *event_constraint[10];
|
|
unsigned long active_mask[1];
|
|
u64 tags[10];
|
|
struct pci_dev *pci_dev;
|
|
struct intel_uncore_pmu *pmu;
|
|
u64 hrtimer_duration;
|
|
struct hrtimer hrtimer;
|
|
struct list_head list;
|
|
struct list_head active_list;
|
|
void *io_addr;
|
|
struct intel_uncore_extra_reg shared_regs[0];
|
|
};
|
|
|
|
struct intel_uncore_type;
|
|
|
|
struct intel_uncore_pmu {
|
|
struct pmu pmu;
|
|
char name[32];
|
|
int pmu_idx;
|
|
int func_id;
|
|
bool registered;
|
|
atomic_t activeboxes;
|
|
struct intel_uncore_type *type;
|
|
struct intel_uncore_box **boxes;
|
|
};
|
|
|
|
struct uncore_event_desc;
|
|
|
|
struct freerunning_counters;
|
|
|
|
struct intel_uncore_topology;
|
|
|
|
struct intel_uncore_type {
|
|
const char *name;
|
|
int num_counters;
|
|
int num_boxes;
|
|
int perf_ctr_bits;
|
|
int fixed_ctr_bits;
|
|
int num_freerunning_types;
|
|
int type_id;
|
|
unsigned int perf_ctr;
|
|
unsigned int event_ctl;
|
|
unsigned int event_mask;
|
|
unsigned int event_mask_ext;
|
|
unsigned int fixed_ctr;
|
|
unsigned int fixed_ctl;
|
|
unsigned int box_ctl;
|
|
u64 *box_ctls;
|
|
union {
|
|
unsigned int msr_offset;
|
|
unsigned int mmio_offset;
|
|
};
|
|
unsigned int mmio_map_size;
|
|
unsigned int num_shared_regs: 8;
|
|
unsigned int single_fixed: 1;
|
|
unsigned int pair_ctr_ctl: 1;
|
|
union {
|
|
unsigned int *msr_offsets;
|
|
unsigned int *pci_offsets;
|
|
unsigned int *mmio_offsets;
|
|
};
|
|
unsigned int *box_ids;
|
|
struct event_constraint unconstrainted;
|
|
struct event_constraint *constraints;
|
|
struct intel_uncore_pmu *pmus;
|
|
struct intel_uncore_ops *ops;
|
|
struct uncore_event_desc *event_descs;
|
|
struct freerunning_counters *freerunning;
|
|
const struct attribute_group *attr_groups[4];
|
|
const struct attribute_group **attr_update;
|
|
struct pmu *pmu;
|
|
struct intel_uncore_topology **topology;
|
|
int (*get_topology)(struct intel_uncore_type *);
|
|
void (*set_mapping)(struct intel_uncore_type *);
|
|
void (*cleanup_mapping)(struct intel_uncore_type *);
|
|
};
|
|
|
|
struct uncore_event_desc {
|
|
struct device_attribute attr;
|
|
const char *config;
|
|
};
|
|
|
|
struct freerunning_counters {
|
|
unsigned int counter_base;
|
|
unsigned int counter_offset;
|
|
unsigned int box_offset;
|
|
unsigned int num_counters;
|
|
unsigned int bits;
|
|
unsigned int *box_offsets;
|
|
};
|
|
|
|
struct uncore_iio_topology;
|
|
|
|
struct uncore_upi_topology;
|
|
|
|
struct intel_uncore_topology {
|
|
int pmu_idx;
|
|
union {
|
|
void *untyped;
|
|
struct uncore_iio_topology *iio;
|
|
struct uncore_upi_topology *upi;
|
|
};
|
|
};
|
|
|
|
struct uncore_iio_topology {
|
|
int pci_bus_no;
|
|
int segment;
|
|
};
|
|
|
|
struct uncore_upi_topology {
|
|
int die_to;
|
|
int pmu_idx_to;
|
|
int enabled;
|
|
};
|
|
|
|
enum uncore_access_type {
|
|
UNCORE_ACCESS_MSR = 0,
|
|
UNCORE_ACCESS_MMIO = 1,
|
|
UNCORE_ACCESS_PCI = 2,
|
|
UNCORE_ACCESS_MAX = 3,
|
|
};
|
|
|
|
struct intel_uncore_discovery_type {
|
|
struct rb_node node;
|
|
enum uncore_access_type access_type;
|
|
u64 box_ctrl;
|
|
u64 *box_ctrl_die;
|
|
u16 type;
|
|
u8 num_counters;
|
|
u8 counter_width;
|
|
u8 ctl_offset;
|
|
u8 ctr_offset;
|
|
u16 num_boxes;
|
|
unsigned int *ids;
|
|
unsigned int *box_offset;
|
|
};
|
|
|
|
struct uncore_global_discovery {
|
|
union {
|
|
u64 table1;
|
|
struct {
|
|
u64 type: 8;
|
|
u64 stride: 8;
|
|
u64 max_units: 10;
|
|
u64 __reserved_1: 36;
|
|
u64 access_type: 2;
|
|
};
|
|
};
|
|
u64 ctl;
|
|
union {
|
|
u64 table3;
|
|
struct {
|
|
u64 status_offset: 8;
|
|
u64 num_status: 16;
|
|
u64 __reserved_2: 40;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct uncore_unit_discovery {
|
|
union {
|
|
u64 table1;
|
|
struct {
|
|
u64 num_regs: 8;
|
|
u64 ctl_offset: 8;
|
|
u64 bit_width: 8;
|
|
u64 ctr_offset: 8;
|
|
u64 status_offset: 8;
|
|
u64 __reserved_1: 22;
|
|
u64 access_type: 2;
|
|
};
|
|
};
|
|
u64 ctl;
|
|
union {
|
|
u64 table3;
|
|
struct {
|
|
u64 box_type: 16;
|
|
u64 box_id: 16;
|
|
u64 __reserved_2: 32;
|
|
};
|
|
};
|
|
};
|
|
|
|
enum align_flags {
|
|
ALIGN_VA_32 = 1,
|
|
ALIGN_VA_64 = 2,
|
|
};
|
|
|
|
struct vm_unmapped_area_info {
|
|
unsigned long flags;
|
|
unsigned long length;
|
|
unsigned long low_limit;
|
|
unsigned long high_limit;
|
|
unsigned long align_mask;
|
|
unsigned long align_offset;
|
|
};
|
|
|
|
enum pconfig_target {
|
|
INVALID_TARGET = 0,
|
|
MKTME_TARGET = 1,
|
|
PCONFIG_TARGET_NR = 2,
|
|
};
|
|
|
|
enum {
|
|
PCONFIG_CPUID_SUBLEAF_INVALID = 0,
|
|
PCONFIG_CPUID_SUBLEAF_TARGETID = 1,
|
|
};
|
|
|
|
struct cpuid_regs {
|
|
u32 eax;
|
|
u32 ebx;
|
|
u32 ecx;
|
|
u32 edx;
|
|
};
|
|
|
|
enum tsx_ctrl_states {
|
|
TSX_CTRL_ENABLE = 0,
|
|
TSX_CTRL_DISABLE = 1,
|
|
TSX_CTRL_RTM_ALWAYS_ABORT = 2,
|
|
TSX_CTRL_NOT_SUPPORTED = 3,
|
|
};
|
|
|
|
struct severity {
|
|
u64 mask;
|
|
u64 result;
|
|
unsigned char sev;
|
|
unsigned char mcgmask;
|
|
unsigned char mcgres;
|
|
unsigned char ser;
|
|
unsigned char context;
|
|
unsigned char excp;
|
|
unsigned char covered;
|
|
unsigned char cpu_model;
|
|
unsigned char cpu_minstepping;
|
|
unsigned char bank_lo;
|
|
unsigned char bank_hi;
|
|
char *msg;
|
|
};
|
|
|
|
enum severity_level {
|
|
MCE_NO_SEVERITY = 0,
|
|
MCE_DEFERRED_SEVERITY = 1,
|
|
MCE_UCNA_SEVERITY = 1,
|
|
MCE_KEEP_SEVERITY = 2,
|
|
MCE_SOME_SEVERITY = 3,
|
|
MCE_AO_SEVERITY = 4,
|
|
MCE_UC_SEVERITY = 5,
|
|
MCE_AR_SEVERITY = 6,
|
|
MCE_PANIC_SEVERITY = 7,
|
|
};
|
|
|
|
enum context___2 {
|
|
IN_KERNEL = 1,
|
|
IN_USER = 2,
|
|
IN_KERNEL_RECOV = 3,
|
|
};
|
|
|
|
enum insn_mode {
|
|
INSN_MODE_32 = 0,
|
|
INSN_MODE_64 = 1,
|
|
INSN_MODE_KERN = 2,
|
|
INSN_NUM_MODES = 3,
|
|
};
|
|
|
|
enum exception {
|
|
EXCP_CONTEXT = 1,
|
|
NO_EXCP = 2,
|
|
};
|
|
|
|
enum ser {
|
|
SER_REQUIRED = 1,
|
|
NO_SER = 2,
|
|
};
|
|
|
|
typedef int insn_value_t;
|
|
|
|
typedef unsigned char insn_byte_t;
|
|
|
|
struct insn_field {
|
|
union {
|
|
insn_value_t value;
|
|
insn_byte_t bytes[4];
|
|
};
|
|
unsigned char got;
|
|
unsigned char nbytes;
|
|
};
|
|
|
|
typedef unsigned int insn_attr_t;
|
|
|
|
struct insn {
|
|
struct insn_field prefixes;
|
|
struct insn_field rex_prefix;
|
|
struct insn_field vex_prefix;
|
|
struct insn_field opcode;
|
|
struct insn_field modrm;
|
|
struct insn_field sib;
|
|
struct insn_field displacement;
|
|
union {
|
|
struct insn_field immediate;
|
|
struct insn_field moffset1;
|
|
struct insn_field immediate1;
|
|
};
|
|
union {
|
|
struct insn_field moffset2;
|
|
struct insn_field immediate2;
|
|
};
|
|
int emulate_prefix_size;
|
|
insn_attr_t attr;
|
|
unsigned char opnd_bytes;
|
|
unsigned char addr_bytes;
|
|
unsigned char length;
|
|
unsigned char x86_64;
|
|
const insn_byte_t *kaddr;
|
|
const insn_byte_t *end_kaddr;
|
|
const insn_byte_t *next_byte;
|
|
};
|
|
|
|
struct scan_area {
|
|
u64 addr;
|
|
u64 size;
|
|
};
|
|
|
|
enum bug_trap_type {
|
|
BUG_TRAP_TYPE_NONE = 0,
|
|
BUG_TRAP_TYPE_WARN = 1,
|
|
BUG_TRAP_TYPE_BUG = 2,
|
|
};
|
|
|
|
struct user_regset;
|
|
|
|
struct membuf;
|
|
|
|
typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf);
|
|
|
|
typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void __attribute__((btf_type_tag("user"))) *);
|
|
|
|
typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *);
|
|
|
|
typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int);
|
|
|
|
struct user_regset {
|
|
user_regset_get2_fn *regset_get;
|
|
user_regset_set_fn *set;
|
|
user_regset_active_fn *active;
|
|
user_regset_writeback_fn *writeback;
|
|
unsigned int n;
|
|
unsigned int size;
|
|
unsigned int align;
|
|
unsigned int bias;
|
|
unsigned int core_note_type;
|
|
};
|
|
|
|
struct membuf {
|
|
void *p;
|
|
size_t left;
|
|
};
|
|
|
|
struct user_regset_view {
|
|
const char *name;
|
|
const struct user_regset *regsets;
|
|
unsigned int n;
|
|
u32 e_flags;
|
|
u16 e_machine;
|
|
u8 ei_osabi;
|
|
};
|
|
|
|
enum {
|
|
IRQS_AUTODETECT = 1,
|
|
IRQS_SPURIOUS_DISABLED = 2,
|
|
IRQS_POLL_INPROGRESS = 8,
|
|
IRQS_ONESHOT = 32,
|
|
IRQS_REPLAY = 64,
|
|
IRQS_WAITING = 128,
|
|
IRQS_PENDING = 512,
|
|
IRQS_SUSPENDED = 2048,
|
|
IRQS_TIMINGS = 4096,
|
|
IRQS_NMI = 8192,
|
|
IRQS_SYSFS = 16384,
|
|
};
|
|
|
|
enum {
|
|
_IRQ_DEFAULT_INIT_FLAGS = 0,
|
|
_IRQ_PER_CPU = 512,
|
|
_IRQ_LEVEL = 256,
|
|
_IRQ_NOPROBE = 1024,
|
|
_IRQ_NOREQUEST = 2048,
|
|
_IRQ_NOTHREAD = 65536,
|
|
_IRQ_NOAUTOEN = 4096,
|
|
_IRQ_MOVE_PCNTXT = 16384,
|
|
_IRQ_NO_BALANCING = 8192,
|
|
_IRQ_NESTED_THREAD = 32768,
|
|
_IRQ_PER_CPU_DEVID = 131072,
|
|
_IRQ_IS_POLLED = 262144,
|
|
_IRQ_DISABLE_UNLAZY = 524288,
|
|
_IRQ_HIDDEN = 1048576,
|
|
_IRQ_NO_DEBUG = 2097152,
|
|
_IRQF_MODIFY_MASK = 2096911,
|
|
};
|
|
|
|
typedef void (*btf_trace_rcu_utilization)(void *, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long);
|
|
|
|
typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, unsigned long);
|
|
|
|
typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, unsigned long, int);
|
|
|
|
typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, unsigned long, unsigned long, unsigned long, u8, int, int, int);
|
|
|
|
typedef void (*btf_trace_rcu_fqs)(void *, const char *, unsigned long, int, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long, long, int);
|
|
|
|
typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long);
|
|
|
|
typedef void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *);
|
|
|
|
typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long, long);
|
|
|
|
typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long, long);
|
|
|
|
typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *);
|
|
|
|
typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long);
|
|
|
|
typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, unsigned long, void **);
|
|
|
|
typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char);
|
|
|
|
typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long);
|
|
|
|
struct rcu_tasks;
|
|
|
|
typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *);
|
|
|
|
typedef void (*pregp_func_t)(struct list_head *);
|
|
|
|
typedef void (*pertask_func_t)(struct task_struct *, struct list_head *);
|
|
|
|
typedef void (*postscan_func_t)(struct list_head *);
|
|
|
|
typedef void (*holdouts_func_t)(struct list_head *, bool, bool *);
|
|
|
|
typedef void (*postgp_func_t)(struct rcu_tasks *);
|
|
|
|
typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t);
|
|
|
|
struct rcu_tasks_percpu;
|
|
|
|
struct rcu_tasks {
|
|
struct rcuwait cbs_wait;
|
|
raw_spinlock_t cbs_gbl_lock;
|
|
struct mutex tasks_gp_mutex;
|
|
int gp_state;
|
|
int gp_sleep;
|
|
int init_fract;
|
|
unsigned long gp_jiffies;
|
|
unsigned long gp_start;
|
|
unsigned long tasks_gp_seq;
|
|
unsigned long n_ipis;
|
|
unsigned long n_ipis_fails;
|
|
struct task_struct *kthread_ptr;
|
|
rcu_tasks_gp_func_t gp_func;
|
|
pregp_func_t pregp_func;
|
|
pertask_func_t pertask_func;
|
|
postscan_func_t postscan_func;
|
|
holdouts_func_t holdouts_func;
|
|
postgp_func_t postgp_func;
|
|
call_rcu_func_t call_func;
|
|
struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu;
|
|
int percpu_enqueue_shift;
|
|
int percpu_enqueue_lim;
|
|
int percpu_dequeue_lim;
|
|
unsigned long percpu_dequeue_gpseq;
|
|
struct mutex barrier_q_mutex;
|
|
atomic_t barrier_q_count;
|
|
struct completion barrier_q_completion;
|
|
unsigned long barrier_q_seq;
|
|
char *name;
|
|
char *kname;
|
|
};
|
|
|
|
struct rcu_tasks_percpu {
|
|
struct rcu_segcblist cblist;
|
|
raw_spinlock_t lock;
|
|
unsigned long rtp_jiffies;
|
|
unsigned long rtp_n_lock_retries;
|
|
struct work_struct rtp_work;
|
|
struct irq_work rtp_irq_work;
|
|
struct callback_head barrier_q_head;
|
|
struct list_head rtp_blkd_tasks;
|
|
int cpu;
|
|
struct rcu_tasks *rtpp;
|
|
};
|
|
|
|
struct rcu_synchronize {
|
|
struct callback_head head;
|
|
struct completion completion;
|
|
};
|
|
|
|
struct trace_event_raw_rcu_utilization {
|
|
struct trace_entry ent;
|
|
const char *s;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_grace_period {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
const char *gpevent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_future_grace_period {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
long gp_seq_req;
|
|
u8 level;
|
|
int grplo;
|
|
int grphi;
|
|
const char *gpevent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_grace_period_init {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
u8 level;
|
|
int grplo;
|
|
int grphi;
|
|
unsigned long qsmask;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_exp_grace_period {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gpseq;
|
|
const char *gpevent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_exp_funnel_lock {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
u8 level;
|
|
int grplo;
|
|
int grphi;
|
|
const char *gpevent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_preempt_task {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_unlock_preempted_task {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_quiescent_state_report {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
unsigned long mask;
|
|
unsigned long qsmask;
|
|
u8 level;
|
|
int grplo;
|
|
int grphi;
|
|
u8 gp_tasks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_fqs {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long gp_seq;
|
|
int cpu;
|
|
const char *qsevent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_stall_warning {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
const char *msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_dyntick {
|
|
struct trace_entry ent;
|
|
const char *polarity;
|
|
long oldnesting;
|
|
long newnesting;
|
|
int dynticks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_callback {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
void *rhp;
|
|
void *func;
|
|
long qlen;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_segcb_stats {
|
|
struct trace_entry ent;
|
|
const char *ctx;
|
|
unsigned long gp_seq[4];
|
|
long seglen[4];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_kvfree_callback {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
void *rhp;
|
|
unsigned long offset;
|
|
long qlen;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_batch_start {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
long qlen;
|
|
long blimit;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_invoke_callback {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
void *rhp;
|
|
void *func;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_invoke_kvfree_callback {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
void *rhp;
|
|
unsigned long offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_invoke_kfree_bulk_callback {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
unsigned long nr_records;
|
|
void **p;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_batch_end {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
int callbacks_invoked;
|
|
char cb;
|
|
char nr;
|
|
char iit;
|
|
char risk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_torture_read {
|
|
struct trace_entry ent;
|
|
char rcutorturename[8];
|
|
struct callback_head *rhp;
|
|
unsigned long secs;
|
|
unsigned long c_old;
|
|
unsigned long c;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rcu_barrier {
|
|
struct trace_entry ent;
|
|
const char *rcuname;
|
|
const char *s;
|
|
int cpu;
|
|
int cnt;
|
|
unsigned long done;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trc_stall_chk_rdr {
|
|
int nesting;
|
|
int ipi_to_cpu;
|
|
u8 needqs;
|
|
};
|
|
|
|
typedef int (*task_call_f)(struct task_struct *, void *);
|
|
|
|
struct trace_event_data_offsets_rcu_utilization {};
|
|
|
|
struct trace_event_data_offsets_rcu_grace_period {};
|
|
|
|
struct trace_event_data_offsets_rcu_future_grace_period {};
|
|
|
|
struct trace_event_data_offsets_rcu_grace_period_init {};
|
|
|
|
struct trace_event_data_offsets_rcu_exp_grace_period {};
|
|
|
|
struct trace_event_data_offsets_rcu_exp_funnel_lock {};
|
|
|
|
struct trace_event_data_offsets_rcu_preempt_task {};
|
|
|
|
struct trace_event_data_offsets_rcu_unlock_preempted_task {};
|
|
|
|
struct trace_event_data_offsets_rcu_quiescent_state_report {};
|
|
|
|
struct trace_event_data_offsets_rcu_fqs {};
|
|
|
|
struct trace_event_data_offsets_rcu_stall_warning {};
|
|
|
|
struct trace_event_data_offsets_rcu_dyntick {};
|
|
|
|
struct trace_event_data_offsets_rcu_callback {};
|
|
|
|
struct trace_event_data_offsets_rcu_segcb_stats {};
|
|
|
|
struct trace_event_data_offsets_rcu_kvfree_callback {};
|
|
|
|
struct trace_event_data_offsets_rcu_batch_start {};
|
|
|
|
struct trace_event_data_offsets_rcu_invoke_callback {};
|
|
|
|
struct trace_event_data_offsets_rcu_invoke_kvfree_callback {};
|
|
|
|
struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {};
|
|
|
|
struct trace_event_data_offsets_rcu_batch_end {};
|
|
|
|
struct trace_event_data_offsets_rcu_torture_read {};
|
|
|
|
struct trace_event_data_offsets_rcu_barrier {};
|
|
|
|
struct bpf_iter__bpf_map {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct bpf_map *map;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_map_info {
|
|
u32 map_id;
|
|
};
|
|
|
|
struct bpf_prog_offload_ops;
|
|
|
|
struct bpf_offload_dev {
|
|
const struct bpf_prog_offload_ops *ops;
|
|
struct list_head netdevs;
|
|
void *priv;
|
|
};
|
|
|
|
struct bpf_prog_offload_ops {
|
|
int (*insn_hook)(struct bpf_verifier_env *, int, int);
|
|
int (*finalize)(struct bpf_verifier_env *);
|
|
int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *);
|
|
int (*remove_insns)(struct bpf_verifier_env *, u32, u32);
|
|
int (*prepare)(struct bpf_prog *);
|
|
int (*translate)(struct bpf_prog *);
|
|
void (*destroy)(struct bpf_prog *);
|
|
};
|
|
|
|
enum {
|
|
XDP_METADATA_KFUNC_RX_TIMESTAMP = 0,
|
|
XDP_METADATA_KFUNC_RX_HASH = 1,
|
|
MAX_XDP_METADATA_KFUNC = 2,
|
|
};
|
|
|
|
struct bpf_offload_netdev {
|
|
struct rhash_head l;
|
|
struct net_device *netdev;
|
|
struct bpf_offload_dev *offdev;
|
|
struct list_head progs;
|
|
struct list_head maps;
|
|
struct list_head offdev_netdevs;
|
|
};
|
|
|
|
typedef struct ns_common *ns_get_path_helper_t(void *);
|
|
|
|
struct bpf_prog_info;
|
|
|
|
struct ns_get_path_bpf_prog_args {
|
|
struct bpf_prog *prog;
|
|
struct bpf_prog_info *info;
|
|
};
|
|
|
|
struct bpf_prog_info {
|
|
__u32 type;
|
|
__u32 id;
|
|
__u8 tag[8];
|
|
__u32 jited_prog_len;
|
|
__u32 xlated_prog_len;
|
|
__u64 jited_prog_insns;
|
|
__u64 xlated_prog_insns;
|
|
__u64 load_time;
|
|
__u32 created_by_uid;
|
|
__u32 nr_map_ids;
|
|
__u64 map_ids;
|
|
char name[16];
|
|
__u32 ifindex;
|
|
__u32 gpl_compatible: 1;
|
|
__u64 netns_dev;
|
|
__u64 netns_ino;
|
|
__u32 nr_jited_ksyms;
|
|
__u32 nr_jited_func_lens;
|
|
__u64 jited_ksyms;
|
|
__u64 jited_func_lens;
|
|
__u32 btf_id;
|
|
__u32 func_info_rec_size;
|
|
__u64 func_info;
|
|
__u32 nr_func_info;
|
|
__u32 nr_line_info;
|
|
__u64 line_info;
|
|
__u64 jited_line_info;
|
|
__u32 nr_jited_line_info;
|
|
__u32 line_info_rec_size;
|
|
__u32 jited_line_info_rec_size;
|
|
__u32 nr_prog_tags;
|
|
__u64 prog_tags;
|
|
__u64 run_time_ns;
|
|
__u64 run_cnt;
|
|
__u64 recursion_misses;
|
|
__u32 verified_insns;
|
|
__u32 attach_btf_obj_id;
|
|
__u32 attach_btf_id;
|
|
};
|
|
|
|
struct bpf_map_info;
|
|
|
|
struct ns_get_path_bpf_map_args {
|
|
struct bpf_offloaded_map *offmap;
|
|
struct bpf_map_info *info;
|
|
};
|
|
|
|
struct bpf_map_info {
|
|
__u32 type;
|
|
__u32 id;
|
|
__u32 key_size;
|
|
__u32 value_size;
|
|
__u32 max_entries;
|
|
__u32 map_flags;
|
|
char name[16];
|
|
__u32 ifindex;
|
|
__u32 btf_vmlinux_value_type_id;
|
|
__u64 netns_dev;
|
|
__u64 netns_ino;
|
|
__u32 btf_id;
|
|
__u32 btf_key_type_id;
|
|
__u32 btf_value_type_id;
|
|
__u64 map_extra;
|
|
};
|
|
|
|
struct mm_walk;
|
|
|
|
struct mm_walk_ops {
|
|
int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
|
|
int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *);
|
|
int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *);
|
|
int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *);
|
|
int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *);
|
|
int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *);
|
|
int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *);
|
|
int (*test_walk)(unsigned long, unsigned long, struct mm_walk *);
|
|
int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *);
|
|
void (*post_vma)(struct mm_walk *);
|
|
};
|
|
|
|
enum page_walk_action {
|
|
ACTION_SUBTREE = 0,
|
|
ACTION_CONTINUE = 1,
|
|
ACTION_AGAIN = 2,
|
|
};
|
|
|
|
struct mm_walk {
|
|
const struct mm_walk_ops *ops;
|
|
struct mm_struct *mm;
|
|
pgd_t *pgd;
|
|
struct vm_area_struct *vma;
|
|
enum page_walk_action action;
|
|
bool no_vma;
|
|
void *private;
|
|
};
|
|
|
|
struct swap_slots_cache {
|
|
bool lock_initialized;
|
|
struct mutex alloc_lock;
|
|
swp_entry_t *slots;
|
|
int nr;
|
|
int cur;
|
|
spinlock_t free_lock;
|
|
swp_entry_t *slots_ret;
|
|
int n_ret;
|
|
};
|
|
|
|
struct saved {
|
|
struct path link;
|
|
struct delayed_call done;
|
|
const char *name;
|
|
unsigned int seq;
|
|
};
|
|
|
|
struct nameidata {
|
|
struct path path;
|
|
struct qstr last;
|
|
struct path root;
|
|
struct inode *inode;
|
|
unsigned int flags;
|
|
unsigned int state;
|
|
unsigned int seq;
|
|
unsigned int next_seq;
|
|
unsigned int m_seq;
|
|
unsigned int r_seq;
|
|
int last_type;
|
|
unsigned int depth;
|
|
int total_link_count;
|
|
struct saved *stack;
|
|
struct saved internal[2];
|
|
struct filename *name;
|
|
struct nameidata *saved;
|
|
unsigned int root_seq;
|
|
int dfd;
|
|
vfsuid_t dir_vfsuid;
|
|
umode_t dir_mode;
|
|
};
|
|
|
|
enum {
|
|
LAST_NORM = 0,
|
|
LAST_ROOT = 1,
|
|
LAST_DOT = 2,
|
|
LAST_DOTDOT = 3,
|
|
};
|
|
|
|
enum {
|
|
WALK_TRAILING = 1,
|
|
WALK_MORE = 2,
|
|
WALK_NOFOLLOW = 4,
|
|
};
|
|
|
|
struct word_at_a_time {
|
|
const unsigned long one_bits;
|
|
const unsigned long high_bits;
|
|
};
|
|
|
|
struct open_flags {
|
|
int open_flag;
|
|
umode_t mode;
|
|
int acc_mode;
|
|
int intent;
|
|
int lookup_flags;
|
|
};
|
|
|
|
struct name_snapshot {
|
|
struct qstr name;
|
|
unsigned char inline_name[32];
|
|
};
|
|
|
|
typedef int filler_t(struct file *, struct folio *);
|
|
|
|
struct renamedata {
|
|
struct mnt_idmap *old_mnt_idmap;
|
|
struct inode *old_dir;
|
|
struct dentry *old_dentry;
|
|
struct mnt_idmap *new_mnt_idmap;
|
|
struct inode *new_dir;
|
|
struct dentry *new_dentry;
|
|
struct inode **delegated_inode;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct xdr_array2_desc;
|
|
|
|
typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *, void *);
|
|
|
|
struct xdr_array2_desc {
|
|
unsigned int elem_size;
|
|
unsigned int array_len;
|
|
unsigned int array_maxlen;
|
|
xdr_xcode_elem_t xcode;
|
|
};
|
|
|
|
struct nfsacl_encode_desc {
|
|
struct xdr_array2_desc desc;
|
|
unsigned int count;
|
|
struct posix_acl *acl;
|
|
int typeflag;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
};
|
|
|
|
struct nfsacl_decode_desc {
|
|
struct xdr_array2_desc desc;
|
|
unsigned int count;
|
|
struct posix_acl *acl;
|
|
};
|
|
|
|
struct nfsacl_simple_acl {
|
|
struct posix_acl acl;
|
|
struct posix_acl_entry ace[4];
|
|
};
|
|
|
|
struct pid_entry {
|
|
const char *name;
|
|
unsigned int len;
|
|
umode_t mode;
|
|
const struct inode_operations *iop;
|
|
const struct file_operations *fop;
|
|
union proc_op op;
|
|
};
|
|
|
|
struct limit_names {
|
|
const char *name;
|
|
const char *unit;
|
|
};
|
|
|
|
struct map_files_info {
|
|
unsigned long start;
|
|
unsigned long end;
|
|
fmode_t mode;
|
|
};
|
|
|
|
struct maple_enode;
|
|
|
|
struct maple_alloc;
|
|
|
|
struct ma_state {
|
|
struct maple_tree *tree;
|
|
unsigned long index;
|
|
unsigned long last;
|
|
struct maple_enode *node;
|
|
unsigned long min;
|
|
unsigned long max;
|
|
struct maple_alloc *alloc;
|
|
unsigned char depth;
|
|
unsigned char offset;
|
|
unsigned char mas_flags;
|
|
};
|
|
|
|
struct maple_alloc {
|
|
unsigned long total;
|
|
unsigned char node_count;
|
|
unsigned int request_count;
|
|
struct maple_alloc *slot[30];
|
|
};
|
|
|
|
struct vma_iterator {
|
|
struct ma_state mas;
|
|
};
|
|
|
|
struct genradix_root;
|
|
|
|
struct __genradix {
|
|
struct genradix_root *root;
|
|
};
|
|
|
|
struct tgid_iter {
|
|
unsigned int tgid;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *);
|
|
|
|
enum jbd_state_bits {
|
|
BH_JBD = 16,
|
|
BH_JWrite = 17,
|
|
BH_Freed = 18,
|
|
BH_Revoked = 19,
|
|
BH_RevokeValid = 20,
|
|
BH_JBDDirty = 21,
|
|
BH_JournalHead = 22,
|
|
BH_Shadow = 23,
|
|
BH_Verified = 24,
|
|
BH_JBDPrivateStart = 25,
|
|
};
|
|
|
|
struct fname {
|
|
__u32 hash;
|
|
__u32 minor_hash;
|
|
struct rb_node rb_hash;
|
|
struct fname *next;
|
|
__u32 inode;
|
|
__u8 name_len;
|
|
__u8 file_type;
|
|
char name[0];
|
|
};
|
|
|
|
struct ext4_dir_entry_2 {
|
|
__le32 inode;
|
|
__le16 rec_len;
|
|
__u8 name_len;
|
|
__u8 file_type;
|
|
char name[255];
|
|
};
|
|
|
|
struct ext4_dir_entry_hash {
|
|
__le32 hash;
|
|
__le32 minor_hash;
|
|
};
|
|
|
|
struct dir_private_info {
|
|
struct rb_root root;
|
|
struct rb_node *curr_node;
|
|
struct fname *extra_fname;
|
|
loff_t last_pos;
|
|
__u32 curr_hash;
|
|
__u32 curr_minor_hash;
|
|
__u32 next_hash;
|
|
};
|
|
|
|
struct fscrypt_str {
|
|
unsigned char *name;
|
|
u32 len;
|
|
};
|
|
|
|
struct nfs_readdesc {
|
|
struct nfs_pageio_descriptor pgio;
|
|
struct nfs_open_context *ctx;
|
|
};
|
|
|
|
enum {
|
|
NFS_DELEGATION_NEED_RECLAIM = 0,
|
|
NFS_DELEGATION_RETURN = 1,
|
|
NFS_DELEGATION_RETURN_IF_CLOSED = 2,
|
|
NFS_DELEGATION_REFERENCED = 3,
|
|
NFS_DELEGATION_RETURNING = 4,
|
|
NFS_DELEGATION_REVOKED = 5,
|
|
NFS_DELEGATION_TEST_EXPIRED = 6,
|
|
NFS_DELEGATION_INODE_FREEING = 7,
|
|
NFS_DELEGATION_RETURN_DELAYED = 8,
|
|
};
|
|
|
|
enum nfs4_client_state {
|
|
NFS4CLNT_MANAGER_RUNNING = 0,
|
|
NFS4CLNT_CHECK_LEASE = 1,
|
|
NFS4CLNT_LEASE_EXPIRED = 2,
|
|
NFS4CLNT_RECLAIM_REBOOT = 3,
|
|
NFS4CLNT_RECLAIM_NOGRACE = 4,
|
|
NFS4CLNT_DELEGRETURN = 5,
|
|
NFS4CLNT_SESSION_RESET = 6,
|
|
NFS4CLNT_LEASE_CONFIRM = 7,
|
|
NFS4CLNT_SERVER_SCOPE_MISMATCH = 8,
|
|
NFS4CLNT_PURGE_STATE = 9,
|
|
NFS4CLNT_BIND_CONN_TO_SESSION = 10,
|
|
NFS4CLNT_MOVED = 11,
|
|
NFS4CLNT_LEASE_MOVED = 12,
|
|
NFS4CLNT_DELEGATION_EXPIRED = 13,
|
|
NFS4CLNT_RUN_MANAGER = 14,
|
|
NFS4CLNT_MANAGER_AVAILABLE = 15,
|
|
NFS4CLNT_RECALL_RUNNING = 16,
|
|
NFS4CLNT_RECALL_ANY_LAYOUT_READ = 17,
|
|
NFS4CLNT_RECALL_ANY_LAYOUT_RW = 18,
|
|
NFS4CLNT_DELEGRETURN_DELAYED = 19,
|
|
};
|
|
|
|
enum {
|
|
LK_STATE_IN_USE = 0,
|
|
NFS_DELEGATED_STATE = 1,
|
|
NFS_OPEN_STATE = 2,
|
|
NFS_O_RDONLY_STATE = 3,
|
|
NFS_O_WRONLY_STATE = 4,
|
|
NFS_O_RDWR_STATE = 5,
|
|
NFS_STATE_RECLAIM_REBOOT = 6,
|
|
NFS_STATE_RECLAIM_NOGRACE = 7,
|
|
NFS_STATE_POSIX_LOCKS = 8,
|
|
NFS_STATE_RECOVERY_FAILED = 9,
|
|
NFS_STATE_MAY_NOTIFY_LOCK = 10,
|
|
NFS_STATE_CHANGE_WAIT = 11,
|
|
NFS_CLNT_DST_SSC_COPY_STATE = 12,
|
|
NFS_CLNT_SRC_SSC_COPY_STATE = 13,
|
|
NFS_SRV_SSC_COPY_STATE = 14,
|
|
};
|
|
|
|
struct ipc_params;
|
|
|
|
struct kern_ipc_perm;
|
|
|
|
struct ipc_ops {
|
|
int (*getnew)(struct ipc_namespace *, struct ipc_params *);
|
|
int (*associate)(struct kern_ipc_perm *, int);
|
|
int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *);
|
|
};
|
|
|
|
struct ipc_ids {
|
|
int in_use;
|
|
unsigned short seq;
|
|
struct rw_semaphore rwsem;
|
|
struct idr ipcs_idr;
|
|
int max_idx;
|
|
int last_idx;
|
|
struct rhashtable key_ht;
|
|
};
|
|
|
|
struct ipc_namespace {
|
|
struct ipc_ids ids[3];
|
|
int sem_ctls[4];
|
|
int used_sems;
|
|
unsigned int msg_ctlmax;
|
|
unsigned int msg_ctlmnb;
|
|
unsigned int msg_ctlmni;
|
|
struct percpu_counter percpu_msg_bytes;
|
|
struct percpu_counter percpu_msg_hdrs;
|
|
size_t shm_ctlmax;
|
|
size_t shm_ctlall;
|
|
unsigned long shm_tot;
|
|
int shm_ctlmni;
|
|
int shm_rmid_forced;
|
|
struct notifier_block ipcns_nb;
|
|
struct vfsmount *mq_mnt;
|
|
unsigned int mq_queues_count;
|
|
unsigned int mq_queues_max;
|
|
unsigned int mq_msg_max;
|
|
unsigned int mq_msgsize_max;
|
|
unsigned int mq_msg_default;
|
|
unsigned int mq_msgsize_default;
|
|
struct ctl_table_set mq_set;
|
|
struct ctl_table_header *mq_sysctls;
|
|
struct ctl_table_set ipc_set;
|
|
struct ctl_table_header *ipc_sysctls;
|
|
struct user_namespace *user_ns;
|
|
struct ucounts *ucounts;
|
|
struct llist_node mnt_llist;
|
|
struct ns_common ns;
|
|
};
|
|
|
|
typedef int __kernel_key_t;
|
|
|
|
typedef __kernel_key_t key_t;
|
|
|
|
struct ipc_params {
|
|
key_t key;
|
|
int flg;
|
|
union {
|
|
size_t size;
|
|
int nsems;
|
|
} u;
|
|
};
|
|
|
|
struct kern_ipc_perm {
|
|
spinlock_t lock;
|
|
bool deleted;
|
|
int id;
|
|
key_t key;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
kuid_t cuid;
|
|
kgid_t cgid;
|
|
umode_t mode;
|
|
unsigned long seq;
|
|
void *security;
|
|
struct rhash_head khtnode;
|
|
struct callback_head rcu;
|
|
refcount_t refcount;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct msg_queue {
|
|
struct kern_ipc_perm q_perm;
|
|
time64_t q_stime;
|
|
time64_t q_rtime;
|
|
time64_t q_ctime;
|
|
unsigned long q_cbytes;
|
|
unsigned long q_qnum;
|
|
unsigned long q_qbytes;
|
|
struct pid *q_lspid;
|
|
struct pid *q_lrpid;
|
|
struct list_head q_messages;
|
|
struct list_head q_receivers;
|
|
struct list_head q_senders;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef unsigned int __kernel_uid_t;
|
|
|
|
typedef unsigned int __kernel_gid_t;
|
|
|
|
typedef unsigned int __kernel_mode_t;
|
|
|
|
struct ipc_perm {
|
|
__kernel_key_t key;
|
|
__kernel_uid_t uid;
|
|
__kernel_gid_t gid;
|
|
__kernel_uid_t cuid;
|
|
__kernel_gid_t cgid;
|
|
__kernel_mode_t mode;
|
|
unsigned short seq;
|
|
};
|
|
|
|
struct msg;
|
|
|
|
typedef __kernel_long_t __kernel_old_time_t;
|
|
|
|
typedef int __kernel_ipc_pid_t;
|
|
|
|
struct msqid_ds {
|
|
struct ipc_perm msg_perm;
|
|
struct msg *msg_first;
|
|
struct msg *msg_last;
|
|
__kernel_old_time_t msg_stime;
|
|
__kernel_old_time_t msg_rtime;
|
|
__kernel_old_time_t msg_ctime;
|
|
unsigned long msg_lcbytes;
|
|
unsigned long msg_lqbytes;
|
|
unsigned short msg_cbytes;
|
|
unsigned short msg_qnum;
|
|
unsigned short msg_qbytes;
|
|
__kernel_ipc_pid_t msg_lspid;
|
|
__kernel_ipc_pid_t msg_lrpid;
|
|
};
|
|
|
|
struct msg_msg;
|
|
|
|
struct msg_receiver {
|
|
struct list_head r_list;
|
|
struct task_struct *r_tsk;
|
|
int r_mode;
|
|
long r_msgtype;
|
|
long r_maxsize;
|
|
struct msg_msg *r_msg;
|
|
};
|
|
|
|
struct msg_msgseg;
|
|
|
|
struct msg_msg {
|
|
struct list_head m_list;
|
|
long m_type;
|
|
size_t m_ts;
|
|
struct msg_msgseg *next;
|
|
void *security;
|
|
};
|
|
|
|
struct msg_sender {
|
|
struct list_head list;
|
|
struct task_struct *tsk;
|
|
size_t msgsz;
|
|
};
|
|
|
|
struct msgbuf {
|
|
__kernel_long_t mtype;
|
|
char mtext[1];
|
|
};
|
|
|
|
typedef s32 compat_ssize_t;
|
|
|
|
struct ipc64_perm {
|
|
__kernel_key_t key;
|
|
__kernel_uid32_t uid;
|
|
__kernel_gid32_t gid;
|
|
__kernel_uid32_t cuid;
|
|
__kernel_gid32_t cgid;
|
|
__kernel_mode_t mode;
|
|
unsigned char __pad1[0];
|
|
unsigned short seq;
|
|
unsigned short __pad2;
|
|
__kernel_ulong_t __unused1;
|
|
__kernel_ulong_t __unused2;
|
|
};
|
|
|
|
struct msqid64_ds {
|
|
struct ipc64_perm msg_perm;
|
|
long msg_stime;
|
|
long msg_rtime;
|
|
long msg_ctime;
|
|
unsigned long msg_cbytes;
|
|
unsigned long msg_qnum;
|
|
unsigned long msg_qbytes;
|
|
__kernel_pid_t msg_lspid;
|
|
__kernel_pid_t msg_lrpid;
|
|
unsigned long __unused4;
|
|
unsigned long __unused5;
|
|
};
|
|
|
|
struct msginfo {
|
|
int msgpool;
|
|
int msgmap;
|
|
int msgmax;
|
|
int msgmnb;
|
|
int msgmni;
|
|
int msgssz;
|
|
int msgtql;
|
|
unsigned short msgseg;
|
|
};
|
|
|
|
typedef s32 compat_key_t;
|
|
|
|
typedef u32 __compat_uid32_t;
|
|
|
|
typedef u32 __compat_gid32_t;
|
|
|
|
typedef u16 compat_mode_t;
|
|
|
|
typedef u16 compat_ushort_t;
|
|
|
|
struct compat_ipc64_perm {
|
|
compat_key_t key;
|
|
__compat_uid32_t uid;
|
|
__compat_gid32_t gid;
|
|
__compat_uid32_t cuid;
|
|
__compat_gid32_t cgid;
|
|
compat_mode_t mode;
|
|
unsigned char __pad1[2];
|
|
compat_ushort_t seq;
|
|
compat_ushort_t __pad2;
|
|
compat_ulong_t unused1;
|
|
compat_ulong_t unused2;
|
|
};
|
|
|
|
typedef s32 compat_pid_t;
|
|
|
|
struct compat_msqid64_ds {
|
|
struct compat_ipc64_perm msg_perm;
|
|
compat_ulong_t msg_stime;
|
|
compat_ulong_t msg_stime_high;
|
|
compat_ulong_t msg_rtime;
|
|
compat_ulong_t msg_rtime_high;
|
|
compat_ulong_t msg_ctime;
|
|
compat_ulong_t msg_ctime_high;
|
|
compat_ulong_t msg_cbytes;
|
|
compat_ulong_t msg_qnum;
|
|
compat_ulong_t msg_qbytes;
|
|
compat_pid_t msg_lspid;
|
|
compat_pid_t msg_lrpid;
|
|
compat_ulong_t __unused4;
|
|
compat_ulong_t __unused5;
|
|
};
|
|
|
|
typedef u16 __compat_uid_t;
|
|
|
|
typedef u16 __compat_gid_t;
|
|
|
|
struct compat_ipc_perm {
|
|
key_t key;
|
|
__compat_uid_t uid;
|
|
__compat_gid_t gid;
|
|
__compat_uid_t cuid;
|
|
__compat_gid_t cgid;
|
|
compat_mode_t mode;
|
|
unsigned short seq;
|
|
};
|
|
|
|
typedef u16 compat_ipc_pid_t;
|
|
|
|
struct compat_msqid_ds {
|
|
struct compat_ipc_perm msg_perm;
|
|
compat_uptr_t msg_first;
|
|
compat_uptr_t msg_last;
|
|
old_time32_t msg_stime;
|
|
old_time32_t msg_rtime;
|
|
old_time32_t msg_ctime;
|
|
compat_ulong_t msg_lcbytes;
|
|
compat_ulong_t msg_lqbytes;
|
|
unsigned short msg_cbytes;
|
|
unsigned short msg_qnum;
|
|
unsigned short msg_qbytes;
|
|
compat_ipc_pid_t msg_lspid;
|
|
compat_ipc_pid_t msg_lrpid;
|
|
};
|
|
|
|
struct wake_q_head {
|
|
struct wake_q_node *first;
|
|
struct wake_q_node **lastp;
|
|
};
|
|
|
|
struct compat_msgbuf {
|
|
compat_long_t mtype;
|
|
char mtext[1];
|
|
};
|
|
|
|
struct hashtab_key_params {
|
|
u32 (*hash)(const void *);
|
|
int (*cmp)(const void *, const void *);
|
|
};
|
|
|
|
struct policydb_compat_info {
|
|
int version;
|
|
int sym_num;
|
|
int ocon_num;
|
|
};
|
|
|
|
struct cond_expr_node;
|
|
|
|
struct cond_expr {
|
|
struct cond_expr_node *nodes;
|
|
u32 len;
|
|
};
|
|
|
|
struct cond_av_list {
|
|
struct avtab_node **nodes;
|
|
u32 len;
|
|
};
|
|
|
|
struct cond_node {
|
|
int cur_state;
|
|
struct cond_expr expr;
|
|
struct cond_av_list true_list;
|
|
struct cond_av_list false_list;
|
|
};
|
|
|
|
struct cond_expr_node {
|
|
u32 expr_type;
|
|
u32 bool;
|
|
};
|
|
|
|
struct filename_trans_key {
|
|
u32 ttype;
|
|
u16 tclass;
|
|
const char *name;
|
|
};
|
|
|
|
struct range_trans {
|
|
u32 source_type;
|
|
u32 target_type;
|
|
u32 target_class;
|
|
};
|
|
|
|
struct role_trans_key {
|
|
u32 role;
|
|
u32 type;
|
|
u32 tclass;
|
|
};
|
|
|
|
struct policy_file {
|
|
char *data;
|
|
size_t len;
|
|
};
|
|
|
|
struct filename_trans_datum {
|
|
struct ebitmap stypes;
|
|
u32 otype;
|
|
struct filename_trans_datum *next;
|
|
};
|
|
|
|
struct level_datum {
|
|
struct mls_level *level;
|
|
unsigned char isalias;
|
|
};
|
|
|
|
struct role_trans_datum {
|
|
u32 new_role;
|
|
};
|
|
|
|
struct perm_datum {
|
|
u32 value;
|
|
};
|
|
|
|
struct policy_data {
|
|
struct policydb *p;
|
|
void *fp;
|
|
};
|
|
|
|
struct cat_datum {
|
|
u32 value;
|
|
unsigned char isalias;
|
|
};
|
|
|
|
struct sha256_state {
|
|
u32 state[8];
|
|
u64 count;
|
|
u8 buf[64];
|
|
};
|
|
|
|
enum OID {
|
|
OID_id_dsa_with_sha1 = 0,
|
|
OID_id_dsa = 1,
|
|
OID_id_ecPublicKey = 2,
|
|
OID_id_prime192v1 = 3,
|
|
OID_id_prime256v1 = 4,
|
|
OID_id_ecdsa_with_sha1 = 5,
|
|
OID_id_ecdsa_with_sha224 = 6,
|
|
OID_id_ecdsa_with_sha256 = 7,
|
|
OID_id_ecdsa_with_sha384 = 8,
|
|
OID_id_ecdsa_with_sha512 = 9,
|
|
OID_rsaEncryption = 10,
|
|
OID_md2WithRSAEncryption = 11,
|
|
OID_md3WithRSAEncryption = 12,
|
|
OID_md4WithRSAEncryption = 13,
|
|
OID_sha1WithRSAEncryption = 14,
|
|
OID_sha256WithRSAEncryption = 15,
|
|
OID_sha384WithRSAEncryption = 16,
|
|
OID_sha512WithRSAEncryption = 17,
|
|
OID_sha224WithRSAEncryption = 18,
|
|
OID_data = 19,
|
|
OID_signed_data = 20,
|
|
OID_email_address = 21,
|
|
OID_contentType = 22,
|
|
OID_messageDigest = 23,
|
|
OID_signingTime = 24,
|
|
OID_smimeCapabilites = 25,
|
|
OID_smimeAuthenticatedAttrs = 26,
|
|
OID_md2 = 27,
|
|
OID_md4 = 28,
|
|
OID_md5 = 29,
|
|
OID_mskrb5 = 30,
|
|
OID_krb5 = 31,
|
|
OID_krb5u2u = 32,
|
|
OID_msIndirectData = 33,
|
|
OID_msStatementType = 34,
|
|
OID_msSpOpusInfo = 35,
|
|
OID_msPeImageDataObjId = 36,
|
|
OID_msIndividualSPKeyPurpose = 37,
|
|
OID_msOutlookExpress = 38,
|
|
OID_ntlmssp = 39,
|
|
OID_spnego = 40,
|
|
OID_IAKerb = 41,
|
|
OID_PKU2U = 42,
|
|
OID_Scram = 43,
|
|
OID_certAuthInfoAccess = 44,
|
|
OID_sha1 = 45,
|
|
OID_id_ansip384r1 = 46,
|
|
OID_sha256 = 47,
|
|
OID_sha384 = 48,
|
|
OID_sha512 = 49,
|
|
OID_sha224 = 50,
|
|
OID_commonName = 51,
|
|
OID_surname = 52,
|
|
OID_countryName = 53,
|
|
OID_locality = 54,
|
|
OID_stateOrProvinceName = 55,
|
|
OID_organizationName = 56,
|
|
OID_organizationUnitName = 57,
|
|
OID_title = 58,
|
|
OID_description = 59,
|
|
OID_name = 60,
|
|
OID_givenName = 61,
|
|
OID_initials = 62,
|
|
OID_generationalQualifier = 63,
|
|
OID_subjectKeyIdentifier = 64,
|
|
OID_keyUsage = 65,
|
|
OID_subjectAltName = 66,
|
|
OID_issuerAltName = 67,
|
|
OID_basicConstraints = 68,
|
|
OID_crlDistributionPoints = 69,
|
|
OID_certPolicies = 70,
|
|
OID_authorityKeyIdentifier = 71,
|
|
OID_extKeyUsage = 72,
|
|
OID_NetlogonMechanism = 73,
|
|
OID_appleLocalKdcSupported = 74,
|
|
OID_gostCPSignA = 75,
|
|
OID_gostCPSignB = 76,
|
|
OID_gostCPSignC = 77,
|
|
OID_gost2012PKey256 = 78,
|
|
OID_gost2012PKey512 = 79,
|
|
OID_gost2012Digest256 = 80,
|
|
OID_gost2012Digest512 = 81,
|
|
OID_gost2012Signature256 = 82,
|
|
OID_gost2012Signature512 = 83,
|
|
OID_gostTC26Sign256A = 84,
|
|
OID_gostTC26Sign256B = 85,
|
|
OID_gostTC26Sign256C = 86,
|
|
OID_gostTC26Sign256D = 87,
|
|
OID_gostTC26Sign512A = 88,
|
|
OID_gostTC26Sign512B = 89,
|
|
OID_gostTC26Sign512C = 90,
|
|
OID_sm2 = 91,
|
|
OID_sm3 = 92,
|
|
OID_SM2_with_SM3 = 93,
|
|
OID_sm3WithRSAEncryption = 94,
|
|
OID_TPMLoadableKey = 95,
|
|
OID_TPMImportableKey = 96,
|
|
OID_TPMSealedData = 97,
|
|
OID__NR = 98,
|
|
};
|
|
|
|
enum hash_algo {
|
|
HASH_ALGO_MD4 = 0,
|
|
HASH_ALGO_MD5 = 1,
|
|
HASH_ALGO_SHA1 = 2,
|
|
HASH_ALGO_RIPE_MD_160 = 3,
|
|
HASH_ALGO_SHA256 = 4,
|
|
HASH_ALGO_SHA384 = 5,
|
|
HASH_ALGO_SHA512 = 6,
|
|
HASH_ALGO_SHA224 = 7,
|
|
HASH_ALGO_RIPE_MD_128 = 8,
|
|
HASH_ALGO_RIPE_MD_256 = 9,
|
|
HASH_ALGO_RIPE_MD_320 = 10,
|
|
HASH_ALGO_WP_256 = 11,
|
|
HASH_ALGO_WP_384 = 12,
|
|
HASH_ALGO_WP_512 = 13,
|
|
HASH_ALGO_TGR_128 = 14,
|
|
HASH_ALGO_TGR_160 = 15,
|
|
HASH_ALGO_TGR_192 = 16,
|
|
HASH_ALGO_SM3_256 = 17,
|
|
HASH_ALGO_STREEBOG_256 = 18,
|
|
HASH_ALGO_STREEBOG_512 = 19,
|
|
HASH_ALGO__LAST = 20,
|
|
};
|
|
|
|
enum key_being_used_for {
|
|
VERIFYING_MODULE_SIGNATURE = 0,
|
|
VERIFYING_FIRMWARE_SIGNATURE = 1,
|
|
VERIFYING_KEXEC_PE_SIGNATURE = 2,
|
|
VERIFYING_KEY_SIGNATURE = 3,
|
|
VERIFYING_KEY_SELF_SIGNATURE = 4,
|
|
VERIFYING_UNSPECIFIED_SIGNATURE = 5,
|
|
NR__KEY_BEING_USED_FOR = 6,
|
|
};
|
|
|
|
enum asn1_tag {
|
|
ASN1_EOC = 0,
|
|
ASN1_BOOL = 1,
|
|
ASN1_INT = 2,
|
|
ASN1_BTS = 3,
|
|
ASN1_OTS = 4,
|
|
ASN1_NULL = 5,
|
|
ASN1_OID = 6,
|
|
ASN1_ODE = 7,
|
|
ASN1_EXT = 8,
|
|
ASN1_REAL = 9,
|
|
ASN1_ENUM = 10,
|
|
ASN1_EPDV = 11,
|
|
ASN1_UTF8STR = 12,
|
|
ASN1_RELOID = 13,
|
|
ASN1_SEQ = 16,
|
|
ASN1_SET = 17,
|
|
ASN1_NUMSTR = 18,
|
|
ASN1_PRNSTR = 19,
|
|
ASN1_TEXSTR = 20,
|
|
ASN1_VIDSTR = 21,
|
|
ASN1_IA5STR = 22,
|
|
ASN1_UNITIM = 23,
|
|
ASN1_GENTIM = 24,
|
|
ASN1_GRASTR = 25,
|
|
ASN1_VISSTR = 26,
|
|
ASN1_GENSTR = 27,
|
|
ASN1_UNISTR = 28,
|
|
ASN1_CHRSTR = 29,
|
|
ASN1_BMPSTR = 30,
|
|
ASN1_LONG_TAG = 31,
|
|
};
|
|
|
|
struct x509_certificate;
|
|
|
|
struct pkcs7_signed_info;
|
|
|
|
struct pkcs7_message {
|
|
struct x509_certificate *certs;
|
|
struct x509_certificate *crl;
|
|
struct pkcs7_signed_info *signed_infos;
|
|
u8 version;
|
|
bool have_authattrs;
|
|
enum OID data_type;
|
|
size_t data_len;
|
|
size_t data_hdrlen;
|
|
const void *data;
|
|
};
|
|
|
|
struct public_key;
|
|
|
|
struct public_key_signature;
|
|
|
|
struct asymmetric_key_id;
|
|
|
|
struct x509_certificate {
|
|
struct x509_certificate *next;
|
|
struct x509_certificate *signer;
|
|
struct public_key *pub;
|
|
struct public_key_signature *sig;
|
|
char *issuer;
|
|
char *subject;
|
|
struct asymmetric_key_id *id;
|
|
struct asymmetric_key_id *skid;
|
|
time64_t valid_from;
|
|
time64_t valid_to;
|
|
const void *tbs;
|
|
unsigned int tbs_size;
|
|
unsigned int raw_sig_size;
|
|
const void *raw_sig;
|
|
const void *raw_serial;
|
|
unsigned int raw_serial_size;
|
|
unsigned int raw_issuer_size;
|
|
const void *raw_issuer;
|
|
const void *raw_subject;
|
|
unsigned int raw_subject_size;
|
|
unsigned int raw_skid_size;
|
|
const void *raw_skid;
|
|
unsigned int index;
|
|
bool seen;
|
|
bool verified;
|
|
bool self_signed;
|
|
bool unsupported_sig;
|
|
bool blacklisted;
|
|
};
|
|
|
|
struct public_key {
|
|
void *key;
|
|
u32 keylen;
|
|
enum OID algo;
|
|
void *params;
|
|
u32 paramlen;
|
|
bool key_is_private;
|
|
const char *id_type;
|
|
const char *pkey_algo;
|
|
};
|
|
|
|
struct public_key_signature {
|
|
struct asymmetric_key_id *auth_ids[3];
|
|
u8 *s;
|
|
u8 *digest;
|
|
u32 s_size;
|
|
u32 digest_size;
|
|
const char *pkey_algo;
|
|
const char *hash_algo;
|
|
const char *encoding;
|
|
const void *data;
|
|
unsigned int data_size;
|
|
};
|
|
|
|
struct asymmetric_key_id {
|
|
unsigned short len;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct pkcs7_signed_info {
|
|
struct pkcs7_signed_info *next;
|
|
struct x509_certificate *signer;
|
|
unsigned int index;
|
|
bool unsupported_crypto;
|
|
bool blacklisted;
|
|
const void *msgdigest;
|
|
unsigned int msgdigest_len;
|
|
unsigned int authattrs_len;
|
|
const void *authattrs;
|
|
unsigned long aa_set;
|
|
time64_t signing_time;
|
|
struct public_key_signature *sig;
|
|
};
|
|
|
|
enum blkg_iostat_type {
|
|
BLKG_IOSTAT_READ = 0,
|
|
BLKG_IOSTAT_WRITE = 1,
|
|
BLKG_IOSTAT_DISCARD = 2,
|
|
BLKG_IOSTAT_NR = 3,
|
|
};
|
|
|
|
enum stat_group {
|
|
STAT_READ = 0,
|
|
STAT_WRITE = 1,
|
|
STAT_DISCARD = 2,
|
|
STAT_FLUSH = 3,
|
|
NR_STAT_GROUPS = 4,
|
|
};
|
|
|
|
enum cgroup_subsys_id {
|
|
cpu_cgrp_id = 0,
|
|
cpuacct_cgrp_id = 1,
|
|
io_cgrp_id = 2,
|
|
devices_cgrp_id = 3,
|
|
freezer_cgrp_id = 4,
|
|
net_cls_cgrp_id = 5,
|
|
perf_event_cgrp_id = 6,
|
|
net_prio_cgrp_id = 7,
|
|
hugetlb_cgrp_id = 8,
|
|
pids_cgrp_id = 9,
|
|
rdma_cgrp_id = 10,
|
|
misc_cgrp_id = 11,
|
|
debug_cgrp_id = 12,
|
|
CGROUP_SUBSYS_COUNT = 13,
|
|
};
|
|
|
|
struct klist_iter {
|
|
struct klist *i_klist;
|
|
struct klist_node *i_cur;
|
|
};
|
|
|
|
struct class_dev_iter {
|
|
struct klist_iter ki;
|
|
const struct device_type *type;
|
|
};
|
|
|
|
enum string_size_units {
|
|
STRING_UNITS_10 = 0,
|
|
STRING_UNITS_2 = 1,
|
|
};
|
|
|
|
struct strarray {
|
|
char **array;
|
|
size_t n;
|
|
};
|
|
|
|
enum {
|
|
pci_channel_io_normal = 1,
|
|
pci_channel_io_frozen = 2,
|
|
pci_channel_io_perm_failure = 3,
|
|
};
|
|
|
|
struct apd_private_data;
|
|
|
|
struct apd_device_desc {
|
|
unsigned int fixed_clk_rate;
|
|
struct property_entry *properties;
|
|
int (*setup)(struct apd_private_data *);
|
|
};
|
|
|
|
struct apd_private_data {
|
|
struct clk *clk;
|
|
struct acpi_device *adev;
|
|
const struct apd_device_desc *dev_desc;
|
|
};
|
|
|
|
struct override_status_id {
|
|
struct acpi_device_id hid[2];
|
|
struct x86_cpu_id cpu_ids[2];
|
|
struct dmi_system_id dmi_ids[2];
|
|
const char *uid;
|
|
const char *path;
|
|
unsigned long long status;
|
|
};
|
|
|
|
struct acpi_pci_id {
|
|
u16 segment;
|
|
u16 bus;
|
|
u16 device;
|
|
u16 function;
|
|
};
|
|
|
|
struct acpi_data_table_space_context {
|
|
void *pointer;
|
|
};
|
|
|
|
struct acpi_mem_mapping;
|
|
|
|
struct acpi_mem_space_context {
|
|
u32 length;
|
|
acpi_physical_address address;
|
|
struct acpi_mem_mapping *cur_mm;
|
|
struct acpi_mem_mapping *first_mm;
|
|
};
|
|
|
|
struct acpi_mem_mapping {
|
|
acpi_physical_address physical_address;
|
|
u8 *logical_address;
|
|
acpi_size length;
|
|
struct acpi_mem_mapping *next_mm;
|
|
};
|
|
|
|
enum acpi_video_level_idx {
|
|
ACPI_VIDEO_AC_LEVEL = 0,
|
|
ACPI_VIDEO_BATTERY_LEVEL = 1,
|
|
ACPI_VIDEO_FIRST_LEVEL = 2,
|
|
};
|
|
|
|
enum acpi_backlight_type {
|
|
acpi_backlight_undef = -1,
|
|
acpi_backlight_none = 0,
|
|
acpi_backlight_video = 1,
|
|
acpi_backlight_vendor = 2,
|
|
acpi_backlight_native = 3,
|
|
acpi_backlight_nvidia_wmi_ec = 4,
|
|
acpi_backlight_apple_gmux = 5,
|
|
};
|
|
|
|
struct acpi_video_bus_cap {
|
|
u8 _DOS: 1;
|
|
u8 _DOD: 1;
|
|
u8 _ROM: 1;
|
|
u8 _GPD: 1;
|
|
u8 _SPD: 1;
|
|
u8 _VPO: 1;
|
|
u8 reserved: 2;
|
|
};
|
|
|
|
struct acpi_video_bus_flags {
|
|
u8 multihead: 1;
|
|
u8 rom: 1;
|
|
u8 post: 1;
|
|
u8 reserved: 5;
|
|
};
|
|
|
|
struct acpi_video_enumerated_device;
|
|
|
|
struct acpi_video_bus {
|
|
struct acpi_device *device;
|
|
bool backlight_registered;
|
|
u8 dos_setting;
|
|
struct acpi_video_enumerated_device *attached_array;
|
|
u8 attached_count;
|
|
u8 child_count;
|
|
struct acpi_video_bus_cap cap;
|
|
struct acpi_video_bus_flags flags;
|
|
struct list_head video_device_list;
|
|
struct mutex device_list_lock;
|
|
struct list_head entry;
|
|
struct input_dev *input;
|
|
char phys[32];
|
|
struct notifier_block pm_nb;
|
|
};
|
|
|
|
struct acpi_video_device_attrib {
|
|
u32 display_index: 4;
|
|
u32 display_port_attachment: 4;
|
|
u32 display_type: 4;
|
|
u32 vendor_specific: 4;
|
|
u32 bios_can_detect: 1;
|
|
u32 depend_on_vga: 1;
|
|
u32 pipe_id: 3;
|
|
u32 reserved: 10;
|
|
u32 device_id_scheme: 1;
|
|
};
|
|
|
|
struct acpi_video_device;
|
|
|
|
struct acpi_video_enumerated_device {
|
|
union {
|
|
u32 int_val;
|
|
struct acpi_video_device_attrib attrib;
|
|
} value;
|
|
struct acpi_video_device *bind_info;
|
|
};
|
|
|
|
struct acpi_video_device_flags {
|
|
u8 crt: 1;
|
|
u8 lcd: 1;
|
|
u8 tvout: 1;
|
|
u8 dvi: 1;
|
|
u8 bios: 1;
|
|
u8 unknown: 1;
|
|
u8 notify: 1;
|
|
u8 reserved: 1;
|
|
};
|
|
|
|
struct acpi_video_device_cap {
|
|
u8 _ADR: 1;
|
|
u8 _BCL: 1;
|
|
u8 _BCM: 1;
|
|
u8 _BQC: 1;
|
|
u8 _BCQ: 1;
|
|
u8 _DDC: 1;
|
|
};
|
|
|
|
struct acpi_video_device_brightness;
|
|
|
|
struct acpi_video_device {
|
|
unsigned long device_id;
|
|
struct acpi_video_device_flags flags;
|
|
struct acpi_video_device_cap cap;
|
|
struct list_head entry;
|
|
struct delayed_work switch_brightness_work;
|
|
int switch_brightness_event;
|
|
struct acpi_video_bus *video;
|
|
struct acpi_device *dev;
|
|
struct acpi_video_device_brightness *brightness;
|
|
struct backlight_device *backlight;
|
|
struct thermal_cooling_device *cooling_dev;
|
|
};
|
|
|
|
struct acpi_video_brightness_flags {
|
|
u8 _BCL_no_ac_battery_levels: 1;
|
|
u8 _BCL_reversed: 1;
|
|
u8 _BQC_use_index: 1;
|
|
};
|
|
|
|
struct acpi_video_device_brightness {
|
|
int curr;
|
|
int count;
|
|
int *levels;
|
|
struct acpi_video_brightness_flags flags;
|
|
};
|
|
|
|
struct vcs_poll_data {
|
|
struct notifier_block notifier;
|
|
unsigned int cons_num;
|
|
int event;
|
|
wait_queue_head_t waitq;
|
|
struct fasync_struct *fasync;
|
|
};
|
|
|
|
struct vt_notifier_param {
|
|
struct vc_data *vc;
|
|
unsigned int c;
|
|
};
|
|
|
|
enum tcpa_event_types {
|
|
PREBOOT = 0,
|
|
POST_CODE = 1,
|
|
UNUSED = 2,
|
|
NO_ACTION = 3,
|
|
SEPARATOR = 4,
|
|
ACTION = 5,
|
|
EVENT_TAG = 6,
|
|
SCRTM_CONTENTS = 7,
|
|
SCRTM_VERSION = 8,
|
|
CPU_MICROCODE = 9,
|
|
PLATFORM_CONFIG_FLAGS = 10,
|
|
TABLE_OF_DEVICES = 11,
|
|
COMPACT_HASH = 12,
|
|
IPL = 13,
|
|
IPL_PARTITION_DATA = 14,
|
|
NONHOST_CODE = 15,
|
|
NONHOST_CONFIG = 16,
|
|
NONHOST_INFO = 17,
|
|
};
|
|
|
|
enum tcpa_pc_event_ids {
|
|
SMBIOS = 1,
|
|
BIS_CERT = 2,
|
|
POST_BIOS_ROM = 3,
|
|
ESCD = 4,
|
|
CMOS = 5,
|
|
NVRAM = 6,
|
|
OPTION_ROM_EXEC = 7,
|
|
OPTION_ROM_CONFIG = 8,
|
|
OPTION_ROM_MICROCODE = 10,
|
|
S_CRTM_VERSION = 11,
|
|
S_CRTM_CONTENTS = 12,
|
|
POST_CONTENTS = 13,
|
|
HOST_TABLE_OF_DEVICES = 14,
|
|
};
|
|
|
|
struct tcpa_pc_event {
|
|
u32 event_id;
|
|
u32 event_size;
|
|
u8 event_data[0];
|
|
};
|
|
|
|
struct tcpa_event {
|
|
u32 pcr_index;
|
|
u32 event_type;
|
|
u8 pcr_value[20];
|
|
u32 event_size;
|
|
u8 event_data[0];
|
|
};
|
|
|
|
struct drm_conn_prop_enum_list {
|
|
int type;
|
|
const char *name;
|
|
struct ida ida;
|
|
};
|
|
|
|
struct drm_mode_modeinfo {
|
|
__u32 clock;
|
|
__u16 hdisplay;
|
|
__u16 hsync_start;
|
|
__u16 hsync_end;
|
|
__u16 htotal;
|
|
__u16 hskew;
|
|
__u16 vdisplay;
|
|
__u16 vsync_start;
|
|
__u16 vsync_end;
|
|
__u16 vtotal;
|
|
__u16 vscan;
|
|
__u32 vrefresh;
|
|
__u32 flags;
|
|
__u32 type;
|
|
char name[32];
|
|
};
|
|
|
|
struct drm_mode_obj_set_property {
|
|
__u64 value;
|
|
__u32 prop_id;
|
|
__u32 obj_id;
|
|
__u32 obj_type;
|
|
};
|
|
|
|
struct drm_mode_connector_set_property {
|
|
__u64 value;
|
|
__u32 prop_id;
|
|
__u32 connector_id;
|
|
};
|
|
|
|
struct drm_mode_get_connector {
|
|
__u64 encoders_ptr;
|
|
__u64 modes_ptr;
|
|
__u64 props_ptr;
|
|
__u64 prop_values_ptr;
|
|
__u32 count_modes;
|
|
__u32 count_props;
|
|
__u32 count_encoders;
|
|
__u32 encoder_id;
|
|
__u32 connector_id;
|
|
__u32 connector_type;
|
|
__u32 connector_type_id;
|
|
__u32 connection;
|
|
__u32 mm_width;
|
|
__u32 mm_height;
|
|
__u32 subpixel;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct reg_whitelist {
|
|
i915_reg_t offset_ldw;
|
|
i915_reg_t offset_udw;
|
|
u8 min_graphics_ver;
|
|
u8 max_graphics_ver;
|
|
u8 size;
|
|
};
|
|
|
|
struct drm_i915_reg_read {
|
|
__u64 offset;
|
|
__u64 val;
|
|
};
|
|
|
|
struct ia_constants {
|
|
unsigned int min_gpu_freq;
|
|
unsigned int max_gpu_freq;
|
|
unsigned int min_ring_freq;
|
|
unsigned int max_ia_freq;
|
|
};
|
|
|
|
struct i915_user_extension {
|
|
__u64 next_extension;
|
|
__u32 name;
|
|
__u32 flags;
|
|
__u32 rsvd[4];
|
|
};
|
|
|
|
typedef int (*i915_user_extension_fn)(struct i915_user_extension __attribute__((btf_type_tag("user"))) *, void *);
|
|
|
|
struct drm_i915_gem_mmap {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
__u64 offset;
|
|
__u64 size;
|
|
__u64 addr_ptr;
|
|
__u64 flags;
|
|
};
|
|
|
|
struct drm_i915_gem_mmap_offset {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
__u64 offset;
|
|
__u64 flags;
|
|
__u64 extensions;
|
|
};
|
|
|
|
enum intel_guc_action {
|
|
INTEL_GUC_ACTION_DEFAULT = 0,
|
|
INTEL_GUC_ACTION_REQUEST_PREEMPTION = 2,
|
|
INTEL_GUC_ACTION_REQUEST_ENGINE_RESET = 3,
|
|
INTEL_GUC_ACTION_ALLOCATE_DOORBELL = 16,
|
|
INTEL_GUC_ACTION_DEALLOCATE_DOORBELL = 32,
|
|
INTEL_GUC_ACTION_LOG_BUFFER_FILE_FLUSH_COMPLETE = 48,
|
|
INTEL_GUC_ACTION_UK_LOG_ENABLE_LOGGING = 64,
|
|
INTEL_GUC_ACTION_FORCE_LOG_BUFFER_FLUSH = 770,
|
|
INTEL_GUC_ACTION_ENTER_S_STATE = 1281,
|
|
INTEL_GUC_ACTION_EXIT_S_STATE = 1282,
|
|
INTEL_GUC_ACTION_GLOBAL_SCHED_POLICY_CHANGE = 1286,
|
|
INTEL_GUC_ACTION_UPDATE_SCHEDULING_POLICIES_KLV = 1289,
|
|
INTEL_GUC_ACTION_SCHED_CONTEXT = 4096,
|
|
INTEL_GUC_ACTION_SCHED_CONTEXT_MODE_SET = 4097,
|
|
INTEL_GUC_ACTION_SCHED_CONTEXT_MODE_DONE = 4098,
|
|
INTEL_GUC_ACTION_SCHED_ENGINE_MODE_SET = 4099,
|
|
INTEL_GUC_ACTION_SCHED_ENGINE_MODE_DONE = 4100,
|
|
INTEL_GUC_ACTION_V69_SET_CONTEXT_PRIORITY = 4101,
|
|
INTEL_GUC_ACTION_V69_SET_CONTEXT_EXECUTION_QUANTUM = 4102,
|
|
INTEL_GUC_ACTION_V69_SET_CONTEXT_PREEMPTION_TIMEOUT = 4103,
|
|
INTEL_GUC_ACTION_CONTEXT_RESET_NOTIFICATION = 4104,
|
|
INTEL_GUC_ACTION_ENGINE_FAILURE_NOTIFICATION = 4105,
|
|
INTEL_GUC_ACTION_HOST2GUC_UPDATE_CONTEXT_POLICIES = 4107,
|
|
INTEL_GUC_ACTION_SETUP_PC_GUCRC = 12292,
|
|
INTEL_GUC_ACTION_AUTHENTICATE_HUC = 16384,
|
|
INTEL_GUC_ACTION_GET_HWCONFIG = 16640,
|
|
INTEL_GUC_ACTION_REGISTER_CONTEXT = 17666,
|
|
INTEL_GUC_ACTION_DEREGISTER_CONTEXT = 17667,
|
|
INTEL_GUC_ACTION_DEREGISTER_CONTEXT_DONE = 17920,
|
|
INTEL_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC = 17921,
|
|
INTEL_GUC_ACTION_CLIENT_SOFT_RESET = 21767,
|
|
INTEL_GUC_ACTION_SET_ENG_UTIL_BUFF = 21770,
|
|
INTEL_GUC_ACTION_STATE_CAPTURE_NOTIFICATION = 32770,
|
|
INTEL_GUC_ACTION_NOTIFY_FLUSH_LOG_BUFFER_TO_FILE = 32771,
|
|
INTEL_GUC_ACTION_NOTIFY_CRASH_DUMP_POSTED = 32772,
|
|
INTEL_GUC_ACTION_NOTIFY_EXCEPTION = 32773,
|
|
INTEL_GUC_ACTION_LIMIT = 32774,
|
|
};
|
|
|
|
struct ct_incoming_msg {
|
|
struct list_head link;
|
|
u32 size;
|
|
u32 msg[0];
|
|
};
|
|
|
|
struct ct_request {
|
|
struct list_head link;
|
|
u32 fence;
|
|
u32 status;
|
|
u32 response_len;
|
|
u32 *response_buf;
|
|
};
|
|
|
|
typedef __kernel_long_t __kernel_ptrdiff_t;
|
|
|
|
typedef __kernel_ptrdiff_t ptrdiff_t;
|
|
|
|
enum {
|
|
DMC_FW_MAIN = 0,
|
|
DMC_FW_PIPEA = 1,
|
|
DMC_FW_PIPEB = 2,
|
|
DMC_FW_PIPEC = 3,
|
|
DMC_FW_PIPED = 4,
|
|
DMC_FW_MAX = 5,
|
|
};
|
|
|
|
struct intel_css_header {
|
|
u32 module_type;
|
|
u32 header_len;
|
|
u32 header_ver;
|
|
u32 module_id;
|
|
u32 module_vendor;
|
|
u32 date;
|
|
u32 size;
|
|
u32 key_size;
|
|
u32 modulus_size;
|
|
u32 exponent_size;
|
|
u32 reserved1[12];
|
|
u32 version;
|
|
u32 reserved2[8];
|
|
u32 kernel_header_info;
|
|
};
|
|
|
|
struct intel_package_header {
|
|
u8 header_len;
|
|
u8 header_ver;
|
|
u8 reserved[10];
|
|
u32 num_entries;
|
|
};
|
|
|
|
struct intel_dmc_header_base {
|
|
u32 signature;
|
|
u8 header_len;
|
|
u8 header_ver;
|
|
u16 dmcc_ver;
|
|
u32 project;
|
|
u32 fw_size;
|
|
u32 fw_version;
|
|
};
|
|
|
|
struct intel_fw_info {
|
|
u8 reserved1;
|
|
u8 dmc_id;
|
|
char stepping;
|
|
char substepping;
|
|
u32 offset;
|
|
u32 reserved2;
|
|
};
|
|
|
|
struct intel_dmc_header_v3 {
|
|
struct intel_dmc_header_base base;
|
|
u32 start_mmioaddr;
|
|
u32 reserved[9];
|
|
char dfile[32];
|
|
u32 mmio_count;
|
|
u32 mmioaddr[20];
|
|
u32 mmiodata[20];
|
|
};
|
|
|
|
struct intel_dmc_header_v1 {
|
|
struct intel_dmc_header_base base;
|
|
u32 mmio_count;
|
|
u32 mmioaddr[8];
|
|
u32 mmiodata[8];
|
|
char dfile[32];
|
|
u32 reserved1[2];
|
|
};
|
|
|
|
struct stepping_info {
|
|
char stepping;
|
|
char substepping;
|
|
};
|
|
|
|
struct drm_i915_error_state_buf {
|
|
struct drm_i915_private___3 *i915;
|
|
struct scatterlist *sgl;
|
|
struct scatterlist *cur;
|
|
struct scatterlist *end;
|
|
char *buf;
|
|
size_t bytes;
|
|
size_t size;
|
|
loff_t iter;
|
|
int err;
|
|
};
|
|
|
|
typedef u64 gen8_pte_t;
|
|
|
|
struct devres_node {
|
|
struct list_head entry;
|
|
dr_release_t release;
|
|
const char *name;
|
|
size_t size;
|
|
};
|
|
|
|
struct devres {
|
|
struct devres_node node;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct devres_group {
|
|
struct devres_node node[2];
|
|
void *id;
|
|
int color;
|
|
};
|
|
|
|
struct action_devres {
|
|
void *data;
|
|
void (*action)(void *);
|
|
};
|
|
|
|
struct pages_devres {
|
|
unsigned long addr;
|
|
unsigned int order;
|
|
};
|
|
|
|
typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *);
|
|
|
|
struct platform_msi_priv_data {
|
|
struct device *dev;
|
|
void *host_data;
|
|
msi_alloc_info_t arg;
|
|
irq_write_msi_msg_t write_msg;
|
|
int devid;
|
|
};
|
|
|
|
struct msdos_partition {
|
|
u8 boot_ind;
|
|
u8 head;
|
|
u8 sector;
|
|
u8 cyl;
|
|
u8 sys_ind;
|
|
u8 end_head;
|
|
u8 end_sector;
|
|
u8 end_cyl;
|
|
__le32 start_sect;
|
|
__le32 nr_sects;
|
|
};
|
|
|
|
enum ata_completion_errors {
|
|
AC_ERR_OK = 0,
|
|
AC_ERR_DEV = 1,
|
|
AC_ERR_HSM = 2,
|
|
AC_ERR_TIMEOUT = 4,
|
|
AC_ERR_MEDIA = 8,
|
|
AC_ERR_ATA_BUS = 16,
|
|
AC_ERR_HOST_BUS = 32,
|
|
AC_ERR_SYSTEM = 64,
|
|
AC_ERR_INVALID = 128,
|
|
AC_ERR_OTHER = 256,
|
|
AC_ERR_NODEV_HINT = 512,
|
|
AC_ERR_NCQ = 1024,
|
|
};
|
|
|
|
struct ata_link;
|
|
|
|
typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long);
|
|
|
|
typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long);
|
|
|
|
typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *);
|
|
|
|
enum ata_lpm_policy {
|
|
ATA_LPM_UNKNOWN = 0,
|
|
ATA_LPM_MAX_POWER = 1,
|
|
ATA_LPM_MED_POWER = 2,
|
|
ATA_LPM_MED_POWER_WITH_DIPM = 3,
|
|
ATA_LPM_MIN_POWER_WITH_PARTIAL = 4,
|
|
ATA_LPM_MIN_POWER = 5,
|
|
};
|
|
|
|
enum sw_activity {
|
|
OFF = 0,
|
|
BLINK_ON = 1,
|
|
BLINK_OFF = 2,
|
|
};
|
|
|
|
struct ata_queued_cmd;
|
|
|
|
struct ata_port;
|
|
|
|
struct ata_device;
|
|
|
|
struct ata_taskfile;
|
|
|
|
struct ata_host;
|
|
|
|
struct ata_port_operations {
|
|
int (*qc_defer)(struct ata_queued_cmd *);
|
|
int (*check_atapi_dma)(struct ata_queued_cmd *);
|
|
enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *);
|
|
unsigned int (*qc_issue)(struct ata_queued_cmd *);
|
|
void (*qc_fill_rtf)(struct ata_queued_cmd *);
|
|
void (*qc_ncq_fill_rtf)(struct ata_port *, u64);
|
|
int (*cable_detect)(struct ata_port *);
|
|
unsigned int (*mode_filter)(struct ata_device *, unsigned int);
|
|
void (*set_piomode)(struct ata_port *, struct ata_device *);
|
|
void (*set_dmamode)(struct ata_port *, struct ata_device *);
|
|
int (*set_mode)(struct ata_link *, struct ata_device **);
|
|
unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *);
|
|
void (*dev_config)(struct ata_device *);
|
|
void (*freeze)(struct ata_port *);
|
|
void (*thaw)(struct ata_port *);
|
|
ata_prereset_fn_t prereset;
|
|
ata_reset_fn_t softreset;
|
|
ata_reset_fn_t hardreset;
|
|
ata_postreset_fn_t postreset;
|
|
ata_prereset_fn_t pmp_prereset;
|
|
ata_reset_fn_t pmp_softreset;
|
|
ata_reset_fn_t pmp_hardreset;
|
|
ata_postreset_fn_t pmp_postreset;
|
|
void (*error_handler)(struct ata_port *);
|
|
void (*lost_interrupt)(struct ata_port *);
|
|
void (*post_internal_cmd)(struct ata_queued_cmd *);
|
|
void (*sched_eh)(struct ata_port *);
|
|
void (*end_eh)(struct ata_port *);
|
|
int (*scr_read)(struct ata_link *, unsigned int, u32 *);
|
|
int (*scr_write)(struct ata_link *, unsigned int, u32);
|
|
void (*pmp_attach)(struct ata_port *);
|
|
void (*pmp_detach)(struct ata_port *);
|
|
int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int);
|
|
int (*port_suspend)(struct ata_port *, pm_message_t);
|
|
int (*port_resume)(struct ata_port *);
|
|
int (*port_start)(struct ata_port *);
|
|
void (*port_stop)(struct ata_port *);
|
|
void (*host_stop)(struct ata_host *);
|
|
void (*sff_dev_select)(struct ata_port *, unsigned int);
|
|
void (*sff_set_devctl)(struct ata_port *, u8);
|
|
u8 (*sff_check_status)(struct ata_port *);
|
|
u8 (*sff_check_altstatus)(struct ata_port *);
|
|
void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *);
|
|
void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *);
|
|
void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *);
|
|
unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int);
|
|
void (*sff_irq_on)(struct ata_port *);
|
|
bool (*sff_irq_check)(struct ata_port *);
|
|
void (*sff_irq_clear)(struct ata_port *);
|
|
void (*sff_drain_fifo)(struct ata_queued_cmd *);
|
|
void (*bmdma_setup)(struct ata_queued_cmd *);
|
|
void (*bmdma_start)(struct ata_queued_cmd *);
|
|
void (*bmdma_stop)(struct ata_queued_cmd *);
|
|
u8 (*bmdma_status)(struct ata_port *);
|
|
ssize_t (*em_show)(struct ata_port *, char *);
|
|
ssize_t (*em_store)(struct ata_port *, const char *, size_t);
|
|
ssize_t (*sw_activity_show)(struct ata_device *, char *);
|
|
ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity);
|
|
ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t);
|
|
void (*phy_reset)(struct ata_port *);
|
|
void (*eng_timeout)(struct ata_port *);
|
|
const struct ata_port_operations *inherits;
|
|
};
|
|
|
|
struct ata_taskfile {
|
|
unsigned long flags;
|
|
u8 protocol;
|
|
u8 ctl;
|
|
u8 hob_feature;
|
|
u8 hob_nsect;
|
|
u8 hob_lbal;
|
|
u8 hob_lbam;
|
|
u8 hob_lbah;
|
|
union {
|
|
u8 error;
|
|
u8 feature;
|
|
};
|
|
u8 nsect;
|
|
u8 lbal;
|
|
u8 lbam;
|
|
u8 lbah;
|
|
u8 device;
|
|
union {
|
|
u8 status;
|
|
u8 command;
|
|
};
|
|
u32 auxiliary;
|
|
};
|
|
|
|
typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *);
|
|
|
|
struct ata_queued_cmd {
|
|
struct ata_port *ap;
|
|
struct ata_device *dev;
|
|
struct scsi_cmnd *scsicmd;
|
|
void (*scsidone)(struct scsi_cmnd *);
|
|
struct ata_taskfile tf;
|
|
u8 cdb[16];
|
|
unsigned long flags;
|
|
unsigned int tag;
|
|
unsigned int hw_tag;
|
|
unsigned int n_elem;
|
|
unsigned int orig_n_elem;
|
|
int dma_dir;
|
|
unsigned int sect_size;
|
|
unsigned int nbytes;
|
|
unsigned int extrabytes;
|
|
unsigned int curbytes;
|
|
struct scatterlist sgent;
|
|
struct scatterlist *sg;
|
|
struct scatterlist *cursg;
|
|
unsigned int cursg_ofs;
|
|
unsigned int err_mask;
|
|
struct ata_taskfile result_tf;
|
|
ata_qc_cb_t complete_fn;
|
|
void *private_data;
|
|
void *lldd_task;
|
|
};
|
|
|
|
struct ata_ioports {
|
|
void *cmd_addr;
|
|
void *data_addr;
|
|
void *error_addr;
|
|
void *feature_addr;
|
|
void *nsect_addr;
|
|
void *lbal_addr;
|
|
void *lbam_addr;
|
|
void *lbah_addr;
|
|
void *device_addr;
|
|
void *status_addr;
|
|
void *command_addr;
|
|
void *altstatus_addr;
|
|
void *ctl_addr;
|
|
void *bmdma_addr;
|
|
void *scr_addr;
|
|
};
|
|
|
|
struct ata_eh_info {
|
|
struct ata_device *dev;
|
|
u32 serror;
|
|
unsigned int err_mask;
|
|
unsigned int action;
|
|
unsigned int dev_action[2];
|
|
unsigned int flags;
|
|
unsigned int probe_mask;
|
|
char desc[80];
|
|
int desc_len;
|
|
};
|
|
|
|
struct ata_eh_context {
|
|
struct ata_eh_info i;
|
|
int tries[2];
|
|
int cmd_timeout_idx[14];
|
|
unsigned int classes[2];
|
|
unsigned int did_probe_mask;
|
|
unsigned int unloaded_mask;
|
|
unsigned int saved_ncq_enabled;
|
|
u8 saved_xfer_mode[2];
|
|
unsigned long last_reset;
|
|
};
|
|
|
|
struct ata_ering_entry {
|
|
unsigned int eflags;
|
|
unsigned int err_mask;
|
|
u64 timestamp;
|
|
};
|
|
|
|
struct ata_ering {
|
|
int cursor;
|
|
struct ata_ering_entry ring[32];
|
|
};
|
|
|
|
struct ata_cpr_log;
|
|
|
|
struct ata_device {
|
|
struct ata_link *link;
|
|
unsigned int devno;
|
|
unsigned int horkage;
|
|
unsigned long flags;
|
|
struct scsi_device *sdev;
|
|
void *private_data;
|
|
union acpi_object *gtf_cache;
|
|
unsigned int gtf_filter;
|
|
struct device tdev;
|
|
u64 n_sectors;
|
|
u64 n_native_sectors;
|
|
unsigned int class;
|
|
unsigned long unpark_deadline;
|
|
u8 pio_mode;
|
|
u8 dma_mode;
|
|
u8 xfer_mode;
|
|
unsigned int xfer_shift;
|
|
unsigned int multi_count;
|
|
unsigned int max_sectors;
|
|
unsigned int cdb_len;
|
|
unsigned int pio_mask;
|
|
unsigned int mwdma_mask;
|
|
unsigned int udma_mask;
|
|
u16 cylinders;
|
|
u16 heads;
|
|
u16 sectors;
|
|
long: 16;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
union {
|
|
u16 id[256];
|
|
u32 gscr[128];
|
|
};
|
|
u8 devslp_timing[8];
|
|
u8 ncq_send_recv_cmds[20];
|
|
u8 ncq_non_data_cmds[64];
|
|
u32 zac_zoned_cap;
|
|
u32 zac_zones_optimal_open;
|
|
u32 zac_zones_optimal_nonseq;
|
|
u32 zac_zones_max_open;
|
|
struct ata_cpr_log *cpr_log;
|
|
int spdn_cnt;
|
|
struct ata_ering ering;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct ata_link {
|
|
struct ata_port *ap;
|
|
int pmp;
|
|
struct device tdev;
|
|
unsigned int active_tag;
|
|
u32 sactive;
|
|
unsigned int flags;
|
|
u32 saved_scontrol;
|
|
unsigned int hw_sata_spd_limit;
|
|
unsigned int sata_spd_limit;
|
|
unsigned int sata_spd;
|
|
enum ata_lpm_policy lpm_policy;
|
|
struct ata_eh_info eh_info;
|
|
struct ata_eh_context eh_context;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct ata_device device[2];
|
|
unsigned long last_lpm_change;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct ata_port_stats {
|
|
unsigned long unhandled_irq;
|
|
unsigned long idle_irq;
|
|
unsigned long rw_reqbuf;
|
|
};
|
|
|
|
struct ata_acpi_drive {
|
|
u32 pio;
|
|
u32 dma;
|
|
};
|
|
|
|
struct ata_acpi_gtm {
|
|
struct ata_acpi_drive drive[2];
|
|
u32 flags;
|
|
};
|
|
|
|
struct ata_bmdma_prd;
|
|
|
|
struct ata_port {
|
|
struct Scsi_Host *scsi_host;
|
|
struct ata_port_operations *ops;
|
|
spinlock_t *lock;
|
|
unsigned long flags;
|
|
unsigned int pflags;
|
|
unsigned int print_id;
|
|
unsigned int local_port_no;
|
|
unsigned int port_no;
|
|
struct ata_ioports ioaddr;
|
|
u8 ctl;
|
|
u8 last_ctl;
|
|
struct ata_link *sff_pio_task_link;
|
|
struct delayed_work sff_pio_task;
|
|
struct ata_bmdma_prd *bmdma_prd;
|
|
dma_addr_t bmdma_prd_dma;
|
|
unsigned int pio_mask;
|
|
unsigned int mwdma_mask;
|
|
unsigned int udma_mask;
|
|
unsigned int cbl;
|
|
struct ata_queued_cmd qcmd[33];
|
|
u64 qc_active;
|
|
int nr_active_links;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
struct ata_link link;
|
|
struct ata_link *slave_link;
|
|
int nr_pmp_links;
|
|
struct ata_link *pmp_link;
|
|
struct ata_link *excl_link;
|
|
struct ata_port_stats stats;
|
|
struct ata_host *host;
|
|
struct device *dev;
|
|
struct device tdev;
|
|
struct mutex scsi_scan_mutex;
|
|
struct delayed_work hotplug_task;
|
|
struct work_struct scsi_rescan_task;
|
|
unsigned int hsm_task_state;
|
|
struct list_head eh_done_q;
|
|
wait_queue_head_t eh_wait_q;
|
|
int eh_tries;
|
|
struct completion park_req_pending;
|
|
pm_message_t pm_mesg;
|
|
enum ata_lpm_policy target_lpm_policy;
|
|
struct timer_list fastdrain_timer;
|
|
unsigned int fastdrain_cnt;
|
|
async_cookie_t cookie;
|
|
int em_message_type;
|
|
void *private_data;
|
|
struct ata_acpi_gtm __acpi_init_gtm;
|
|
long: 32;
|
|
long: 64;
|
|
u8 sector_buf[512];
|
|
};
|
|
|
|
struct cdrom_device_ops;
|
|
|
|
struct cdrom_device_info {
|
|
const struct cdrom_device_ops *ops;
|
|
struct list_head list;
|
|
struct gendisk *disk;
|
|
void *handle;
|
|
int mask;
|
|
int speed;
|
|
int capacity;
|
|
unsigned int options: 30;
|
|
unsigned int mc_flags: 2;
|
|
unsigned int vfs_events;
|
|
unsigned int ioctl_events;
|
|
int use_count;
|
|
char name[20];
|
|
__u8 sanyo_slot: 2;
|
|
__u8 keeplocked: 1;
|
|
__u8 reserved: 5;
|
|
int cdda_method;
|
|
__u8 last_sense;
|
|
__u8 media_written;
|
|
unsigned short mmc3_profile;
|
|
int for_data;
|
|
int (*exit)(struct cdrom_device_info *);
|
|
int mrw_mode_page;
|
|
__s64 last_media_change_ms;
|
|
};
|
|
|
|
struct cdrom_multisession;
|
|
|
|
struct cdrom_mcn;
|
|
|
|
struct packet_command;
|
|
|
|
struct cdrom_device_ops {
|
|
int (*open)(struct cdrom_device_info *, int);
|
|
void (*release)(struct cdrom_device_info *);
|
|
int (*drive_status)(struct cdrom_device_info *, int);
|
|
unsigned int (*check_events)(struct cdrom_device_info *, unsigned int, int);
|
|
int (*tray_move)(struct cdrom_device_info *, int);
|
|
int (*lock_door)(struct cdrom_device_info *, int);
|
|
int (*select_speed)(struct cdrom_device_info *, int);
|
|
int (*get_last_session)(struct cdrom_device_info *, struct cdrom_multisession *);
|
|
int (*get_mcn)(struct cdrom_device_info *, struct cdrom_mcn *);
|
|
int (*reset)(struct cdrom_device_info *);
|
|
int (*audio_ioctl)(struct cdrom_device_info *, unsigned int, void *);
|
|
int (*generic_packet)(struct cdrom_device_info *, struct packet_command *);
|
|
int (*read_cdda_bpc)(struct cdrom_device_info *, void __attribute__((btf_type_tag("user"))) *, u32, u32, u8 *);
|
|
const int capability;
|
|
};
|
|
|
|
struct cdrom_msf0 {
|
|
__u8 minute;
|
|
__u8 second;
|
|
__u8 frame;
|
|
};
|
|
|
|
union cdrom_addr {
|
|
struct cdrom_msf0 msf;
|
|
int lba;
|
|
};
|
|
|
|
struct cdrom_multisession {
|
|
union cdrom_addr addr;
|
|
__u8 xa_flag;
|
|
__u8 addr_format;
|
|
};
|
|
|
|
struct cdrom_mcn {
|
|
__u8 medium_catalog_number[14];
|
|
};
|
|
|
|
struct packet_command {
|
|
unsigned char cmd[12];
|
|
unsigned char *buffer;
|
|
unsigned int buflen;
|
|
int stat;
|
|
struct scsi_sense_hdr *sshdr;
|
|
unsigned char data_direction;
|
|
int quiet;
|
|
int timeout;
|
|
void *reserved[1];
|
|
};
|
|
|
|
struct ata_cpr {
|
|
u8 num;
|
|
u8 num_storage_elements;
|
|
u64 start_lba;
|
|
u64 num_lbas;
|
|
};
|
|
|
|
struct ata_cpr_log {
|
|
u8 nr_cpr;
|
|
struct ata_cpr cpr[0];
|
|
};
|
|
|
|
struct ata_bmdma_prd {
|
|
__le32 addr;
|
|
__le32 flags_len;
|
|
};
|
|
|
|
struct ata_host {
|
|
spinlock_t lock;
|
|
struct device *dev;
|
|
void * const *iomap;
|
|
unsigned int n_ports;
|
|
unsigned int n_tags;
|
|
void *private_data;
|
|
struct ata_port_operations *ops;
|
|
unsigned long flags;
|
|
struct kref kref;
|
|
struct mutex eh_mutex;
|
|
struct task_struct *eh_owner;
|
|
struct ata_port *simplex_claimed;
|
|
struct ata_port *ports[0];
|
|
};
|
|
|
|
enum {
|
|
ATA_MAX_DEVICES = 2,
|
|
ATA_MAX_PRD = 256,
|
|
ATA_SECT_SIZE = 512,
|
|
ATA_MAX_SECTORS_128 = 128,
|
|
ATA_MAX_SECTORS = 256,
|
|
ATA_MAX_SECTORS_1024 = 1024,
|
|
ATA_MAX_SECTORS_LBA48 = 65535,
|
|
ATA_MAX_SECTORS_TAPE = 65535,
|
|
ATA_MAX_TRIM_RNUM = 64,
|
|
ATA_ID_WORDS = 256,
|
|
ATA_ID_CONFIG = 0,
|
|
ATA_ID_CYLS = 1,
|
|
ATA_ID_HEADS = 3,
|
|
ATA_ID_SECTORS = 6,
|
|
ATA_ID_SERNO = 10,
|
|
ATA_ID_BUF_SIZE = 21,
|
|
ATA_ID_FW_REV = 23,
|
|
ATA_ID_PROD = 27,
|
|
ATA_ID_MAX_MULTSECT = 47,
|
|
ATA_ID_DWORD_IO = 48,
|
|
ATA_ID_TRUSTED = 48,
|
|
ATA_ID_CAPABILITY = 49,
|
|
ATA_ID_OLD_PIO_MODES = 51,
|
|
ATA_ID_OLD_DMA_MODES = 52,
|
|
ATA_ID_FIELD_VALID = 53,
|
|
ATA_ID_CUR_CYLS = 54,
|
|
ATA_ID_CUR_HEADS = 55,
|
|
ATA_ID_CUR_SECTORS = 56,
|
|
ATA_ID_MULTSECT = 59,
|
|
ATA_ID_LBA_CAPACITY = 60,
|
|
ATA_ID_SWDMA_MODES = 62,
|
|
ATA_ID_MWDMA_MODES = 63,
|
|
ATA_ID_PIO_MODES = 64,
|
|
ATA_ID_EIDE_DMA_MIN = 65,
|
|
ATA_ID_EIDE_DMA_TIME = 66,
|
|
ATA_ID_EIDE_PIO = 67,
|
|
ATA_ID_EIDE_PIO_IORDY = 68,
|
|
ATA_ID_ADDITIONAL_SUPP = 69,
|
|
ATA_ID_QUEUE_DEPTH = 75,
|
|
ATA_ID_SATA_CAPABILITY = 76,
|
|
ATA_ID_SATA_CAPABILITY_2 = 77,
|
|
ATA_ID_FEATURE_SUPP = 78,
|
|
ATA_ID_MAJOR_VER = 80,
|
|
ATA_ID_COMMAND_SET_1 = 82,
|
|
ATA_ID_COMMAND_SET_2 = 83,
|
|
ATA_ID_CFSSE = 84,
|
|
ATA_ID_CFS_ENABLE_1 = 85,
|
|
ATA_ID_CFS_ENABLE_2 = 86,
|
|
ATA_ID_CSF_DEFAULT = 87,
|
|
ATA_ID_UDMA_MODES = 88,
|
|
ATA_ID_HW_CONFIG = 93,
|
|
ATA_ID_SPG = 98,
|
|
ATA_ID_LBA_CAPACITY_2 = 100,
|
|
ATA_ID_SECTOR_SIZE = 106,
|
|
ATA_ID_WWN = 108,
|
|
ATA_ID_LOGICAL_SECTOR_SIZE = 117,
|
|
ATA_ID_COMMAND_SET_3 = 119,
|
|
ATA_ID_COMMAND_SET_4 = 120,
|
|
ATA_ID_LAST_LUN = 126,
|
|
ATA_ID_DLF = 128,
|
|
ATA_ID_CSFO = 129,
|
|
ATA_ID_CFA_POWER = 160,
|
|
ATA_ID_CFA_KEY_MGMT = 162,
|
|
ATA_ID_CFA_MODES = 163,
|
|
ATA_ID_DATA_SET_MGMT = 169,
|
|
ATA_ID_SCT_CMD_XPORT = 206,
|
|
ATA_ID_ROT_SPEED = 217,
|
|
ATA_ID_PIO4 = 2,
|
|
ATA_ID_SERNO_LEN = 20,
|
|
ATA_ID_FW_REV_LEN = 8,
|
|
ATA_ID_PROD_LEN = 40,
|
|
ATA_ID_WWN_LEN = 8,
|
|
ATA_PCI_CTL_OFS = 2,
|
|
ATA_PIO0 = 1,
|
|
ATA_PIO1 = 3,
|
|
ATA_PIO2 = 7,
|
|
ATA_PIO3 = 15,
|
|
ATA_PIO4 = 31,
|
|
ATA_PIO5 = 63,
|
|
ATA_PIO6 = 127,
|
|
ATA_PIO4_ONLY = 16,
|
|
ATA_SWDMA0 = 1,
|
|
ATA_SWDMA1 = 3,
|
|
ATA_SWDMA2 = 7,
|
|
ATA_SWDMA2_ONLY = 4,
|
|
ATA_MWDMA0 = 1,
|
|
ATA_MWDMA1 = 3,
|
|
ATA_MWDMA2 = 7,
|
|
ATA_MWDMA3 = 15,
|
|
ATA_MWDMA4 = 31,
|
|
ATA_MWDMA12_ONLY = 6,
|
|
ATA_MWDMA2_ONLY = 4,
|
|
ATA_UDMA0 = 1,
|
|
ATA_UDMA1 = 3,
|
|
ATA_UDMA2 = 7,
|
|
ATA_UDMA3 = 15,
|
|
ATA_UDMA4 = 31,
|
|
ATA_UDMA5 = 63,
|
|
ATA_UDMA6 = 127,
|
|
ATA_UDMA7 = 255,
|
|
ATA_UDMA24_ONLY = 20,
|
|
ATA_UDMA_MASK_40C = 7,
|
|
ATA_PRD_SZ = 8,
|
|
ATA_PRD_TBL_SZ = 2048,
|
|
ATA_PRD_EOT = -2147483648,
|
|
ATA_DMA_TABLE_OFS = 4,
|
|
ATA_DMA_STATUS = 2,
|
|
ATA_DMA_CMD = 0,
|
|
ATA_DMA_WR = 8,
|
|
ATA_DMA_START = 1,
|
|
ATA_DMA_INTR = 4,
|
|
ATA_DMA_ERR = 2,
|
|
ATA_DMA_ACTIVE = 1,
|
|
ATA_HOB = 128,
|
|
ATA_NIEN = 2,
|
|
ATA_LBA = 64,
|
|
ATA_DEV1 = 16,
|
|
ATA_DEVICE_OBS = 160,
|
|
ATA_DEVCTL_OBS = 8,
|
|
ATA_BUSY = 128,
|
|
ATA_DRDY = 64,
|
|
ATA_DF = 32,
|
|
ATA_DSC = 16,
|
|
ATA_DRQ = 8,
|
|
ATA_CORR = 4,
|
|
ATA_SENSE = 2,
|
|
ATA_ERR = 1,
|
|
ATA_SRST = 4,
|
|
ATA_ICRC = 128,
|
|
ATA_BBK = 128,
|
|
ATA_UNC = 64,
|
|
ATA_MC = 32,
|
|
ATA_IDNF = 16,
|
|
ATA_MCR = 8,
|
|
ATA_ABORTED = 4,
|
|
ATA_TRK0NF = 2,
|
|
ATA_AMNF = 1,
|
|
ATAPI_LFS = 240,
|
|
ATAPI_EOM = 2,
|
|
ATAPI_ILI = 1,
|
|
ATAPI_IO = 2,
|
|
ATAPI_COD = 1,
|
|
ATA_REG_DATA = 0,
|
|
ATA_REG_ERR = 1,
|
|
ATA_REG_NSECT = 2,
|
|
ATA_REG_LBAL = 3,
|
|
ATA_REG_LBAM = 4,
|
|
ATA_REG_LBAH = 5,
|
|
ATA_REG_DEVICE = 6,
|
|
ATA_REG_STATUS = 7,
|
|
ATA_REG_FEATURE = 1,
|
|
ATA_REG_CMD = 7,
|
|
ATA_REG_BYTEL = 4,
|
|
ATA_REG_BYTEH = 5,
|
|
ATA_REG_DEVSEL = 6,
|
|
ATA_REG_IRQ = 2,
|
|
ATA_CMD_DEV_RESET = 8,
|
|
ATA_CMD_CHK_POWER = 229,
|
|
ATA_CMD_STANDBY = 226,
|
|
ATA_CMD_IDLE = 227,
|
|
ATA_CMD_EDD = 144,
|
|
ATA_CMD_DOWNLOAD_MICRO = 146,
|
|
ATA_CMD_DOWNLOAD_MICRO_DMA = 147,
|
|
ATA_CMD_NOP = 0,
|
|
ATA_CMD_FLUSH = 231,
|
|
ATA_CMD_FLUSH_EXT = 234,
|
|
ATA_CMD_ID_ATA = 236,
|
|
ATA_CMD_ID_ATAPI = 161,
|
|
ATA_CMD_SERVICE = 162,
|
|
ATA_CMD_READ = 200,
|
|
ATA_CMD_READ_EXT = 37,
|
|
ATA_CMD_READ_QUEUED = 38,
|
|
ATA_CMD_READ_STREAM_EXT = 43,
|
|
ATA_CMD_READ_STREAM_DMA_EXT = 42,
|
|
ATA_CMD_WRITE = 202,
|
|
ATA_CMD_WRITE_EXT = 53,
|
|
ATA_CMD_WRITE_QUEUED = 54,
|
|
ATA_CMD_WRITE_STREAM_EXT = 59,
|
|
ATA_CMD_WRITE_STREAM_DMA_EXT = 58,
|
|
ATA_CMD_WRITE_FUA_EXT = 61,
|
|
ATA_CMD_WRITE_QUEUED_FUA_EXT = 62,
|
|
ATA_CMD_FPDMA_READ = 96,
|
|
ATA_CMD_FPDMA_WRITE = 97,
|
|
ATA_CMD_NCQ_NON_DATA = 99,
|
|
ATA_CMD_FPDMA_SEND = 100,
|
|
ATA_CMD_FPDMA_RECV = 101,
|
|
ATA_CMD_PIO_READ = 32,
|
|
ATA_CMD_PIO_READ_EXT = 36,
|
|
ATA_CMD_PIO_WRITE = 48,
|
|
ATA_CMD_PIO_WRITE_EXT = 52,
|
|
ATA_CMD_READ_MULTI = 196,
|
|
ATA_CMD_READ_MULTI_EXT = 41,
|
|
ATA_CMD_WRITE_MULTI = 197,
|
|
ATA_CMD_WRITE_MULTI_EXT = 57,
|
|
ATA_CMD_WRITE_MULTI_FUA_EXT = 206,
|
|
ATA_CMD_SET_FEATURES = 239,
|
|
ATA_CMD_SET_MULTI = 198,
|
|
ATA_CMD_PACKET = 160,
|
|
ATA_CMD_VERIFY = 64,
|
|
ATA_CMD_VERIFY_EXT = 66,
|
|
ATA_CMD_WRITE_UNCORR_EXT = 69,
|
|
ATA_CMD_STANDBYNOW1 = 224,
|
|
ATA_CMD_IDLEIMMEDIATE = 225,
|
|
ATA_CMD_SLEEP = 230,
|
|
ATA_CMD_INIT_DEV_PARAMS = 145,
|
|
ATA_CMD_READ_NATIVE_MAX = 248,
|
|
ATA_CMD_READ_NATIVE_MAX_EXT = 39,
|
|
ATA_CMD_SET_MAX = 249,
|
|
ATA_CMD_SET_MAX_EXT = 55,
|
|
ATA_CMD_READ_LOG_EXT = 47,
|
|
ATA_CMD_WRITE_LOG_EXT = 63,
|
|
ATA_CMD_READ_LOG_DMA_EXT = 71,
|
|
ATA_CMD_WRITE_LOG_DMA_EXT = 87,
|
|
ATA_CMD_TRUSTED_NONDATA = 91,
|
|
ATA_CMD_TRUSTED_RCV = 92,
|
|
ATA_CMD_TRUSTED_RCV_DMA = 93,
|
|
ATA_CMD_TRUSTED_SND = 94,
|
|
ATA_CMD_TRUSTED_SND_DMA = 95,
|
|
ATA_CMD_PMP_READ = 228,
|
|
ATA_CMD_PMP_READ_DMA = 233,
|
|
ATA_CMD_PMP_WRITE = 232,
|
|
ATA_CMD_PMP_WRITE_DMA = 235,
|
|
ATA_CMD_CONF_OVERLAY = 177,
|
|
ATA_CMD_SEC_SET_PASS = 241,
|
|
ATA_CMD_SEC_UNLOCK = 242,
|
|
ATA_CMD_SEC_ERASE_PREP = 243,
|
|
ATA_CMD_SEC_ERASE_UNIT = 244,
|
|
ATA_CMD_SEC_FREEZE_LOCK = 245,
|
|
ATA_CMD_SEC_DISABLE_PASS = 246,
|
|
ATA_CMD_CONFIG_STREAM = 81,
|
|
ATA_CMD_SMART = 176,
|
|
ATA_CMD_MEDIA_LOCK = 222,
|
|
ATA_CMD_MEDIA_UNLOCK = 223,
|
|
ATA_CMD_DSM = 6,
|
|
ATA_CMD_CHK_MED_CRD_TYP = 209,
|
|
ATA_CMD_CFA_REQ_EXT_ERR = 3,
|
|
ATA_CMD_CFA_WRITE_NE = 56,
|
|
ATA_CMD_CFA_TRANS_SECT = 135,
|
|
ATA_CMD_CFA_ERASE = 192,
|
|
ATA_CMD_CFA_WRITE_MULT_NE = 205,
|
|
ATA_CMD_REQ_SENSE_DATA = 11,
|
|
ATA_CMD_SANITIZE_DEVICE = 180,
|
|
ATA_CMD_ZAC_MGMT_IN = 74,
|
|
ATA_CMD_ZAC_MGMT_OUT = 159,
|
|
ATA_CMD_RESTORE = 16,
|
|
ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1,
|
|
ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2,
|
|
ATA_SUBCMD_FPDMA_SEND_DSM = 0,
|
|
ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2,
|
|
ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0,
|
|
ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5,
|
|
ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6,
|
|
ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7,
|
|
ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0,
|
|
ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1,
|
|
ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2,
|
|
ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3,
|
|
ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4,
|
|
ATA_LOG_DIRECTORY = 0,
|
|
ATA_LOG_SATA_NCQ = 16,
|
|
ATA_LOG_NCQ_NON_DATA = 18,
|
|
ATA_LOG_NCQ_SEND_RECV = 19,
|
|
ATA_LOG_IDENTIFY_DEVICE = 48,
|
|
ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71,
|
|
ATA_LOG_SECURITY = 6,
|
|
ATA_LOG_SATA_SETTINGS = 8,
|
|
ATA_LOG_ZONED_INFORMATION = 9,
|
|
ATA_LOG_DEVSLP_OFFSET = 48,
|
|
ATA_LOG_DEVSLP_SIZE = 8,
|
|
ATA_LOG_DEVSLP_MDAT = 0,
|
|
ATA_LOG_DEVSLP_MDAT_MASK = 31,
|
|
ATA_LOG_DEVSLP_DETO = 1,
|
|
ATA_LOG_DEVSLP_VALID = 7,
|
|
ATA_LOG_DEVSLP_VALID_MASK = 128,
|
|
ATA_LOG_NCQ_PRIO_OFFSET = 9,
|
|
ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0,
|
|
ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1,
|
|
ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4,
|
|
ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1,
|
|
ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8,
|
|
ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1,
|
|
ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12,
|
|
ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1,
|
|
ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16,
|
|
ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1,
|
|
ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2,
|
|
ATA_LOG_NCQ_SEND_RECV_SIZE = 20,
|
|
ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0,
|
|
ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0,
|
|
ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1,
|
|
ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2,
|
|
ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4,
|
|
ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8,
|
|
ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16,
|
|
ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28,
|
|
ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1,
|
|
ATA_LOG_NCQ_NON_DATA_SIZE = 64,
|
|
ATA_CMD_READ_LONG = 34,
|
|
ATA_CMD_READ_LONG_ONCE = 35,
|
|
ATA_CMD_WRITE_LONG = 50,
|
|
ATA_CMD_WRITE_LONG_ONCE = 51,
|
|
SETFEATURES_XFER = 3,
|
|
XFER_UDMA_7 = 71,
|
|
XFER_UDMA_6 = 70,
|
|
XFER_UDMA_5 = 69,
|
|
XFER_UDMA_4 = 68,
|
|
XFER_UDMA_3 = 67,
|
|
XFER_UDMA_2 = 66,
|
|
XFER_UDMA_1 = 65,
|
|
XFER_UDMA_0 = 64,
|
|
XFER_MW_DMA_4 = 36,
|
|
XFER_MW_DMA_3 = 35,
|
|
XFER_MW_DMA_2 = 34,
|
|
XFER_MW_DMA_1 = 33,
|
|
XFER_MW_DMA_0 = 32,
|
|
XFER_SW_DMA_2 = 18,
|
|
XFER_SW_DMA_1 = 17,
|
|
XFER_SW_DMA_0 = 16,
|
|
XFER_PIO_6 = 14,
|
|
XFER_PIO_5 = 13,
|
|
XFER_PIO_4 = 12,
|
|
XFER_PIO_3 = 11,
|
|
XFER_PIO_2 = 10,
|
|
XFER_PIO_1 = 9,
|
|
XFER_PIO_0 = 8,
|
|
XFER_PIO_SLOW = 0,
|
|
SETFEATURES_WC_ON = 2,
|
|
SETFEATURES_WC_OFF = 130,
|
|
SETFEATURES_RA_ON = 170,
|
|
SETFEATURES_RA_OFF = 85,
|
|
SETFEATURES_AAM_ON = 66,
|
|
SETFEATURES_AAM_OFF = 194,
|
|
SETFEATURES_SPINUP = 7,
|
|
SETFEATURES_SPINUP_TIMEOUT = 30000,
|
|
SETFEATURES_SATA_ENABLE = 16,
|
|
SETFEATURES_SATA_DISABLE = 144,
|
|
SATA_FPDMA_OFFSET = 1,
|
|
SATA_FPDMA_AA = 2,
|
|
SATA_DIPM = 3,
|
|
SATA_FPDMA_IN_ORDER = 4,
|
|
SATA_AN = 5,
|
|
SATA_SSP = 6,
|
|
SATA_DEVSLP = 9,
|
|
SETFEATURE_SENSE_DATA = 195,
|
|
ATA_SET_MAX_ADDR = 0,
|
|
ATA_SET_MAX_PASSWD = 1,
|
|
ATA_SET_MAX_LOCK = 2,
|
|
ATA_SET_MAX_UNLOCK = 3,
|
|
ATA_SET_MAX_FREEZE_LOCK = 4,
|
|
ATA_SET_MAX_PASSWD_DMA = 5,
|
|
ATA_SET_MAX_UNLOCK_DMA = 6,
|
|
ATA_DCO_RESTORE = 192,
|
|
ATA_DCO_FREEZE_LOCK = 193,
|
|
ATA_DCO_IDENTIFY = 194,
|
|
ATA_DCO_SET = 195,
|
|
ATA_SMART_ENABLE = 216,
|
|
ATA_SMART_READ_VALUES = 208,
|
|
ATA_SMART_READ_THRESHOLDS = 209,
|
|
ATA_DSM_TRIM = 1,
|
|
ATA_SMART_LBAM_PASS = 79,
|
|
ATA_SMART_LBAH_PASS = 194,
|
|
ATAPI_PKT_DMA = 1,
|
|
ATAPI_DMADIR = 4,
|
|
ATAPI_CDB_LEN = 16,
|
|
SATA_PMP_MAX_PORTS = 15,
|
|
SATA_PMP_CTRL_PORT = 15,
|
|
SATA_PMP_GSCR_DWORDS = 128,
|
|
SATA_PMP_GSCR_PROD_ID = 0,
|
|
SATA_PMP_GSCR_REV = 1,
|
|
SATA_PMP_GSCR_PORT_INFO = 2,
|
|
SATA_PMP_GSCR_ERROR = 32,
|
|
SATA_PMP_GSCR_ERROR_EN = 33,
|
|
SATA_PMP_GSCR_FEAT = 64,
|
|
SATA_PMP_GSCR_FEAT_EN = 96,
|
|
SATA_PMP_PSCR_STATUS = 0,
|
|
SATA_PMP_PSCR_ERROR = 1,
|
|
SATA_PMP_PSCR_CONTROL = 2,
|
|
SATA_PMP_FEAT_BIST = 1,
|
|
SATA_PMP_FEAT_PMREQ = 2,
|
|
SATA_PMP_FEAT_DYNSSC = 4,
|
|
SATA_PMP_FEAT_NOTIFY = 8,
|
|
ATA_CBL_NONE = 0,
|
|
ATA_CBL_PATA40 = 1,
|
|
ATA_CBL_PATA80 = 2,
|
|
ATA_CBL_PATA40_SHORT = 3,
|
|
ATA_CBL_PATA_UNK = 4,
|
|
ATA_CBL_PATA_IGN = 5,
|
|
ATA_CBL_SATA = 6,
|
|
SCR_STATUS = 0,
|
|
SCR_ERROR = 1,
|
|
SCR_CONTROL = 2,
|
|
SCR_ACTIVE = 3,
|
|
SCR_NOTIFICATION = 4,
|
|
SERR_DATA_RECOVERED = 1,
|
|
SERR_COMM_RECOVERED = 2,
|
|
SERR_DATA = 256,
|
|
SERR_PERSISTENT = 512,
|
|
SERR_PROTOCOL = 1024,
|
|
SERR_INTERNAL = 2048,
|
|
SERR_PHYRDY_CHG = 65536,
|
|
SERR_PHY_INT_ERR = 131072,
|
|
SERR_COMM_WAKE = 262144,
|
|
SERR_10B_8B_ERR = 524288,
|
|
SERR_DISPARITY = 1048576,
|
|
SERR_CRC = 2097152,
|
|
SERR_HANDSHAKE = 4194304,
|
|
SERR_LINK_SEQ_ERR = 8388608,
|
|
SERR_TRANS_ST_ERROR = 16777216,
|
|
SERR_UNRECOG_FIS = 33554432,
|
|
SERR_DEV_XCHG = 67108864,
|
|
};
|
|
|
|
enum {
|
|
LIBATA_MAX_PRD = 128,
|
|
LIBATA_DUMB_MAX_PRD = 64,
|
|
ATA_DEF_QUEUE = 1,
|
|
ATA_MAX_QUEUE = 32,
|
|
ATA_TAG_INTERNAL = 32,
|
|
ATA_SHORT_PAUSE = 16,
|
|
ATAPI_MAX_DRAIN = 16384,
|
|
ATA_ALL_DEVICES = 3,
|
|
ATA_SHT_EMULATED = 1,
|
|
ATA_SHT_THIS_ID = -1,
|
|
ATA_TFLAG_LBA48 = 1,
|
|
ATA_TFLAG_ISADDR = 2,
|
|
ATA_TFLAG_DEVICE = 4,
|
|
ATA_TFLAG_WRITE = 8,
|
|
ATA_TFLAG_LBA = 16,
|
|
ATA_TFLAG_FUA = 32,
|
|
ATA_TFLAG_POLLING = 64,
|
|
ATA_DFLAG_LBA = 1,
|
|
ATA_DFLAG_LBA48 = 2,
|
|
ATA_DFLAG_CDB_INTR = 4,
|
|
ATA_DFLAG_NCQ = 8,
|
|
ATA_DFLAG_FLUSH_EXT = 16,
|
|
ATA_DFLAG_ACPI_PENDING = 32,
|
|
ATA_DFLAG_ACPI_FAILED = 64,
|
|
ATA_DFLAG_AN = 128,
|
|
ATA_DFLAG_TRUSTED = 256,
|
|
ATA_DFLAG_FUA = 512,
|
|
ATA_DFLAG_DMADIR = 1024,
|
|
ATA_DFLAG_NCQ_SEND_RECV = 2048,
|
|
ATA_DFLAG_NCQ_PRIO = 4096,
|
|
ATA_DFLAG_CFG_MASK = 8191,
|
|
ATA_DFLAG_PIO = 8192,
|
|
ATA_DFLAG_NCQ_OFF = 16384,
|
|
ATA_DFLAG_SLEEPING = 32768,
|
|
ATA_DFLAG_DUBIOUS_XFER = 65536,
|
|
ATA_DFLAG_NO_UNLOAD = 131072,
|
|
ATA_DFLAG_UNLOCK_HPA = 262144,
|
|
ATA_DFLAG_INIT_MASK = 524287,
|
|
ATA_DFLAG_NCQ_PRIO_ENABLED = 524288,
|
|
ATA_DFLAG_DETACH = 16777216,
|
|
ATA_DFLAG_DETACHED = 33554432,
|
|
ATA_DFLAG_DA = 67108864,
|
|
ATA_DFLAG_DEVSLP = 134217728,
|
|
ATA_DFLAG_ACPI_DISABLED = 268435456,
|
|
ATA_DFLAG_D_SENSE = 536870912,
|
|
ATA_DFLAG_ZAC = 1073741824,
|
|
ATA_DFLAG_FEATURES_MASK = 201333504,
|
|
ATA_DEV_UNKNOWN = 0,
|
|
ATA_DEV_ATA = 1,
|
|
ATA_DEV_ATA_UNSUP = 2,
|
|
ATA_DEV_ATAPI = 3,
|
|
ATA_DEV_ATAPI_UNSUP = 4,
|
|
ATA_DEV_PMP = 5,
|
|
ATA_DEV_PMP_UNSUP = 6,
|
|
ATA_DEV_SEMB = 7,
|
|
ATA_DEV_SEMB_UNSUP = 8,
|
|
ATA_DEV_ZAC = 9,
|
|
ATA_DEV_ZAC_UNSUP = 10,
|
|
ATA_DEV_NONE = 11,
|
|
ATA_LFLAG_NO_HRST = 2,
|
|
ATA_LFLAG_NO_SRST = 4,
|
|
ATA_LFLAG_ASSUME_ATA = 8,
|
|
ATA_LFLAG_ASSUME_SEMB = 16,
|
|
ATA_LFLAG_ASSUME_CLASS = 24,
|
|
ATA_LFLAG_NO_RETRY = 32,
|
|
ATA_LFLAG_DISABLED = 64,
|
|
ATA_LFLAG_SW_ACTIVITY = 128,
|
|
ATA_LFLAG_NO_LPM = 256,
|
|
ATA_LFLAG_RST_ONCE = 512,
|
|
ATA_LFLAG_CHANGED = 1024,
|
|
ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048,
|
|
ATA_FLAG_SLAVE_POSS = 1,
|
|
ATA_FLAG_SATA = 2,
|
|
ATA_FLAG_NO_LPM = 4,
|
|
ATA_FLAG_NO_LOG_PAGE = 32,
|
|
ATA_FLAG_NO_ATAPI = 64,
|
|
ATA_FLAG_PIO_DMA = 128,
|
|
ATA_FLAG_PIO_LBA48 = 256,
|
|
ATA_FLAG_PIO_POLLING = 512,
|
|
ATA_FLAG_NCQ = 1024,
|
|
ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048,
|
|
ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096,
|
|
ATA_FLAG_DEBUGMSG = 8192,
|
|
ATA_FLAG_FPDMA_AA = 16384,
|
|
ATA_FLAG_IGN_SIMPLEX = 32768,
|
|
ATA_FLAG_NO_IORDY = 65536,
|
|
ATA_FLAG_ACPI_SATA = 131072,
|
|
ATA_FLAG_AN = 262144,
|
|
ATA_FLAG_PMP = 524288,
|
|
ATA_FLAG_FPDMA_AUX = 1048576,
|
|
ATA_FLAG_EM = 2097152,
|
|
ATA_FLAG_SW_ACTIVITY = 4194304,
|
|
ATA_FLAG_NO_DIPM = 8388608,
|
|
ATA_FLAG_SAS_HOST = 16777216,
|
|
ATA_PFLAG_EH_PENDING = 1,
|
|
ATA_PFLAG_EH_IN_PROGRESS = 2,
|
|
ATA_PFLAG_FROZEN = 4,
|
|
ATA_PFLAG_RECOVERED = 8,
|
|
ATA_PFLAG_LOADING = 16,
|
|
ATA_PFLAG_SCSI_HOTPLUG = 64,
|
|
ATA_PFLAG_INITIALIZING = 128,
|
|
ATA_PFLAG_RESETTING = 256,
|
|
ATA_PFLAG_UNLOADING = 512,
|
|
ATA_PFLAG_UNLOADED = 1024,
|
|
ATA_PFLAG_SUSPENDED = 131072,
|
|
ATA_PFLAG_PM_PENDING = 262144,
|
|
ATA_PFLAG_INIT_GTM_VALID = 524288,
|
|
ATA_PFLAG_PIO32 = 1048576,
|
|
ATA_PFLAG_PIO32CHANGE = 2097152,
|
|
ATA_PFLAG_EXTERNAL = 4194304,
|
|
ATA_QCFLAG_ACTIVE = 1,
|
|
ATA_QCFLAG_DMAMAP = 2,
|
|
ATA_QCFLAG_RTF_FILLED = 4,
|
|
ATA_QCFLAG_IO = 8,
|
|
ATA_QCFLAG_RESULT_TF = 16,
|
|
ATA_QCFLAG_CLEAR_EXCL = 32,
|
|
ATA_QCFLAG_QUIET = 64,
|
|
ATA_QCFLAG_RETRY = 128,
|
|
ATA_QCFLAG_EH = 65536,
|
|
ATA_QCFLAG_SENSE_VALID = 131072,
|
|
ATA_QCFLAG_EH_SCHEDULED = 262144,
|
|
ATA_HOST_SIMPLEX = 1,
|
|
ATA_HOST_STARTED = 2,
|
|
ATA_HOST_PARALLEL_SCAN = 4,
|
|
ATA_HOST_IGNORE_ATA = 8,
|
|
ATA_TMOUT_BOOT = 30000,
|
|
ATA_TMOUT_BOOT_QUICK = 7000,
|
|
ATA_TMOUT_INTERNAL_QUICK = 5000,
|
|
ATA_TMOUT_MAX_PARK = 30000,
|
|
ATA_TMOUT_FF_WAIT_LONG = 2000,
|
|
ATA_TMOUT_FF_WAIT = 800,
|
|
ATA_WAIT_AFTER_RESET = 150,
|
|
ATA_TMOUT_PMP_SRST_WAIT = 5000,
|
|
ATA_TMOUT_SPURIOUS_PHY = 10000,
|
|
BUS_UNKNOWN = 0,
|
|
BUS_DMA = 1,
|
|
BUS_IDLE = 2,
|
|
BUS_NOINTR = 3,
|
|
BUS_NODATA = 4,
|
|
BUS_TIMER = 5,
|
|
BUS_PIO = 6,
|
|
BUS_EDD = 7,
|
|
BUS_IDENTIFY = 8,
|
|
BUS_PACKET = 9,
|
|
PORT_UNKNOWN = 0,
|
|
PORT_ENABLED = 1,
|
|
PORT_DISABLED = 2,
|
|
ATA_NR_PIO_MODES = 7,
|
|
ATA_NR_MWDMA_MODES = 5,
|
|
ATA_NR_UDMA_MODES = 8,
|
|
ATA_SHIFT_PIO = 0,
|
|
ATA_SHIFT_MWDMA = 7,
|
|
ATA_SHIFT_UDMA = 12,
|
|
ATA_SHIFT_PRIO = 6,
|
|
ATA_PRIO_HIGH = 2,
|
|
ATA_DMA_PAD_SZ = 4,
|
|
ATA_ERING_SIZE = 32,
|
|
ATA_DEFER_LINK = 1,
|
|
ATA_DEFER_PORT = 2,
|
|
ATA_EH_DESC_LEN = 80,
|
|
ATA_EH_REVALIDATE = 1,
|
|
ATA_EH_SOFTRESET = 2,
|
|
ATA_EH_HARDRESET = 4,
|
|
ATA_EH_RESET = 6,
|
|
ATA_EH_ENABLE_LINK = 8,
|
|
ATA_EH_PARK = 32,
|
|
ATA_EH_PERDEV_MASK = 33,
|
|
ATA_EH_ALL_ACTIONS = 15,
|
|
ATA_EHI_HOTPLUGGED = 1,
|
|
ATA_EHI_NO_AUTOPSY = 4,
|
|
ATA_EHI_QUIET = 8,
|
|
ATA_EHI_NO_RECOVERY = 16,
|
|
ATA_EHI_DID_SOFTRESET = 65536,
|
|
ATA_EHI_DID_HARDRESET = 131072,
|
|
ATA_EHI_PRINTINFO = 262144,
|
|
ATA_EHI_SETMODE = 524288,
|
|
ATA_EHI_POST_SETMODE = 1048576,
|
|
ATA_EHI_DID_RESET = 196608,
|
|
ATA_EHI_TO_SLAVE_MASK = 12,
|
|
ATA_EH_MAX_TRIES = 5,
|
|
ATA_LINK_RESUME_TRIES = 5,
|
|
ATA_PROBE_MAX_TRIES = 3,
|
|
ATA_EH_DEV_TRIES = 3,
|
|
ATA_EH_PMP_TRIES = 5,
|
|
ATA_EH_PMP_LINK_TRIES = 3,
|
|
SATA_PMP_RW_TIMEOUT = 3000,
|
|
ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 7,
|
|
ATA_HORKAGE_DIAGNOSTIC = 1,
|
|
ATA_HORKAGE_NODMA = 2,
|
|
ATA_HORKAGE_NONCQ = 4,
|
|
ATA_HORKAGE_MAX_SEC_128 = 8,
|
|
ATA_HORKAGE_BROKEN_HPA = 16,
|
|
ATA_HORKAGE_DISABLE = 32,
|
|
ATA_HORKAGE_HPA_SIZE = 64,
|
|
ATA_HORKAGE_IVB = 256,
|
|
ATA_HORKAGE_STUCK_ERR = 512,
|
|
ATA_HORKAGE_BRIDGE_OK = 1024,
|
|
ATA_HORKAGE_ATAPI_MOD16_DMA = 2048,
|
|
ATA_HORKAGE_FIRMWARE_WARN = 4096,
|
|
ATA_HORKAGE_1_5_GBPS = 8192,
|
|
ATA_HORKAGE_NOSETXFER = 16384,
|
|
ATA_HORKAGE_BROKEN_FPDMA_AA = 32768,
|
|
ATA_HORKAGE_DUMP_ID = 65536,
|
|
ATA_HORKAGE_MAX_SEC_LBA48 = 131072,
|
|
ATA_HORKAGE_ATAPI_DMADIR = 262144,
|
|
ATA_HORKAGE_NO_NCQ_TRIM = 524288,
|
|
ATA_HORKAGE_NOLPM = 1048576,
|
|
ATA_HORKAGE_WD_BROKEN_LPM = 2097152,
|
|
ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304,
|
|
ATA_HORKAGE_NO_DMA_LOG = 8388608,
|
|
ATA_HORKAGE_NOTRIM = 16777216,
|
|
ATA_HORKAGE_MAX_SEC_1024 = 33554432,
|
|
ATA_HORKAGE_MAX_TRIM_128M = 67108864,
|
|
ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728,
|
|
ATA_HORKAGE_NO_ID_DEV_LOG = 268435456,
|
|
ATA_HORKAGE_NO_LOG_DIR = 536870912,
|
|
ATA_HORKAGE_NO_FUA = 1073741824,
|
|
ATA_DMA_MASK_ATA = 1,
|
|
ATA_DMA_MASK_ATAPI = 2,
|
|
ATA_DMA_MASK_CFA = 4,
|
|
ATAPI_READ = 0,
|
|
ATAPI_WRITE = 1,
|
|
ATAPI_READ_CD = 2,
|
|
ATAPI_PASS_THRU = 3,
|
|
ATAPI_MISC = 4,
|
|
ATA_TIMING_SETUP = 1,
|
|
ATA_TIMING_ACT8B = 2,
|
|
ATA_TIMING_REC8B = 4,
|
|
ATA_TIMING_CYC8B = 8,
|
|
ATA_TIMING_8BIT = 14,
|
|
ATA_TIMING_ACTIVE = 16,
|
|
ATA_TIMING_RECOVER = 32,
|
|
ATA_TIMING_DMACK_HOLD = 64,
|
|
ATA_TIMING_CYCLE = 128,
|
|
ATA_TIMING_UDMA = 256,
|
|
ATA_TIMING_ALL = 511,
|
|
ATA_ACPI_FILTER_SETXFER = 1,
|
|
ATA_ACPI_FILTER_LOCK = 2,
|
|
ATA_ACPI_FILTER_DIPM = 4,
|
|
ATA_ACPI_FILTER_FPDMA_OFFSET = 8,
|
|
ATA_ACPI_FILTER_FPDMA_AA = 16,
|
|
ATA_ACPI_FILTER_DEFAULT = 7,
|
|
};
|
|
|
|
enum hsm_task_states {
|
|
HSM_ST_IDLE = 0,
|
|
HSM_ST_FIRST = 1,
|
|
HSM_ST = 2,
|
|
HSM_ST_LAST = 3,
|
|
HSM_ST_ERR = 4,
|
|
};
|
|
|
|
enum ata_prot_flags {
|
|
ATA_PROT_FLAG_PIO = 1,
|
|
ATA_PROT_FLAG_DMA = 2,
|
|
ATA_PROT_FLAG_NCQ = 4,
|
|
ATA_PROT_FLAG_ATAPI = 8,
|
|
ATA_PROT_UNKNOWN = 255,
|
|
ATA_PROT_NODATA = 0,
|
|
ATA_PROT_PIO = 1,
|
|
ATA_PROT_DMA = 2,
|
|
ATA_PROT_NCQ_NODATA = 4,
|
|
ATA_PROT_NCQ = 6,
|
|
ATAPI_PROT_NODATA = 8,
|
|
ATAPI_PROT_PIO = 9,
|
|
ATAPI_PROT_DMA = 10,
|
|
};
|
|
|
|
struct ata_port_info {
|
|
unsigned long flags;
|
|
unsigned long link_flags;
|
|
unsigned int pio_mask;
|
|
unsigned int mwdma_mask;
|
|
unsigned int udma_mask;
|
|
struct ata_port_operations *port_ops;
|
|
void *private_data;
|
|
};
|
|
|
|
enum e1000_mac_type {
|
|
e1000_82571 = 0,
|
|
e1000_82572 = 1,
|
|
e1000_82573 = 2,
|
|
e1000_82574 = 3,
|
|
e1000_82583 = 4,
|
|
e1000_80003es2lan = 5,
|
|
e1000_ich8lan = 6,
|
|
e1000_ich9lan = 7,
|
|
e1000_ich10lan = 8,
|
|
e1000_pchlan = 9,
|
|
e1000_pch2lan = 10,
|
|
e1000_pch_lpt = 11,
|
|
e1000_pch_spt = 12,
|
|
e1000_pch_cnp = 13,
|
|
e1000_pch_tgp = 14,
|
|
e1000_pch_adp = 15,
|
|
e1000_pch_mtp = 16,
|
|
e1000_pch_lnp = 17,
|
|
e1000_pch_ptp = 18,
|
|
};
|
|
|
|
enum e1000_phy_type {
|
|
e1000_phy_unknown = 0,
|
|
e1000_phy_none = 1,
|
|
e1000_phy_m88 = 2,
|
|
e1000_phy_igp = 3,
|
|
e1000_phy_igp_2 = 4,
|
|
e1000_phy_gg82563 = 5,
|
|
e1000_phy_igp_3 = 6,
|
|
e1000_phy_ife = 7,
|
|
e1000_phy_bm = 8,
|
|
e1000_phy_82578 = 9,
|
|
e1000_phy_82577 = 10,
|
|
e1000_phy_82579 = 11,
|
|
e1000_phy_i217 = 12,
|
|
};
|
|
|
|
enum e1000_1000t_rx_status {
|
|
e1000_1000t_rx_status_not_ok = 0,
|
|
e1000_1000t_rx_status_ok = 1,
|
|
e1000_1000t_rx_status_undefined = 255,
|
|
};
|
|
|
|
enum e1000_ms_type {
|
|
e1000_ms_hw_default = 0,
|
|
e1000_ms_force_master = 1,
|
|
e1000_ms_force_slave = 2,
|
|
e1000_ms_auto = 3,
|
|
};
|
|
|
|
enum e1000_rev_polarity {
|
|
e1000_rev_polarity_normal = 0,
|
|
e1000_rev_polarity_reversed = 1,
|
|
e1000_rev_polarity_undefined = 255,
|
|
};
|
|
|
|
enum e1000_smart_speed {
|
|
e1000_smart_speed_default = 0,
|
|
e1000_smart_speed_on = 1,
|
|
e1000_smart_speed_off = 2,
|
|
};
|
|
|
|
enum e1000_media_type {
|
|
e1000_media_type_unknown = 0,
|
|
e1000_media_type_copper = 1,
|
|
e1000_media_type_fiber = 2,
|
|
e1000_media_type_internal_serdes = 3,
|
|
e1000_num_media_types = 4,
|
|
};
|
|
|
|
enum e1000_serdes_link_state {
|
|
e1000_serdes_link_down = 0,
|
|
e1000_serdes_link_autoneg_progress = 1,
|
|
e1000_serdes_link_autoneg_complete = 2,
|
|
e1000_serdes_link_forced_up = 3,
|
|
};
|
|
|
|
enum e1000_fc_mode {
|
|
e1000_fc_none = 0,
|
|
e1000_fc_rx_pause = 1,
|
|
e1000_fc_tx_pause = 2,
|
|
e1000_fc_full = 3,
|
|
e1000_fc_default = 255,
|
|
};
|
|
|
|
enum e1000_nvm_type {
|
|
e1000_nvm_unknown = 0,
|
|
e1000_nvm_none = 1,
|
|
e1000_nvm_eeprom_spi = 2,
|
|
e1000_nvm_flash_hw = 3,
|
|
e1000_nvm_flash_sw = 4,
|
|
};
|
|
|
|
enum e1000_nvm_override {
|
|
e1000_nvm_override_none = 0,
|
|
e1000_nvm_override_spi_small = 1,
|
|
e1000_nvm_override_spi_large = 2,
|
|
};
|
|
|
|
enum e1000_bus_width {
|
|
e1000_bus_width_unknown = 0,
|
|
e1000_bus_width_pcie_x1 = 1,
|
|
e1000_bus_width_pcie_x2 = 2,
|
|
e1000_bus_width_pcie_x4 = 4,
|
|
e1000_bus_width_pcie_x8 = 8,
|
|
e1000_bus_width_32 = 9,
|
|
e1000_bus_width_64 = 10,
|
|
e1000_bus_width_reserved = 11,
|
|
};
|
|
|
|
enum e1000_ulp_state {
|
|
e1000_ulp_state_unknown = 0,
|
|
e1000_ulp_state_off = 1,
|
|
e1000_ulp_state_on = 2,
|
|
};
|
|
|
|
enum e1000_mng_mode {
|
|
e1000_mng_mode_none = 0,
|
|
e1000_mng_mode_asf = 1,
|
|
e1000_mng_mode_pt = 2,
|
|
e1000_mng_mode_ipmi = 3,
|
|
e1000_mng_mode_host_if_only = 4,
|
|
};
|
|
|
|
struct e1000_dev_spec_82571 {
|
|
bool laa_is_present;
|
|
u32 smb_counter;
|
|
};
|
|
|
|
struct e1000_dev_spec_80003es2lan {
|
|
bool mdic_wa_enable;
|
|
};
|
|
|
|
struct e1000_shadow_ram {
|
|
u16 value;
|
|
bool modified;
|
|
};
|
|
|
|
struct e1000_dev_spec_ich8lan {
|
|
bool kmrn_lock_loss_workaround_enabled;
|
|
struct e1000_shadow_ram shadow_ram[2048];
|
|
bool nvm_k1_enabled;
|
|
bool eee_disable;
|
|
u16 eee_lp_ability;
|
|
enum e1000_ulp_state ulp_state;
|
|
};
|
|
|
|
struct e1000_hw;
|
|
|
|
struct e1000_mac_operations {
|
|
s32 (*id_led_init)(struct e1000_hw *);
|
|
s32 (*blink_led)(struct e1000_hw *);
|
|
bool (*check_mng_mode)(struct e1000_hw *);
|
|
s32 (*check_for_link)(struct e1000_hw *);
|
|
s32 (*cleanup_led)(struct e1000_hw *);
|
|
void (*clear_hw_cntrs)(struct e1000_hw *);
|
|
void (*clear_vfta)(struct e1000_hw *);
|
|
s32 (*get_bus_info)(struct e1000_hw *);
|
|
void (*set_lan_id)(struct e1000_hw *);
|
|
s32 (*get_link_up_info)(struct e1000_hw *, u16 *, u16 *);
|
|
s32 (*led_on)(struct e1000_hw *);
|
|
s32 (*led_off)(struct e1000_hw *);
|
|
void (*update_mc_addr_list)(struct e1000_hw *, u8 *, u32);
|
|
s32 (*reset_hw)(struct e1000_hw *);
|
|
s32 (*init_hw)(struct e1000_hw *);
|
|
s32 (*setup_link)(struct e1000_hw *);
|
|
s32 (*setup_physical_interface)(struct e1000_hw *);
|
|
s32 (*setup_led)(struct e1000_hw *);
|
|
void (*write_vfta)(struct e1000_hw *, u32, u32);
|
|
void (*config_collision_dist)(struct e1000_hw *);
|
|
int (*rar_set)(struct e1000_hw *, u8 *, u32);
|
|
s32 (*read_mac_addr)(struct e1000_hw *);
|
|
u32 (*rar_get_count)(struct e1000_hw *);
|
|
};
|
|
|
|
struct e1000_mac_info {
|
|
struct e1000_mac_operations ops;
|
|
u8 addr[6];
|
|
u8 perm_addr[6];
|
|
enum e1000_mac_type type;
|
|
u32 collision_delta;
|
|
u32 ledctl_default;
|
|
u32 ledctl_mode1;
|
|
u32 ledctl_mode2;
|
|
u32 mc_filter_type;
|
|
u32 tx_packet_delta;
|
|
u32 txcw;
|
|
u16 current_ifs_val;
|
|
u16 ifs_max_val;
|
|
u16 ifs_min_val;
|
|
u16 ifs_ratio;
|
|
u16 ifs_step_size;
|
|
u16 mta_reg_count;
|
|
u32 mta_shadow[128];
|
|
u16 rar_entry_count;
|
|
u8 forced_speed_duplex;
|
|
bool adaptive_ifs;
|
|
bool has_fwsm;
|
|
bool arc_subsystem_valid;
|
|
bool autoneg;
|
|
bool autoneg_failed;
|
|
bool get_link_status;
|
|
bool in_ifs_mode;
|
|
bool serdes_has_link;
|
|
bool tx_pkt_filtering;
|
|
enum e1000_serdes_link_state serdes_link_state;
|
|
};
|
|
|
|
struct e1000_fc_info {
|
|
u32 high_water;
|
|
u32 low_water;
|
|
u16 pause_time;
|
|
u16 refresh_time;
|
|
bool send_xon;
|
|
bool strict_ieee;
|
|
enum e1000_fc_mode current_mode;
|
|
enum e1000_fc_mode requested_mode;
|
|
};
|
|
|
|
struct e1000_phy_operations {
|
|
s32 (*acquire)(struct e1000_hw *);
|
|
s32 (*cfg_on_link_up)(struct e1000_hw *);
|
|
s32 (*check_polarity)(struct e1000_hw *);
|
|
s32 (*check_reset_block)(struct e1000_hw *);
|
|
s32 (*commit)(struct e1000_hw *);
|
|
s32 (*force_speed_duplex)(struct e1000_hw *);
|
|
s32 (*get_cfg_done)(struct e1000_hw *);
|
|
s32 (*get_cable_length)(struct e1000_hw *);
|
|
s32 (*get_info)(struct e1000_hw *);
|
|
s32 (*set_page)(struct e1000_hw *, u16);
|
|
s32 (*read_reg)(struct e1000_hw *, u32, u16 *);
|
|
s32 (*read_reg_locked)(struct e1000_hw *, u32, u16 *);
|
|
s32 (*read_reg_page)(struct e1000_hw *, u32, u16 *);
|
|
void (*release)(struct e1000_hw *);
|
|
s32 (*reset)(struct e1000_hw *);
|
|
s32 (*set_d0_lplu_state)(struct e1000_hw *, bool);
|
|
s32 (*set_d3_lplu_state)(struct e1000_hw *, bool);
|
|
s32 (*write_reg)(struct e1000_hw *, u32, u16);
|
|
s32 (*write_reg_locked)(struct e1000_hw *, u32, u16);
|
|
s32 (*write_reg_page)(struct e1000_hw *, u32, u16);
|
|
void (*power_up)(struct e1000_hw *);
|
|
void (*power_down)(struct e1000_hw *);
|
|
};
|
|
|
|
struct e1000_phy_info {
|
|
struct e1000_phy_operations ops;
|
|
enum e1000_phy_type type;
|
|
enum e1000_1000t_rx_status local_rx;
|
|
enum e1000_1000t_rx_status remote_rx;
|
|
enum e1000_ms_type ms_type;
|
|
enum e1000_ms_type original_ms_type;
|
|
enum e1000_rev_polarity cable_polarity;
|
|
enum e1000_smart_speed smart_speed;
|
|
u32 addr;
|
|
u32 id;
|
|
u32 reset_delay_us;
|
|
u32 revision;
|
|
enum e1000_media_type media_type;
|
|
u16 autoneg_advertised;
|
|
u16 autoneg_mask;
|
|
u16 cable_length;
|
|
u16 max_cable_length;
|
|
u16 min_cable_length;
|
|
u8 mdix;
|
|
bool disable_polarity_correction;
|
|
bool is_mdix;
|
|
bool polarity_correction;
|
|
bool speed_downgraded;
|
|
bool autoneg_wait_to_complete;
|
|
};
|
|
|
|
struct e1000_nvm_operations {
|
|
s32 (*acquire)(struct e1000_hw *);
|
|
s32 (*read)(struct e1000_hw *, u16, u16, u16 *);
|
|
void (*release)(struct e1000_hw *);
|
|
void (*reload)(struct e1000_hw *);
|
|
s32 (*update)(struct e1000_hw *);
|
|
s32 (*valid_led_default)(struct e1000_hw *, u16 *);
|
|
s32 (*validate)(struct e1000_hw *);
|
|
s32 (*write)(struct e1000_hw *, u16, u16, u16 *);
|
|
};
|
|
|
|
struct e1000_nvm_info {
|
|
struct e1000_nvm_operations ops;
|
|
enum e1000_nvm_type type;
|
|
enum e1000_nvm_override override;
|
|
u32 flash_bank_size;
|
|
u32 flash_base_addr;
|
|
u16 word_size;
|
|
u16 delay_usec;
|
|
u16 address_bits;
|
|
u16 opcode_bits;
|
|
u16 page_size;
|
|
};
|
|
|
|
struct e1000_bus_info {
|
|
enum e1000_bus_width width;
|
|
u16 func;
|
|
};
|
|
|
|
struct e1000_host_mng_dhcp_cookie {
|
|
u32 signature;
|
|
u8 status;
|
|
u8 reserved0;
|
|
u16 vlan_id;
|
|
u32 reserved1;
|
|
u16 reserved2;
|
|
u8 reserved3;
|
|
u8 checksum;
|
|
};
|
|
|
|
struct e1000_adapter;
|
|
|
|
struct e1000_hw {
|
|
struct e1000_adapter *adapter;
|
|
void *hw_addr;
|
|
void *flash_address;
|
|
struct e1000_mac_info mac;
|
|
struct e1000_fc_info fc;
|
|
struct e1000_phy_info phy;
|
|
struct e1000_nvm_info nvm;
|
|
struct e1000_bus_info bus;
|
|
struct e1000_host_mng_dhcp_cookie mng_cookie;
|
|
union {
|
|
struct e1000_dev_spec_82571 e82571;
|
|
struct e1000_dev_spec_80003es2lan e80003es2lan;
|
|
struct e1000_dev_spec_ich8lan ich8lan;
|
|
} dev_spec;
|
|
};
|
|
|
|
struct e1000_hw_stats {
|
|
u64 crcerrs;
|
|
u64 algnerrc;
|
|
u64 symerrs;
|
|
u64 rxerrc;
|
|
u64 mpc;
|
|
u64 scc;
|
|
u64 ecol;
|
|
u64 mcc;
|
|
u64 latecol;
|
|
u64 colc;
|
|
u64 dc;
|
|
u64 tncrs;
|
|
u64 sec;
|
|
u64 cexterr;
|
|
u64 rlec;
|
|
u64 xonrxc;
|
|
u64 xontxc;
|
|
u64 xoffrxc;
|
|
u64 xofftxc;
|
|
u64 fcruc;
|
|
u64 prc64;
|
|
u64 prc127;
|
|
u64 prc255;
|
|
u64 prc511;
|
|
u64 prc1023;
|
|
u64 prc1522;
|
|
u64 gprc;
|
|
u64 bprc;
|
|
u64 mprc;
|
|
u64 gptc;
|
|
u64 gorc;
|
|
u64 gotc;
|
|
u64 rnbc;
|
|
u64 ruc;
|
|
u64 rfc;
|
|
u64 roc;
|
|
u64 rjc;
|
|
u64 mgprc;
|
|
u64 mgpdc;
|
|
u64 mgptc;
|
|
u64 tor;
|
|
u64 tot;
|
|
u64 tpr;
|
|
u64 tpt;
|
|
u64 ptc64;
|
|
u64 ptc127;
|
|
u64 ptc255;
|
|
u64 ptc511;
|
|
u64 ptc1023;
|
|
u64 ptc1522;
|
|
u64 mptc;
|
|
u64 bptc;
|
|
u64 tsctc;
|
|
u64 tsctfc;
|
|
u64 iac;
|
|
u64 icrxptc;
|
|
u64 icrxatc;
|
|
u64 ictxptc;
|
|
u64 ictxatc;
|
|
u64 ictxqec;
|
|
u64 ictxqmtc;
|
|
u64 icrxdmtc;
|
|
u64 icrxoc;
|
|
};
|
|
|
|
struct e1000_phy_stats {
|
|
u32 idle_errors;
|
|
u32 receive_errors;
|
|
};
|
|
|
|
struct e1000_phy_regs {
|
|
u16 bmcr;
|
|
u16 bmsr;
|
|
u16 advertise;
|
|
u16 lpa;
|
|
u16 expansion;
|
|
u16 ctrl1000;
|
|
u16 stat1000;
|
|
u16 estatus;
|
|
};
|
|
|
|
struct e1000_buffer;
|
|
|
|
struct e1000_ring {
|
|
struct e1000_adapter *adapter;
|
|
void *desc;
|
|
dma_addr_t dma;
|
|
unsigned int size;
|
|
unsigned int count;
|
|
u16 next_to_use;
|
|
u16 next_to_clean;
|
|
void *head;
|
|
void *tail;
|
|
struct e1000_buffer *buffer_info;
|
|
char name[21];
|
|
u32 ims_val;
|
|
u32 itr_val;
|
|
void *itr_register;
|
|
int set_itr;
|
|
struct sk_buff *rx_skb_top;
|
|
};
|
|
|
|
struct hwtstamp_config {
|
|
int flags;
|
|
int tx_type;
|
|
int rx_filter;
|
|
};
|
|
|
|
struct ptp_clock;
|
|
|
|
struct e1000_info;
|
|
|
|
struct e1000_adapter {
|
|
struct timer_list watchdog_timer;
|
|
struct timer_list phy_info_timer;
|
|
struct timer_list blink_timer;
|
|
struct work_struct reset_task;
|
|
struct work_struct watchdog_task;
|
|
const struct e1000_info *ei;
|
|
unsigned long active_vlans[64];
|
|
u32 bd_number;
|
|
u32 rx_buffer_len;
|
|
u16 mng_vlan_id;
|
|
u16 link_speed;
|
|
u16 link_duplex;
|
|
u16 eeprom_vers;
|
|
unsigned long state;
|
|
u32 itr;
|
|
u32 itr_setting;
|
|
u16 tx_itr;
|
|
u16 rx_itr;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct e1000_ring *tx_ring;
|
|
u32 tx_fifo_limit;
|
|
struct napi_struct napi;
|
|
unsigned int uncorr_errors;
|
|
unsigned int corr_errors;
|
|
unsigned int restart_queue;
|
|
u32 txd_cmd;
|
|
bool detect_tx_hung;
|
|
bool tx_hang_recheck;
|
|
u8 tx_timeout_factor;
|
|
u32 tx_int_delay;
|
|
u32 tx_abs_int_delay;
|
|
unsigned int total_tx_bytes;
|
|
unsigned int total_tx_packets;
|
|
unsigned int total_rx_bytes;
|
|
unsigned int total_rx_packets;
|
|
u64 tpt_old;
|
|
u64 colc_old;
|
|
u32 gotc;
|
|
u64 gotc_old;
|
|
u32 tx_timeout_count;
|
|
u32 tx_fifo_head;
|
|
u32 tx_head_addr;
|
|
u32 tx_fifo_size;
|
|
u32 tx_dma_failed;
|
|
u32 tx_hwtstamp_timeouts;
|
|
u32 tx_hwtstamp_skipped;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
bool (*clean_rx)(struct e1000_ring *, int *, int);
|
|
void (*alloc_rx_buf)(struct e1000_ring *, int, gfp_t);
|
|
struct e1000_ring *rx_ring;
|
|
u32 rx_int_delay;
|
|
u32 rx_abs_int_delay;
|
|
u64 hw_csum_err;
|
|
u64 hw_csum_good;
|
|
u64 rx_hdr_split;
|
|
u32 gorc;
|
|
u64 gorc_old;
|
|
u32 alloc_rx_buff_failed;
|
|
u32 rx_dma_failed;
|
|
u32 rx_hwtstamp_cleared;
|
|
unsigned int rx_ps_pages;
|
|
u16 rx_ps_bsize0;
|
|
u32 max_frame_size;
|
|
u32 min_frame_size;
|
|
struct net_device *netdev;
|
|
struct pci_dev *pdev;
|
|
struct e1000_hw hw;
|
|
spinlock_t stats64_lock;
|
|
struct e1000_hw_stats stats;
|
|
struct e1000_phy_info phy_info;
|
|
struct e1000_phy_stats phy_stats;
|
|
struct e1000_phy_regs phy_regs;
|
|
struct e1000_ring test_tx_ring;
|
|
struct e1000_ring test_rx_ring;
|
|
u32 test_icr;
|
|
u32 msg_enable;
|
|
unsigned int num_vectors;
|
|
struct msix_entry *msix_entries;
|
|
int int_mode;
|
|
u32 eiac_mask;
|
|
u32 eeprom_wol;
|
|
u32 wol;
|
|
u32 pba;
|
|
u32 max_hw_frame_size;
|
|
bool fc_autoneg;
|
|
unsigned int flags;
|
|
unsigned int flags2;
|
|
struct work_struct downshift_task;
|
|
struct work_struct update_phy_task;
|
|
struct work_struct print_hang_task;
|
|
int phy_hang_count;
|
|
u16 tx_ring_count;
|
|
u16 rx_ring_count;
|
|
struct hwtstamp_config hwtstamp_config;
|
|
struct delayed_work systim_overflow_work;
|
|
struct sk_buff *tx_hwtstamp_skb;
|
|
unsigned long tx_hwtstamp_start;
|
|
struct work_struct tx_hwtstamp_work;
|
|
spinlock_t systim_lock;
|
|
struct cyclecounter cc;
|
|
struct timecounter tc;
|
|
struct ptp_clock *ptp_clock;
|
|
struct ptp_clock_info ptp_clock_info;
|
|
struct pm_qos_request pm_qos_req;
|
|
long ptp_delta;
|
|
u16 eee_advert;
|
|
long: 48;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct e1000_info {
|
|
enum e1000_mac_type mac;
|
|
unsigned int flags;
|
|
unsigned int flags2;
|
|
u32 pba;
|
|
u32 max_hw_frame_size;
|
|
s32 (*get_variants)(struct e1000_adapter *);
|
|
const struct e1000_mac_operations *mac_ops;
|
|
const struct e1000_phy_operations *phy_ops;
|
|
const struct e1000_nvm_operations *nvm_ops;
|
|
};
|
|
|
|
struct e1000_ps_page;
|
|
|
|
struct e1000_buffer {
|
|
dma_addr_t dma;
|
|
struct sk_buff *skb;
|
|
union {
|
|
struct {
|
|
unsigned long time_stamp;
|
|
u16 length;
|
|
u16 next_to_watch;
|
|
unsigned int segs;
|
|
unsigned int bytecount;
|
|
u16 mapped_as_page;
|
|
};
|
|
struct {
|
|
struct e1000_ps_page *ps_pages;
|
|
struct page *page;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct e1000_ps_page {
|
|
struct page *page;
|
|
u64 dma;
|
|
};
|
|
|
|
struct e1000_host_mng_command_header {
|
|
u8 command_id;
|
|
u8 checksum;
|
|
u16 reserved1;
|
|
u16 reserved2;
|
|
u16 command_length;
|
|
};
|
|
|
|
struct ohci {
|
|
void *registers;
|
|
};
|
|
|
|
struct usb_dynids {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct usbdrv_wrap {
|
|
struct device_driver driver;
|
|
int for_devices;
|
|
};
|
|
|
|
struct usb_device_id;
|
|
|
|
struct usb_driver {
|
|
const char *name;
|
|
int (*probe)(struct usb_interface *, const struct usb_device_id *);
|
|
void (*disconnect)(struct usb_interface *);
|
|
int (*unlocked_ioctl)(struct usb_interface *, unsigned int, void *);
|
|
int (*suspend)(struct usb_interface *, pm_message_t);
|
|
int (*resume)(struct usb_interface *);
|
|
int (*reset_resume)(struct usb_interface *);
|
|
int (*pre_reset)(struct usb_interface *);
|
|
int (*post_reset)(struct usb_interface *);
|
|
const struct usb_device_id *id_table;
|
|
const struct attribute_group **dev_groups;
|
|
struct usb_dynids dynids;
|
|
struct usbdrv_wrap drvwrap;
|
|
unsigned int no_dynamic_id: 1;
|
|
unsigned int supports_autosuspend: 1;
|
|
unsigned int disable_hub_initiated_lpm: 1;
|
|
unsigned int soft_unbind: 1;
|
|
};
|
|
|
|
struct usb_device_id {
|
|
__u16 match_flags;
|
|
__u16 idVendor;
|
|
__u16 idProduct;
|
|
__u16 bcdDevice_lo;
|
|
__u16 bcdDevice_hi;
|
|
__u8 bDeviceClass;
|
|
__u8 bDeviceSubClass;
|
|
__u8 bDeviceProtocol;
|
|
__u8 bInterfaceClass;
|
|
__u8 bInterfaceSubClass;
|
|
__u8 bInterfaceProtocol;
|
|
__u8 bInterfaceNumber;
|
|
kernel_ulong_t driver_info;
|
|
};
|
|
|
|
struct ignore_entry {
|
|
u16 vid;
|
|
u16 pid;
|
|
u16 bcdmin;
|
|
u16 bcdmax;
|
|
};
|
|
|
|
struct vivaldi_data {
|
|
u32 function_row_physmap[24];
|
|
unsigned int num_function_row_keys;
|
|
};
|
|
|
|
struct atkbd {
|
|
struct ps2dev ps2dev;
|
|
struct input_dev *dev;
|
|
char name[64];
|
|
char phys[32];
|
|
unsigned short id;
|
|
unsigned short keycode[512];
|
|
unsigned long force_release_mask[8];
|
|
unsigned char set;
|
|
bool translated;
|
|
bool extra;
|
|
bool write;
|
|
bool softrepeat;
|
|
bool softraw;
|
|
bool scroll;
|
|
bool enabled;
|
|
unsigned char emul;
|
|
bool resend;
|
|
bool release;
|
|
unsigned long xl_bit;
|
|
unsigned int last;
|
|
unsigned long time;
|
|
unsigned long err_count;
|
|
struct delayed_work event_work;
|
|
unsigned long event_jiffies;
|
|
unsigned long event_mask;
|
|
struct mutex mutex;
|
|
struct vivaldi_data vdata;
|
|
};
|
|
|
|
enum thermal_device_mode {
|
|
THERMAL_DEVICE_DISABLED = 0,
|
|
THERMAL_DEVICE_ENABLED = 1,
|
|
};
|
|
|
|
enum thermal_trip_type {
|
|
THERMAL_TRIP_ACTIVE = 0,
|
|
THERMAL_TRIP_PASSIVE = 1,
|
|
THERMAL_TRIP_HOT = 2,
|
|
THERMAL_TRIP_CRITICAL = 3,
|
|
};
|
|
|
|
enum thermal_trend {
|
|
THERMAL_TREND_STABLE = 0,
|
|
THERMAL_TREND_RAISING = 1,
|
|
THERMAL_TREND_DROPPING = 2,
|
|
};
|
|
|
|
enum thermal_notify_event {
|
|
THERMAL_EVENT_UNSPECIFIED = 0,
|
|
THERMAL_EVENT_TEMP_SAMPLE = 1,
|
|
THERMAL_TRIP_VIOLATED = 2,
|
|
THERMAL_TRIP_CHANGED = 3,
|
|
THERMAL_DEVICE_DOWN = 4,
|
|
THERMAL_DEVICE_UP = 5,
|
|
THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6,
|
|
THERMAL_TABLE_CHANGED = 7,
|
|
THERMAL_EVENT_KEEP_ALIVE = 8,
|
|
};
|
|
|
|
struct thermal_attr;
|
|
|
|
struct thermal_trip;
|
|
|
|
struct thermal_zone_device_ops;
|
|
|
|
struct thermal_zone_params;
|
|
|
|
struct thermal_governor;
|
|
|
|
struct thermal_zone_device {
|
|
int id;
|
|
char type[20];
|
|
struct device device;
|
|
struct attribute_group trips_attribute_group;
|
|
struct thermal_attr *trip_temp_attrs;
|
|
struct thermal_attr *trip_type_attrs;
|
|
struct thermal_attr *trip_hyst_attrs;
|
|
enum thermal_device_mode mode;
|
|
void *devdata;
|
|
struct thermal_trip *trips;
|
|
int num_trips;
|
|
unsigned long trips_disabled;
|
|
unsigned long passive_delay_jiffies;
|
|
unsigned long polling_delay_jiffies;
|
|
int temperature;
|
|
int last_temperature;
|
|
int emul_temperature;
|
|
int passive;
|
|
int prev_low_trip;
|
|
int prev_high_trip;
|
|
atomic_t need_update;
|
|
struct thermal_zone_device_ops *ops;
|
|
struct thermal_zone_params *tzp;
|
|
struct thermal_governor *governor;
|
|
void *governor_data;
|
|
struct list_head thermal_instances;
|
|
struct ida ida;
|
|
struct mutex lock;
|
|
struct list_head node;
|
|
struct delayed_work poll_queue;
|
|
enum thermal_notify_event notify_event;
|
|
};
|
|
|
|
struct thermal_attr {
|
|
struct device_attribute attr;
|
|
char name[20];
|
|
};
|
|
|
|
struct thermal_trip {
|
|
int temperature;
|
|
int hysteresis;
|
|
enum thermal_trip_type type;
|
|
};
|
|
|
|
struct thermal_zone_device_ops {
|
|
int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *);
|
|
int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *);
|
|
int (*get_temp)(struct thermal_zone_device *, int *);
|
|
int (*set_trips)(struct thermal_zone_device *, int, int);
|
|
int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode);
|
|
int (*get_trip_type)(struct thermal_zone_device *, int, enum thermal_trip_type *);
|
|
int (*get_trip_temp)(struct thermal_zone_device *, int, int *);
|
|
int (*set_trip_temp)(struct thermal_zone_device *, int, int);
|
|
int (*get_trip_hyst)(struct thermal_zone_device *, int, int *);
|
|
int (*set_trip_hyst)(struct thermal_zone_device *, int, int);
|
|
int (*get_crit_temp)(struct thermal_zone_device *, int *);
|
|
int (*set_emul_temp)(struct thermal_zone_device *, int);
|
|
int (*get_trend)(struct thermal_zone_device *, int, enum thermal_trend *);
|
|
void (*hot)(struct thermal_zone_device *);
|
|
void (*critical)(struct thermal_zone_device *);
|
|
};
|
|
|
|
struct thermal_bind_params;
|
|
|
|
struct thermal_zone_params {
|
|
char governor_name[20];
|
|
bool no_hwmon;
|
|
int num_tbps;
|
|
struct thermal_bind_params *tbp;
|
|
u32 sustainable_power;
|
|
s32 k_po;
|
|
s32 k_pu;
|
|
s32 k_i;
|
|
s32 k_d;
|
|
s32 integral_cutoff;
|
|
int slope;
|
|
int offset;
|
|
};
|
|
|
|
struct thermal_bind_params {
|
|
struct thermal_cooling_device *cdev;
|
|
int weight;
|
|
int trip_mask;
|
|
unsigned long *binding_limits;
|
|
int (*match)(struct thermal_zone_device *, struct thermal_cooling_device *);
|
|
};
|
|
|
|
struct thermal_governor {
|
|
char name[20];
|
|
int (*bind_to_tz)(struct thermal_zone_device *);
|
|
void (*unbind_from_tz)(struct thermal_zone_device *);
|
|
int (*throttle)(struct thermal_zone_device *, int);
|
|
struct list_head governor_list;
|
|
};
|
|
|
|
struct dm_ioctl;
|
|
|
|
typedef int (*ioctl_fn)(struct file *, struct dm_ioctl *, size_t);
|
|
|
|
struct dm_ioctl {
|
|
__u32 version[3];
|
|
__u32 data_size;
|
|
__u32 data_start;
|
|
__u32 target_count;
|
|
__s32 open_count;
|
|
__u32 flags;
|
|
__u32 event_nr;
|
|
__u32 padding;
|
|
__u64 dev;
|
|
char name[128];
|
|
char uuid[129];
|
|
char data[7];
|
|
};
|
|
|
|
enum {
|
|
DM_VERSION_CMD = 0,
|
|
DM_REMOVE_ALL_CMD = 1,
|
|
DM_LIST_DEVICES_CMD = 2,
|
|
DM_DEV_CREATE_CMD = 3,
|
|
DM_DEV_REMOVE_CMD = 4,
|
|
DM_DEV_RENAME_CMD = 5,
|
|
DM_DEV_SUSPEND_CMD = 6,
|
|
DM_DEV_STATUS_CMD = 7,
|
|
DM_DEV_WAIT_CMD = 8,
|
|
DM_TABLE_LOAD_CMD = 9,
|
|
DM_TABLE_CLEAR_CMD = 10,
|
|
DM_TABLE_DEPS_CMD = 11,
|
|
DM_TABLE_STATUS_CMD = 12,
|
|
DM_LIST_VERSIONS_CMD = 13,
|
|
DM_TARGET_MSG_CMD = 14,
|
|
DM_DEV_SET_GEOMETRY_CMD = 15,
|
|
DM_DEV_ARM_POLL_CMD = 16,
|
|
DM_GET_TARGET_VERSION_CMD = 17,
|
|
};
|
|
|
|
struct hash_cell {
|
|
struct rb_node name_node;
|
|
struct rb_node uuid_node;
|
|
bool name_set;
|
|
bool uuid_set;
|
|
char *name;
|
|
char *uuid;
|
|
struct mapped_device *md;
|
|
struct dm_table *new_map;
|
|
};
|
|
|
|
struct dm_target_spec {
|
|
__u64 sector_start;
|
|
__u64 length;
|
|
__s32 status;
|
|
__u32 next;
|
|
char target_type[16];
|
|
};
|
|
|
|
struct dm_dev_internal {
|
|
struct list_head list;
|
|
refcount_t count;
|
|
struct dm_dev *dm_dev;
|
|
};
|
|
|
|
struct dm_target_msg {
|
|
__u64 sector;
|
|
char message[0];
|
|
};
|
|
|
|
typedef unsigned long ulong;
|
|
|
|
struct dm_target_deps {
|
|
__u32 count;
|
|
__u32 padding;
|
|
__u64 dev[0];
|
|
};
|
|
|
|
struct dm_target_versions;
|
|
|
|
struct vers_iter {
|
|
size_t param_size;
|
|
struct dm_target_versions *vers;
|
|
struct dm_target_versions *old_vers;
|
|
char *end;
|
|
uint32_t flags;
|
|
};
|
|
|
|
struct dm_target_versions {
|
|
__u32 next;
|
|
__u32 version[3];
|
|
char name[0];
|
|
};
|
|
|
|
struct dm_file {
|
|
volatile unsigned int global_event_nr;
|
|
};
|
|
|
|
struct dm_name_list {
|
|
__u64 dev;
|
|
__u32 next;
|
|
char name[0];
|
|
};
|
|
|
|
struct apple_key_translation {
|
|
u16 from;
|
|
u16 to;
|
|
u8 flags;
|
|
};
|
|
|
|
struct apple_non_apple_keyboard {
|
|
char *name;
|
|
};
|
|
|
|
struct apple_sc_backlight;
|
|
|
|
struct apple_sc {
|
|
struct hid_device *hdev;
|
|
unsigned long quirks;
|
|
unsigned int fn_on;
|
|
unsigned int fn_found;
|
|
unsigned long pressed_numlock[12];
|
|
struct timer_list battery_timer;
|
|
struct apple_sc_backlight *backlight;
|
|
};
|
|
|
|
struct apple_sc_backlight {
|
|
struct led_classdev cdev;
|
|
struct hid_device *hdev;
|
|
unsigned short backlight_off;
|
|
unsigned short backlight_on_min;
|
|
unsigned short backlight_on_max;
|
|
};
|
|
|
|
struct apple_backlight_config_report {
|
|
u8 report_id;
|
|
u8 version;
|
|
u16 backlight_off;
|
|
u16 backlight_on_min;
|
|
u16 backlight_on_max;
|
|
};
|
|
|
|
struct apple_backlight_set_report {
|
|
u8 report_id;
|
|
u8 version;
|
|
u16 backlight;
|
|
u16 rate;
|
|
};
|
|
|
|
struct led_init_data {
|
|
struct fwnode_handle *fwnode;
|
|
const char *default_label;
|
|
const char *devicename;
|
|
bool devname_mandatory;
|
|
};
|
|
|
|
enum nvmem_type {
|
|
NVMEM_TYPE_UNKNOWN = 0,
|
|
NVMEM_TYPE_EEPROM = 1,
|
|
NVMEM_TYPE_OTP = 2,
|
|
NVMEM_TYPE_BATTERY_BACKED = 3,
|
|
NVMEM_TYPE_FRAM = 4,
|
|
};
|
|
|
|
enum {
|
|
NVMEM_ADD = 1,
|
|
NVMEM_REMOVE = 2,
|
|
NVMEM_CELL_ADD = 3,
|
|
NVMEM_CELL_REMOVE = 4,
|
|
};
|
|
|
|
typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t);
|
|
|
|
typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t);
|
|
|
|
typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t);
|
|
|
|
struct nvmem_keepout;
|
|
|
|
struct nvmem_device {
|
|
struct module *owner;
|
|
struct device dev;
|
|
int stride;
|
|
int word_size;
|
|
int id;
|
|
struct kref refcnt;
|
|
size_t size;
|
|
bool read_only;
|
|
bool root_only;
|
|
int flags;
|
|
enum nvmem_type type;
|
|
struct bin_attribute eeprom;
|
|
struct device *base_dev;
|
|
struct list_head cells;
|
|
const struct nvmem_keepout *keepout;
|
|
unsigned int nkeepout;
|
|
nvmem_reg_read_t reg_read;
|
|
nvmem_reg_write_t reg_write;
|
|
nvmem_cell_post_process_t cell_post_process;
|
|
struct gpio_desc *wp_gpio;
|
|
void *priv;
|
|
};
|
|
|
|
struct nvmem_keepout {
|
|
unsigned int start;
|
|
unsigned int end;
|
|
unsigned char value;
|
|
};
|
|
|
|
struct nvmem_cell_info;
|
|
|
|
struct nvmem_cell_table {
|
|
const char *nvmem_name;
|
|
const struct nvmem_cell_info *cells;
|
|
size_t ncells;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct nvmem_cell_info {
|
|
const char *name;
|
|
unsigned int offset;
|
|
unsigned int bytes;
|
|
unsigned int bit_offset;
|
|
unsigned int nbits;
|
|
struct device_node *np;
|
|
};
|
|
|
|
struct nvmem_cell_entry {
|
|
const char *name;
|
|
int offset;
|
|
int bytes;
|
|
int bit_offset;
|
|
int nbits;
|
|
struct device_node *np;
|
|
struct nvmem_device *nvmem;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct nvmem_cell_lookup {
|
|
const char *nvmem_name;
|
|
const char *cell_name;
|
|
const char *dev_id;
|
|
const char *con_id;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct nvmem_cell {
|
|
struct nvmem_cell_entry *entry;
|
|
const char *id;
|
|
int index;
|
|
};
|
|
|
|
struct nvmem_config {
|
|
struct device *dev;
|
|
const char *name;
|
|
int id;
|
|
struct module *owner;
|
|
const struct nvmem_cell_info *cells;
|
|
int ncells;
|
|
const struct nvmem_keepout *keepout;
|
|
unsigned int nkeepout;
|
|
enum nvmem_type type;
|
|
bool read_only;
|
|
bool root_only;
|
|
bool ignore_wp;
|
|
struct device_node *of_node;
|
|
bool no_of_node;
|
|
nvmem_reg_read_t reg_read;
|
|
nvmem_reg_write_t reg_write;
|
|
nvmem_cell_post_process_t cell_post_process;
|
|
int size;
|
|
int word_size;
|
|
int stride;
|
|
void *priv;
|
|
bool compat;
|
|
struct device *base_dev;
|
|
};
|
|
|
|
struct azx;
|
|
|
|
struct azx_dev;
|
|
|
|
typedef void (*btf_trace_azx_pcm_trigger)(void *, struct azx *, struct azx_dev *, int);
|
|
|
|
struct hda_bus {
|
|
struct hdac_bus core;
|
|
struct snd_card *card;
|
|
struct pci_dev *pci;
|
|
const char *modelname;
|
|
struct mutex prepare_mutex;
|
|
unsigned long pcm_dev_bits[1];
|
|
unsigned int allow_bus_reset: 1;
|
|
unsigned int shutdown: 1;
|
|
unsigned int response_reset: 1;
|
|
unsigned int in_reset: 1;
|
|
unsigned int no_response_fallback: 1;
|
|
unsigned int bus_probing: 1;
|
|
unsigned int keep_power: 1;
|
|
unsigned int jackpoll_in_suspend: 1;
|
|
int primary_dig_out_type;
|
|
unsigned int mixer_assigned;
|
|
};
|
|
|
|
typedef unsigned int (*azx_get_pos_callback_t)(struct azx *, struct azx_dev *);
|
|
|
|
typedef int (*azx_get_delay_callback_t)(struct azx *, struct azx_dev *, unsigned int);
|
|
|
|
struct hda_controller_ops;
|
|
|
|
struct azx {
|
|
struct hda_bus bus;
|
|
struct snd_card *card;
|
|
struct pci_dev *pci;
|
|
int dev_index;
|
|
int driver_type;
|
|
unsigned int driver_caps;
|
|
int playback_streams;
|
|
int playback_index_offset;
|
|
int capture_streams;
|
|
int capture_index_offset;
|
|
int num_streams;
|
|
int jackpoll_interval;
|
|
const struct hda_controller_ops *ops;
|
|
azx_get_pos_callback_t get_position[2];
|
|
azx_get_delay_callback_t get_delay[2];
|
|
struct mutex open_mutex;
|
|
struct list_head pcm_list;
|
|
int codec_probe_mask;
|
|
unsigned int beep_mode;
|
|
bool ctl_dev_id;
|
|
int bdl_pos_adj;
|
|
unsigned int running: 1;
|
|
unsigned int fallback_to_single_cmd: 1;
|
|
unsigned int single_cmd: 1;
|
|
unsigned int msi: 1;
|
|
unsigned int probing: 1;
|
|
unsigned int snoop: 1;
|
|
unsigned int uc_buffer: 1;
|
|
unsigned int align_buffer_size: 1;
|
|
unsigned int disabled: 1;
|
|
unsigned int pm_prepared: 1;
|
|
unsigned int gts_present: 1;
|
|
};
|
|
|
|
struct hda_controller_ops {
|
|
int (*disable_msi_reset_irq)(struct azx *);
|
|
int (*position_check)(struct azx *, struct azx_dev *);
|
|
int (*link_power)(struct azx *, bool);
|
|
};
|
|
|
|
struct snd_compr_stream;
|
|
|
|
struct hdac_stream {
|
|
struct hdac_bus *bus;
|
|
struct snd_dma_buffer bdl;
|
|
__le32 *posbuf;
|
|
int direction;
|
|
unsigned int bufsize;
|
|
unsigned int period_bytes;
|
|
unsigned int frags;
|
|
unsigned int fifo_size;
|
|
void *sd_addr;
|
|
void *spib_addr;
|
|
void *fifo_addr;
|
|
void *dpibr_addr;
|
|
u32 dpib;
|
|
u32 lpib;
|
|
u32 sd_int_sta_mask;
|
|
struct snd_pcm_substream *substream;
|
|
struct snd_compr_stream *cstream;
|
|
unsigned int format_val;
|
|
unsigned char stream_tag;
|
|
unsigned char index;
|
|
int assigned_key;
|
|
bool opened: 1;
|
|
bool running: 1;
|
|
bool prepared: 1;
|
|
bool no_period_wakeup: 1;
|
|
bool locked: 1;
|
|
bool stripe: 1;
|
|
u64 curr_pos;
|
|
unsigned long start_wallclk;
|
|
unsigned long period_wallclk;
|
|
struct timecounter tc;
|
|
struct cyclecounter cc;
|
|
int delay_negative_threshold;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct azx_dev {
|
|
struct hdac_stream core;
|
|
unsigned int irq_pending: 1;
|
|
unsigned int insufficient: 1;
|
|
};
|
|
|
|
typedef void (*btf_trace_azx_get_position)(void *, struct azx *, struct azx_dev *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_azx_pcm_open)(void *, struct azx *, struct azx_dev *);
|
|
|
|
typedef void (*btf_trace_azx_pcm_close)(void *, struct azx *, struct azx_dev *);
|
|
|
|
typedef void (*btf_trace_azx_pcm_hw_params)(void *, struct azx *, struct azx_dev *);
|
|
|
|
typedef void (*btf_trace_azx_pcm_prepare)(void *, struct azx *, struct azx_dev *);
|
|
|
|
enum {
|
|
HDA_PCM_TYPE_AUDIO = 0,
|
|
HDA_PCM_TYPE_SPDIF = 1,
|
|
HDA_PCM_TYPE_HDMI = 2,
|
|
HDA_PCM_TYPE_MODEM = 3,
|
|
HDA_PCM_NTYPES = 4,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_CLASS_GENERIC = 0,
|
|
SNDRV_PCM_CLASS_MULTI = 1,
|
|
SNDRV_PCM_CLASS_MODEM = 2,
|
|
SNDRV_PCM_CLASS_DIGITIZER = 3,
|
|
SNDRV_PCM_CLASS_LAST = 3,
|
|
};
|
|
|
|
struct hda_codec;
|
|
|
|
struct hda_pcm;
|
|
|
|
struct azx_pcm {
|
|
struct azx *chip;
|
|
struct snd_pcm *pcm;
|
|
struct hda_codec *codec;
|
|
struct hda_pcm *info;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct hda_codec_ops {
|
|
int (*build_controls)(struct hda_codec *);
|
|
int (*build_pcms)(struct hda_codec *);
|
|
int (*init)(struct hda_codec *);
|
|
void (*free)(struct hda_codec *);
|
|
void (*unsol_event)(struct hda_codec *, unsigned int);
|
|
void (*set_power_state)(struct hda_codec *, hda_nid_t, unsigned int);
|
|
int (*suspend)(struct hda_codec *);
|
|
int (*resume)(struct hda_codec *);
|
|
int (*check_power_status)(struct hda_codec *, hda_nid_t);
|
|
void (*stream_pm)(struct hda_codec *, hda_nid_t, bool);
|
|
};
|
|
|
|
struct hda_beep;
|
|
|
|
struct snd_hwdep;
|
|
|
|
struct hda_fixup;
|
|
|
|
struct hda_codec {
|
|
struct hdac_device core;
|
|
struct hda_bus *bus;
|
|
struct snd_card *card;
|
|
unsigned int addr;
|
|
u32 probe_id;
|
|
const struct hda_device_id *preset;
|
|
const char *modelname;
|
|
struct hda_codec_ops patch_ops;
|
|
struct list_head pcm_list_head;
|
|
refcount_t pcm_ref;
|
|
wait_queue_head_t remove_sleep;
|
|
void *spec;
|
|
struct hda_beep *beep;
|
|
unsigned int beep_mode;
|
|
u32 *wcaps;
|
|
struct snd_array mixers;
|
|
struct snd_array nids;
|
|
struct list_head conn_list;
|
|
struct mutex spdif_mutex;
|
|
struct mutex control_mutex;
|
|
struct snd_array spdif_out;
|
|
unsigned int spdif_in_enable;
|
|
const hda_nid_t *follower_dig_outs;
|
|
struct snd_array init_pins;
|
|
struct snd_array driver_pins;
|
|
struct snd_array cvt_setups;
|
|
struct mutex user_mutex;
|
|
struct snd_hwdep *hwdep;
|
|
unsigned int configured: 1;
|
|
unsigned int in_freeing: 1;
|
|
unsigned int display_power_control: 1;
|
|
unsigned int spdif_status_reset: 1;
|
|
unsigned int pin_amp_workaround: 1;
|
|
unsigned int single_adc_amp: 1;
|
|
unsigned int no_sticky_stream: 1;
|
|
unsigned int pins_shutup: 1;
|
|
unsigned int no_trigger_sense: 1;
|
|
unsigned int no_jack_detect: 1;
|
|
unsigned int inv_eapd: 1;
|
|
unsigned int inv_jack_detect: 1;
|
|
unsigned int pcm_format_first: 1;
|
|
unsigned int cached_write: 1;
|
|
unsigned int dp_mst: 1;
|
|
unsigned int dump_coef: 1;
|
|
unsigned int power_save_node: 1;
|
|
unsigned int auto_runtime_pm: 1;
|
|
unsigned int force_pin_prefix: 1;
|
|
unsigned int link_down_at_suspend: 1;
|
|
unsigned int relaxed_resume: 1;
|
|
unsigned int forced_resume: 1;
|
|
unsigned int no_stream_clean_at_suspend: 1;
|
|
unsigned int ctl_dev_id: 1;
|
|
unsigned long power_on_acct;
|
|
unsigned long power_off_acct;
|
|
unsigned long power_jiffies;
|
|
unsigned int (*power_filter)(struct hda_codec *, hda_nid_t, unsigned int);
|
|
void (*proc_widget_hook)(struct snd_info_buffer *, struct hda_codec *, hda_nid_t);
|
|
struct snd_array jacktbl;
|
|
unsigned long jackpoll_interval;
|
|
struct delayed_work jackpoll_work;
|
|
int depop_delay;
|
|
int fixup_id;
|
|
const struct hda_fixup *fixup_list;
|
|
const char *fixup_name;
|
|
struct snd_array verbs;
|
|
};
|
|
|
|
struct snd_hwdep_dsp_status;
|
|
|
|
struct snd_hwdep_dsp_image;
|
|
|
|
struct snd_hwdep_ops {
|
|
long long (*llseek)(struct snd_hwdep *, struct file *, long long, int);
|
|
long (*read)(struct snd_hwdep *, char __attribute__((btf_type_tag("user"))) *, long, loff_t *);
|
|
long (*write)(struct snd_hwdep *, const char __attribute__((btf_type_tag("user"))) *, long, loff_t *);
|
|
int (*open)(struct snd_hwdep *, struct file *);
|
|
int (*release)(struct snd_hwdep *, struct file *);
|
|
__poll_t (*poll)(struct snd_hwdep *, struct file *, poll_table *);
|
|
int (*ioctl)(struct snd_hwdep *, struct file *, unsigned int, unsigned long);
|
|
int (*ioctl_compat)(struct snd_hwdep *, struct file *, unsigned int, unsigned long);
|
|
int (*mmap)(struct snd_hwdep *, struct file *, struct vm_area_struct *);
|
|
int (*dsp_status)(struct snd_hwdep *, struct snd_hwdep_dsp_status *);
|
|
int (*dsp_load)(struct snd_hwdep *, struct snd_hwdep_dsp_image *);
|
|
};
|
|
|
|
struct snd_hwdep {
|
|
struct snd_card *card;
|
|
struct list_head list;
|
|
int device;
|
|
char id[32];
|
|
char name[80];
|
|
int iface;
|
|
struct snd_hwdep_ops ops;
|
|
wait_queue_head_t open_wait;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_hwdep *);
|
|
struct device dev;
|
|
struct mutex open_mutex;
|
|
int used;
|
|
unsigned int dsp_loaded;
|
|
unsigned int exclusive: 1;
|
|
};
|
|
|
|
struct snd_hwdep_dsp_status {
|
|
unsigned int version;
|
|
unsigned char id[32];
|
|
unsigned int num_dsps;
|
|
unsigned int dsp_loaded;
|
|
unsigned int chip_ready;
|
|
unsigned char reserved[16];
|
|
};
|
|
|
|
struct snd_hwdep_dsp_image {
|
|
unsigned int index;
|
|
unsigned char name[64];
|
|
unsigned char __attribute__((btf_type_tag("user"))) *image;
|
|
size_t length;
|
|
unsigned long driver_data;
|
|
};
|
|
|
|
struct hda_pintbl;
|
|
|
|
struct hda_verb;
|
|
|
|
struct hda_fixup {
|
|
int type;
|
|
bool chained: 1;
|
|
bool chained_before: 1;
|
|
int chain_id;
|
|
union {
|
|
const struct hda_pintbl *pins;
|
|
const struct hda_verb *verbs;
|
|
void (*func)(struct hda_codec *, const struct hda_fixup *, int);
|
|
} v;
|
|
};
|
|
|
|
struct hda_pintbl {
|
|
hda_nid_t nid;
|
|
u32 val;
|
|
};
|
|
|
|
struct hda_verb {
|
|
hda_nid_t nid;
|
|
u32 verb;
|
|
u32 param;
|
|
};
|
|
|
|
struct hda_pcm_stream;
|
|
|
|
struct hda_pcm_ops {
|
|
int (*open)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *);
|
|
int (*close)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *);
|
|
int (*prepare)(struct hda_pcm_stream *, struct hda_codec *, unsigned int, unsigned int, struct snd_pcm_substream *);
|
|
int (*cleanup)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *);
|
|
unsigned int (*get_delay)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *);
|
|
};
|
|
|
|
struct hda_pcm_stream {
|
|
unsigned int substreams;
|
|
unsigned int channels_min;
|
|
unsigned int channels_max;
|
|
hda_nid_t nid;
|
|
u32 rates;
|
|
u64 formats;
|
|
unsigned int maxbps;
|
|
const struct snd_pcm_chmap_elem *chmap;
|
|
struct hda_pcm_ops ops;
|
|
};
|
|
|
|
struct hda_pcm {
|
|
char *name;
|
|
struct hda_pcm_stream stream[2];
|
|
unsigned int pcm_type;
|
|
int device;
|
|
struct snd_pcm *pcm;
|
|
bool own_chmap;
|
|
struct hda_codec *codec;
|
|
struct list_head list;
|
|
unsigned int disconnected: 1;
|
|
};
|
|
|
|
struct trace_event_raw_azx_pcm_trigger {
|
|
struct trace_entry ent;
|
|
int card;
|
|
int idx;
|
|
int cmd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_azx_get_position {
|
|
struct trace_entry ent;
|
|
int card;
|
|
int idx;
|
|
unsigned int pos;
|
|
unsigned int delay;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_azx_pcm {
|
|
struct trace_entry ent;
|
|
unsigned char stream_tag;
|
|
char __data[0];
|
|
};
|
|
|
|
struct hda_spdif_out {
|
|
hda_nid_t nid;
|
|
unsigned int status;
|
|
unsigned short ctls;
|
|
};
|
|
|
|
struct system_counterval_t {
|
|
u64 cycles;
|
|
struct clocksource *cs;
|
|
};
|
|
|
|
struct system_time_snapshot {
|
|
u64 cycles;
|
|
ktime_t real;
|
|
ktime_t raw;
|
|
enum clocksource_ids cs_id;
|
|
unsigned int clock_was_set_seq;
|
|
u8 cs_was_changed_seq;
|
|
};
|
|
|
|
struct trace_event_data_offsets_azx_pcm_trigger {};
|
|
|
|
struct trace_event_data_offsets_azx_get_position {};
|
|
|
|
struct trace_event_data_offsets_azx_pcm {};
|
|
|
|
struct cgroup_cls_state {
|
|
struct cgroup_subsys_state css;
|
|
u32 classid;
|
|
};
|
|
|
|
struct update_classid_context {
|
|
u32 classid;
|
|
unsigned int batch;
|
|
};
|
|
|
|
typedef void (*btf_trace_netlink_extack)(void *, const char *);
|
|
|
|
struct listeners;
|
|
|
|
struct netlink_table {
|
|
struct rhashtable hash;
|
|
struct hlist_head mc_list;
|
|
struct listeners __attribute__((btf_type_tag("rcu"))) *listeners;
|
|
unsigned int flags;
|
|
unsigned int groups;
|
|
struct mutex *cb_mutex;
|
|
struct module *module;
|
|
int (*bind)(struct net *, int);
|
|
void (*unbind)(struct net *, int);
|
|
bool (*compare)(struct net *, struct sock *);
|
|
int registered;
|
|
};
|
|
|
|
struct listeners {
|
|
struct callback_head rcu;
|
|
unsigned long masks[0];
|
|
};
|
|
|
|
enum netlink_skb_flags {
|
|
NETLINK_SKB_DST = 8,
|
|
};
|
|
|
|
enum {
|
|
NETLINK_UNCONNECTED = 0,
|
|
NETLINK_CONNECTED = 1,
|
|
};
|
|
|
|
enum nlmsgerr_attrs {
|
|
NLMSGERR_ATTR_UNUSED = 0,
|
|
NLMSGERR_ATTR_MSG = 1,
|
|
NLMSGERR_ATTR_OFFS = 2,
|
|
NLMSGERR_ATTR_COOKIE = 3,
|
|
NLMSGERR_ATTR_POLICY = 4,
|
|
NLMSGERR_ATTR_MISS_TYPE = 5,
|
|
NLMSGERR_ATTR_MISS_NEST = 6,
|
|
__NLMSGERR_ATTR_MAX = 7,
|
|
NLMSGERR_ATTR_MAX = 6,
|
|
};
|
|
|
|
struct trace_event_raw_netlink_extack {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct netlink_tap {
|
|
struct net_device *dev;
|
|
struct module *module;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct socket_alloc {
|
|
struct socket socket;
|
|
struct inode vfs_inode;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct netlink_sock {
|
|
struct sock sk;
|
|
u32 portid;
|
|
u32 dst_portid;
|
|
u32 dst_group;
|
|
u32 flags;
|
|
u32 subscriptions;
|
|
u32 ngroups;
|
|
unsigned long *groups;
|
|
unsigned long state;
|
|
size_t max_recvmsg_len;
|
|
wait_queue_head_t wait;
|
|
bool bound;
|
|
bool cb_running;
|
|
int dump_done_errno;
|
|
struct netlink_callback cb;
|
|
struct mutex *cb_mutex;
|
|
struct mutex cb_def_mutex;
|
|
void (*netlink_rcv)(struct sk_buff *);
|
|
int (*netlink_bind)(struct net *, int);
|
|
void (*netlink_unbind)(struct net *, int);
|
|
struct module *module;
|
|
struct rhash_head node;
|
|
struct callback_head rcu;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct sockaddr_nl {
|
|
__kernel_sa_family_t nl_family;
|
|
unsigned short nl_pad;
|
|
__u32 nl_pid;
|
|
__u32 nl_groups;
|
|
};
|
|
|
|
struct trace_event_data_offsets_netlink_extack {
|
|
u32 msg;
|
|
};
|
|
|
|
struct netlink_tap_net {
|
|
struct list_head netlink_tap_all;
|
|
struct mutex netlink_tap_lock;
|
|
};
|
|
|
|
struct netlink_broadcast_data {
|
|
struct sock *exclude_sk;
|
|
struct net *net;
|
|
u32 portid;
|
|
u32 group;
|
|
int failure;
|
|
int delivery_failure;
|
|
int congested;
|
|
int delivered;
|
|
gfp_t allocation;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb2;
|
|
};
|
|
|
|
struct netlink_set_err_data {
|
|
struct sock *exclude_sk;
|
|
u32 portid;
|
|
u32 group;
|
|
int code;
|
|
};
|
|
|
|
struct netlink_compare_arg {
|
|
possible_net_t pnet;
|
|
u32 portid;
|
|
};
|
|
|
|
struct scm_cookie {
|
|
struct pid *pid;
|
|
struct scm_fp_list *fp;
|
|
struct scm_creds creds;
|
|
u32 secid;
|
|
};
|
|
|
|
struct nl_pktinfo {
|
|
__u32 group;
|
|
};
|
|
|
|
struct ucred {
|
|
__u32 pid;
|
|
__u32 uid;
|
|
__u32 gid;
|
|
};
|
|
|
|
struct nl_seq_iter {
|
|
struct seq_net_private p;
|
|
struct rhashtable_iter hti;
|
|
int link;
|
|
};
|
|
|
|
struct bpf_iter__netlink {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct netlink_sock *sk;
|
|
};
|
|
};
|
|
|
|
struct netlink_kernel_cfg {
|
|
unsigned int groups;
|
|
unsigned int flags;
|
|
void (*input)(struct sk_buff *);
|
|
struct mutex *cb_mutex;
|
|
int (*bind)(struct net *, int);
|
|
void (*unbind)(struct net *, int);
|
|
bool (*compare)(struct net *, struct sock *);
|
|
};
|
|
|
|
struct netlink_dump_control {
|
|
int (*start)(struct netlink_callback *);
|
|
int (*dump)(struct sk_buff *, struct netlink_callback *);
|
|
int (*done)(struct netlink_callback *);
|
|
void *data;
|
|
struct module *module;
|
|
u32 min_dump_alloc;
|
|
};
|
|
|
|
struct nlmsgerr {
|
|
int error;
|
|
struct nlmsghdr msg;
|
|
};
|
|
|
|
struct netlink_notify {
|
|
struct net *net;
|
|
u32 portid;
|
|
int protocol;
|
|
};
|
|
|
|
enum nf_ct_sysctl_index {
|
|
NF_SYSCTL_CT_MAX = 0,
|
|
NF_SYSCTL_CT_COUNT = 1,
|
|
NF_SYSCTL_CT_BUCKETS = 2,
|
|
NF_SYSCTL_CT_CHECKSUM = 3,
|
|
NF_SYSCTL_CT_LOG_INVALID = 4,
|
|
NF_SYSCTL_CT_EXPECT_MAX = 5,
|
|
NF_SYSCTL_CT_ACCT = 6,
|
|
NF_SYSCTL_CT_EVENTS = 7,
|
|
NF_SYSCTL_CT_TIMESTAMP = 8,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 9,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 10,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 11,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 12,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 13,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 14,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 15,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 16,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 17,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 18,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 19,
|
|
NF_SYSCTL_CT_PROTO_TCP_LOOSE = 20,
|
|
NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 21,
|
|
NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 22,
|
|
NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 23,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 24,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 25,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 26,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 27,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_CLOSED = 28,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_COOKIE_WAIT = 29,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_COOKIE_ECHOED = 30,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_ESTABLISHED = 31,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_SENT = 32,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_RECD = 33,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT = 34,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_HEARTBEAT_SENT = 35,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_REQUEST = 36,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_RESPOND = 37,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_PARTOPEN = 38,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_OPEN = 39,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSEREQ = 40,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSING = 41,
|
|
NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_TIMEWAIT = 42,
|
|
NF_SYSCTL_CT_PROTO_DCCP_LOOSE = 43,
|
|
NF_SYSCTL_CT_LWTUNNEL = 44,
|
|
__NF_SYSCTL_CT_LAST_SYSCTL = 45,
|
|
};
|
|
|
|
enum udp_conntrack {
|
|
UDP_CT_UNREPLIED = 0,
|
|
UDP_CT_REPLIED = 1,
|
|
UDP_CT_MAX = 2,
|
|
};
|
|
|
|
enum tcp_conntrack {
|
|
TCP_CONNTRACK_NONE = 0,
|
|
TCP_CONNTRACK_SYN_SENT = 1,
|
|
TCP_CONNTRACK_SYN_RECV = 2,
|
|
TCP_CONNTRACK_ESTABLISHED = 3,
|
|
TCP_CONNTRACK_FIN_WAIT = 4,
|
|
TCP_CONNTRACK_CLOSE_WAIT = 5,
|
|
TCP_CONNTRACK_LAST_ACK = 6,
|
|
TCP_CONNTRACK_TIME_WAIT = 7,
|
|
TCP_CONNTRACK_CLOSE = 8,
|
|
TCP_CONNTRACK_LISTEN = 9,
|
|
TCP_CONNTRACK_MAX = 10,
|
|
TCP_CONNTRACK_IGNORE = 11,
|
|
TCP_CONNTRACK_RETRANS = 12,
|
|
TCP_CONNTRACK_UNACK = 13,
|
|
TCP_CONNTRACK_TIMEOUT_MAX = 14,
|
|
};
|
|
|
|
enum ct_dccp_states {
|
|
CT_DCCP_NONE = 0,
|
|
CT_DCCP_REQUEST = 1,
|
|
CT_DCCP_RESPOND = 2,
|
|
CT_DCCP_PARTOPEN = 3,
|
|
CT_DCCP_OPEN = 4,
|
|
CT_DCCP_CLOSEREQ = 5,
|
|
CT_DCCP_CLOSING = 6,
|
|
CT_DCCP_TIMEWAIT = 7,
|
|
CT_DCCP_IGNORE = 8,
|
|
CT_DCCP_INVALID = 9,
|
|
__CT_DCCP_MAX = 10,
|
|
};
|
|
|
|
struct nf_conntrack_net_ecache {
|
|
struct delayed_work dwork;
|
|
spinlock_t dying_lock;
|
|
struct hlist_nulls_head dying_list;
|
|
};
|
|
|
|
struct nf_conntrack_net {
|
|
atomic_t count;
|
|
unsigned int expect_count;
|
|
unsigned int users4;
|
|
unsigned int users6;
|
|
unsigned int users_bridge;
|
|
struct ctl_table_header *sysctl_header;
|
|
struct nf_conntrack_net_ecache ecache;
|
|
};
|
|
|
|
struct nf_conntrack_nat_helper {
|
|
struct list_head list;
|
|
char mod_name[16];
|
|
struct module *module;
|
|
};
|
|
|
|
struct tcp_seq_afinfo {
|
|
sa_family_t family;
|
|
};
|
|
|
|
enum {
|
|
ICMP_MIB_NUM = 0,
|
|
ICMP_MIB_INMSGS = 1,
|
|
ICMP_MIB_INERRORS = 2,
|
|
ICMP_MIB_INDESTUNREACHS = 3,
|
|
ICMP_MIB_INTIMEEXCDS = 4,
|
|
ICMP_MIB_INPARMPROBS = 5,
|
|
ICMP_MIB_INSRCQUENCHS = 6,
|
|
ICMP_MIB_INREDIRECTS = 7,
|
|
ICMP_MIB_INECHOS = 8,
|
|
ICMP_MIB_INECHOREPS = 9,
|
|
ICMP_MIB_INTIMESTAMPS = 10,
|
|
ICMP_MIB_INTIMESTAMPREPS = 11,
|
|
ICMP_MIB_INADDRMASKS = 12,
|
|
ICMP_MIB_INADDRMASKREPS = 13,
|
|
ICMP_MIB_OUTMSGS = 14,
|
|
ICMP_MIB_OUTERRORS = 15,
|
|
ICMP_MIB_OUTDESTUNREACHS = 16,
|
|
ICMP_MIB_OUTTIMEEXCDS = 17,
|
|
ICMP_MIB_OUTPARMPROBS = 18,
|
|
ICMP_MIB_OUTSRCQUENCHS = 19,
|
|
ICMP_MIB_OUTREDIRECTS = 20,
|
|
ICMP_MIB_OUTECHOS = 21,
|
|
ICMP_MIB_OUTECHOREPS = 22,
|
|
ICMP_MIB_OUTTIMESTAMPS = 23,
|
|
ICMP_MIB_OUTTIMESTAMPREPS = 24,
|
|
ICMP_MIB_OUTADDRMASKS = 25,
|
|
ICMP_MIB_OUTADDRMASKREPS = 26,
|
|
ICMP_MIB_CSUMERRORS = 27,
|
|
ICMP_MIB_RATELIMITGLOBAL = 28,
|
|
ICMP_MIB_RATELIMITHOST = 29,
|
|
__ICMP_MIB_MAX = 30,
|
|
};
|
|
|
|
enum tsq_enum {
|
|
TSQ_THROTTLED = 0,
|
|
TSQ_QUEUED = 1,
|
|
TCP_TSQ_DEFERRED = 2,
|
|
TCP_WRITE_TIMER_DEFERRED = 3,
|
|
TCP_DELACK_TIMER_DEFERRED = 4,
|
|
TCP_MTU_REDUCED_DEFERRED = 5,
|
|
};
|
|
|
|
enum tcp_tw_status {
|
|
TCP_TW_SUCCESS = 0,
|
|
TCP_TW_RST = 1,
|
|
TCP_TW_ACK = 2,
|
|
TCP_TW_SYN = 3,
|
|
};
|
|
|
|
enum tcp_seq_states {
|
|
TCP_SEQ_STATE_LISTENING = 0,
|
|
TCP_SEQ_STATE_ESTABLISHED = 1,
|
|
};
|
|
|
|
struct tcp_timewait_sock {
|
|
struct inet_timewait_sock tw_sk;
|
|
u32 tw_rcv_wnd;
|
|
u32 tw_ts_offset;
|
|
u32 tw_ts_recent;
|
|
u32 tw_last_oow_ack_time;
|
|
int tw_ts_recent_stamp;
|
|
u32 tw_tx_delay;
|
|
struct tcp_md5sig_key *tw_md5_key;
|
|
};
|
|
|
|
struct tcp_md5sig_pool {
|
|
struct ahash_request *md5_req;
|
|
void *scratch;
|
|
};
|
|
|
|
struct tcp4_pseudohdr {
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
__u8 pad;
|
|
__u8 protocol;
|
|
__be16 len;
|
|
};
|
|
|
|
struct ip_reply_arg {
|
|
struct kvec iov[1];
|
|
int flags;
|
|
__wsum csum;
|
|
int csumoffset;
|
|
int bound_dev_if;
|
|
u8 tos;
|
|
kuid_t uid;
|
|
};
|
|
|
|
struct tcp_iter_state {
|
|
struct seq_net_private p;
|
|
enum tcp_seq_states state;
|
|
struct sock *syn_wait_sk;
|
|
int bucket;
|
|
int offset;
|
|
int sbucket;
|
|
int num;
|
|
loff_t last_pos;
|
|
};
|
|
|
|
struct bpf_iter__tcp {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct sock_common *sk_common;
|
|
};
|
|
uid_t uid;
|
|
};
|
|
|
|
struct bpf_tcp_iter_state {
|
|
struct tcp_iter_state state;
|
|
unsigned int cur_sk;
|
|
unsigned int end_sk;
|
|
unsigned int max_sk;
|
|
struct sock **batch;
|
|
bool st_bucket_done;
|
|
};
|
|
|
|
struct tcp_md5sig {
|
|
struct __kernel_sockaddr_storage tcpm_addr;
|
|
__u8 tcpm_flags;
|
|
__u8 tcpm_prefixlen;
|
|
__u16 tcpm_keylen;
|
|
int tcpm_ifindex;
|
|
__u8 tcpm_key[80];
|
|
};
|
|
|
|
struct xfrm4_protocol {
|
|
int (*handler)(struct sk_buff *);
|
|
int (*input_handler)(struct sk_buff *, int, __be32, int);
|
|
int (*cb_handler)(struct sk_buff *, int);
|
|
int (*err_handler)(struct sk_buff *, u32);
|
|
struct xfrm4_protocol __attribute__((btf_type_tag("rcu"))) *next;
|
|
int priority;
|
|
};
|
|
|
|
struct sk_psock_progs {
|
|
struct bpf_prog *msg_parser;
|
|
struct bpf_prog *stream_parser;
|
|
struct bpf_prog *stream_verdict;
|
|
struct bpf_prog *skb_verdict;
|
|
};
|
|
|
|
struct sk_psock_work_state {
|
|
struct sk_buff *skb;
|
|
u32 len;
|
|
u32 off;
|
|
};
|
|
|
|
struct sk_msg;
|
|
|
|
struct sk_psock {
|
|
struct sock *sk;
|
|
struct sock *sk_redir;
|
|
u32 apply_bytes;
|
|
u32 cork_bytes;
|
|
u32 eval;
|
|
bool redir_ingress;
|
|
struct sk_msg *cork;
|
|
struct sk_psock_progs progs;
|
|
struct strparser strp;
|
|
struct sk_buff_head ingress_skb;
|
|
struct list_head ingress_msg;
|
|
spinlock_t ingress_lock;
|
|
unsigned long state;
|
|
struct list_head link;
|
|
spinlock_t link_lock;
|
|
refcount_t refcnt;
|
|
void (*saved_unhash)(struct sock *);
|
|
void (*saved_destroy)(struct sock *);
|
|
void (*saved_close)(struct sock *, long);
|
|
void (*saved_write_space)(struct sock *);
|
|
void (*saved_data_ready)(struct sock *);
|
|
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
|
|
struct proto *sk_proto;
|
|
struct mutex work_mutex;
|
|
struct sk_psock_work_state work_state;
|
|
struct work_struct work;
|
|
struct rcu_work rwork;
|
|
};
|
|
|
|
struct sk_msg_sg {
|
|
u32 start;
|
|
u32 curr;
|
|
u32 end;
|
|
u32 size;
|
|
u32 copybreak;
|
|
unsigned long copy[1];
|
|
struct scatterlist data[19];
|
|
};
|
|
|
|
struct sk_msg {
|
|
struct sk_msg_sg sg;
|
|
void *data;
|
|
void *data_end;
|
|
u32 apply_bytes;
|
|
u32 cork_bytes;
|
|
u32 flags;
|
|
struct sk_buff *skb;
|
|
struct sock *sk_redir;
|
|
struct sock *sk;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum {
|
|
CRYPTO_AUTHENC_KEYA_UNSPEC = 0,
|
|
CRYPTO_AUTHENC_KEYA_PARAM = 1,
|
|
};
|
|
|
|
struct ip_esp_hdr {
|
|
__be32 spi;
|
|
__be32 seq_no;
|
|
__u8 enc_data[0];
|
|
};
|
|
|
|
struct esp_skb_cb {
|
|
struct xfrm_skb_cb xfrm;
|
|
void *tmp;
|
|
};
|
|
|
|
struct aead_alg {
|
|
int (*setkey)(struct crypto_aead *, const u8 *, unsigned int);
|
|
int (*setauthsize)(struct crypto_aead *, unsigned int);
|
|
int (*encrypt)(struct aead_request *);
|
|
int (*decrypt)(struct aead_request *);
|
|
int (*init)(struct crypto_aead *);
|
|
void (*exit)(struct crypto_aead *);
|
|
unsigned int ivsize;
|
|
unsigned int maxauthsize;
|
|
unsigned int chunksize;
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct esp_info {
|
|
struct ip_esp_hdr *esph;
|
|
__be64 seqno;
|
|
int tfclen;
|
|
int tailen;
|
|
int plen;
|
|
int clen;
|
|
int len;
|
|
int nfrags;
|
|
__u8 proto;
|
|
bool inplace;
|
|
};
|
|
|
|
struct esp_output_extra {
|
|
__be32 seqhi;
|
|
u32 esphoff;
|
|
};
|
|
|
|
struct crypto_authenc_key_param {
|
|
__be32 enckeylen;
|
|
};
|
|
|
|
struct xfrm_algo_aead_info {
|
|
char *geniv;
|
|
u16 icv_truncbits;
|
|
};
|
|
|
|
struct xfrm_algo_auth_info {
|
|
u16 icv_truncbits;
|
|
u16 icv_fullbits;
|
|
};
|
|
|
|
struct xfrm_algo_encr_info {
|
|
char *geniv;
|
|
u16 blockbits;
|
|
u16 defkeybits;
|
|
};
|
|
|
|
struct xfrm_algo_comp_info {
|
|
u16 threshold;
|
|
};
|
|
|
|
struct sadb_alg {
|
|
__u8 sadb_alg_id;
|
|
__u8 sadb_alg_ivlen;
|
|
__u16 sadb_alg_minbits;
|
|
__u16 sadb_alg_maxbits;
|
|
__u16 sadb_alg_reserved;
|
|
};
|
|
|
|
struct xfrm_algo_desc {
|
|
char *name;
|
|
char *compat;
|
|
u8 available: 1;
|
|
u8 pfkey_supported: 1;
|
|
union {
|
|
struct xfrm_algo_aead_info aead;
|
|
struct xfrm_algo_auth_info auth;
|
|
struct xfrm_algo_encr_info encr;
|
|
struct xfrm_algo_comp_info comp;
|
|
} uinfo;
|
|
struct sadb_alg desc;
|
|
};
|
|
|
|
enum {
|
|
INET6_IFADDR_STATE_PREDAD = 0,
|
|
INET6_IFADDR_STATE_DAD = 1,
|
|
INET6_IFADDR_STATE_POSTDAD = 2,
|
|
INET6_IFADDR_STATE_ERRDAD = 3,
|
|
INET6_IFADDR_STATE_DEAD = 4,
|
|
};
|
|
|
|
enum rtnl_link_flags {
|
|
RTNL_FLAG_DOIT_UNLOCKED = 1,
|
|
RTNL_FLAG_BULK_DEL_SUPPORTED = 2,
|
|
};
|
|
|
|
enum {
|
|
IPV6_SADDR_RULE_INIT = 0,
|
|
IPV6_SADDR_RULE_LOCAL = 1,
|
|
IPV6_SADDR_RULE_SCOPE = 2,
|
|
IPV6_SADDR_RULE_PREFERRED = 3,
|
|
IPV6_SADDR_RULE_OIF = 4,
|
|
IPV6_SADDR_RULE_LABEL = 5,
|
|
IPV6_SADDR_RULE_PRIVACY = 6,
|
|
IPV6_SADDR_RULE_ORCHID = 7,
|
|
IPV6_SADDR_RULE_PREFIX = 8,
|
|
IPV6_SADDR_RULE_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
DAD_PROCESS = 0,
|
|
DAD_BEGIN = 1,
|
|
DAD_ABORT = 2,
|
|
};
|
|
|
|
enum cleanup_prefix_rt_t {
|
|
CLEANUP_PREFIX_RT_NOP = 0,
|
|
CLEANUP_PREFIX_RT_DEL = 1,
|
|
CLEANUP_PREFIX_RT_EXPIRE = 2,
|
|
};
|
|
|
|
enum in6_addr_gen_mode {
|
|
IN6_ADDR_GEN_MODE_EUI64 = 0,
|
|
IN6_ADDR_GEN_MODE_NONE = 1,
|
|
IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2,
|
|
IN6_ADDR_GEN_MODE_RANDOM = 3,
|
|
};
|
|
|
|
enum {
|
|
DEVCONF_FORWARDING = 0,
|
|
DEVCONF_HOPLIMIT = 1,
|
|
DEVCONF_MTU6 = 2,
|
|
DEVCONF_ACCEPT_RA = 3,
|
|
DEVCONF_ACCEPT_REDIRECTS = 4,
|
|
DEVCONF_AUTOCONF = 5,
|
|
DEVCONF_DAD_TRANSMITS = 6,
|
|
DEVCONF_RTR_SOLICITS = 7,
|
|
DEVCONF_RTR_SOLICIT_INTERVAL = 8,
|
|
DEVCONF_RTR_SOLICIT_DELAY = 9,
|
|
DEVCONF_USE_TEMPADDR = 10,
|
|
DEVCONF_TEMP_VALID_LFT = 11,
|
|
DEVCONF_TEMP_PREFERED_LFT = 12,
|
|
DEVCONF_REGEN_MAX_RETRY = 13,
|
|
DEVCONF_MAX_DESYNC_FACTOR = 14,
|
|
DEVCONF_MAX_ADDRESSES = 15,
|
|
DEVCONF_FORCE_MLD_VERSION = 16,
|
|
DEVCONF_ACCEPT_RA_DEFRTR = 17,
|
|
DEVCONF_ACCEPT_RA_PINFO = 18,
|
|
DEVCONF_ACCEPT_RA_RTR_PREF = 19,
|
|
DEVCONF_RTR_PROBE_INTERVAL = 20,
|
|
DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21,
|
|
DEVCONF_PROXY_NDP = 22,
|
|
DEVCONF_OPTIMISTIC_DAD = 23,
|
|
DEVCONF_ACCEPT_SOURCE_ROUTE = 24,
|
|
DEVCONF_MC_FORWARDING = 25,
|
|
DEVCONF_DISABLE_IPV6 = 26,
|
|
DEVCONF_ACCEPT_DAD = 27,
|
|
DEVCONF_FORCE_TLLAO = 28,
|
|
DEVCONF_NDISC_NOTIFY = 29,
|
|
DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30,
|
|
DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31,
|
|
DEVCONF_SUPPRESS_FRAG_NDISC = 32,
|
|
DEVCONF_ACCEPT_RA_FROM_LOCAL = 33,
|
|
DEVCONF_USE_OPTIMISTIC = 34,
|
|
DEVCONF_ACCEPT_RA_MTU = 35,
|
|
DEVCONF_STABLE_SECRET = 36,
|
|
DEVCONF_USE_OIF_ADDRS_ONLY = 37,
|
|
DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38,
|
|
DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39,
|
|
DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40,
|
|
DEVCONF_DROP_UNSOLICITED_NA = 41,
|
|
DEVCONF_KEEP_ADDR_ON_DOWN = 42,
|
|
DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43,
|
|
DEVCONF_SEG6_ENABLED = 44,
|
|
DEVCONF_SEG6_REQUIRE_HMAC = 45,
|
|
DEVCONF_ENHANCED_DAD = 46,
|
|
DEVCONF_ADDR_GEN_MODE = 47,
|
|
DEVCONF_DISABLE_POLICY = 48,
|
|
DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49,
|
|
DEVCONF_NDISC_TCLASS = 50,
|
|
DEVCONF_RPL_SEG_ENABLED = 51,
|
|
DEVCONF_RA_DEFRTR_METRIC = 52,
|
|
DEVCONF_IOAM6_ENABLED = 53,
|
|
DEVCONF_IOAM6_ID = 54,
|
|
DEVCONF_IOAM6_ID_WIDE = 55,
|
|
DEVCONF_NDISC_EVICT_NOCARRIER = 56,
|
|
DEVCONF_ACCEPT_UNTRACKED_NA = 57,
|
|
DEVCONF_MAX = 58,
|
|
};
|
|
|
|
enum {
|
|
ICMP6_MIB_NUM = 0,
|
|
ICMP6_MIB_INMSGS = 1,
|
|
ICMP6_MIB_INERRORS = 2,
|
|
ICMP6_MIB_OUTMSGS = 3,
|
|
ICMP6_MIB_OUTERRORS = 4,
|
|
ICMP6_MIB_CSUMERRORS = 5,
|
|
ICMP6_MIB_RATELIMITHOST = 6,
|
|
__ICMP6_MIB_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
IF_OPER_UNKNOWN = 0,
|
|
IF_OPER_NOTPRESENT = 1,
|
|
IF_OPER_DOWN = 2,
|
|
IF_OPER_LOWERLAYERDOWN = 3,
|
|
IF_OPER_TESTING = 4,
|
|
IF_OPER_DORMANT = 5,
|
|
IF_OPER_UP = 6,
|
|
};
|
|
|
|
enum {
|
|
IFLA_INET6_UNSPEC = 0,
|
|
IFLA_INET6_FLAGS = 1,
|
|
IFLA_INET6_CONF = 2,
|
|
IFLA_INET6_STATS = 3,
|
|
IFLA_INET6_MCAST = 4,
|
|
IFLA_INET6_CACHEINFO = 5,
|
|
IFLA_INET6_ICMP6STATS = 6,
|
|
IFLA_INET6_TOKEN = 7,
|
|
IFLA_INET6_ADDR_GEN_MODE = 8,
|
|
IFLA_INET6_RA_MTU = 9,
|
|
__IFLA_INET6_MAX = 10,
|
|
};
|
|
|
|
enum {
|
|
PREFIX_UNSPEC = 0,
|
|
PREFIX_ADDRESS = 1,
|
|
PREFIX_CACHEINFO = 2,
|
|
__PREFIX_MAX = 3,
|
|
};
|
|
|
|
enum addr_type_t {
|
|
UNICAST_ADDR = 0,
|
|
MULTICAST_ADDR = 1,
|
|
ANYCAST_ADDR = 2,
|
|
};
|
|
|
|
union fwnet_hwaddr {
|
|
u8 u[16];
|
|
struct {
|
|
__be64 uniq_id;
|
|
u8 max_rec;
|
|
u8 sspd;
|
|
u8 fifo[6];
|
|
} uc;
|
|
};
|
|
|
|
struct prefix_cacheinfo {
|
|
__u32 preferred_time;
|
|
__u32 valid_time;
|
|
};
|
|
|
|
struct prefixmsg {
|
|
unsigned char prefix_family;
|
|
unsigned char prefix_pad1;
|
|
unsigned short prefix_pad2;
|
|
int prefix_ifindex;
|
|
unsigned char prefix_type;
|
|
unsigned char prefix_len;
|
|
unsigned char prefix_flags;
|
|
unsigned char prefix_pad3;
|
|
};
|
|
|
|
struct in6_ifreq {
|
|
struct in6_addr ifr6_addr;
|
|
__u32 ifr6_prefixlen;
|
|
int ifr6_ifindex;
|
|
};
|
|
|
|
struct ifa6_config {
|
|
const struct in6_addr *pfx;
|
|
unsigned int plen;
|
|
u8 ifa_proto;
|
|
const struct in6_addr *peer_pfx;
|
|
u32 rt_priority;
|
|
u32 ifa_flags;
|
|
u32 preferred_lft;
|
|
u32 valid_lft;
|
|
u16 scope;
|
|
};
|
|
|
|
struct if6_iter_state {
|
|
struct seq_net_private p;
|
|
int bucket;
|
|
int offset;
|
|
};
|
|
|
|
struct inet6_fill_args {
|
|
u32 portid;
|
|
u32 seq;
|
|
int event;
|
|
unsigned int flags;
|
|
int netnsid;
|
|
int ifindex;
|
|
enum addr_type_t type;
|
|
};
|
|
|
|
struct netdev_notifier_change_info {
|
|
struct netdev_notifier_info info;
|
|
unsigned int flags_changed;
|
|
};
|
|
|
|
struct netdev_notifier_changeupper_info {
|
|
struct netdev_notifier_info info;
|
|
struct net_device *upper_dev;
|
|
bool master;
|
|
bool linking;
|
|
void *upper_info;
|
|
};
|
|
|
|
struct ipv6_saddr_score {
|
|
int rule;
|
|
int addr_type;
|
|
struct inet6_ifaddr *ifa;
|
|
unsigned long scorebits[1];
|
|
int scopedist;
|
|
int matchlen;
|
|
};
|
|
|
|
struct ipv6_saddr_dst {
|
|
const struct in6_addr *addr;
|
|
int ifindex;
|
|
int scope;
|
|
int label;
|
|
unsigned int prefs;
|
|
};
|
|
|
|
struct in6_validator_info {
|
|
struct in6_addr i6vi_addr;
|
|
struct inet6_dev *i6vi_dev;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
struct ifla_cacheinfo {
|
|
__u32 max_reasm_len;
|
|
__u32 tstamp;
|
|
__u32 reachable_time;
|
|
__u32 retrans_time;
|
|
};
|
|
|
|
enum sock_shutdown_cmd {
|
|
SHUT_RD = 0,
|
|
SHUT_WR = 1,
|
|
SHUT_RDWR = 2,
|
|
};
|
|
|
|
struct udp_sock {
|
|
struct inet_sock inet;
|
|
int pending;
|
|
unsigned int corkflag;
|
|
__u8 encap_type;
|
|
unsigned char no_check6_tx: 1;
|
|
unsigned char no_check6_rx: 1;
|
|
unsigned char encap_enabled: 1;
|
|
unsigned char gro_enabled: 1;
|
|
unsigned char accept_udp_l4: 1;
|
|
unsigned char accept_udp_fraglist: 1;
|
|
__u16 len;
|
|
__u16 gso_size;
|
|
__u16 pcslen;
|
|
__u16 pcrlen;
|
|
__u8 pcflag;
|
|
__u8 unused[3];
|
|
int (*encap_rcv)(struct sock *, struct sk_buff *);
|
|
void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
|
|
int (*encap_err_lookup)(struct sock *, struct sk_buff *);
|
|
void (*encap_destroy)(struct sock *);
|
|
struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *);
|
|
int (*gro_complete)(struct sock *, struct sk_buff *, int);
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct sk_buff_head reader_queue;
|
|
int forward_deficit;
|
|
int forward_threshold;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct udp_port_cfg {
|
|
u8 family;
|
|
union {
|
|
struct in_addr local_ip;
|
|
struct in6_addr local_ip6;
|
|
};
|
|
union {
|
|
struct in_addr peer_ip;
|
|
struct in6_addr peer_ip6;
|
|
};
|
|
__be16 local_udp_port;
|
|
__be16 peer_udp_port;
|
|
int bind_ifindex;
|
|
unsigned int use_udp_checksums: 1;
|
|
unsigned int use_udp6_tx_checksums: 1;
|
|
unsigned int use_udp6_rx_checksums: 1;
|
|
unsigned int ipv6_v6only: 1;
|
|
};
|
|
|
|
struct cfg80211_per_bw_puncturing_values {
|
|
u8 len;
|
|
const u16 *valid_values;
|
|
};
|
|
|
|
enum nl80211_sta_info {
|
|
__NL80211_STA_INFO_INVALID = 0,
|
|
NL80211_STA_INFO_INACTIVE_TIME = 1,
|
|
NL80211_STA_INFO_RX_BYTES = 2,
|
|
NL80211_STA_INFO_TX_BYTES = 3,
|
|
NL80211_STA_INFO_LLID = 4,
|
|
NL80211_STA_INFO_PLID = 5,
|
|
NL80211_STA_INFO_PLINK_STATE = 6,
|
|
NL80211_STA_INFO_SIGNAL = 7,
|
|
NL80211_STA_INFO_TX_BITRATE = 8,
|
|
NL80211_STA_INFO_RX_PACKETS = 9,
|
|
NL80211_STA_INFO_TX_PACKETS = 10,
|
|
NL80211_STA_INFO_TX_RETRIES = 11,
|
|
NL80211_STA_INFO_TX_FAILED = 12,
|
|
NL80211_STA_INFO_SIGNAL_AVG = 13,
|
|
NL80211_STA_INFO_RX_BITRATE = 14,
|
|
NL80211_STA_INFO_BSS_PARAM = 15,
|
|
NL80211_STA_INFO_CONNECTED_TIME = 16,
|
|
NL80211_STA_INFO_STA_FLAGS = 17,
|
|
NL80211_STA_INFO_BEACON_LOSS = 18,
|
|
NL80211_STA_INFO_T_OFFSET = 19,
|
|
NL80211_STA_INFO_LOCAL_PM = 20,
|
|
NL80211_STA_INFO_PEER_PM = 21,
|
|
NL80211_STA_INFO_NONPEER_PM = 22,
|
|
NL80211_STA_INFO_RX_BYTES64 = 23,
|
|
NL80211_STA_INFO_TX_BYTES64 = 24,
|
|
NL80211_STA_INFO_CHAIN_SIGNAL = 25,
|
|
NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 26,
|
|
NL80211_STA_INFO_EXPECTED_THROUGHPUT = 27,
|
|
NL80211_STA_INFO_RX_DROP_MISC = 28,
|
|
NL80211_STA_INFO_BEACON_RX = 29,
|
|
NL80211_STA_INFO_BEACON_SIGNAL_AVG = 30,
|
|
NL80211_STA_INFO_TID_STATS = 31,
|
|
NL80211_STA_INFO_RX_DURATION = 32,
|
|
NL80211_STA_INFO_PAD = 33,
|
|
NL80211_STA_INFO_ACK_SIGNAL = 34,
|
|
NL80211_STA_INFO_ACK_SIGNAL_AVG = 35,
|
|
NL80211_STA_INFO_RX_MPDUS = 36,
|
|
NL80211_STA_INFO_FCS_ERROR_COUNT = 37,
|
|
NL80211_STA_INFO_CONNECTED_TO_GATE = 38,
|
|
NL80211_STA_INFO_TX_DURATION = 39,
|
|
NL80211_STA_INFO_AIRTIME_WEIGHT = 40,
|
|
NL80211_STA_INFO_AIRTIME_LINK_METRIC = 41,
|
|
NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 42,
|
|
NL80211_STA_INFO_CONNECTED_TO_AS = 43,
|
|
__NL80211_STA_INFO_AFTER_LAST = 44,
|
|
NL80211_STA_INFO_MAX = 43,
|
|
};
|
|
|
|
enum survey_info_flags {
|
|
SURVEY_INFO_NOISE_DBM = 1,
|
|
SURVEY_INFO_IN_USE = 2,
|
|
SURVEY_INFO_TIME = 4,
|
|
SURVEY_INFO_TIME_BUSY = 8,
|
|
SURVEY_INFO_TIME_EXT_BUSY = 16,
|
|
SURVEY_INFO_TIME_RX = 32,
|
|
SURVEY_INFO_TIME_TX = 64,
|
|
SURVEY_INFO_TIME_SCAN = 128,
|
|
SURVEY_INFO_TIME_BSS_RX = 256,
|
|
};
|
|
|
|
typedef void (*btf_trace_9p_client_req)(void *, struct p9_client *, int8_t, int);
|
|
|
|
typedef void (*btf_trace_9p_client_res)(void *, struct p9_client *, int8_t, int, int);
|
|
|
|
typedef void (*btf_trace_9p_protocol_dump)(void *, struct p9_client *, struct p9_fcall *);
|
|
|
|
typedef void (*btf_trace_9p_fid_ref)(void *, struct p9_fid *, __u8);
|
|
|
|
struct match_token {
|
|
int token;
|
|
const char *pattern;
|
|
};
|
|
|
|
enum p9_fid_reftype {
|
|
P9_FID_REF_CREATE = 0,
|
|
P9_FID_REF_GET = 1,
|
|
P9_FID_REF_PUT = 2,
|
|
P9_FID_REF_DESTROY = 3,
|
|
};
|
|
|
|
enum {
|
|
Opt_msize = 0,
|
|
Opt_trans = 1,
|
|
Opt_legacy = 2,
|
|
Opt_version = 3,
|
|
Opt_err = 4,
|
|
};
|
|
|
|
struct trace_event_raw_9p_client_req {
|
|
struct trace_entry ent;
|
|
void *clnt;
|
|
__u8 type;
|
|
__u32 tag;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_9p_client_res {
|
|
struct trace_entry ent;
|
|
void *clnt;
|
|
__u8 type;
|
|
__u32 tag;
|
|
__u32 err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_9p_protocol_dump {
|
|
struct trace_entry ent;
|
|
void *clnt;
|
|
__u8 type;
|
|
__u16 tag;
|
|
unsigned char line[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_9p_fid_ref {
|
|
struct trace_entry ent;
|
|
int fid;
|
|
int refcount;
|
|
__u8 type;
|
|
char __data[0];
|
|
};
|
|
|
|
typedef struct {
|
|
char *from;
|
|
char *to;
|
|
} substring_t;
|
|
|
|
struct trace_event_data_offsets_9p_client_req {};
|
|
|
|
struct trace_event_data_offsets_9p_client_res {};
|
|
|
|
struct trace_event_data_offsets_9p_protocol_dump {};
|
|
|
|
struct trace_event_data_offsets_9p_fid_ref {};
|
|
|
|
struct p9_flock {
|
|
u8 type;
|
|
u32 flags;
|
|
u64 start;
|
|
u64 length;
|
|
u32 proc_id;
|
|
char *client_id;
|
|
};
|
|
|
|
struct p9_getlock {
|
|
u8 type;
|
|
u64 start;
|
|
u64 length;
|
|
u32 proc_id;
|
|
char *client_id;
|
|
};
|
|
|
|
enum mptcp_addr_signal_status {
|
|
MPTCP_ADD_ADDR_SIGNAL = 0,
|
|
MPTCP_ADD_ADDR_ECHO = 1,
|
|
MPTCP_RM_ADDR_SIGNAL = 2,
|
|
};
|
|
|
|
enum mptcp_event_type {
|
|
MPTCP_EVENT_UNSPEC = 0,
|
|
MPTCP_EVENT_CREATED = 1,
|
|
MPTCP_EVENT_ESTABLISHED = 2,
|
|
MPTCP_EVENT_CLOSED = 3,
|
|
MPTCP_EVENT_ANNOUNCED = 6,
|
|
MPTCP_EVENT_REMOVED = 7,
|
|
MPTCP_EVENT_SUB_ESTABLISHED = 10,
|
|
MPTCP_EVENT_SUB_CLOSED = 11,
|
|
MPTCP_EVENT_SUB_PRIORITY = 13,
|
|
MPTCP_EVENT_LISTENER_CREATED = 15,
|
|
MPTCP_EVENT_LISTENER_CLOSED = 16,
|
|
};
|
|
|
|
enum mptcp_pm_status {
|
|
MPTCP_PM_ADD_ADDR_RECEIVED = 0,
|
|
MPTCP_PM_ADD_ADDR_SEND_ACK = 1,
|
|
MPTCP_PM_RM_ADDR_RECEIVED = 2,
|
|
MPTCP_PM_ESTABLISHED = 3,
|
|
MPTCP_PM_SUBFLOW_ESTABLISHED = 4,
|
|
MPTCP_PM_ALREADY_ESTABLISHED = 5,
|
|
MPTCP_PM_MPC_ENDPOINT_ACCOUNTED = 6,
|
|
};
|
|
|
|
enum mptcp_data_avail {
|
|
MPTCP_SUBFLOW_NODATA = 0,
|
|
MPTCP_SUBFLOW_DATA_AVAIL = 1,
|
|
};
|
|
|
|
enum linux_mptcp_mib_field {
|
|
MPTCP_MIB_NUM = 0,
|
|
MPTCP_MIB_MPCAPABLEPASSIVE = 1,
|
|
MPTCP_MIB_MPCAPABLEACTIVE = 2,
|
|
MPTCP_MIB_MPCAPABLEACTIVEACK = 3,
|
|
MPTCP_MIB_MPCAPABLEPASSIVEACK = 4,
|
|
MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK = 5,
|
|
MPTCP_MIB_MPCAPABLEACTIVEFALLBACK = 6,
|
|
MPTCP_MIB_TOKENFALLBACKINIT = 7,
|
|
MPTCP_MIB_RETRANSSEGS = 8,
|
|
MPTCP_MIB_JOINNOTOKEN = 9,
|
|
MPTCP_MIB_JOINSYNRX = 10,
|
|
MPTCP_MIB_JOINSYNACKRX = 11,
|
|
MPTCP_MIB_JOINSYNACKMAC = 12,
|
|
MPTCP_MIB_JOINACKRX = 13,
|
|
MPTCP_MIB_JOINACKMAC = 14,
|
|
MPTCP_MIB_DSSNOMATCH = 15,
|
|
MPTCP_MIB_INFINITEMAPTX = 16,
|
|
MPTCP_MIB_INFINITEMAPRX = 17,
|
|
MPTCP_MIB_DSSTCPMISMATCH = 18,
|
|
MPTCP_MIB_DATACSUMERR = 19,
|
|
MPTCP_MIB_OFOQUEUETAIL = 20,
|
|
MPTCP_MIB_OFOQUEUE = 21,
|
|
MPTCP_MIB_OFOMERGE = 22,
|
|
MPTCP_MIB_NODSSWINDOW = 23,
|
|
MPTCP_MIB_DUPDATA = 24,
|
|
MPTCP_MIB_ADDADDR = 25,
|
|
MPTCP_MIB_ECHOADD = 26,
|
|
MPTCP_MIB_PORTADD = 27,
|
|
MPTCP_MIB_ADDADDRDROP = 28,
|
|
MPTCP_MIB_JOINPORTSYNRX = 29,
|
|
MPTCP_MIB_JOINPORTSYNACKRX = 30,
|
|
MPTCP_MIB_JOINPORTACKRX = 31,
|
|
MPTCP_MIB_MISMATCHPORTSYNRX = 32,
|
|
MPTCP_MIB_MISMATCHPORTACKRX = 33,
|
|
MPTCP_MIB_RMADDR = 34,
|
|
MPTCP_MIB_RMADDRDROP = 35,
|
|
MPTCP_MIB_RMSUBFLOW = 36,
|
|
MPTCP_MIB_MPPRIOTX = 37,
|
|
MPTCP_MIB_MPPRIORX = 38,
|
|
MPTCP_MIB_MPFAILTX = 39,
|
|
MPTCP_MIB_MPFAILRX = 40,
|
|
MPTCP_MIB_MPFASTCLOSETX = 41,
|
|
MPTCP_MIB_MPFASTCLOSERX = 42,
|
|
MPTCP_MIB_MPRSTTX = 43,
|
|
MPTCP_MIB_MPRSTRX = 44,
|
|
MPTCP_MIB_RCVPRUNED = 45,
|
|
MPTCP_MIB_SUBFLOWSTALE = 46,
|
|
MPTCP_MIB_SUBFLOWRECOVER = 47,
|
|
MPTCP_MIB_SNDWNDSHARED = 48,
|
|
MPTCP_MIB_RCVWNDSHARED = 49,
|
|
MPTCP_MIB_RCVWNDCONFLICTUPDATE = 50,
|
|
MPTCP_MIB_RCVWNDCONFLICT = 51,
|
|
__MPTCP_MIB_MAX = 52,
|
|
};
|
|
|
|
enum mptcp_pm_type {
|
|
MPTCP_PM_TYPE_KERNEL = 0,
|
|
MPTCP_PM_TYPE_USERSPACE = 1,
|
|
__MPTCP_PM_TYPE_NR = 2,
|
|
__MPTCP_PM_TYPE_MAX = 1,
|
|
};
|
|
|
|
struct mptcp_subflow_context {
|
|
struct list_head node;
|
|
union {
|
|
struct {
|
|
unsigned long avg_pacing_rate;
|
|
u64 local_key;
|
|
u64 remote_key;
|
|
u64 idsn;
|
|
u64 map_seq;
|
|
u32 snd_isn;
|
|
u32 token;
|
|
u32 rel_write_seq;
|
|
u32 map_subflow_seq;
|
|
u32 ssn_offset;
|
|
u32 map_data_len;
|
|
__wsum map_data_csum;
|
|
u32 map_csum_len;
|
|
u32 request_mptcp: 1;
|
|
u32 request_join: 1;
|
|
u32 request_bkup: 1;
|
|
u32 mp_capable: 1;
|
|
u32 mp_join: 1;
|
|
u32 fully_established: 1;
|
|
u32 pm_notified: 1;
|
|
u32 conn_finished: 1;
|
|
u32 map_valid: 1;
|
|
u32 map_csum_reqd: 1;
|
|
u32 map_data_fin: 1;
|
|
u32 mpc_map: 1;
|
|
u32 backup: 1;
|
|
u32 send_mp_prio: 1;
|
|
u32 send_mp_fail: 1;
|
|
u32 send_fastclose: 1;
|
|
u32 send_infinite_map: 1;
|
|
u32 rx_eof: 1;
|
|
u32 remote_key_valid: 1;
|
|
u32 disposable: 1;
|
|
u32 stale: 1;
|
|
u32 local_id_valid: 1;
|
|
u32 valid_csum_seen: 1;
|
|
u32 is_mptfo: 1;
|
|
u32 __unused: 8;
|
|
enum mptcp_data_avail data_avail;
|
|
u32 remote_nonce;
|
|
u64 thmac;
|
|
u32 local_nonce;
|
|
u32 remote_token;
|
|
union {
|
|
u8 hmac[20];
|
|
u64 iasn;
|
|
};
|
|
u8 local_id;
|
|
u8 remote_id;
|
|
u8 reset_seen: 1;
|
|
u8 reset_transient: 1;
|
|
u8 reset_reason: 4;
|
|
u8 stale_count;
|
|
long delegated_status;
|
|
unsigned long fail_tout;
|
|
};
|
|
struct {
|
|
unsigned long avg_pacing_rate;
|
|
u64 local_key;
|
|
u64 remote_key;
|
|
u64 idsn;
|
|
u64 map_seq;
|
|
u32 snd_isn;
|
|
u32 token;
|
|
u32 rel_write_seq;
|
|
u32 map_subflow_seq;
|
|
u32 ssn_offset;
|
|
u32 map_data_len;
|
|
__wsum map_data_csum;
|
|
u32 map_csum_len;
|
|
u32 request_mptcp: 1;
|
|
u32 request_join: 1;
|
|
u32 request_bkup: 1;
|
|
u32 mp_capable: 1;
|
|
u32 mp_join: 1;
|
|
u32 fully_established: 1;
|
|
u32 pm_notified: 1;
|
|
u32 conn_finished: 1;
|
|
u32 map_valid: 1;
|
|
u32 map_csum_reqd: 1;
|
|
u32 map_data_fin: 1;
|
|
u32 mpc_map: 1;
|
|
u32 backup: 1;
|
|
u32 send_mp_prio: 1;
|
|
u32 send_mp_fail: 1;
|
|
u32 send_fastclose: 1;
|
|
u32 send_infinite_map: 1;
|
|
u32 rx_eof: 1;
|
|
u32 remote_key_valid: 1;
|
|
u32 disposable: 1;
|
|
u32 stale: 1;
|
|
u32 local_id_valid: 1;
|
|
u32 valid_csum_seen: 1;
|
|
u32 is_mptfo: 1;
|
|
u32 __unused: 8;
|
|
enum mptcp_data_avail data_avail;
|
|
u32 remote_nonce;
|
|
u64 thmac;
|
|
u32 local_nonce;
|
|
u32 remote_token;
|
|
union {
|
|
u8 hmac[20];
|
|
u64 iasn;
|
|
};
|
|
u8 local_id;
|
|
u8 remote_id;
|
|
u8 reset_seen: 1;
|
|
u8 reset_transient: 1;
|
|
u8 reset_reason: 4;
|
|
u8 stale_count;
|
|
long delegated_status;
|
|
unsigned long fail_tout;
|
|
} reset;
|
|
};
|
|
struct list_head delegated_node;
|
|
u32 setsockopt_seq;
|
|
u32 stale_rcv_tstamp;
|
|
struct sock *tcp_sock;
|
|
struct sock *conn;
|
|
const struct inet_connection_sock_af_ops *icsk_af_ops;
|
|
void (*tcp_state_change)(struct sock *);
|
|
void (*tcp_error_report)(struct sock *);
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct mptcp_addr_info {
|
|
u8 id;
|
|
sa_family_t family;
|
|
__be16 port;
|
|
union {
|
|
struct in_addr addr;
|
|
struct in6_addr addr6;
|
|
};
|
|
};
|
|
|
|
struct mptcp_rm_list {
|
|
u8 ids[8];
|
|
u8 nr;
|
|
};
|
|
|
|
struct mptcp_pm_data {
|
|
struct mptcp_addr_info local;
|
|
struct mptcp_addr_info remote;
|
|
struct list_head anno_list;
|
|
struct list_head userspace_pm_local_addr_list;
|
|
spinlock_t lock;
|
|
u8 addr_signal;
|
|
bool server_side;
|
|
bool work_pending;
|
|
bool accept_addr;
|
|
bool accept_subflow;
|
|
bool remote_deny_join_id0;
|
|
u8 add_addr_signaled;
|
|
u8 add_addr_accepted;
|
|
u8 local_addr_used;
|
|
u8 pm_type;
|
|
u8 subflows;
|
|
u8 status;
|
|
unsigned long id_avail_bitmap[4];
|
|
struct mptcp_rm_list rm_list_tx;
|
|
struct mptcp_rm_list rm_list_rx;
|
|
};
|
|
|
|
struct mptcp_data_frag;
|
|
|
|
struct mptcp_sock {
|
|
struct inet_connection_sock sk;
|
|
u64 local_key;
|
|
u64 remote_key;
|
|
u64 write_seq;
|
|
u64 snd_nxt;
|
|
u64 ack_seq;
|
|
atomic64_t rcv_wnd_sent;
|
|
u64 rcv_data_fin_seq;
|
|
int rmem_fwd_alloc;
|
|
struct sock *last_snd;
|
|
int snd_burst;
|
|
int old_wspace;
|
|
u64 recovery_snd_nxt;
|
|
u64 snd_una;
|
|
u64 wnd_end;
|
|
unsigned long timer_ival;
|
|
u32 token;
|
|
int rmem_released;
|
|
unsigned long flags;
|
|
unsigned long cb_flags;
|
|
unsigned long push_pending;
|
|
bool recovery;
|
|
bool can_ack;
|
|
bool fully_established;
|
|
bool rcv_data_fin;
|
|
bool snd_data_fin_enable;
|
|
bool rcv_fastclose;
|
|
bool use_64bit_ack;
|
|
bool csum_enabled;
|
|
bool allow_infinite_fallback;
|
|
u8 mpc_endpoint_id;
|
|
u8 recvmsg_inq: 1;
|
|
u8 cork: 1;
|
|
u8 nodelay: 1;
|
|
u8 fastopening: 1;
|
|
int connect_flags;
|
|
struct work_struct work;
|
|
struct sk_buff *ooo_last_skb;
|
|
struct rb_root out_of_order_queue;
|
|
struct sk_buff_head receive_queue;
|
|
struct list_head conn_list;
|
|
struct list_head rtx_queue;
|
|
struct mptcp_data_frag *first_pending;
|
|
struct list_head join_list;
|
|
struct socket *subflow;
|
|
struct sock *first;
|
|
struct mptcp_pm_data pm;
|
|
struct {
|
|
u32 space;
|
|
u32 copied;
|
|
u64 time;
|
|
u64 rtt_us;
|
|
} rcvq_space;
|
|
u32 setsockopt_seq;
|
|
char ca_name[16];
|
|
struct mptcp_sock *dl_next;
|
|
};
|
|
|
|
struct mptcp_data_frag {
|
|
struct list_head list;
|
|
u64 data_seq;
|
|
u16 data_len;
|
|
u16 offset;
|
|
u16 overhead;
|
|
u16 already_sent;
|
|
struct page *page;
|
|
};
|
|
|
|
struct mptcp_pm_add_entry;
|
|
|
|
struct async_domain {
|
|
struct list_head pending;
|
|
unsigned int registered: 1;
|
|
};
|
|
|
|
enum state {
|
|
Start = 0,
|
|
Collect = 1,
|
|
GotHeader = 2,
|
|
SkipIt = 3,
|
|
GotName = 4,
|
|
CopyFile = 5,
|
|
GotSymlink = 6,
|
|
Reset = 7,
|
|
};
|
|
|
|
struct hash {
|
|
int ino;
|
|
int minor;
|
|
int major;
|
|
umode_t mode;
|
|
struct hash *next;
|
|
char name[4098];
|
|
};
|
|
|
|
struct dir_entry {
|
|
struct list_head list;
|
|
time64_t mtime;
|
|
char name[0];
|
|
};
|
|
|
|
typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *));
|
|
|
|
struct estack_pages {
|
|
u32 offs;
|
|
u16 size;
|
|
u16 type;
|
|
};
|
|
|
|
enum stack_type {
|
|
STACK_TYPE_UNKNOWN = 0,
|
|
STACK_TYPE_TASK = 1,
|
|
STACK_TYPE_IRQ = 2,
|
|
STACK_TYPE_SOFTIRQ = 3,
|
|
STACK_TYPE_ENTRY = 4,
|
|
STACK_TYPE_EXCEPTION = 5,
|
|
STACK_TYPE_EXCEPTION_LAST = 10,
|
|
};
|
|
|
|
struct stack_info {
|
|
enum stack_type type;
|
|
unsigned long *begin;
|
|
unsigned long *end;
|
|
unsigned long *next_sp;
|
|
};
|
|
|
|
struct cpu {
|
|
int node_id;
|
|
int hotpluggable;
|
|
struct device dev;
|
|
};
|
|
|
|
struct x86_cpu {
|
|
struct cpu cpu;
|
|
};
|
|
|
|
struct pt_regs_offset {
|
|
const char *name;
|
|
int offset;
|
|
};
|
|
|
|
enum x86_regset_32 {
|
|
REGSET32_GENERAL = 0,
|
|
REGSET32_FP = 1,
|
|
REGSET32_XFP = 2,
|
|
REGSET32_XSTATE = 3,
|
|
REGSET32_TLS = 4,
|
|
REGSET32_IOPERM = 5,
|
|
};
|
|
|
|
enum x86_regset_64 {
|
|
REGSET64_GENERAL = 0,
|
|
REGSET64_FP = 1,
|
|
REGSET64_IOPERM = 2,
|
|
REGSET64_XSTATE = 3,
|
|
};
|
|
|
|
struct user_desc {
|
|
unsigned int entry_number;
|
|
unsigned int base_addr;
|
|
unsigned int limit;
|
|
unsigned int seg_32bit: 1;
|
|
unsigned int contents: 2;
|
|
unsigned int read_exec_only: 1;
|
|
unsigned int limit_in_pages: 1;
|
|
unsigned int seg_not_present: 1;
|
|
unsigned int useable: 1;
|
|
unsigned int lm: 1;
|
|
};
|
|
|
|
typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
|
|
|
|
struct nmiaction {
|
|
struct list_head list;
|
|
nmi_handler_t handler;
|
|
u64 max_duration;
|
|
unsigned long flags;
|
|
const char *name;
|
|
};
|
|
|
|
enum {
|
|
NMI_LOCAL = 0,
|
|
NMI_UNKNOWN = 1,
|
|
NMI_SERR = 2,
|
|
NMI_IO_CHECK = 3,
|
|
NMI_MAX = 4,
|
|
};
|
|
|
|
enum apic_delivery_modes {
|
|
APIC_DELIVERY_MODE_FIXED = 0,
|
|
APIC_DELIVERY_MODE_LOWESTPRIO = 1,
|
|
APIC_DELIVERY_MODE_SMI = 2,
|
|
APIC_DELIVERY_MODE_NMI = 4,
|
|
APIC_DELIVERY_MODE_INIT = 5,
|
|
APIC_DELIVERY_MODE_EXTINT = 7,
|
|
};
|
|
|
|
struct physid_mask;
|
|
|
|
typedef struct physid_mask physid_mask_t;
|
|
|
|
struct apic {
|
|
void (*eoi_write)(u32, u32);
|
|
void (*native_eoi_write)(u32, u32);
|
|
void (*write)(u32, u32);
|
|
u32 (*read)(u32);
|
|
void (*wait_icr_idle)();
|
|
u32 (*safe_wait_icr_idle)();
|
|
void (*send_IPI)(int, int);
|
|
void (*send_IPI_mask)(const struct cpumask *, int);
|
|
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
|
|
void (*send_IPI_allbutself)(int);
|
|
void (*send_IPI_all)(int);
|
|
void (*send_IPI_self)(int);
|
|
u32 disable_esr;
|
|
enum apic_delivery_modes delivery_mode;
|
|
bool dest_mode_logical;
|
|
u32 (*calc_dest_apicid)(unsigned int);
|
|
u64 (*icr_read)();
|
|
void (*icr_write)(u32, u32);
|
|
int (*probe)();
|
|
int (*acpi_madt_oem_check)(char *, char *);
|
|
int (*apic_id_valid)(u32);
|
|
int (*apic_id_registered)();
|
|
bool (*check_apicid_used)(physid_mask_t *, int);
|
|
void (*init_apic_ldr)();
|
|
void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *);
|
|
void (*setup_apic_routing)();
|
|
int (*cpu_present_to_apicid)(int);
|
|
void (*apicid_to_cpu_present)(int, physid_mask_t *);
|
|
int (*check_phys_apicid_present)(int);
|
|
int (*phys_pkg_id)(int, int);
|
|
u32 (*get_apic_id)(unsigned long);
|
|
u32 (*set_apic_id)(unsigned int);
|
|
int (*wakeup_secondary_cpu)(int, unsigned long);
|
|
int (*wakeup_secondary_cpu_64)(int, unsigned long);
|
|
void (*inquire_remote_apic)(int);
|
|
char *name;
|
|
};
|
|
|
|
struct physid_mask {
|
|
unsigned long mask[512];
|
|
};
|
|
|
|
enum {
|
|
IORES_DESC_NONE = 0,
|
|
IORES_DESC_CRASH_KERNEL = 1,
|
|
IORES_DESC_ACPI_TABLES = 2,
|
|
IORES_DESC_ACPI_NV_STORAGE = 3,
|
|
IORES_DESC_PERSISTENT_MEMORY = 4,
|
|
IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5,
|
|
IORES_DESC_DEVICE_PRIVATE_MEMORY = 6,
|
|
IORES_DESC_RESERVED = 7,
|
|
IORES_DESC_SOFT_RESERVED = 8,
|
|
IORES_DESC_CXL = 9,
|
|
};
|
|
|
|
typedef unsigned long kimage_entry_t;
|
|
|
|
struct kexec_segment {
|
|
union {
|
|
void __attribute__((btf_type_tag("user"))) *buf;
|
|
void *kbuf;
|
|
};
|
|
size_t bufsz;
|
|
unsigned long mem;
|
|
size_t memsz;
|
|
};
|
|
|
|
struct kimage_arch {
|
|
p4d_t *p4d;
|
|
pud_t *pud;
|
|
pmd_t *pmd;
|
|
pte_t *pte;
|
|
};
|
|
|
|
struct kimage {
|
|
kimage_entry_t head;
|
|
kimage_entry_t *entry;
|
|
kimage_entry_t *last_entry;
|
|
unsigned long start;
|
|
struct page *control_code_page;
|
|
struct page *swap_page;
|
|
void *vmcoreinfo_data_copy;
|
|
unsigned long nr_segments;
|
|
struct kexec_segment segment[16];
|
|
struct list_head control_pages;
|
|
struct list_head dest_pages;
|
|
struct list_head unusable_pages;
|
|
unsigned long control_page;
|
|
unsigned int type: 1;
|
|
unsigned int preserve_context: 1;
|
|
unsigned int file_mode: 1;
|
|
struct kimage_arch arch;
|
|
void *elf_headers;
|
|
unsigned long elf_headers_sz;
|
|
unsigned long elf_load_addr;
|
|
};
|
|
|
|
struct init_pgtable_data {
|
|
struct x86_mapping_info *info;
|
|
pgd_t *level4p;
|
|
};
|
|
|
|
typedef guid_t efi_guid_t;
|
|
|
|
typedef struct {
|
|
efi_guid_t guid;
|
|
unsigned long *ptr;
|
|
const char name[16];
|
|
} efi_config_table_type_t;
|
|
|
|
typedef struct {
|
|
u64 signature;
|
|
u32 revision;
|
|
u32 headersize;
|
|
u32 crc32;
|
|
u32 reserved;
|
|
} efi_table_hdr_t;
|
|
|
|
typedef unsigned long efi_status_t;
|
|
|
|
typedef struct {
|
|
u16 year;
|
|
u8 month;
|
|
u8 day;
|
|
u8 hour;
|
|
u8 minute;
|
|
u8 second;
|
|
u8 pad1;
|
|
u32 nanosecond;
|
|
s16 timezone;
|
|
u8 daylight;
|
|
u8 pad2;
|
|
} efi_time_t;
|
|
|
|
typedef struct {
|
|
u32 resolution;
|
|
u32 accuracy;
|
|
u8 sets_to_zero;
|
|
} efi_time_cap_t;
|
|
|
|
typedef u8 efi_bool_t;
|
|
|
|
typedef struct {
|
|
u32 type;
|
|
u32 pad;
|
|
u64 phys_addr;
|
|
u64 virt_addr;
|
|
u64 num_pages;
|
|
u64 attribute;
|
|
} efi_memory_desc_t;
|
|
|
|
typedef u16 efi_char16_t;
|
|
|
|
typedef struct {
|
|
efi_guid_t guid;
|
|
u32 headersize;
|
|
u32 flags;
|
|
u32 imagesize;
|
|
} efi_capsule_header_t;
|
|
|
|
typedef struct {
|
|
efi_table_hdr_t hdr;
|
|
u32 get_time;
|
|
u32 set_time;
|
|
u32 get_wakeup_time;
|
|
u32 set_wakeup_time;
|
|
u32 set_virtual_address_map;
|
|
u32 convert_pointer;
|
|
u32 get_variable;
|
|
u32 get_next_variable;
|
|
u32 set_variable;
|
|
u32 get_next_high_mono_count;
|
|
u32 reset_system;
|
|
u32 update_capsule;
|
|
u32 query_capsule_caps;
|
|
u32 query_variable_info;
|
|
} efi_runtime_services_32_t;
|
|
|
|
typedef union {
|
|
struct {
|
|
efi_table_hdr_t hdr;
|
|
efi_status_t (*get_time)(efi_time_t *, efi_time_cap_t *);
|
|
efi_status_t (*set_time)(efi_time_t *);
|
|
efi_status_t (*get_wakeup_time)(efi_bool_t *, efi_bool_t *, efi_time_t *);
|
|
efi_status_t (*set_wakeup_time)(efi_bool_t, efi_time_t *);
|
|
efi_status_t (*set_virtual_address_map)(unsigned long, unsigned long, u32, efi_memory_desc_t *);
|
|
void *convert_pointer;
|
|
efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *);
|
|
efi_status_t (*get_next_variable)(unsigned long *, efi_char16_t *, efi_guid_t *);
|
|
efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *);
|
|
efi_status_t (*get_next_high_mono_count)(u32 *);
|
|
void (*reset_system)(int, efi_status_t, unsigned long, efi_char16_t *);
|
|
efi_status_t (*update_capsule)(efi_capsule_header_t **, unsigned long, unsigned long);
|
|
efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, unsigned long, u64 *, int *);
|
|
efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *);
|
|
};
|
|
efi_runtime_services_32_t mixed_mode;
|
|
} efi_runtime_services_t;
|
|
|
|
struct efi_memory_map_data {
|
|
phys_addr_t phys_map;
|
|
unsigned long size;
|
|
unsigned long desc_version;
|
|
unsigned long desc_size;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct e820_entry {
|
|
u64 addr;
|
|
u64 size;
|
|
enum e820_type type;
|
|
} __attribute__((packed));
|
|
|
|
struct e820_table {
|
|
__u32 nr_entries;
|
|
struct e820_entry entries[131];
|
|
} __attribute__((packed));
|
|
|
|
typedef struct {
|
|
efi_guid_t guid;
|
|
u32 table;
|
|
} efi_config_table_32_t;
|
|
|
|
typedef union {
|
|
struct {
|
|
efi_guid_t guid;
|
|
void *table;
|
|
};
|
|
efi_config_table_32_t mixed_mode;
|
|
} efi_config_table_t;
|
|
|
|
typedef struct {
|
|
u32 version;
|
|
u32 length;
|
|
u64 memory_protection_attribute;
|
|
} efi_properties_table_t;
|
|
|
|
typedef struct {
|
|
efi_table_hdr_t hdr;
|
|
u32 fw_vendor;
|
|
u32 fw_revision;
|
|
u32 con_in_handle;
|
|
u32 con_in;
|
|
u32 con_out_handle;
|
|
u32 con_out;
|
|
u32 stderr_handle;
|
|
u32 stderr;
|
|
u32 runtime;
|
|
u32 boottime;
|
|
u32 nr_tables;
|
|
u32 tables;
|
|
} efi_system_table_32_t;
|
|
|
|
typedef struct {
|
|
efi_table_hdr_t hdr;
|
|
u64 fw_vendor;
|
|
u32 fw_revision;
|
|
u32 __pad1;
|
|
u64 con_in_handle;
|
|
u64 con_in;
|
|
u64 con_out_handle;
|
|
u64 con_out;
|
|
u64 stderr_handle;
|
|
u64 stderr;
|
|
u64 runtime;
|
|
u64 boottime;
|
|
u32 nr_tables;
|
|
u32 __pad2;
|
|
u64 tables;
|
|
} efi_system_table_64_t;
|
|
|
|
struct efi_setup_data {
|
|
u64 fw_vendor;
|
|
u64 __unused;
|
|
u64 tables;
|
|
u64 smbios;
|
|
u64 reserved[8];
|
|
};
|
|
|
|
struct async_entry {
|
|
struct list_head domain_list;
|
|
struct list_head global_list;
|
|
struct work_struct work;
|
|
async_cookie_t cookie;
|
|
async_func_t func;
|
|
void *data;
|
|
struct async_domain *domain;
|
|
};
|
|
|
|
struct pool_workqueue;
|
|
|
|
struct worker_pool;
|
|
|
|
struct worker {
|
|
union {
|
|
struct list_head entry;
|
|
struct hlist_node hentry;
|
|
};
|
|
struct work_struct *current_work;
|
|
work_func_t current_func;
|
|
struct pool_workqueue *current_pwq;
|
|
unsigned int current_color;
|
|
struct list_head scheduled;
|
|
struct task_struct *task;
|
|
struct worker_pool *pool;
|
|
struct list_head node;
|
|
unsigned long last_active;
|
|
unsigned int flags;
|
|
int id;
|
|
int sleeping;
|
|
char desc[24];
|
|
struct workqueue_struct *rescue_wq;
|
|
work_func_t last_func;
|
|
};
|
|
|
|
enum rwsem_waiter_type {
|
|
RWSEM_WAITING_FOR_WRITE = 0,
|
|
RWSEM_WAITING_FOR_READ = 1,
|
|
};
|
|
|
|
enum rwsem_wake_type {
|
|
RWSEM_WAKE_ANY = 0,
|
|
RWSEM_WAKE_READERS = 1,
|
|
RWSEM_WAKE_READ_OWNED = 2,
|
|
};
|
|
|
|
enum owner_state {
|
|
OWNER_NULL = 1,
|
|
OWNER_WRITER = 2,
|
|
OWNER_READER = 4,
|
|
OWNER_NONSPINNABLE = 8,
|
|
};
|
|
|
|
struct rwsem_waiter {
|
|
struct list_head list;
|
|
struct task_struct *task;
|
|
enum rwsem_waiter_type type;
|
|
unsigned long timeout;
|
|
bool handoff_set;
|
|
};
|
|
|
|
enum desc_state {
|
|
desc_miss = -1,
|
|
desc_reserved = 0,
|
|
desc_committed = 1,
|
|
desc_finalized = 2,
|
|
desc_reusable = 3,
|
|
};
|
|
|
|
struct prb_data_blk_lpos {
|
|
unsigned long begin;
|
|
unsigned long next;
|
|
};
|
|
|
|
struct prb_desc {
|
|
atomic_long_t state_var;
|
|
struct prb_data_blk_lpos text_blk_lpos;
|
|
};
|
|
|
|
struct printk_info;
|
|
|
|
struct prb_desc_ring {
|
|
unsigned int count_bits;
|
|
struct prb_desc *descs;
|
|
struct printk_info *infos;
|
|
atomic_long_t head_id;
|
|
atomic_long_t tail_id;
|
|
atomic_long_t last_finalized_id;
|
|
};
|
|
|
|
struct dev_printk_info {
|
|
char subsystem[16];
|
|
char device[48];
|
|
};
|
|
|
|
struct printk_info {
|
|
u64 seq;
|
|
u64 ts_nsec;
|
|
u16 text_len;
|
|
u8 facility;
|
|
u8 flags: 5;
|
|
u8 level: 3;
|
|
u32 caller_id;
|
|
struct dev_printk_info dev_info;
|
|
};
|
|
|
|
struct prb_data_ring {
|
|
unsigned int size_bits;
|
|
char *data;
|
|
atomic_long_t head_lpos;
|
|
atomic_long_t tail_lpos;
|
|
};
|
|
|
|
struct prb_data_block {
|
|
unsigned long id;
|
|
char data[0];
|
|
};
|
|
|
|
struct printk_ringbuffer {
|
|
struct prb_desc_ring desc_ring;
|
|
struct prb_data_ring text_data_ring;
|
|
atomic_long_t fail;
|
|
};
|
|
|
|
struct prb_reserved_entry {
|
|
struct printk_ringbuffer *rb;
|
|
unsigned long irqflags;
|
|
unsigned long id;
|
|
unsigned int text_space;
|
|
};
|
|
|
|
struct printk_record {
|
|
struct printk_info *info;
|
|
char *text_buf;
|
|
unsigned int text_buf_size;
|
|
};
|
|
|
|
typedef void (*btf_trace_timer_init)(void *, struct timer_list *);
|
|
|
|
typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int);
|
|
|
|
typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long);
|
|
|
|
typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *);
|
|
|
|
typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *);
|
|
|
|
typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode);
|
|
|
|
typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode);
|
|
|
|
typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *);
|
|
|
|
typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *);
|
|
|
|
typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *);
|
|
|
|
typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long);
|
|
|
|
typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long);
|
|
|
|
typedef void (*btf_trace_tick_stop)(void *, int, int);
|
|
|
|
struct timer_base {
|
|
raw_spinlock_t lock;
|
|
struct timer_list *running_timer;
|
|
unsigned long clk;
|
|
unsigned long next_expiry;
|
|
unsigned int cpu;
|
|
bool next_expiry_recalc;
|
|
bool is_idle;
|
|
bool timers_pending;
|
|
unsigned long pending_map[9];
|
|
struct hlist_head vectors[576];
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct trace_event_raw_timer_class {
|
|
struct trace_entry ent;
|
|
void *timer;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_timer_start {
|
|
struct trace_entry ent;
|
|
void *timer;
|
|
void *function;
|
|
unsigned long expires;
|
|
unsigned long now;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_timer_expire_entry {
|
|
struct trace_entry ent;
|
|
void *timer;
|
|
unsigned long now;
|
|
void *function;
|
|
unsigned long baseclk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hrtimer_init {
|
|
struct trace_entry ent;
|
|
void *hrtimer;
|
|
clockid_t clockid;
|
|
enum hrtimer_mode mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hrtimer_start {
|
|
struct trace_entry ent;
|
|
void *hrtimer;
|
|
void *function;
|
|
s64 expires;
|
|
s64 softexpires;
|
|
enum hrtimer_mode mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hrtimer_expire_entry {
|
|
struct trace_entry ent;
|
|
void *hrtimer;
|
|
s64 now;
|
|
void *function;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hrtimer_class {
|
|
struct trace_entry ent;
|
|
void *hrtimer;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_itimer_state {
|
|
struct trace_entry ent;
|
|
int which;
|
|
unsigned long long expires;
|
|
long value_sec;
|
|
long value_nsec;
|
|
long interval_sec;
|
|
long interval_nsec;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_itimer_expire {
|
|
struct trace_entry ent;
|
|
int which;
|
|
pid_t pid;
|
|
unsigned long long now;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tick_stop {
|
|
struct trace_entry ent;
|
|
int success;
|
|
int dependency;
|
|
char __data[0];
|
|
};
|
|
|
|
struct process_timer {
|
|
struct timer_list timer;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
struct trace_event_data_offsets_timer_class {};
|
|
|
|
struct trace_event_data_offsets_timer_start {};
|
|
|
|
struct trace_event_data_offsets_timer_expire_entry {};
|
|
|
|
struct trace_event_data_offsets_hrtimer_init {};
|
|
|
|
struct trace_event_data_offsets_hrtimer_start {};
|
|
|
|
struct trace_event_data_offsets_hrtimer_expire_entry {};
|
|
|
|
struct trace_event_data_offsets_hrtimer_class {};
|
|
|
|
struct trace_event_data_offsets_itimer_state {};
|
|
|
|
struct trace_event_data_offsets_itimer_expire {};
|
|
|
|
struct trace_event_data_offsets_tick_stop {};
|
|
|
|
struct audit_fsnotify_mark {
|
|
dev_t dev;
|
|
unsigned long ino;
|
|
char *path;
|
|
struct fsnotify_mark mark;
|
|
struct audit_krule *rule;
|
|
};
|
|
|
|
struct bpf_preload_info;
|
|
|
|
struct bpf_preload_ops {
|
|
int (*preload)(struct bpf_preload_info *);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct bpf_preload_info {
|
|
char link_name[16];
|
|
struct bpf_link *link;
|
|
};
|
|
|
|
enum bpf_type {
|
|
BPF_TYPE_UNSPEC = 0,
|
|
BPF_TYPE_PROG = 1,
|
|
BPF_TYPE_MAP = 2,
|
|
BPF_TYPE_LINK = 3,
|
|
};
|
|
|
|
enum {
|
|
OPT_MODE = 0,
|
|
};
|
|
|
|
struct map_iter {
|
|
void *key;
|
|
bool done;
|
|
};
|
|
|
|
struct bpf_mount_opts {
|
|
umode_t mode;
|
|
};
|
|
|
|
struct cgroup_iter_priv {
|
|
struct cgroup_subsys_state *start_css;
|
|
bool visited_all;
|
|
bool terminate;
|
|
int order;
|
|
};
|
|
|
|
struct bpf_iter__cgroup {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct cgroup *cgroup;
|
|
};
|
|
};
|
|
|
|
struct bp_slots_histogram {
|
|
atomic_t count[4];
|
|
};
|
|
|
|
struct bp_cpuinfo {
|
|
unsigned int cpu_pinned;
|
|
struct bp_slots_histogram tsk_pinned;
|
|
};
|
|
|
|
enum bp_type_idx {
|
|
TYPE_INST = 0,
|
|
TYPE_DATA = 0,
|
|
TYPE_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
HW_BREAKPOINT_EMPTY = 0,
|
|
HW_BREAKPOINT_R = 1,
|
|
HW_BREAKPOINT_W = 2,
|
|
HW_BREAKPOINT_RW = 3,
|
|
HW_BREAKPOINT_X = 4,
|
|
HW_BREAKPOINT_INVALID = 7,
|
|
};
|
|
|
|
typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long);
|
|
|
|
typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int);
|
|
|
|
typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, isolate_mode_t, int);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *);
|
|
|
|
struct reclaim_stat;
|
|
|
|
typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int);
|
|
|
|
struct reclaim_stat {
|
|
unsigned int nr_dirty;
|
|
unsigned int nr_unqueued_dirty;
|
|
unsigned int nr_congested;
|
|
unsigned int nr_writeback;
|
|
unsigned int nr_immediate;
|
|
unsigned int nr_pageout;
|
|
unsigned int nr_activate[2];
|
|
unsigned int nr_ref_keep;
|
|
unsigned int nr_unmap_fail;
|
|
unsigned int nr_lazyfree_fail;
|
|
};
|
|
|
|
typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long);
|
|
|
|
typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int);
|
|
|
|
enum vmscan_throttle_state {
|
|
VMSCAN_THROTTLE_WRITEBACK = 0,
|
|
VMSCAN_THROTTLE_ISOLATED = 1,
|
|
VMSCAN_THROTTLE_NOPROGRESS = 2,
|
|
VMSCAN_THROTTLE_CONGESTED = 3,
|
|
NR_VMSCAN_THROTTLE = 4,
|
|
};
|
|
|
|
enum folio_references {
|
|
FOLIOREF_RECLAIM = 0,
|
|
FOLIOREF_RECLAIM_CLEAN = 1,
|
|
FOLIOREF_KEEP = 2,
|
|
FOLIOREF_ACTIVATE = 3,
|
|
};
|
|
|
|
enum pgdat_flags {
|
|
PGDAT_DIRTY = 0,
|
|
PGDAT_WRITEBACK = 1,
|
|
PGDAT_RECLAIM_LOCKED = 2,
|
|
};
|
|
|
|
enum {
|
|
SWP_USED = 1,
|
|
SWP_WRITEOK = 2,
|
|
SWP_DISCARDABLE = 4,
|
|
SWP_DISCARDING = 8,
|
|
SWP_SOLIDSTATE = 16,
|
|
SWP_CONTINUED = 32,
|
|
SWP_BLKDEV = 64,
|
|
SWP_ACTIVATED = 128,
|
|
SWP_FS_OPS = 256,
|
|
SWP_AREA_DISCARD = 512,
|
|
SWP_PAGE_DISCARD = 1024,
|
|
SWP_STABLE_WRITES = 2048,
|
|
SWP_SYNCHRONOUS_IO = 4096,
|
|
SWP_SCANNING = 16384,
|
|
};
|
|
|
|
enum lru_list {
|
|
LRU_INACTIVE_ANON = 0,
|
|
LRU_ACTIVE_ANON = 1,
|
|
LRU_INACTIVE_FILE = 2,
|
|
LRU_ACTIVE_FILE = 3,
|
|
LRU_UNEVICTABLE = 4,
|
|
NR_LRU_LISTS = 5,
|
|
};
|
|
|
|
enum zone_watermarks {
|
|
WMARK_MIN = 0,
|
|
WMARK_LOW = 1,
|
|
WMARK_HIGH = 2,
|
|
WMARK_PROMO = 3,
|
|
NR_WMARK = 4,
|
|
};
|
|
|
|
enum lruvec_flags {
|
|
LRUVEC_CONGESTED = 0,
|
|
};
|
|
|
|
enum compact_result {
|
|
COMPACT_NOT_SUITABLE_ZONE = 0,
|
|
COMPACT_SKIPPED = 1,
|
|
COMPACT_DEFERRED = 2,
|
|
COMPACT_NO_SUITABLE_PAGE = 3,
|
|
COMPACT_CONTINUE = 4,
|
|
COMPACT_COMPLETE = 5,
|
|
COMPACT_PARTIAL_SKIPPED = 6,
|
|
COMPACT_CONTENDED = 7,
|
|
COMPACT_SUCCESS = 8,
|
|
};
|
|
|
|
enum memcg_memory_event {
|
|
MEMCG_LOW = 0,
|
|
MEMCG_HIGH = 1,
|
|
MEMCG_MAX = 2,
|
|
MEMCG_OOM = 3,
|
|
MEMCG_OOM_KILL = 4,
|
|
MEMCG_OOM_GROUP_KILL = 5,
|
|
MEMCG_SWAP_HIGH = 6,
|
|
MEMCG_SWAP_MAX = 7,
|
|
MEMCG_SWAP_FAIL = 8,
|
|
MEMCG_NR_MEMORY_EVENTS = 9,
|
|
};
|
|
|
|
enum scan_balance {
|
|
SCAN_EQUAL = 0,
|
|
SCAN_FRACT = 1,
|
|
SCAN_ANON = 2,
|
|
SCAN_FILE = 3,
|
|
};
|
|
|
|
enum {
|
|
ZONELIST_FALLBACK = 0,
|
|
MAX_ZONELISTS = 1,
|
|
};
|
|
|
|
enum zone_flags {
|
|
ZONE_BOOSTED_WATERMARK = 0,
|
|
ZONE_RECLAIM_ACTIVE = 1,
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_kswapd_sleep {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_kswapd_wake {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
int zid;
|
|
int order;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_wakeup_kswapd {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
int zid;
|
|
int order;
|
|
unsigned long gfp_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template {
|
|
struct trace_entry ent;
|
|
int order;
|
|
unsigned long gfp_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_direct_reclaim_end_template {
|
|
struct trace_entry ent;
|
|
unsigned long nr_reclaimed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_shrink_slab_start {
|
|
struct trace_entry ent;
|
|
struct shrinker *shr;
|
|
void *shrink;
|
|
int nid;
|
|
long nr_objects_to_shrink;
|
|
unsigned long gfp_flags;
|
|
unsigned long cache_items;
|
|
unsigned long long delta;
|
|
unsigned long total_scan;
|
|
int priority;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_shrink_slab_end {
|
|
struct trace_entry ent;
|
|
struct shrinker *shr;
|
|
int nid;
|
|
void *shrink;
|
|
long unused_scan;
|
|
long new_scan;
|
|
int retval;
|
|
long total_scan;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_lru_isolate {
|
|
struct trace_entry ent;
|
|
int highest_zoneidx;
|
|
int order;
|
|
unsigned long nr_requested;
|
|
unsigned long nr_scanned;
|
|
unsigned long nr_skipped;
|
|
unsigned long nr_taken;
|
|
unsigned int isolate_mode;
|
|
int lru;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_write_folio {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
int reclaim_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_lru_shrink_inactive {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
unsigned long nr_scanned;
|
|
unsigned long nr_reclaimed;
|
|
unsigned long nr_dirty;
|
|
unsigned long nr_writeback;
|
|
unsigned long nr_congested;
|
|
unsigned long nr_immediate;
|
|
unsigned int nr_activate0;
|
|
unsigned int nr_activate1;
|
|
unsigned long nr_ref_keep;
|
|
unsigned long nr_unmap_fail;
|
|
int priority;
|
|
int reclaim_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_lru_shrink_active {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
unsigned long nr_taken;
|
|
unsigned long nr_active;
|
|
unsigned long nr_deactivated;
|
|
unsigned long nr_referenced;
|
|
int priority;
|
|
int reclaim_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_node_reclaim_begin {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
int order;
|
|
unsigned long gfp_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_vmscan_throttled {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
int usec_timeout;
|
|
int usec_delayed;
|
|
int reason;
|
|
char __data[0];
|
|
};
|
|
|
|
struct scan_control {
|
|
unsigned long nr_to_reclaim;
|
|
nodemask_t *nodemask;
|
|
struct mem_cgroup *target_mem_cgroup;
|
|
unsigned long anon_cost;
|
|
unsigned long file_cost;
|
|
unsigned int may_deactivate: 2;
|
|
unsigned int force_deactivate: 1;
|
|
unsigned int skipped_deactivate: 1;
|
|
unsigned int may_writepage: 1;
|
|
unsigned int may_unmap: 1;
|
|
unsigned int may_swap: 1;
|
|
unsigned int proactive: 1;
|
|
unsigned int memcg_low_reclaim: 1;
|
|
unsigned int memcg_low_skipped: 1;
|
|
unsigned int hibernation_mode: 1;
|
|
unsigned int compaction_ready: 1;
|
|
unsigned int cache_trim_mode: 1;
|
|
unsigned int file_is_tiny: 1;
|
|
unsigned int no_demotion: 1;
|
|
s8 order;
|
|
s8 priority;
|
|
s8 reclaim_idx;
|
|
gfp_t gfp_mask;
|
|
unsigned long nr_scanned;
|
|
unsigned long nr_reclaimed;
|
|
struct {
|
|
unsigned int dirty;
|
|
unsigned int unqueued_dirty;
|
|
unsigned int congested;
|
|
unsigned int writeback;
|
|
unsigned int immediate;
|
|
unsigned int file_taken;
|
|
unsigned int taken;
|
|
} nr;
|
|
struct reclaim_state reclaim_state;
|
|
};
|
|
|
|
typedef enum {
|
|
PAGE_KEEP = 0,
|
|
PAGE_ACTIVATE = 1,
|
|
PAGE_SUCCESS = 2,
|
|
PAGE_CLEAN = 3,
|
|
} pageout_t;
|
|
|
|
struct folio_batch {
|
|
unsigned char nr;
|
|
bool percpu_pvec_drained;
|
|
struct folio *folios[15];
|
|
};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_kswapd_wake {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {};
|
|
|
|
struct trace_event_data_offsets_mm_shrink_slab_start {};
|
|
|
|
struct trace_event_data_offsets_mm_shrink_slab_end {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_lru_isolate {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_write_folio {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {};
|
|
|
|
struct trace_event_data_offsets_mm_vmscan_throttled {};
|
|
|
|
struct bh_lru {
|
|
struct buffer_head *bhs[16];
|
|
};
|
|
|
|
struct bh_accounting {
|
|
int nr;
|
|
int ratelimit;
|
|
};
|
|
|
|
struct postprocess_bh_ctx {
|
|
struct work_struct work;
|
|
struct buffer_head *bh;
|
|
};
|
|
|
|
struct ctl_path {
|
|
const char *procname;
|
|
};
|
|
|
|
struct sysctl_alias {
|
|
const char *kernel_param;
|
|
const char *sysctl_param;
|
|
};
|
|
|
|
enum hugetlb_page_flags {
|
|
HPG_restore_reserve = 0,
|
|
HPG_migratable = 1,
|
|
HPG_temporary = 2,
|
|
HPG_freed = 3,
|
|
HPG_vmemmap_optimized = 4,
|
|
HPG_raw_hwp_unreliable = 5,
|
|
__NR_HPAGEFLAGS = 6,
|
|
};
|
|
|
|
enum hugetlbfs_size_type {
|
|
NO_SIZE = 0,
|
|
SIZE_STD = 1,
|
|
SIZE_PERCENT = 2,
|
|
};
|
|
|
|
enum hugetlb_param {
|
|
Opt_gid = 0,
|
|
Opt_min_size = 1,
|
|
Opt_mode = 2,
|
|
Opt_nr_inodes = 3,
|
|
Opt_pagesize = 4,
|
|
Opt_size = 5,
|
|
Opt_uid = 6,
|
|
};
|
|
|
|
typedef unsigned int zap_flags_t;
|
|
|
|
struct page_counter;
|
|
|
|
struct resv_map {
|
|
struct kref refs;
|
|
spinlock_t lock;
|
|
struct list_head regions;
|
|
long adds_in_progress;
|
|
struct list_head region_cache;
|
|
long region_cache_count;
|
|
struct page_counter *reservation_counter;
|
|
unsigned long pages_per_hpage;
|
|
struct cgroup_subsys_state *css;
|
|
};
|
|
|
|
struct page_counter {
|
|
atomic_long_t usage;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct cacheline_padding _pad1_;
|
|
unsigned long emin;
|
|
atomic_long_t min_usage;
|
|
atomic_long_t children_min_usage;
|
|
unsigned long elow;
|
|
atomic_long_t low_usage;
|
|
atomic_long_t children_low_usage;
|
|
unsigned long watermark;
|
|
unsigned long failcnt;
|
|
struct cacheline_padding _pad2_;
|
|
unsigned long min;
|
|
unsigned long low;
|
|
unsigned long high;
|
|
unsigned long max;
|
|
struct page_counter *parent;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct hugetlb_vma_lock {
|
|
struct kref refs;
|
|
struct rw_semaphore rw_sema;
|
|
struct vm_area_struct *vma;
|
|
};
|
|
|
|
struct hugetlbfs_fs_context {
|
|
struct hstate *hstate;
|
|
unsigned long long max_size_opt;
|
|
unsigned long long min_size_opt;
|
|
long max_hpages;
|
|
long nr_inodes;
|
|
long min_hpages;
|
|
enum hugetlbfs_size_type max_val_type;
|
|
enum hugetlbfs_size_type min_val_type;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
};
|
|
|
|
struct nfs_netns_client {
|
|
struct kobject kobject;
|
|
struct net *net;
|
|
const char __attribute__((btf_type_tag("rcu"))) *identifier;
|
|
};
|
|
|
|
struct bl_dev_msg {
|
|
int32_t status;
|
|
uint32_t major;
|
|
uint32_t minor;
|
|
};
|
|
|
|
struct cache_detail;
|
|
|
|
struct rpc_pipe;
|
|
|
|
struct nfs_net {
|
|
struct cache_detail *nfs_dns_resolve;
|
|
struct rpc_pipe *bl_device_pipe;
|
|
struct bl_dev_msg bl_mount_reply;
|
|
wait_queue_head_t bl_wq;
|
|
struct mutex bl_mutex;
|
|
struct list_head nfs_client_list;
|
|
struct list_head nfs_volume_list;
|
|
struct idr cb_ident_idr;
|
|
unsigned short nfs_callback_tcpport;
|
|
unsigned short nfs_callback_tcpport6;
|
|
int cb_users[1];
|
|
struct nfs_netns_client *nfs_client;
|
|
spinlock_t nfs_client_lock;
|
|
ktime_t boot_time;
|
|
struct proc_dir_entry *proc_nfsfs;
|
|
};
|
|
|
|
struct rpc_pipe_ops;
|
|
|
|
struct rpc_pipe {
|
|
struct list_head pipe;
|
|
struct list_head in_upcall;
|
|
struct list_head in_downcall;
|
|
int pipelen;
|
|
int nreaders;
|
|
int nwriters;
|
|
int flags;
|
|
struct delayed_work queue_timeout;
|
|
const struct rpc_pipe_ops *ops;
|
|
spinlock_t lock;
|
|
struct dentry *dentry;
|
|
};
|
|
|
|
struct rpc_pipe_msg;
|
|
|
|
struct rpc_pipe_ops {
|
|
ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __attribute__((btf_type_tag("user"))) *, size_t);
|
|
ssize_t (*downcall)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t);
|
|
void (*release_pipe)(struct inode *);
|
|
int (*open_pipe)(struct inode *);
|
|
void (*destroy_msg)(struct rpc_pipe_msg *);
|
|
};
|
|
|
|
struct rpc_pipe_msg {
|
|
struct list_head list;
|
|
void *data;
|
|
size_t len;
|
|
size_t copied;
|
|
int errno;
|
|
};
|
|
|
|
struct rpc_pipe_dir_object_ops;
|
|
|
|
struct rpc_pipe_dir_object {
|
|
struct list_head pdo_head;
|
|
const struct rpc_pipe_dir_object_ops *pdo_ops;
|
|
void *pdo_data;
|
|
};
|
|
|
|
struct idmap_legacy_upcalldata;
|
|
|
|
struct idmap {
|
|
struct rpc_pipe_dir_object idmap_pdo;
|
|
struct rpc_pipe *idmap_pipe;
|
|
struct idmap_legacy_upcalldata *idmap_upcall_data;
|
|
struct mutex idmap_mutex;
|
|
struct user_namespace *user_ns;
|
|
};
|
|
|
|
struct rpc_pipe_dir_object_ops {
|
|
int (*create)(struct dentry *, struct rpc_pipe_dir_object *);
|
|
void (*destroy)(struct dentry *, struct rpc_pipe_dir_object *);
|
|
};
|
|
|
|
struct idmap_msg {
|
|
__u8 im_type;
|
|
__u8 im_conv;
|
|
char im_name[128];
|
|
__u32 im_id;
|
|
__u8 im_status;
|
|
};
|
|
|
|
struct idmap_legacy_upcalldata {
|
|
struct rpc_pipe_msg pipe_msg;
|
|
struct idmap_msg idmap_msg;
|
|
struct key *authkey;
|
|
struct idmap *idmap;
|
|
};
|
|
|
|
enum {
|
|
Opt_find_uid = 0,
|
|
Opt_find_gid = 1,
|
|
Opt_find_user = 2,
|
|
Opt_find_group = 3,
|
|
Opt_find_err = 4,
|
|
};
|
|
|
|
struct rpc_inode {
|
|
struct inode vfs_inode;
|
|
void *private;
|
|
struct rpc_pipe *pipe;
|
|
wait_queue_head_t waitq;
|
|
};
|
|
|
|
struct user_key_payload {
|
|
struct callback_head rcu;
|
|
unsigned short datalen;
|
|
long: 48;
|
|
char data[0];
|
|
};
|
|
|
|
struct sembuf {
|
|
unsigned short sem_num;
|
|
short sem_op;
|
|
short sem_flg;
|
|
};
|
|
|
|
struct compat_ipc_kludge {
|
|
compat_uptr_t msgp;
|
|
compat_long_t msgtyp;
|
|
};
|
|
|
|
struct netlbl_lsm_catmap {
|
|
u32 startbit;
|
|
u64 bitmap[4];
|
|
struct netlbl_lsm_catmap *next;
|
|
};
|
|
|
|
enum {
|
|
POLICYDB_CAP_NETPEER = 0,
|
|
POLICYDB_CAP_OPENPERM = 1,
|
|
POLICYDB_CAP_EXTSOCKCLASS = 2,
|
|
POLICYDB_CAP_ALWAYSNETWORK = 3,
|
|
POLICYDB_CAP_CGROUPSECLABEL = 4,
|
|
POLICYDB_CAP_NNP_NOSUID_TRANSITION = 5,
|
|
POLICYDB_CAP_GENFS_SECLABEL_SYMLINKS = 6,
|
|
POLICYDB_CAP_IOCTL_SKIP_CLOEXEC = 7,
|
|
__POLICYDB_CAP_MAX = 8,
|
|
};
|
|
|
|
struct crypto_report_akcipher {
|
|
char type[64];
|
|
};
|
|
|
|
typedef struct {
|
|
__be64 a;
|
|
__be64 b;
|
|
} be128;
|
|
|
|
struct gf128mul_4k {
|
|
be128 t[256];
|
|
};
|
|
|
|
struct ghash_ctx {
|
|
struct gf128mul_4k *gf128;
|
|
};
|
|
|
|
struct ghash_desc_ctx {
|
|
u8 buffer[16];
|
|
u32 bytes;
|
|
};
|
|
|
|
struct asn1_decoder;
|
|
|
|
struct x509_parse_context {
|
|
struct x509_certificate *cert;
|
|
unsigned long data;
|
|
const void *key;
|
|
size_t key_size;
|
|
const void *params;
|
|
size_t params_size;
|
|
enum OID key_algo;
|
|
enum OID last_oid;
|
|
enum OID sig_algo;
|
|
u8 o_size;
|
|
u8 cn_size;
|
|
u8 email_size;
|
|
u16 o_offset;
|
|
u16 cn_offset;
|
|
u16 email_offset;
|
|
unsigned int raw_akid_size;
|
|
const void *raw_akid;
|
|
const void *akid_raw_issuer;
|
|
unsigned int akid_raw_issuer_size;
|
|
};
|
|
|
|
struct queue_sysfs_entry {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct request_queue *, char *);
|
|
ssize_t (*store)(struct request_queue *, const char *, size_t);
|
|
};
|
|
|
|
struct io_rename {
|
|
struct file *file;
|
|
int old_dfd;
|
|
int new_dfd;
|
|
struct filename *oldpath;
|
|
struct filename *newpath;
|
|
int flags;
|
|
};
|
|
|
|
struct io_unlink {
|
|
struct file *file;
|
|
int dfd;
|
|
int flags;
|
|
struct filename *filename;
|
|
};
|
|
|
|
struct io_mkdir {
|
|
struct file *file;
|
|
int dfd;
|
|
umode_t mode;
|
|
struct filename *filename;
|
|
};
|
|
|
|
struct io_link {
|
|
struct file *file;
|
|
int old_dfd;
|
|
int new_dfd;
|
|
struct filename *oldpath;
|
|
struct filename *newpath;
|
|
int flags;
|
|
};
|
|
|
|
typedef void (*swap_r_func_t)(void *, void *, int, const void *);
|
|
|
|
struct wrapper {
|
|
cmp_func_t cmp;
|
|
swap_func_t swap;
|
|
};
|
|
|
|
typedef int (*cmp_r_func_t)(const void *, const void *, const void *);
|
|
|
|
struct rnd_state {
|
|
__u32 s1;
|
|
__u32 s2;
|
|
__u32 s3;
|
|
__u32 s4;
|
|
};
|
|
|
|
typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *);
|
|
|
|
typedef unsigned int iov_iter_extraction_t;
|
|
|
|
struct iov_iter_state {
|
|
size_t iov_offset;
|
|
size_t count;
|
|
unsigned long nr_segs;
|
|
};
|
|
|
|
enum acpi_madt_type {
|
|
ACPI_MADT_TYPE_LOCAL_APIC = 0,
|
|
ACPI_MADT_TYPE_IO_APIC = 1,
|
|
ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2,
|
|
ACPI_MADT_TYPE_NMI_SOURCE = 3,
|
|
ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4,
|
|
ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5,
|
|
ACPI_MADT_TYPE_IO_SAPIC = 6,
|
|
ACPI_MADT_TYPE_LOCAL_SAPIC = 7,
|
|
ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8,
|
|
ACPI_MADT_TYPE_LOCAL_X2APIC = 9,
|
|
ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10,
|
|
ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11,
|
|
ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12,
|
|
ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13,
|
|
ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14,
|
|
ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15,
|
|
ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16,
|
|
ACPI_MADT_TYPE_CORE_PIC = 17,
|
|
ACPI_MADT_TYPE_LIO_PIC = 18,
|
|
ACPI_MADT_TYPE_HT_PIC = 19,
|
|
ACPI_MADT_TYPE_EIO_PIC = 20,
|
|
ACPI_MADT_TYPE_MSI_PIC = 21,
|
|
ACPI_MADT_TYPE_BIO_PIC = 22,
|
|
ACPI_MADT_TYPE_LPC_PIC = 23,
|
|
ACPI_MADT_TYPE_RESERVED = 24,
|
|
ACPI_MADT_TYPE_OEM_RESERVED = 128,
|
|
};
|
|
|
|
enum acpi_cedt_type {
|
|
ACPI_CEDT_TYPE_CHBS = 0,
|
|
ACPI_CEDT_TYPE_CFMWS = 1,
|
|
ACPI_CEDT_TYPE_CXIMS = 2,
|
|
ACPI_CEDT_TYPE_RDPAS = 3,
|
|
ACPI_CEDT_TYPE_RESERVED = 4,
|
|
};
|
|
|
|
enum acpi_subtable_type {
|
|
ACPI_SUBTABLE_COMMON = 0,
|
|
ACPI_SUBTABLE_HMAT = 1,
|
|
ACPI_SUBTABLE_PRMT = 2,
|
|
ACPI_SUBTABLE_CEDT = 3,
|
|
};
|
|
|
|
struct acpi_subtable_header {
|
|
u8 type;
|
|
u8 length;
|
|
};
|
|
|
|
struct acpi_madt_local_apic {
|
|
struct acpi_subtable_header header;
|
|
u8 processor_id;
|
|
u8 id;
|
|
u32 lapic_flags;
|
|
};
|
|
|
|
struct acpi_madt_local_x2apic {
|
|
struct acpi_subtable_header header;
|
|
u16 reserved;
|
|
u32 local_apic_id;
|
|
u32 lapic_flags;
|
|
u32 uid;
|
|
};
|
|
|
|
struct acpi_madt_io_apic {
|
|
struct acpi_subtable_header header;
|
|
u8 id;
|
|
u8 reserved;
|
|
u32 address;
|
|
u32 global_irq_base;
|
|
};
|
|
|
|
struct acpi_madt_interrupt_override {
|
|
struct acpi_subtable_header header;
|
|
u8 bus;
|
|
u8 source_irq;
|
|
u32 global_irq;
|
|
u16 inti_flags;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_madt_nmi_source {
|
|
struct acpi_subtable_header header;
|
|
u16 inti_flags;
|
|
u32 global_irq;
|
|
};
|
|
|
|
struct acpi_madt_local_apic_nmi {
|
|
struct acpi_subtable_header header;
|
|
u8 processor_id;
|
|
u16 inti_flags;
|
|
u8 lint;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_madt_local_x2apic_nmi {
|
|
struct acpi_subtable_header header;
|
|
u16 inti_flags;
|
|
u32 uid;
|
|
u8 lint;
|
|
u8 reserved[3];
|
|
};
|
|
|
|
struct acpi_madt_local_apic_override {
|
|
struct acpi_subtable_header header;
|
|
u16 reserved;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_madt_io_sapic {
|
|
struct acpi_subtable_header header;
|
|
u8 id;
|
|
u8 reserved;
|
|
u32 global_irq_base;
|
|
u64 address;
|
|
};
|
|
|
|
struct acpi_madt_local_sapic {
|
|
struct acpi_subtable_header header;
|
|
u8 processor_id;
|
|
u8 id;
|
|
u8 eid;
|
|
u8 reserved[3];
|
|
u32 lapic_flags;
|
|
u32 uid;
|
|
char uid_string[1];
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_madt_interrupt_source {
|
|
struct acpi_subtable_header header;
|
|
u16 inti_flags;
|
|
u8 type;
|
|
u8 id;
|
|
u8 eid;
|
|
u8 io_sapic_vector;
|
|
u32 global_irq;
|
|
u32 flags;
|
|
};
|
|
|
|
struct acpi_madt_generic_interrupt {
|
|
struct acpi_subtable_header header;
|
|
u16 reserved;
|
|
u32 cpu_interface_number;
|
|
u32 uid;
|
|
u32 flags;
|
|
u32 parking_version;
|
|
u32 performance_interrupt;
|
|
u64 parked_address;
|
|
u64 base_address;
|
|
u64 gicv_base_address;
|
|
u64 gich_base_address;
|
|
u32 vgic_interrupt;
|
|
u64 gicr_base_address;
|
|
u64 arm_mpidr;
|
|
u8 efficiency_class;
|
|
u8 reserved2[1];
|
|
u16 spe_interrupt;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_madt_generic_distributor {
|
|
struct acpi_subtable_header header;
|
|
u16 reserved;
|
|
u32 gic_id;
|
|
u64 base_address;
|
|
u32 global_irq_base;
|
|
u8 version;
|
|
u8 reserved2[3];
|
|
};
|
|
|
|
struct acpi_madt_core_pic {
|
|
struct acpi_subtable_header header;
|
|
u8 version;
|
|
u32 processor_id;
|
|
u32 core_id;
|
|
u32 flags;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_hmat_structure {
|
|
u16 type;
|
|
u16 reserved;
|
|
u32 length;
|
|
};
|
|
|
|
struct acpi_prmt_module_header {
|
|
u16 revision;
|
|
u16 length;
|
|
};
|
|
|
|
struct acpi_cedt_header {
|
|
u8 type;
|
|
u8 reserved;
|
|
u16 length;
|
|
};
|
|
|
|
union acpi_subtable_headers {
|
|
struct acpi_subtable_header common;
|
|
struct acpi_hmat_structure hmat;
|
|
struct acpi_prmt_module_header prmt;
|
|
struct acpi_cedt_header cedt;
|
|
};
|
|
|
|
struct acpi_subtable_entry {
|
|
union acpi_subtable_headers *hdr;
|
|
enum acpi_subtable_type type;
|
|
};
|
|
|
|
typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long);
|
|
|
|
typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long);
|
|
|
|
struct acpi_subtable_proc {
|
|
int id;
|
|
acpi_tbl_entry_handler handler;
|
|
acpi_tbl_entry_handler_arg handler_arg;
|
|
void *arg;
|
|
int count;
|
|
};
|
|
|
|
typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *);
|
|
|
|
struct nvs_region {
|
|
__u64 phys_start;
|
|
__u64 size;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct nvs_page {
|
|
unsigned long phys_start;
|
|
unsigned int size;
|
|
void *kaddr;
|
|
void *data;
|
|
bool unmap;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct acpi_data_node;
|
|
|
|
struct acpi_data_node_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct acpi_data_node *, char *);
|
|
ssize_t (*store)(struct acpi_data_node *, const char *, size_t);
|
|
};
|
|
|
|
struct acpi_data_node {
|
|
const char *name;
|
|
acpi_handle handle;
|
|
struct fwnode_handle fwnode;
|
|
struct fwnode_handle *parent;
|
|
struct acpi_device_data data;
|
|
struct list_head sibling;
|
|
struct kobject kobj;
|
|
struct completion kobj_done;
|
|
};
|
|
|
|
enum utf16_endian {
|
|
UTF16_HOST_ENDIAN = 0,
|
|
UTF16_LITTLE_ENDIAN = 1,
|
|
UTF16_BIG_ENDIAN = 2,
|
|
};
|
|
|
|
struct acpi_power_resource;
|
|
|
|
struct acpi_power_resource_entry {
|
|
struct list_head node;
|
|
struct acpi_power_resource *resource;
|
|
};
|
|
|
|
struct acpi_power_resource {
|
|
struct acpi_device device;
|
|
struct list_head list_node;
|
|
u32 system_level;
|
|
u32 order;
|
|
unsigned int ref_count;
|
|
u8 state;
|
|
struct mutex resource_lock;
|
|
struct list_head dependents;
|
|
};
|
|
|
|
struct acpi_power_dependent_device {
|
|
struct device *dev;
|
|
struct list_head node;
|
|
};
|
|
|
|
typedef u32 (*acpi_sci_handler)(void *);
|
|
|
|
struct acpi_sci_handler_info {
|
|
struct acpi_sci_handler_info *next;
|
|
acpi_sci_handler address;
|
|
void *context;
|
|
};
|
|
|
|
typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *);
|
|
|
|
struct acpi_address_range {
|
|
struct acpi_address_range *next;
|
|
struct acpi_namespace_node *region_node;
|
|
acpi_physical_address start_address;
|
|
acpi_physical_address end_address;
|
|
};
|
|
|
|
struct cpuidle_device;
|
|
|
|
struct cpuidle_driver;
|
|
|
|
struct cpuidle_state {
|
|
char name[16];
|
|
char desc[32];
|
|
s64 exit_latency_ns;
|
|
s64 target_residency_ns;
|
|
unsigned int flags;
|
|
unsigned int exit_latency;
|
|
int power_usage;
|
|
unsigned int target_residency;
|
|
int (*enter)(struct cpuidle_device *, struct cpuidle_driver *, int);
|
|
int (*enter_dead)(struct cpuidle_device *, int);
|
|
int (*enter_s2idle)(struct cpuidle_device *, struct cpuidle_driver *, int);
|
|
};
|
|
|
|
struct cpuidle_driver {
|
|
const char *name;
|
|
struct module *owner;
|
|
unsigned int bctimer: 1;
|
|
struct cpuidle_state states[10];
|
|
int state_count;
|
|
int safe_state_index;
|
|
struct cpumask *cpumask;
|
|
const char *governor;
|
|
};
|
|
|
|
struct cpuidle_state_usage {
|
|
unsigned long long disable;
|
|
unsigned long long usage;
|
|
u64 time_ns;
|
|
unsigned long long above;
|
|
unsigned long long below;
|
|
unsigned long long rejected;
|
|
unsigned long long s2idle_usage;
|
|
unsigned long long s2idle_time;
|
|
};
|
|
|
|
struct cpuidle_driver_kobj;
|
|
|
|
struct cpuidle_state_kobj;
|
|
|
|
struct cpuidle_device_kobj;
|
|
|
|
struct cpuidle_device {
|
|
unsigned int registered: 1;
|
|
unsigned int enabled: 1;
|
|
unsigned int poll_time_limit: 1;
|
|
unsigned int cpu;
|
|
ktime_t next_hrtimer;
|
|
int last_state_idx;
|
|
u64 last_residency_ns;
|
|
u64 poll_limit_ns;
|
|
u64 forced_idle_latency_limit_ns;
|
|
struct cpuidle_state_usage states_usage[10];
|
|
struct cpuidle_state_kobj *kobjs[10];
|
|
struct cpuidle_driver_kobj *kobj_driver;
|
|
struct cpuidle_device_kobj *kobj_dev;
|
|
struct list_head device_list;
|
|
};
|
|
|
|
enum idle_boot_override {
|
|
IDLE_NO_OVERRIDE = 0,
|
|
IDLE_HALT = 1,
|
|
IDLE_NOMWAIT = 2,
|
|
IDLE_POLL = 3,
|
|
};
|
|
|
|
struct acpi_power_register {
|
|
u8 descriptor;
|
|
u16 length;
|
|
u8 space_id;
|
|
u8 bit_width;
|
|
u8 bit_offset;
|
|
u8 access_size;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_lpi_states_array {
|
|
unsigned int size;
|
|
unsigned int composite_states_size;
|
|
struct acpi_lpi_state *entries;
|
|
struct acpi_lpi_state *composite_states[8];
|
|
};
|
|
|
|
struct pnp_device_id;
|
|
|
|
struct pnp_dev;
|
|
|
|
struct pnp_driver {
|
|
const char *name;
|
|
const struct pnp_device_id *id_table;
|
|
unsigned int flags;
|
|
int (*probe)(struct pnp_dev *, const struct pnp_device_id *);
|
|
void (*remove)(struct pnp_dev *);
|
|
void (*shutdown)(struct pnp_dev *);
|
|
int (*suspend)(struct pnp_dev *, pm_message_t);
|
|
int (*resume)(struct pnp_dev *);
|
|
struct device_driver driver;
|
|
};
|
|
|
|
struct pnp_device_id {
|
|
__u8 id[8];
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
struct pnp_protocol;
|
|
|
|
struct pnp_card;
|
|
|
|
struct pnp_card_link;
|
|
|
|
struct pnp_id;
|
|
|
|
struct pnp_dev {
|
|
struct device dev;
|
|
u64 dma_mask;
|
|
unsigned int number;
|
|
int status;
|
|
struct list_head global_list;
|
|
struct list_head protocol_list;
|
|
struct list_head card_list;
|
|
struct list_head rdev_list;
|
|
struct pnp_protocol *protocol;
|
|
struct pnp_card *card;
|
|
struct pnp_driver *driver;
|
|
struct pnp_card_link *card_link;
|
|
struct pnp_id *id;
|
|
int active;
|
|
int capabilities;
|
|
unsigned int num_dependent_sets;
|
|
struct list_head resources;
|
|
struct list_head options;
|
|
char name[50];
|
|
int flags;
|
|
struct proc_dir_entry *procent;
|
|
void *data;
|
|
};
|
|
|
|
struct pnp_protocol {
|
|
struct list_head protocol_list;
|
|
char *name;
|
|
int (*get)(struct pnp_dev *);
|
|
int (*set)(struct pnp_dev *);
|
|
int (*disable)(struct pnp_dev *);
|
|
bool (*can_wakeup)(struct pnp_dev *);
|
|
int (*suspend)(struct pnp_dev *, pm_message_t);
|
|
int (*resume)(struct pnp_dev *);
|
|
unsigned char number;
|
|
struct device dev;
|
|
struct list_head cards;
|
|
struct list_head devices;
|
|
};
|
|
|
|
struct pnp_card {
|
|
struct device dev;
|
|
unsigned char number;
|
|
struct list_head global_list;
|
|
struct list_head protocol_list;
|
|
struct list_head devices;
|
|
struct pnp_protocol *protocol;
|
|
struct pnp_id *id;
|
|
char name[50];
|
|
unsigned char pnpver;
|
|
unsigned char productver;
|
|
unsigned int serial;
|
|
unsigned char checksum;
|
|
struct proc_dir_entry *procdir;
|
|
};
|
|
|
|
struct pnp_id {
|
|
char id[8];
|
|
struct pnp_id *next;
|
|
};
|
|
|
|
struct pnp_card_driver;
|
|
|
|
struct pnp_card_link {
|
|
struct pnp_card *card;
|
|
struct pnp_card_driver *driver;
|
|
void *driver_data;
|
|
pm_message_t pm_state;
|
|
};
|
|
|
|
struct pnp_card_device_id;
|
|
|
|
struct pnp_card_driver {
|
|
struct list_head global_list;
|
|
char *name;
|
|
const struct pnp_card_device_id *id_table;
|
|
unsigned int flags;
|
|
int (*probe)(struct pnp_card_link *, const struct pnp_card_device_id *);
|
|
void (*remove)(struct pnp_card_link *);
|
|
int (*suspend)(struct pnp_card_link *, pm_message_t);
|
|
int (*resume)(struct pnp_card_link *);
|
|
struct pnp_driver link;
|
|
};
|
|
|
|
struct pnp_card_device_id {
|
|
__u8 id[8];
|
|
kernel_ulong_t driver_data;
|
|
struct {
|
|
__u8 id[8];
|
|
} devs[8];
|
|
};
|
|
|
|
enum drm_minor_type {
|
|
DRM_MINOR_PRIMARY = 0,
|
|
DRM_MINOR_CONTROL = 1,
|
|
DRM_MINOR_RENDER = 2,
|
|
DRM_MINOR_ACCEL = 32,
|
|
};
|
|
|
|
struct drm_stats {
|
|
unsigned long count;
|
|
struct {
|
|
unsigned long value;
|
|
enum drm_stat_type type;
|
|
} data[15];
|
|
};
|
|
|
|
struct drm_set_version {
|
|
int drm_di_major;
|
|
int drm_di_minor;
|
|
int drm_dd_major;
|
|
int drm_dd_minor;
|
|
};
|
|
|
|
struct drm_get_cap {
|
|
__u64 capability;
|
|
__u64 value;
|
|
};
|
|
|
|
struct drm_set_client_cap {
|
|
__u64 capability;
|
|
__u64 value;
|
|
};
|
|
|
|
struct drm_flip_work;
|
|
|
|
typedef void (*drm_flip_func_t)(struct drm_flip_work *, void *);
|
|
|
|
struct drm_flip_work {
|
|
const char *name;
|
|
drm_flip_func_t func;
|
|
struct work_struct worker;
|
|
struct list_head queued;
|
|
struct list_head commited;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct drm_flip_task {
|
|
struct list_head node;
|
|
void *data;
|
|
};
|
|
|
|
struct drm_afbc_framebuffer {
|
|
struct drm_framebuffer base;
|
|
u32 block_width;
|
|
u32 block_height;
|
|
u32 aligned_width;
|
|
u32 aligned_height;
|
|
u32 offset;
|
|
u32 afbc_size;
|
|
};
|
|
|
|
enum drm_i915_gem_engine_class {
|
|
I915_ENGINE_CLASS_RENDER = 0,
|
|
I915_ENGINE_CLASS_COPY = 1,
|
|
I915_ENGINE_CLASS_VIDEO = 2,
|
|
I915_ENGINE_CLASS_VIDEO_ENHANCE = 3,
|
|
I915_ENGINE_CLASS_COMPUTE = 4,
|
|
I915_ENGINE_CLASS_INVALID = -1,
|
|
};
|
|
|
|
typedef struct drm_i915_getparam drm_i915_getparam_t;
|
|
|
|
struct kobj_engine {
|
|
struct kobject base;
|
|
struct intel_engine_cs *engine;
|
|
};
|
|
|
|
struct dma_resv_iter {
|
|
struct dma_resv *obj;
|
|
enum dma_resv_usage usage;
|
|
struct dma_fence *fence;
|
|
enum dma_resv_usage fence_usage;
|
|
unsigned int index;
|
|
struct dma_resv_list *fences;
|
|
unsigned int num_fences;
|
|
bool is_restarted;
|
|
};
|
|
|
|
struct drm_i915_gem_wait {
|
|
__u32 bo_handle;
|
|
__u32 flags;
|
|
__s64 timeout_ns;
|
|
};
|
|
|
|
enum intel_guc_load_status {
|
|
INTEL_GUC_LOAD_STATUS_DEFAULT = 0,
|
|
INTEL_GUC_LOAD_STATUS_START = 1,
|
|
INTEL_GUC_LOAD_STATUS_ERROR_DEVID_BUILD_MISMATCH = 2,
|
|
INTEL_GUC_LOAD_STATUS_GUC_PREPROD_BUILD_MISMATCH = 3,
|
|
INTEL_GUC_LOAD_STATUS_ERROR_DEVID_INVALID_GUCTYPE = 4,
|
|
INTEL_GUC_LOAD_STATUS_GDT_DONE = 16,
|
|
INTEL_GUC_LOAD_STATUS_IDT_DONE = 32,
|
|
INTEL_GUC_LOAD_STATUS_LAPIC_DONE = 48,
|
|
INTEL_GUC_LOAD_STATUS_GUCINT_DONE = 64,
|
|
INTEL_GUC_LOAD_STATUS_DPC_READY = 80,
|
|
INTEL_GUC_LOAD_STATUS_DPC_ERROR = 96,
|
|
INTEL_GUC_LOAD_STATUS_EXCEPTION = 112,
|
|
INTEL_GUC_LOAD_STATUS_INIT_DATA_INVALID = 113,
|
|
INTEL_GUC_LOAD_STATUS_PXP_TEARDOWN_CTRL_ENABLED = 114,
|
|
INTEL_GUC_LOAD_STATUS_INVALID_INIT_DATA_RANGE_START = 115,
|
|
INTEL_GUC_LOAD_STATUS_MPU_DATA_INVALID = 115,
|
|
INTEL_GUC_LOAD_STATUS_INIT_MMIO_SAVE_RESTORE_INVALID = 116,
|
|
INTEL_GUC_LOAD_STATUS_INVALID_INIT_DATA_RANGE_END = 117,
|
|
INTEL_GUC_LOAD_STATUS_READY = 240,
|
|
};
|
|
|
|
enum hdmi_force_audio {
|
|
HDMI_AUDIO_OFF_DVI = -2,
|
|
HDMI_AUDIO_OFF = -1,
|
|
HDMI_AUDIO_AUTO = 0,
|
|
HDMI_AUDIO_ON = 1,
|
|
};
|
|
|
|
struct intel_digital_connector_state {
|
|
struct drm_connector_state base;
|
|
enum hdmi_force_audio force_audio;
|
|
int broadcast_rgb;
|
|
};
|
|
|
|
struct hsw_ddi_buf_trans {
|
|
u32 trans1;
|
|
u32 trans2;
|
|
u8 i_boost;
|
|
};
|
|
|
|
struct bxt_ddi_buf_trans {
|
|
u8 margin;
|
|
u8 scale;
|
|
u8 enable;
|
|
u8 deemphasis;
|
|
};
|
|
|
|
struct icl_ddi_buf_trans {
|
|
u8 dw2_swing_sel;
|
|
u8 dw7_n_scalar;
|
|
u8 dw4_cursor_coeff;
|
|
u8 dw4_post_cursor_2;
|
|
u8 dw4_post_cursor_1;
|
|
};
|
|
|
|
struct icl_mg_phy_ddi_buf_trans {
|
|
u8 cri_txdeemph_override_11_6;
|
|
u8 cri_txdeemph_override_5_0;
|
|
u8 cri_txdeemph_override_17_12;
|
|
};
|
|
|
|
struct tgl_dkl_phy_ddi_buf_trans {
|
|
u8 vswing;
|
|
u8 preshoot;
|
|
u8 de_emphasis;
|
|
};
|
|
|
|
struct dg2_snps_phy_buf_trans {
|
|
u8 vswing;
|
|
u8 pre_cursor;
|
|
u8 post_cursor;
|
|
};
|
|
|
|
union intel_ddi_buf_trans_entry {
|
|
struct hsw_ddi_buf_trans hsw;
|
|
struct bxt_ddi_buf_trans bxt;
|
|
struct icl_ddi_buf_trans icl;
|
|
struct icl_mg_phy_ddi_buf_trans mg;
|
|
struct tgl_dkl_phy_ddi_buf_trans dkl;
|
|
struct dg2_snps_phy_buf_trans snps;
|
|
};
|
|
|
|
struct class_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct class *, struct class_attribute *, char *);
|
|
ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t);
|
|
};
|
|
|
|
struct class_attribute_string {
|
|
struct class_attribute attr;
|
|
char *str;
|
|
};
|
|
|
|
struct class_compat {
|
|
struct kobject *kobj;
|
|
};
|
|
|
|
enum scsi_msg_byte {
|
|
COMMAND_COMPLETE = 0,
|
|
EXTENDED_MESSAGE = 1,
|
|
SAVE_POINTERS = 2,
|
|
RESTORE_POINTERS = 3,
|
|
DISCONNECT = 4,
|
|
INITIATOR_ERROR = 5,
|
|
ABORT_TASK_SET = 6,
|
|
MESSAGE_REJECT = 7,
|
|
NOP = 8,
|
|
MSG_PARITY_ERROR = 9,
|
|
LINKED_CMD_COMPLETE = 10,
|
|
LINKED_FLG_CMD_COMPLETE = 11,
|
|
TARGET_RESET = 12,
|
|
ABORT_TASK = 13,
|
|
CLEAR_TASK_SET = 14,
|
|
INITIATE_RECOVERY = 15,
|
|
RELEASE_RECOVERY = 16,
|
|
TERMINATE_IO_PROC = 17,
|
|
CLEAR_ACA = 22,
|
|
LOGICAL_UNIT_RESET = 23,
|
|
SIMPLE_QUEUE_TAG = 32,
|
|
HEAD_OF_QUEUE_TAG = 33,
|
|
ORDERED_QUEUE_TAG = 34,
|
|
IGNORE_WIDE_RESIDUE = 35,
|
|
ACA = 36,
|
|
QAS_REQUEST = 85,
|
|
BUS_DEVICE_RESET = 12,
|
|
ABORT = 6,
|
|
};
|
|
|
|
struct request_sense;
|
|
|
|
struct cdrom_generic_command {
|
|
unsigned char cmd[12];
|
|
unsigned char __attribute__((btf_type_tag("user"))) *buffer;
|
|
unsigned int buflen;
|
|
int stat;
|
|
struct request_sense __attribute__((btf_type_tag("user"))) *sense;
|
|
unsigned char data_direction;
|
|
int quiet;
|
|
int timeout;
|
|
union {
|
|
void __attribute__((btf_type_tag("user"))) *reserved[1];
|
|
void __attribute__((btf_type_tag("user"))) *unused;
|
|
};
|
|
};
|
|
|
|
struct request_sense {
|
|
__u8 error_code: 7;
|
|
__u8 valid: 1;
|
|
__u8 segment_number;
|
|
__u8 sense_key: 4;
|
|
__u8 reserved2: 1;
|
|
__u8 ili: 1;
|
|
__u8 reserved1: 2;
|
|
__u8 information[4];
|
|
__u8 add_sense_len;
|
|
__u8 command_info[4];
|
|
__u8 asc;
|
|
__u8 ascq;
|
|
__u8 fruc;
|
|
__u8 sks[3];
|
|
__u8 asb[46];
|
|
};
|
|
|
|
struct scsi_exec_args {
|
|
unsigned char *sense;
|
|
unsigned int sense_len;
|
|
struct scsi_sense_hdr *sshdr;
|
|
blk_mq_req_flags_t req_flags;
|
|
int *resid;
|
|
};
|
|
|
|
struct sg_io_hdr {
|
|
int interface_id;
|
|
int dxfer_direction;
|
|
unsigned char cmd_len;
|
|
unsigned char mx_sb_len;
|
|
unsigned short iovec_count;
|
|
unsigned int dxfer_len;
|
|
void __attribute__((btf_type_tag("user"))) *dxferp;
|
|
unsigned char __attribute__((btf_type_tag("user"))) *cmdp;
|
|
void __attribute__((btf_type_tag("user"))) *sbp;
|
|
unsigned int timeout;
|
|
unsigned int flags;
|
|
int pack_id;
|
|
void __attribute__((btf_type_tag("user"))) *usr_ptr;
|
|
unsigned char status;
|
|
unsigned char masked_status;
|
|
unsigned char msg_status;
|
|
unsigned char sb_len_wr;
|
|
unsigned short host_status;
|
|
unsigned short driver_status;
|
|
int resid;
|
|
unsigned int duration;
|
|
unsigned int info;
|
|
};
|
|
|
|
struct compat_cdrom_generic_command {
|
|
unsigned char cmd[12];
|
|
compat_caddr_t buffer;
|
|
compat_uint_t buflen;
|
|
compat_int_t stat;
|
|
compat_caddr_t sense;
|
|
unsigned char data_direction;
|
|
unsigned char pad[3];
|
|
compat_int_t quiet;
|
|
compat_int_t timeout;
|
|
compat_caddr_t unused;
|
|
};
|
|
|
|
struct scsi_idlun {
|
|
__u32 dev_id;
|
|
__u32 host_unique_id;
|
|
};
|
|
|
|
struct scsi_ioctl_command {
|
|
unsigned int inlen;
|
|
unsigned int outlen;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct rq_map_data {
|
|
struct page **pages;
|
|
unsigned long offset;
|
|
unsigned short page_order;
|
|
unsigned short nr_entries;
|
|
bool null_mapped;
|
|
bool from_user;
|
|
};
|
|
|
|
struct compat_sg_io_hdr {
|
|
compat_int_t interface_id;
|
|
compat_int_t dxfer_direction;
|
|
unsigned char cmd_len;
|
|
unsigned char mx_sb_len;
|
|
unsigned short iovec_count;
|
|
compat_uint_t dxfer_len;
|
|
compat_uint_t dxferp;
|
|
compat_uptr_t cmdp;
|
|
compat_uptr_t sbp;
|
|
compat_uint_t timeout;
|
|
compat_uint_t flags;
|
|
compat_int_t pack_id;
|
|
compat_uptr_t usr_ptr;
|
|
unsigned char status;
|
|
unsigned char masked_status;
|
|
unsigned char msg_status;
|
|
unsigned char sb_len_wr;
|
|
unsigned short host_status;
|
|
unsigned short driver_status;
|
|
compat_int_t resid;
|
|
compat_uint_t duration;
|
|
compat_uint_t info;
|
|
};
|
|
|
|
struct pci_bits {
|
|
unsigned int reg;
|
|
unsigned int width;
|
|
unsigned long mask;
|
|
unsigned long val;
|
|
};
|
|
|
|
enum ata_dev_iter_mode {
|
|
ATA_DITER_ENABLED = 0,
|
|
ATA_DITER_ENABLED_REVERSE = 1,
|
|
ATA_DITER_ALL = 2,
|
|
ATA_DITER_ALL_REVERSE = 3,
|
|
};
|
|
|
|
enum ata_xfer_mask {
|
|
ATA_MASK_PIO = 127,
|
|
ATA_MASK_MWDMA = 3968,
|
|
ATA_MASK_UDMA = 1044480,
|
|
};
|
|
|
|
struct ata_timing {
|
|
unsigned short mode;
|
|
unsigned short setup;
|
|
unsigned short act8b;
|
|
unsigned short rec8b;
|
|
unsigned short cyc8b;
|
|
unsigned short active;
|
|
unsigned short recover;
|
|
unsigned short dmack_hold;
|
|
unsigned short cycle;
|
|
unsigned short udma;
|
|
};
|
|
|
|
struct driver_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct device_driver *, char *);
|
|
ssize_t (*store)(struct device_driver *, const char *, size_t);
|
|
};
|
|
|
|
enum {
|
|
PCMCIA_IOPORT_0 = 0,
|
|
PCMCIA_IOPORT_1 = 1,
|
|
PCMCIA_IOMEM_0 = 2,
|
|
PCMCIA_IOMEM_1 = 3,
|
|
PCMCIA_IOMEM_2 = 4,
|
|
PCMCIA_IOMEM_3 = 5,
|
|
PCMCIA_NUM_RESOURCES = 6,
|
|
};
|
|
|
|
struct pcmcia_dynids {
|
|
struct mutex lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct pcmcia_device;
|
|
|
|
struct pcmcia_device_id;
|
|
|
|
struct pcmcia_driver {
|
|
const char *name;
|
|
int (*probe)(struct pcmcia_device *);
|
|
void (*remove)(struct pcmcia_device *);
|
|
int (*suspend)(struct pcmcia_device *);
|
|
int (*resume)(struct pcmcia_device *);
|
|
struct module *owner;
|
|
const struct pcmcia_device_id *id_table;
|
|
struct device_driver drv;
|
|
struct pcmcia_dynids dynids;
|
|
};
|
|
|
|
struct config_t;
|
|
|
|
struct pcmcia_device {
|
|
struct pcmcia_socket *socket;
|
|
char *devname;
|
|
u8 device_no;
|
|
u8 func;
|
|
struct config_t *function_config;
|
|
struct list_head socket_device_list;
|
|
unsigned int irq;
|
|
struct resource *resource[6];
|
|
resource_size_t card_addr;
|
|
unsigned int vpp;
|
|
unsigned int config_flags;
|
|
unsigned int config_base;
|
|
unsigned int config_index;
|
|
unsigned int config_regs;
|
|
unsigned int io_lines;
|
|
u16 suspended: 1;
|
|
u16 _irq: 1;
|
|
u16 _io: 1;
|
|
u16 _win: 4;
|
|
u16 _locked: 1;
|
|
u16 allow_func_id_match: 1;
|
|
u16 has_manf_id: 1;
|
|
u16 has_card_id: 1;
|
|
u16 has_func_id: 1;
|
|
u16 reserved: 4;
|
|
u8 func_id;
|
|
u16 manf_id;
|
|
u16 card_id;
|
|
char *prod_id[4];
|
|
u64 dma_mask;
|
|
struct device dev;
|
|
void *priv;
|
|
unsigned int open;
|
|
};
|
|
|
|
struct config_t {
|
|
struct kref ref;
|
|
unsigned int state;
|
|
struct resource io[2];
|
|
struct resource mem[4];
|
|
};
|
|
|
|
struct pcmcia_device_id {
|
|
__u16 match_flags;
|
|
__u16 manf_id;
|
|
__u16 card_id;
|
|
__u8 func_id;
|
|
__u8 function;
|
|
__u8 device_no;
|
|
__u32 prod_id_hash[4];
|
|
const char *prod_id[4];
|
|
kernel_ulong_t driver_info;
|
|
char *cisfile;
|
|
};
|
|
|
|
struct pcmcia_dynid {
|
|
struct list_head node;
|
|
struct pcmcia_device_id id;
|
|
};
|
|
|
|
typedef unsigned char cisdata_t;
|
|
|
|
struct cistpl_config_t {
|
|
u_char last_idx;
|
|
u_int base;
|
|
u_int rmask[4];
|
|
u_char subtuples;
|
|
};
|
|
|
|
typedef struct cistpl_config_t cistpl_config_t;
|
|
|
|
struct cistpl_longlink_mfc_t {
|
|
u_char nfn;
|
|
struct {
|
|
u_char space;
|
|
u_int addr;
|
|
} fn[8];
|
|
};
|
|
|
|
typedef struct cistpl_longlink_mfc_t cistpl_longlink_mfc_t;
|
|
|
|
struct cistpl_manfid_t {
|
|
u_short manf;
|
|
u_short card;
|
|
};
|
|
|
|
typedef struct cistpl_manfid_t cistpl_manfid_t;
|
|
|
|
struct cistpl_funcid_t {
|
|
u_char func;
|
|
u_char sysinit;
|
|
};
|
|
|
|
typedef struct cistpl_funcid_t cistpl_funcid_t;
|
|
|
|
struct cistpl_vers_1_t {
|
|
u_char major;
|
|
u_char minor;
|
|
u_char ns;
|
|
u_char ofs[4];
|
|
char str[254];
|
|
};
|
|
|
|
typedef struct cistpl_vers_1_t cistpl_vers_1_t;
|
|
|
|
struct cistpl_device_geo_t {
|
|
u_char ngeo;
|
|
struct {
|
|
u_char buswidth;
|
|
u_int erase_block;
|
|
u_int read_block;
|
|
u_int write_block;
|
|
u_int partition;
|
|
u_int interleave;
|
|
} geo[4];
|
|
};
|
|
|
|
typedef struct cistpl_device_geo_t cistpl_device_geo_t;
|
|
|
|
typedef struct config_t config_t;
|
|
|
|
struct component_ops {
|
|
int (*bind)(struct device *, struct device *, void *);
|
|
void (*unbind)(struct device *, struct device *, void *);
|
|
};
|
|
|
|
enum usb_port_connect_type {
|
|
USB_PORT_CONNECT_TYPE_UNKNOWN = 0,
|
|
USB_PORT_CONNECT_TYPE_HOT_PLUG = 1,
|
|
USB_PORT_CONNECT_TYPE_HARD_WIRED = 2,
|
|
USB_PORT_NOT_USED = 3,
|
|
};
|
|
|
|
enum pm_qos_flags_status {
|
|
PM_QOS_FLAGS_UNDEFINED = -1,
|
|
PM_QOS_FLAGS_NONE = 0,
|
|
PM_QOS_FLAGS_SOME = 1,
|
|
PM_QOS_FLAGS_ALL = 2,
|
|
};
|
|
|
|
struct usb_dev_state;
|
|
|
|
typedef u32 usb_port_location_t;
|
|
|
|
struct usb_port {
|
|
struct usb_device *child;
|
|
struct device dev;
|
|
struct usb_dev_state *port_owner;
|
|
struct usb_port *peer;
|
|
struct dev_pm_qos_request *req;
|
|
enum usb_port_connect_type connect_type;
|
|
usb_port_location_t location;
|
|
struct mutex status_lock;
|
|
u32 over_current_count;
|
|
u8 portnum;
|
|
u32 quirks;
|
|
unsigned int early_stop: 1;
|
|
unsigned int ignore_event: 1;
|
|
unsigned int is_superspeed: 1;
|
|
unsigned int usb3_lpm_u1_permit: 1;
|
|
unsigned int usb3_lpm_u2_permit: 1;
|
|
};
|
|
|
|
struct usb_hub_status {
|
|
__le16 wHubStatus;
|
|
__le16 wHubChange;
|
|
};
|
|
|
|
struct usb_port_status {
|
|
__le16 wPortStatus;
|
|
__le16 wPortChange;
|
|
__le32 dwExtPortStatus;
|
|
};
|
|
|
|
struct usb_hub {
|
|
struct device *intfdev;
|
|
struct usb_device *hdev;
|
|
struct kref kref;
|
|
struct urb *urb;
|
|
u8 (*buffer)[8];
|
|
union {
|
|
struct usb_hub_status hub;
|
|
struct usb_port_status port;
|
|
} *status;
|
|
struct mutex status_mutex;
|
|
int error;
|
|
int nerrors;
|
|
unsigned long event_bits[1];
|
|
unsigned long change_bits[1];
|
|
unsigned long removed_bits[1];
|
|
unsigned long wakeup_bits[1];
|
|
unsigned long power_bits[1];
|
|
unsigned long child_usage_bits[1];
|
|
unsigned long warm_reset_bits[1];
|
|
struct usb_hub_descriptor *descriptor;
|
|
struct usb_tt tt;
|
|
unsigned int mA_per_port;
|
|
unsigned int wakeup_enabled_descendants;
|
|
unsigned int limited_power: 1;
|
|
unsigned int quiescing: 1;
|
|
unsigned int disconnected: 1;
|
|
unsigned int in_reset: 1;
|
|
unsigned int quirk_disable_autosuspend: 1;
|
|
unsigned int quirk_check_port_auto_suspend: 1;
|
|
unsigned int has_indicators: 1;
|
|
u8 indicator[31];
|
|
struct delayed_work leds;
|
|
struct delayed_work init_work;
|
|
struct work_struct events;
|
|
spinlock_t irq_urb_lock;
|
|
struct timer_list irq_urb_retry;
|
|
struct usb_port **ports;
|
|
struct list_head onboard_hub_devs;
|
|
};
|
|
|
|
struct ehci_caps {
|
|
u32 hc_capbase;
|
|
u32 hcs_params;
|
|
u32 hcc_params;
|
|
u8 portroute[8];
|
|
};
|
|
|
|
struct ehci_regs {
|
|
u32 command;
|
|
u32 status;
|
|
u32 intr_enable;
|
|
u32 frame_index;
|
|
u32 segment;
|
|
u32 frame_list;
|
|
u32 async_next;
|
|
u32 reserved1[2];
|
|
u32 txfill_tuning;
|
|
u32 reserved2[6];
|
|
u32 configured_flag;
|
|
union {
|
|
u32 port_status[15];
|
|
struct {
|
|
u32 reserved3[9];
|
|
u32 usbmode;
|
|
};
|
|
};
|
|
union {
|
|
struct {
|
|
u32 reserved4;
|
|
u32 hostpc[15];
|
|
};
|
|
u32 brcm_insnreg[4];
|
|
};
|
|
u32 reserved5[2];
|
|
u32 usbmode_ex;
|
|
};
|
|
|
|
struct ehci_dbg_port {
|
|
u32 control;
|
|
u32 pids;
|
|
u32 data03;
|
|
u32 data47;
|
|
u32 address;
|
|
};
|
|
|
|
struct ehci_dev {
|
|
u32 bus;
|
|
u32 slot;
|
|
u32 func;
|
|
};
|
|
|
|
typedef void (*set_debug_port_t)(int);
|
|
|
|
struct usb_hcd;
|
|
|
|
struct usb_debug_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDebugInEndpoint;
|
|
__u8 bDebugOutEndpoint;
|
|
};
|
|
|
|
struct i2c_board_info {
|
|
char type[20];
|
|
unsigned short flags;
|
|
unsigned short addr;
|
|
const char *dev_name;
|
|
void *platform_data;
|
|
struct device_node *of_node;
|
|
struct fwnode_handle *fwnode;
|
|
const struct software_node *swnode;
|
|
const struct resource *resources;
|
|
unsigned int num_resources;
|
|
int irq;
|
|
};
|
|
|
|
struct i2c_client;
|
|
|
|
struct psmouse_smbus_dev {
|
|
struct i2c_board_info board;
|
|
struct psmouse *psmouse;
|
|
struct i2c_client *client;
|
|
struct list_head node;
|
|
bool dead;
|
|
bool need_deactivate;
|
|
};
|
|
|
|
struct i2c_client {
|
|
unsigned short flags;
|
|
unsigned short addr;
|
|
char name[20];
|
|
struct i2c_adapter *adapter;
|
|
struct device dev;
|
|
int init_irq;
|
|
int irq;
|
|
struct list_head detected;
|
|
void *devres_group_id;
|
|
};
|
|
|
|
struct psmouse_smbus_removal_work {
|
|
struct work_struct work;
|
|
struct i2c_client *client;
|
|
};
|
|
|
|
typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *);
|
|
|
|
typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long);
|
|
|
|
typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type);
|
|
|
|
struct thermal_instance {
|
|
int id;
|
|
char name[20];
|
|
struct thermal_zone_device *tz;
|
|
struct thermal_cooling_device *cdev;
|
|
int trip;
|
|
bool initialized;
|
|
unsigned long upper;
|
|
unsigned long lower;
|
|
unsigned long target;
|
|
char attr_name[20];
|
|
struct device_attribute attr;
|
|
char weight_attr_name[20];
|
|
struct device_attribute weight_attr;
|
|
struct list_head tz_node;
|
|
struct list_head cdev_node;
|
|
unsigned int weight;
|
|
};
|
|
|
|
struct trace_event_raw_thermal_temperature {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_thermal_zone;
|
|
int id;
|
|
int temp_prev;
|
|
int temp;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cdev_update {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_type;
|
|
unsigned long target;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_thermal_zone_trip {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_thermal_zone;
|
|
int id;
|
|
int trip;
|
|
enum thermal_trip_type trip_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_thermal_temperature {
|
|
u32 thermal_zone;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cdev_update {
|
|
u32 type;
|
|
};
|
|
|
|
struct trace_event_data_offsets_thermal_zone_trip {
|
|
u32 thermal_zone;
|
|
};
|
|
|
|
struct led_lookup_data {
|
|
struct list_head list;
|
|
const char *provider;
|
|
const char *dev_id;
|
|
const char *con_id;
|
|
};
|
|
|
|
struct snd_ctl_layer_ops {
|
|
struct snd_ctl_layer_ops *next;
|
|
const char *module_name;
|
|
void (*lregister)(struct snd_card *);
|
|
void (*ldisconnect)(struct snd_card *);
|
|
void (*lnotify)(struct snd_card *, unsigned int, struct snd_kcontrol *, unsigned int);
|
|
};
|
|
|
|
enum snd_ctl_add_mode {
|
|
CTL_ADD_EXCLUSIVE = 0,
|
|
CTL_REPLACE = 1,
|
|
CTL_ADD_ON_REPLACE = 2,
|
|
};
|
|
|
|
enum sndrv_ctl_event_type {
|
|
SNDRV_CTL_EVENT_ELEM = 0,
|
|
SNDRV_CTL_EVENT_LAST = 0,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_CTL_TLV_OP_READ = 0,
|
|
SNDRV_CTL_TLV_OP_WRITE = 1,
|
|
SNDRV_CTL_TLV_OP_CMD = -1,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_CTL_IOCTL_ELEM_LIST32 = 3225965840,
|
|
SNDRV_CTL_IOCTL_ELEM_INFO32 = 3239073041,
|
|
SNDRV_CTL_IOCTL_ELEM_READ32 = 3267646738,
|
|
SNDRV_CTL_IOCTL_ELEM_WRITE32 = 3267646739,
|
|
SNDRV_CTL_IOCTL_ELEM_ADD32 = 3239073047,
|
|
SNDRV_CTL_IOCTL_ELEM_REPLACE32 = 3239073048,
|
|
};
|
|
|
|
enum {
|
|
SND_CTL_SUBDEV_PCM = 0,
|
|
SND_CTL_SUBDEV_RAWMIDI = 1,
|
|
SND_CTL_SUBDEV_ITEMS = 2,
|
|
};
|
|
|
|
struct snd_kctl_event {
|
|
struct list_head list;
|
|
struct snd_ctl_elem_id id;
|
|
unsigned int mask;
|
|
};
|
|
|
|
typedef int (*snd_kctl_ioctl_func_t)(struct snd_card *, struct snd_ctl_file *, unsigned int, unsigned long);
|
|
|
|
struct snd_kctl_ioctl {
|
|
struct list_head list;
|
|
snd_kctl_ioctl_func_t fioctl;
|
|
};
|
|
|
|
struct snd_ctl_elem_list {
|
|
unsigned int offset;
|
|
unsigned int space;
|
|
unsigned int used;
|
|
unsigned int count;
|
|
struct snd_ctl_elem_id __attribute__((btf_type_tag("user"))) *pids;
|
|
unsigned char reserved[50];
|
|
};
|
|
|
|
struct snd_ctl_card_info {
|
|
int card;
|
|
int pad;
|
|
unsigned char id[16];
|
|
unsigned char driver[16];
|
|
unsigned char name[32];
|
|
unsigned char longname[80];
|
|
unsigned char reserved_[16];
|
|
unsigned char mixername[80];
|
|
unsigned char components[128];
|
|
};
|
|
|
|
struct snd_ctl_elem_info32 {
|
|
struct snd_ctl_elem_id id;
|
|
s32 type;
|
|
u32 access;
|
|
u32 count;
|
|
s32 owner;
|
|
union {
|
|
struct {
|
|
s32 min;
|
|
s32 max;
|
|
s32 step;
|
|
} integer;
|
|
struct {
|
|
u64 min;
|
|
u64 max;
|
|
u64 step;
|
|
} integer64;
|
|
struct {
|
|
u32 items;
|
|
u32 item;
|
|
char name[64];
|
|
u64 names_ptr;
|
|
u32 names_length;
|
|
} enumerated;
|
|
unsigned char reserved[128];
|
|
} value;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_ctl_elem_value32 {
|
|
struct snd_ctl_elem_id id;
|
|
unsigned int indirect;
|
|
union {
|
|
s32 integer[128];
|
|
unsigned char data[512];
|
|
} value;
|
|
unsigned char reserved[128];
|
|
};
|
|
|
|
struct snd_ctl_elem_list32 {
|
|
u32 offset;
|
|
u32 space;
|
|
u32 used;
|
|
u32 count;
|
|
u32 pids;
|
|
unsigned char reserved[50];
|
|
};
|
|
|
|
struct user_element {
|
|
struct snd_ctl_elem_info info;
|
|
struct snd_card *card;
|
|
char *elem_data;
|
|
unsigned long elem_data_size;
|
|
void *tlv_data;
|
|
unsigned long tlv_data_size;
|
|
void *priv_data;
|
|
};
|
|
|
|
struct snd_ctl_event {
|
|
int type;
|
|
union {
|
|
struct {
|
|
unsigned int mask;
|
|
struct snd_ctl_elem_id id;
|
|
} elem;
|
|
unsigned char data8[60];
|
|
} data;
|
|
};
|
|
|
|
struct snd_ctl_tlv {
|
|
unsigned int numid;
|
|
unsigned int length;
|
|
unsigned int tlv[0];
|
|
};
|
|
|
|
struct net_bridge;
|
|
|
|
struct sock_ee_data_rfc4884 {
|
|
__u16 len;
|
|
__u8 flags;
|
|
__u8 reserved;
|
|
};
|
|
|
|
struct sock_extended_err {
|
|
__u32 ee_errno;
|
|
__u8 ee_origin;
|
|
__u8 ee_type;
|
|
__u8 ee_code;
|
|
__u8 ee_pad;
|
|
__u32 ee_info;
|
|
union {
|
|
__u32 ee_data;
|
|
struct sock_ee_data_rfc4884 ee_rfc4884;
|
|
};
|
|
};
|
|
|
|
struct sock_exterr_skb {
|
|
union {
|
|
struct inet_skb_parm h4;
|
|
struct inet6_skb_parm h6;
|
|
} header;
|
|
struct sock_extended_err ee;
|
|
u16 addr_offset;
|
|
__be16 port;
|
|
u8 opt_stats: 1;
|
|
u8 unused: 7;
|
|
};
|
|
|
|
struct compat_msghdr {
|
|
compat_uptr_t msg_name;
|
|
compat_int_t msg_namelen;
|
|
compat_uptr_t msg_iov;
|
|
compat_size_t msg_iovlen;
|
|
compat_uptr_t msg_control;
|
|
compat_size_t msg_controllen;
|
|
compat_uint_t msg_flags;
|
|
};
|
|
|
|
struct compat_mmsghdr {
|
|
struct compat_msghdr msg_hdr;
|
|
compat_uint_t msg_len;
|
|
};
|
|
|
|
struct user_msghdr {
|
|
void __attribute__((btf_type_tag("user"))) *msg_name;
|
|
int msg_namelen;
|
|
struct iovec __attribute__((btf_type_tag("user"))) *msg_iov;
|
|
__kernel_size_t msg_iovlen;
|
|
void __attribute__((btf_type_tag("user"))) *msg_control;
|
|
__kernel_size_t msg_controllen;
|
|
unsigned int msg_flags;
|
|
};
|
|
|
|
struct compat_ifmap {
|
|
compat_ulong_t mem_start;
|
|
compat_ulong_t mem_end;
|
|
unsigned short base_addr;
|
|
unsigned char irq;
|
|
unsigned char dma;
|
|
unsigned char port;
|
|
};
|
|
|
|
struct compat_if_settings {
|
|
unsigned int type;
|
|
unsigned int size;
|
|
compat_uptr_t ifs_ifsu;
|
|
};
|
|
|
|
struct compat_ifreq {
|
|
union {
|
|
char ifrn_name[16];
|
|
} ifr_ifrn;
|
|
union {
|
|
struct sockaddr ifru_addr;
|
|
struct sockaddr ifru_dstaddr;
|
|
struct sockaddr ifru_broadaddr;
|
|
struct sockaddr ifru_netmask;
|
|
struct sockaddr ifru_hwaddr;
|
|
short ifru_flags;
|
|
compat_int_t ifru_ivalue;
|
|
compat_int_t ifru_mtu;
|
|
struct compat_ifmap ifru_map;
|
|
char ifru_slave[16];
|
|
char ifru_newname[16];
|
|
compat_caddr_t ifru_data;
|
|
struct compat_if_settings ifru_settings;
|
|
} ifr_ifru;
|
|
};
|
|
|
|
struct mmsghdr {
|
|
struct user_msghdr msg_hdr;
|
|
unsigned int msg_len;
|
|
};
|
|
|
|
struct __kernel_old_timespec {
|
|
__kernel_old_time_t tv_sec;
|
|
long tv_nsec;
|
|
};
|
|
|
|
struct __kernel_sock_timeval {
|
|
__s64 tv_sec;
|
|
__s64 tv_usec;
|
|
};
|
|
|
|
struct scm_ts_pktinfo {
|
|
__u32 if_index;
|
|
__u32 pkt_length;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
struct scm_timestamping_internal {
|
|
struct timespec64 ts[3];
|
|
};
|
|
|
|
struct ifconf {
|
|
int ifc_len;
|
|
union {
|
|
char __attribute__((btf_type_tag("user"))) *ifcu_buf;
|
|
struct ifreq __attribute__((btf_type_tag("user"))) *ifcu_req;
|
|
} ifc_ifcu;
|
|
};
|
|
|
|
struct used_address {
|
|
struct __kernel_sockaddr_storage name;
|
|
unsigned int name_len;
|
|
};
|
|
|
|
enum {
|
|
TCA_UNSPEC = 0,
|
|
TCA_KIND = 1,
|
|
TCA_OPTIONS = 2,
|
|
TCA_STATS = 3,
|
|
TCA_XSTATS = 4,
|
|
TCA_RATE = 5,
|
|
TCA_FCNT = 6,
|
|
TCA_STATS2 = 7,
|
|
TCA_STAB = 8,
|
|
TCA_PAD = 9,
|
|
TCA_DUMP_INVISIBLE = 10,
|
|
TCA_CHAIN = 11,
|
|
TCA_HW_OFFLOAD = 12,
|
|
TCA_INGRESS_BLOCK = 13,
|
|
TCA_EGRESS_BLOCK = 14,
|
|
TCA_DUMP_FLAGS = 15,
|
|
TCA_EXT_WARN_MSG = 16,
|
|
__TCA_MAX = 17,
|
|
};
|
|
|
|
struct mini_Qdisc_pair {
|
|
struct mini_Qdisc miniq1;
|
|
struct mini_Qdisc miniq2;
|
|
struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq;
|
|
};
|
|
|
|
typedef void tcf_chain_head_change_t(struct tcf_proto *, void *);
|
|
|
|
struct tcf_block_ext_info {
|
|
enum flow_block_binder_type binder_type;
|
|
tcf_chain_head_change_t *chain_head_change;
|
|
void *chain_head_change_priv;
|
|
u32 block_index;
|
|
};
|
|
|
|
struct ingress_sched_data {
|
|
struct tcf_block *block;
|
|
struct tcf_block_ext_info block_info;
|
|
struct mini_Qdisc_pair miniqp;
|
|
};
|
|
|
|
struct clsact_sched_data {
|
|
struct tcf_block *ingress_block;
|
|
struct tcf_block *egress_block;
|
|
struct tcf_block_ext_info ingress_block_info;
|
|
struct tcf_block_ext_info egress_block_info;
|
|
struct mini_Qdisc_pair miniqp_ingress;
|
|
struct mini_Qdisc_pair miniqp_egress;
|
|
};
|
|
|
|
struct xdp_umem;
|
|
|
|
struct xsk_queue;
|
|
|
|
struct xdp_buff_xsk;
|
|
|
|
struct xdp_desc;
|
|
|
|
struct xsk_buff_pool {
|
|
struct device *dev;
|
|
struct net_device *netdev;
|
|
struct list_head xsk_tx_list;
|
|
spinlock_t xsk_tx_list_lock;
|
|
refcount_t users;
|
|
struct xdp_umem *umem;
|
|
struct work_struct work;
|
|
struct list_head free_list;
|
|
u32 heads_cnt;
|
|
u16 queue_id;
|
|
long: 16;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct xsk_queue *fq;
|
|
struct xsk_queue *cq;
|
|
dma_addr_t *dma_pages;
|
|
struct xdp_buff_xsk *heads;
|
|
struct xdp_desc *tx_descs;
|
|
u64 chunk_mask;
|
|
u64 addrs_cnt;
|
|
u32 free_list_cnt;
|
|
u32 dma_pages_cnt;
|
|
u32 free_heads_cnt;
|
|
u32 headroom;
|
|
u32 chunk_size;
|
|
u32 chunk_shift;
|
|
u32 frame_len;
|
|
u8 cached_need_wakeup;
|
|
bool uses_need_wakeup;
|
|
bool dma_need_sync;
|
|
bool unaligned;
|
|
void *addrs;
|
|
spinlock_t cq_lock;
|
|
struct xdp_buff_xsk *free_heads[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct xdp_umem {
|
|
void *addrs;
|
|
u64 size;
|
|
u32 headroom;
|
|
u32 chunk_size;
|
|
u32 chunks;
|
|
u32 npgs;
|
|
struct user_struct *user;
|
|
refcount_t users;
|
|
u8 flags;
|
|
bool zc;
|
|
struct page **pgs;
|
|
int id;
|
|
struct list_head xsk_dma_list;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct xdp_buff_xsk {
|
|
struct xdp_buff xdp;
|
|
u8 cb[24];
|
|
dma_addr_t dma;
|
|
dma_addr_t frame_dma;
|
|
struct xsk_buff_pool *pool;
|
|
u64 orig_addr;
|
|
struct list_head free_list_node;
|
|
};
|
|
|
|
struct xdp_desc {
|
|
__u64 addr;
|
|
__u32 len;
|
|
__u32 options;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CHANNELS_UNSPEC = 0,
|
|
ETHTOOL_A_CHANNELS_HEADER = 1,
|
|
ETHTOOL_A_CHANNELS_RX_MAX = 2,
|
|
ETHTOOL_A_CHANNELS_TX_MAX = 3,
|
|
ETHTOOL_A_CHANNELS_OTHER_MAX = 4,
|
|
ETHTOOL_A_CHANNELS_COMBINED_MAX = 5,
|
|
ETHTOOL_A_CHANNELS_RX_COUNT = 6,
|
|
ETHTOOL_A_CHANNELS_TX_COUNT = 7,
|
|
ETHTOOL_A_CHANNELS_OTHER_COUNT = 8,
|
|
ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9,
|
|
__ETHTOOL_A_CHANNELS_CNT = 10,
|
|
ETHTOOL_A_CHANNELS_MAX = 9,
|
|
};
|
|
|
|
struct channels_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_channels channels;
|
|
};
|
|
|
|
enum {
|
|
__ND_OPT_PREFIX_INFO_END = 0,
|
|
ND_OPT_SOURCE_LL_ADDR = 1,
|
|
ND_OPT_TARGET_LL_ADDR = 2,
|
|
ND_OPT_PREFIX_INFO = 3,
|
|
ND_OPT_REDIRECT_HDR = 4,
|
|
ND_OPT_MTU = 5,
|
|
ND_OPT_NONCE = 14,
|
|
__ND_OPT_ARRAY_MAX = 15,
|
|
ND_OPT_ROUTE_INFO = 24,
|
|
ND_OPT_RDNSS = 25,
|
|
ND_OPT_DNSSL = 31,
|
|
ND_OPT_6CO = 34,
|
|
ND_OPT_CAPTIVE_PORTAL = 37,
|
|
ND_OPT_PREF64 = 38,
|
|
__ND_OPT_MAX = 39,
|
|
};
|
|
|
|
enum ctattr_timeout_icmpv6 {
|
|
CTA_TIMEOUT_ICMPV6_UNSPEC = 0,
|
|
CTA_TIMEOUT_ICMPV6_TIMEOUT = 1,
|
|
__CTA_TIMEOUT_ICMPV6_MAX = 2,
|
|
};
|
|
|
|
struct rd_msg {
|
|
struct icmp6hdr icmph;
|
|
struct in6_addr target;
|
|
struct in6_addr dest;
|
|
__u8 opt[0];
|
|
};
|
|
|
|
struct mr_table_ops {
|
|
const struct rhashtable_params *rht_params;
|
|
void *cmparg_any;
|
|
};
|
|
|
|
struct vif_device {
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *dev;
|
|
netdevice_tracker dev_tracker;
|
|
unsigned long bytes_in;
|
|
unsigned long bytes_out;
|
|
unsigned long pkt_in;
|
|
unsigned long pkt_out;
|
|
unsigned long rate_limit;
|
|
unsigned char threshold;
|
|
unsigned short flags;
|
|
int link;
|
|
struct netdev_phys_item_id dev_parent_id;
|
|
__be32 local;
|
|
__be32 remote;
|
|
};
|
|
|
|
struct mr_table {
|
|
struct list_head list;
|
|
possible_net_t net;
|
|
struct mr_table_ops ops;
|
|
u32 id;
|
|
struct sock __attribute__((btf_type_tag("rcu"))) *mroute_sk;
|
|
struct timer_list ipmr_expire_timer;
|
|
struct list_head mfc_unres_queue;
|
|
struct vif_device vif_table[32];
|
|
struct rhltable mfc_hash;
|
|
struct list_head mfc_cache_list;
|
|
int maxvif;
|
|
atomic_t cache_resolve_queue_len;
|
|
bool mroute_do_assert;
|
|
bool mroute_do_pim;
|
|
bool mroute_do_wrvifwhole;
|
|
int mroute_reg_vif_num;
|
|
};
|
|
|
|
typedef unsigned int t_key;
|
|
|
|
struct key_vector {
|
|
t_key key;
|
|
unsigned char pos;
|
|
unsigned char bits;
|
|
unsigned char slen;
|
|
union {
|
|
struct hlist_head leaf;
|
|
struct {
|
|
struct { } __empty_tnode;
|
|
struct key_vector __attribute__((btf_type_tag("rcu"))) *tnode[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct trie {
|
|
struct key_vector kv[1];
|
|
};
|
|
|
|
struct fib_alias {
|
|
struct hlist_node fa_list;
|
|
struct fib_info *fa_info;
|
|
dscp_t fa_dscp;
|
|
u8 fa_type;
|
|
u8 fa_state;
|
|
u8 fa_slen;
|
|
u32 tb_id;
|
|
s16 fa_default;
|
|
u8 offload;
|
|
u8 trap;
|
|
u8 offload_failed;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct tnode {
|
|
struct callback_head rcu;
|
|
t_key empty_children;
|
|
t_key full_children;
|
|
struct key_vector __attribute__((btf_type_tag("rcu"))) *parent;
|
|
struct key_vector kv[1];
|
|
};
|
|
|
|
struct fib_rt_info {
|
|
struct fib_info *fi;
|
|
u32 tb_id;
|
|
__be32 dst;
|
|
int dst_len;
|
|
dscp_t dscp;
|
|
u8 type;
|
|
u8 offload: 1;
|
|
u8 trap: 1;
|
|
u8 offload_failed: 1;
|
|
u8 unused: 5;
|
|
};
|
|
|
|
struct fib_entry_notifier_info {
|
|
struct fib_notifier_info info;
|
|
u32 dst;
|
|
int dst_len;
|
|
struct fib_info *fi;
|
|
dscp_t dscp;
|
|
u8 type;
|
|
u32 tb_id;
|
|
};
|
|
|
|
struct fib_dump_filter {
|
|
u32 table_id;
|
|
bool filter_set;
|
|
bool dump_routes;
|
|
bool dump_exceptions;
|
|
unsigned char protocol;
|
|
unsigned char rt_type;
|
|
unsigned int flags;
|
|
struct net_device *dev;
|
|
};
|
|
|
|
struct trie_stat {
|
|
unsigned int totdepth;
|
|
unsigned int maxdepth;
|
|
unsigned int tnodes;
|
|
unsigned int leaves;
|
|
unsigned int nullpointers;
|
|
unsigned int prefixes;
|
|
unsigned int nodesizes[32];
|
|
};
|
|
|
|
struct fib_trie_iter {
|
|
struct seq_net_private p;
|
|
struct fib_table *tb;
|
|
struct key_vector *tnode;
|
|
unsigned int index;
|
|
unsigned int depth;
|
|
};
|
|
|
|
struct fib_route_iter {
|
|
struct seq_net_private p;
|
|
struct fib_table *main_tb;
|
|
struct key_vector *tnode;
|
|
loff_t pos;
|
|
t_key key;
|
|
};
|
|
|
|
struct uncached_list {
|
|
spinlock_t lock;
|
|
struct list_head head;
|
|
struct list_head quarantine;
|
|
};
|
|
|
|
struct fib6_result;
|
|
|
|
typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *);
|
|
|
|
struct fib6_result {
|
|
struct fib6_nh *nh;
|
|
struct fib6_info *f6i;
|
|
u32 fib6_flags;
|
|
u8 fib6_type;
|
|
struct rt6_info *rt6;
|
|
};
|
|
|
|
enum flow_dissector_key_id {
|
|
FLOW_DISSECTOR_KEY_CONTROL = 0,
|
|
FLOW_DISSECTOR_KEY_BASIC = 1,
|
|
FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2,
|
|
FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3,
|
|
FLOW_DISSECTOR_KEY_PORTS = 4,
|
|
FLOW_DISSECTOR_KEY_PORTS_RANGE = 5,
|
|
FLOW_DISSECTOR_KEY_ICMP = 6,
|
|
FLOW_DISSECTOR_KEY_ETH_ADDRS = 7,
|
|
FLOW_DISSECTOR_KEY_TIPC = 8,
|
|
FLOW_DISSECTOR_KEY_ARP = 9,
|
|
FLOW_DISSECTOR_KEY_VLAN = 10,
|
|
FLOW_DISSECTOR_KEY_FLOW_LABEL = 11,
|
|
FLOW_DISSECTOR_KEY_GRE_KEYID = 12,
|
|
FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13,
|
|
FLOW_DISSECTOR_KEY_ENC_KEYID = 14,
|
|
FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15,
|
|
FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16,
|
|
FLOW_DISSECTOR_KEY_ENC_CONTROL = 17,
|
|
FLOW_DISSECTOR_KEY_ENC_PORTS = 18,
|
|
FLOW_DISSECTOR_KEY_MPLS = 19,
|
|
FLOW_DISSECTOR_KEY_TCP = 20,
|
|
FLOW_DISSECTOR_KEY_IP = 21,
|
|
FLOW_DISSECTOR_KEY_CVLAN = 22,
|
|
FLOW_DISSECTOR_KEY_ENC_IP = 23,
|
|
FLOW_DISSECTOR_KEY_ENC_OPTS = 24,
|
|
FLOW_DISSECTOR_KEY_META = 25,
|
|
FLOW_DISSECTOR_KEY_CT = 26,
|
|
FLOW_DISSECTOR_KEY_HASH = 27,
|
|
FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28,
|
|
FLOW_DISSECTOR_KEY_PPPOE = 29,
|
|
FLOW_DISSECTOR_KEY_L2TPV3 = 30,
|
|
FLOW_DISSECTOR_KEY_MAX = 31,
|
|
};
|
|
|
|
enum rt6_nud_state {
|
|
RT6_NUD_FAIL_HARD = -3,
|
|
RT6_NUD_FAIL_PROBE = -2,
|
|
RT6_NUD_FAIL_DO_RR = -1,
|
|
RT6_NUD_SUCCEED = 1,
|
|
};
|
|
|
|
enum netevent_notif_type {
|
|
NETEVENT_NEIGH_UPDATE = 1,
|
|
NETEVENT_REDIRECT = 2,
|
|
NETEVENT_DELAY_PROBE_TIME_UPDATE = 3,
|
|
NETEVENT_IPV4_MPATH_HASH_UPDATE = 4,
|
|
NETEVENT_IPV6_MPATH_HASH_UPDATE = 5,
|
|
NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE = 6,
|
|
};
|
|
|
|
enum rtattr_type_t {
|
|
RTA_UNSPEC = 0,
|
|
RTA_DST = 1,
|
|
RTA_SRC = 2,
|
|
RTA_IIF = 3,
|
|
RTA_OIF = 4,
|
|
RTA_GATEWAY = 5,
|
|
RTA_PRIORITY = 6,
|
|
RTA_PREFSRC = 7,
|
|
RTA_METRICS = 8,
|
|
RTA_MULTIPATH = 9,
|
|
RTA_PROTOINFO = 10,
|
|
RTA_FLOW = 11,
|
|
RTA_CACHEINFO = 12,
|
|
RTA_SESSION = 13,
|
|
RTA_MP_ALGO = 14,
|
|
RTA_TABLE = 15,
|
|
RTA_MARK = 16,
|
|
RTA_MFC_STATS = 17,
|
|
RTA_VIA = 18,
|
|
RTA_NEWDST = 19,
|
|
RTA_PREF = 20,
|
|
RTA_ENCAP_TYPE = 21,
|
|
RTA_ENCAP = 22,
|
|
RTA_EXPIRES = 23,
|
|
RTA_PAD = 24,
|
|
RTA_UID = 25,
|
|
RTA_TTL_PROPAGATE = 26,
|
|
RTA_IP_PROTO = 27,
|
|
RTA_SPORT = 28,
|
|
RTA_DPORT = 29,
|
|
RTA_NH_ID = 30,
|
|
__RTA_MAX = 31,
|
|
};
|
|
|
|
struct ip6rd_flowi {
|
|
struct flowi6 fl6;
|
|
struct in6_addr gateway;
|
|
};
|
|
|
|
struct rt6_rtnl_dump_arg {
|
|
struct sk_buff *skb;
|
|
struct netlink_callback *cb;
|
|
struct net *net;
|
|
struct fib_dump_filter filter;
|
|
};
|
|
|
|
struct trace_event_raw_fib6_table_lookup {
|
|
struct trace_entry ent;
|
|
u32 tb_id;
|
|
int err;
|
|
int oif;
|
|
int iif;
|
|
__u8 tos;
|
|
__u8 scope;
|
|
__u8 flags;
|
|
__u8 src[16];
|
|
__u8 dst[16];
|
|
u16 sport;
|
|
u16 dport;
|
|
u8 proto;
|
|
u8 rt_type;
|
|
char name[16];
|
|
__u8 gw[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct rt6_exception {
|
|
struct hlist_node hlist;
|
|
struct rt6_info *rt6i;
|
|
unsigned long stamp;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct arg_dev_net_ip {
|
|
struct net_device *dev;
|
|
struct net *net;
|
|
struct in6_addr *addr;
|
|
};
|
|
|
|
struct rt6_mtu_change_arg {
|
|
struct net_device *dev;
|
|
unsigned int mtu;
|
|
struct fib6_info *f6i;
|
|
};
|
|
|
|
struct rt6_nh {
|
|
struct fib6_info *fib6_info;
|
|
struct fib6_config r_cfg;
|
|
struct list_head next;
|
|
};
|
|
|
|
struct flow_dissector_key_tags {
|
|
u32 flow_label;
|
|
};
|
|
|
|
struct flow_dissector_key_vlan {
|
|
union {
|
|
struct {
|
|
u16 vlan_id: 12;
|
|
u16 vlan_dei: 1;
|
|
u16 vlan_priority: 3;
|
|
};
|
|
__be16 vlan_tci;
|
|
};
|
|
__be16 vlan_tpid;
|
|
__be16 vlan_eth_type;
|
|
u16 padding;
|
|
};
|
|
|
|
struct flow_dissector_key_keyid {
|
|
__be32 keyid;
|
|
};
|
|
|
|
struct flow_dissector_key_ports {
|
|
union {
|
|
__be32 ports;
|
|
struct {
|
|
__be16 src;
|
|
__be16 dst;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct flow_dissector_key_icmp {
|
|
struct {
|
|
u8 type;
|
|
u8 code;
|
|
};
|
|
u16 id;
|
|
};
|
|
|
|
struct flow_dissector_key_ipv4_addrs {
|
|
__be32 src;
|
|
__be32 dst;
|
|
};
|
|
|
|
struct flow_dissector_key_ipv6_addrs {
|
|
struct in6_addr src;
|
|
struct in6_addr dst;
|
|
};
|
|
|
|
struct flow_dissector_key_tipc {
|
|
__be32 key;
|
|
};
|
|
|
|
struct flow_dissector_key_addrs {
|
|
union {
|
|
struct flow_dissector_key_ipv4_addrs v4addrs;
|
|
struct flow_dissector_key_ipv6_addrs v6addrs;
|
|
struct flow_dissector_key_tipc tipckey;
|
|
};
|
|
};
|
|
|
|
struct flow_keys {
|
|
struct flow_dissector_key_control control;
|
|
struct flow_dissector_key_basic basic;
|
|
struct flow_dissector_key_tags tags;
|
|
struct flow_dissector_key_vlan vlan;
|
|
struct flow_dissector_key_vlan cvlan;
|
|
struct flow_dissector_key_keyid keyid;
|
|
struct flow_dissector_key_ports ports;
|
|
struct flow_dissector_key_icmp icmp;
|
|
struct flow_dissector_key_addrs addrs;
|
|
int: 32;
|
|
};
|
|
|
|
struct fib6_nh_dm_arg {
|
|
struct net *net;
|
|
const struct in6_addr *saddr;
|
|
int oif;
|
|
int flags;
|
|
struct fib6_nh *nh;
|
|
};
|
|
|
|
typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int);
|
|
|
|
struct fib6_gc_args {
|
|
int timeout;
|
|
int more;
|
|
};
|
|
|
|
struct fib6_nh_match_arg {
|
|
const struct net_device *dev;
|
|
const struct in6_addr *gw;
|
|
struct fib6_nh *match;
|
|
};
|
|
|
|
struct in6_rtmsg {
|
|
struct in6_addr rtmsg_dst;
|
|
struct in6_addr rtmsg_src;
|
|
struct in6_addr rtmsg_gateway;
|
|
__u32 rtmsg_type;
|
|
__u16 rtmsg_dst_len;
|
|
__u16 rtmsg_src_len;
|
|
__u32 rtmsg_metric;
|
|
unsigned long rtmsg_info;
|
|
__u32 rtmsg_flags;
|
|
int rtmsg_ifindex;
|
|
};
|
|
|
|
struct fib6_nh_del_cached_rt_arg {
|
|
struct fib6_config *cfg;
|
|
struct fib6_info *f6i;
|
|
};
|
|
|
|
struct arg_netdev_event {
|
|
const struct net_device *dev;
|
|
union {
|
|
unsigned char nh_flags;
|
|
unsigned long event;
|
|
};
|
|
};
|
|
|
|
struct rtmsg {
|
|
unsigned char rtm_family;
|
|
unsigned char rtm_dst_len;
|
|
unsigned char rtm_src_len;
|
|
unsigned char rtm_tos;
|
|
unsigned char rtm_table;
|
|
unsigned char rtm_protocol;
|
|
unsigned char rtm_scope;
|
|
unsigned char rtm_type;
|
|
unsigned int rtm_flags;
|
|
};
|
|
|
|
struct trace_event_data_offsets_fib6_table_lookup {};
|
|
|
|
struct fib6_nh_age_excptn_arg {
|
|
struct fib6_gc_args *gc_args;
|
|
unsigned long now;
|
|
};
|
|
|
|
struct fib6_nh_rd_arg {
|
|
struct fib6_result *res;
|
|
struct flowi6 *fl6;
|
|
const struct in6_addr *gw;
|
|
struct rt6_info **ret;
|
|
};
|
|
|
|
struct netevent_redirect {
|
|
struct dst_entry *old;
|
|
struct dst_entry *new;
|
|
struct neighbour *neigh;
|
|
const void *daddr;
|
|
};
|
|
|
|
struct fib6_nh_exception_dump_walker {
|
|
struct rt6_rtnl_dump_arg *dump;
|
|
struct fib6_info *rt;
|
|
unsigned int flags;
|
|
unsigned int skip;
|
|
unsigned int count;
|
|
};
|
|
|
|
struct fib6_nh_frl_arg {
|
|
u32 flags;
|
|
int oif;
|
|
int strict;
|
|
int *mpri;
|
|
bool *do_rr;
|
|
struct fib6_nh *nh;
|
|
};
|
|
|
|
struct fib6_nh_excptn_arg {
|
|
struct rt6_info *rt;
|
|
int plen;
|
|
};
|
|
|
|
struct devlink_dpipe_header;
|
|
|
|
struct devlink_dpipe_headers {
|
|
struct devlink_dpipe_header **headers;
|
|
unsigned int headers_count;
|
|
};
|
|
|
|
struct devlink_dpipe_field;
|
|
|
|
struct devlink_dpipe_header {
|
|
const char *name;
|
|
unsigned int id;
|
|
struct devlink_dpipe_field *fields;
|
|
unsigned int fields_count;
|
|
bool global;
|
|
};
|
|
|
|
enum devlink_dpipe_field_mapping_type {
|
|
DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0,
|
|
DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1,
|
|
};
|
|
|
|
struct devlink_dpipe_field {
|
|
const char *name;
|
|
unsigned int id;
|
|
unsigned int bitwidth;
|
|
enum devlink_dpipe_field_mapping_type mapping_type;
|
|
};
|
|
|
|
enum devlink_reload_action {
|
|
DEVLINK_RELOAD_ACTION_UNSPEC = 0,
|
|
DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 1,
|
|
DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 2,
|
|
__DEVLINK_RELOAD_ACTION_MAX = 3,
|
|
DEVLINK_RELOAD_ACTION_MAX = 2,
|
|
};
|
|
|
|
enum devlink_reload_limit {
|
|
DEVLINK_RELOAD_LIMIT_UNSPEC = 0,
|
|
DEVLINK_RELOAD_LIMIT_NO_RESET = 1,
|
|
__DEVLINK_RELOAD_LIMIT_MAX = 2,
|
|
DEVLINK_RELOAD_LIMIT_MAX = 1,
|
|
};
|
|
|
|
enum devlink_sb_threshold_type {
|
|
DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0,
|
|
DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1,
|
|
};
|
|
|
|
enum devlink_sb_pool_type {
|
|
DEVLINK_SB_POOL_TYPE_INGRESS = 0,
|
|
DEVLINK_SB_POOL_TYPE_EGRESS = 1,
|
|
};
|
|
|
|
enum devlink_eswitch_encap_mode {
|
|
DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0,
|
|
DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1,
|
|
};
|
|
|
|
enum devlink_trap_action {
|
|
DEVLINK_TRAP_ACTION_DROP = 0,
|
|
DEVLINK_TRAP_ACTION_TRAP = 1,
|
|
DEVLINK_TRAP_ACTION_MIRROR = 2,
|
|
};
|
|
|
|
enum devlink_port_fn_state {
|
|
DEVLINK_PORT_FN_STATE_INACTIVE = 0,
|
|
DEVLINK_PORT_FN_STATE_ACTIVE = 1,
|
|
};
|
|
|
|
enum devlink_port_fn_opstate {
|
|
DEVLINK_PORT_FN_OPSTATE_DETACHED = 0,
|
|
DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1,
|
|
};
|
|
|
|
enum devlink_selftest_status {
|
|
DEVLINK_SELFTEST_STATUS_SKIP = 0,
|
|
DEVLINK_SELFTEST_STATUS_PASS = 1,
|
|
DEVLINK_SELFTEST_STATUS_FAIL = 2,
|
|
};
|
|
|
|
struct devlink_sb_pool_info;
|
|
|
|
struct devlink_info_req;
|
|
|
|
struct devlink_flash_update_params;
|
|
|
|
struct devlink_trap;
|
|
|
|
struct devlink_trap_group;
|
|
|
|
struct devlink_trap_policer;
|
|
|
|
struct devlink_port_new_attrs;
|
|
|
|
struct devlink_ops {
|
|
u32 supported_flash_update_params;
|
|
unsigned long reload_actions;
|
|
unsigned long reload_limits;
|
|
int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *);
|
|
int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *);
|
|
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
|
|
int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *);
|
|
int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *);
|
|
int (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *);
|
|
int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *);
|
|
int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *);
|
|
int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *);
|
|
int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *);
|
|
int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *);
|
|
int (*sb_occ_snapshot)(struct devlink *, unsigned int);
|
|
int (*sb_occ_max_clear)(struct devlink *, unsigned int);
|
|
int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *);
|
|
int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *);
|
|
int (*eswitch_mode_get)(struct devlink *, u16 *);
|
|
int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *);
|
|
int (*eswitch_inline_mode_get)(struct devlink *, u8 *);
|
|
int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *);
|
|
int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *);
|
|
int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *);
|
|
int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *);
|
|
int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *);
|
|
int (*trap_init)(struct devlink *, const struct devlink_trap *, void *);
|
|
void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *);
|
|
int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *);
|
|
int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *);
|
|
int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *);
|
|
int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *);
|
|
int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *);
|
|
int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *);
|
|
void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *);
|
|
int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *);
|
|
int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *);
|
|
int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
|
|
int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
|
|
int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
|
|
int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
|
|
int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
|
|
int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
|
|
int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *);
|
|
int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *);
|
|
int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
|
|
int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
|
|
int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
|
|
int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
|
|
int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
|
|
int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
|
|
int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
|
|
int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *);
|
|
int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
|
|
int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *);
|
|
int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *);
|
|
int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *);
|
|
int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
|
|
int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *);
|
|
bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *);
|
|
enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *);
|
|
};
|
|
|
|
struct devlink_sb_pool_info {
|
|
enum devlink_sb_pool_type pool_type;
|
|
u32 size;
|
|
enum devlink_sb_threshold_type threshold_type;
|
|
u32 cell_size;
|
|
};
|
|
|
|
struct devlink_flash_update_params {
|
|
const struct firmware *fw;
|
|
const char *component;
|
|
u32 overwrite_mask;
|
|
};
|
|
|
|
enum devlink_trap_type {
|
|
DEVLINK_TRAP_TYPE_DROP = 0,
|
|
DEVLINK_TRAP_TYPE_EXCEPTION = 1,
|
|
DEVLINK_TRAP_TYPE_CONTROL = 2,
|
|
};
|
|
|
|
struct devlink_trap {
|
|
enum devlink_trap_type type;
|
|
enum devlink_trap_action init_action;
|
|
bool generic;
|
|
u16 id;
|
|
const char *name;
|
|
u16 init_group_id;
|
|
u32 metadata_cap;
|
|
};
|
|
|
|
struct devlink_trap_group {
|
|
const char *name;
|
|
u16 id;
|
|
bool generic;
|
|
u32 init_policer_id;
|
|
};
|
|
|
|
struct devlink_trap_policer {
|
|
u32 id;
|
|
u64 init_rate;
|
|
u64 init_burst;
|
|
u64 max_rate;
|
|
u64 min_rate;
|
|
u64 max_burst;
|
|
u64 min_burst;
|
|
};
|
|
|
|
struct devlink_port_new_attrs {
|
|
enum devlink_port_flavour flavour;
|
|
unsigned int port_index;
|
|
u32 controller;
|
|
u32 sfnum;
|
|
u16 pfnum;
|
|
u8 port_index_valid: 1;
|
|
u8 controller_valid: 1;
|
|
u8 sfnum_valid: 1;
|
|
};
|
|
|
|
struct xa_limit {
|
|
u32 max;
|
|
u32 min;
|
|
};
|
|
|
|
struct rpc_sysfs_xprt_switch {
|
|
struct kobject kobject;
|
|
struct net *net;
|
|
struct rpc_xprt_switch *xprt_switch;
|
|
struct rpc_xprt *xprt;
|
|
};
|
|
|
|
struct rpc_sysfs_xprt {
|
|
struct kobject kobject;
|
|
struct rpc_xprt *xprt;
|
|
struct rpc_xprt_switch *xprt_switch;
|
|
};
|
|
|
|
enum rpc_display_format_t {
|
|
RPC_DISPLAY_ADDR = 0,
|
|
RPC_DISPLAY_PORT = 1,
|
|
RPC_DISPLAY_PROTO = 2,
|
|
RPC_DISPLAY_HEX_ADDR = 3,
|
|
RPC_DISPLAY_HEX_PORT = 4,
|
|
RPC_DISPLAY_NETID = 5,
|
|
RPC_DISPLAY_MAX = 6,
|
|
};
|
|
|
|
typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *);
|
|
|
|
struct radix_tree_preload {
|
|
local_lock_t lock;
|
|
unsigned int nr;
|
|
struct xa_node *nodes;
|
|
};
|
|
|
|
struct uuidcmp {
|
|
const char *uuid;
|
|
int len;
|
|
};
|
|
|
|
struct audit_rule_data {
|
|
__u32 flags;
|
|
__u32 action;
|
|
__u32 field_count;
|
|
__u32 mask[64];
|
|
__u32 fields[64];
|
|
__u32 values[64];
|
|
__u32 fieldflags[64];
|
|
__u32 buflen;
|
|
char buf[0];
|
|
};
|
|
|
|
struct audit_netlink_list {
|
|
__u32 portid;
|
|
struct net *net;
|
|
struct sk_buff_head q;
|
|
};
|
|
|
|
typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int);
|
|
|
|
typedef void (*btf_trace_rpm_resume)(void *, struct device *, int);
|
|
|
|
typedef void (*btf_trace_rpm_idle)(void *, struct device *, int);
|
|
|
|
typedef void (*btf_trace_rpm_usage)(void *, struct device *, int);
|
|
|
|
typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int);
|
|
|
|
struct trace_event_raw_rpm_internal {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
int flags;
|
|
int usage_count;
|
|
int disable_depth;
|
|
int runtime_auto;
|
|
int request_pending;
|
|
int irq_safe;
|
|
int child_count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpm_return_int {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
unsigned long ip;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpm_internal {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpm_return_int {
|
|
u32 name;
|
|
};
|
|
|
|
enum bpf_core_relo_kind {
|
|
BPF_CORE_FIELD_BYTE_OFFSET = 0,
|
|
BPF_CORE_FIELD_BYTE_SIZE = 1,
|
|
BPF_CORE_FIELD_EXISTS = 2,
|
|
BPF_CORE_FIELD_SIGNED = 3,
|
|
BPF_CORE_FIELD_LSHIFT_U64 = 4,
|
|
BPF_CORE_FIELD_RSHIFT_U64 = 5,
|
|
BPF_CORE_TYPE_ID_LOCAL = 6,
|
|
BPF_CORE_TYPE_ID_TARGET = 7,
|
|
BPF_CORE_TYPE_EXISTS = 8,
|
|
BPF_CORE_TYPE_SIZE = 9,
|
|
BPF_CORE_ENUMVAL_EXISTS = 10,
|
|
BPF_CORE_ENUMVAL_VALUE = 11,
|
|
BPF_CORE_TYPE_MATCHES = 12,
|
|
};
|
|
|
|
struct btf_array {
|
|
__u32 type;
|
|
__u32 index_type;
|
|
__u32 nelems;
|
|
};
|
|
|
|
struct btf_param {
|
|
__u32 name_off;
|
|
__u32 type;
|
|
};
|
|
|
|
struct btf_enum {
|
|
__u32 name_off;
|
|
__s32 val;
|
|
};
|
|
|
|
struct btf_enum64 {
|
|
__u32 name_off;
|
|
__u32 val_lo32;
|
|
__u32 val_hi32;
|
|
};
|
|
|
|
struct bpf_core_accessor {
|
|
__u32 type_id;
|
|
__u32 idx;
|
|
const char *name;
|
|
};
|
|
|
|
struct bpf_core_spec {
|
|
const struct btf *btf;
|
|
struct bpf_core_accessor spec[64];
|
|
__u32 root_type_id;
|
|
enum bpf_core_relo_kind relo_kind;
|
|
int len;
|
|
int raw_spec[64];
|
|
int raw_len;
|
|
__u32 bit_offset;
|
|
};
|
|
|
|
struct bpf_core_relo {
|
|
__u32 insn_off;
|
|
__u32 type_id;
|
|
__u32 access_str_off;
|
|
enum bpf_core_relo_kind kind;
|
|
};
|
|
|
|
struct bpf_core_relo_res {
|
|
__u64 orig_val;
|
|
__u64 new_val;
|
|
bool poison;
|
|
bool validate;
|
|
bool fail_memsz_adjust;
|
|
__u32 orig_sz;
|
|
__u32 orig_type_id;
|
|
__u32 new_sz;
|
|
__u32 new_type_id;
|
|
};
|
|
|
|
struct bpf_core_cand;
|
|
|
|
struct bpf_core_cand_list {
|
|
struct bpf_core_cand *cands;
|
|
int len;
|
|
};
|
|
|
|
struct bpf_core_cand {
|
|
const struct btf *btf;
|
|
__u32 id;
|
|
};
|
|
|
|
struct static_call_tramp_key {
|
|
s32 tramp;
|
|
s32 key;
|
|
};
|
|
|
|
struct callchain_cpus_entries {
|
|
struct callback_head callback_head;
|
|
struct perf_callchain_entry *cpu_entries[0];
|
|
};
|
|
|
|
enum perf_callchain_context {
|
|
PERF_CONTEXT_HV = 18446744073709551584ULL,
|
|
PERF_CONTEXT_KERNEL = 18446744073709551488ULL,
|
|
PERF_CONTEXT_USER = 18446744073709551104ULL,
|
|
PERF_CONTEXT_GUEST = 18446744073709549568ULL,
|
|
PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL,
|
|
PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL,
|
|
PERF_CONTEXT_MAX = 18446744073709547521ULL,
|
|
};
|
|
|
|
struct perf_callchain_entry_ctx {
|
|
struct perf_callchain_entry *entry;
|
|
u32 max_stack;
|
|
u32 nr;
|
|
short contexts;
|
|
bool contexts_maxed;
|
|
};
|
|
|
|
typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool);
|
|
|
|
typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool);
|
|
|
|
typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool);
|
|
|
|
struct trace_event_raw_mmap_lock {
|
|
struct trace_entry ent;
|
|
struct mm_struct *mm;
|
|
u32 __data_loc_memcg_path;
|
|
bool write;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mmap_lock_acquire_returned {
|
|
struct trace_entry ent;
|
|
struct mm_struct *mm;
|
|
u32 __data_loc_memcg_path;
|
|
bool write;
|
|
bool success;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_mmap_lock {
|
|
u32 memcg_path;
|
|
};
|
|
|
|
struct trace_event_data_offsets_mmap_lock_acquire_returned {
|
|
u32 memcg_path;
|
|
};
|
|
|
|
enum {
|
|
MM_FILEPAGES = 0,
|
|
MM_ANONPAGES = 1,
|
|
MM_SWAPENTS = 2,
|
|
MM_SHMEMPAGES = 3,
|
|
NR_MM_COUNTERS = 4,
|
|
};
|
|
|
|
enum {
|
|
PERCPU_REF_INIT_ATOMIC = 1,
|
|
PERCPU_REF_INIT_DEAD = 2,
|
|
PERCPU_REF_ALLOW_REINIT = 4,
|
|
};
|
|
|
|
struct swap_extent {
|
|
struct rb_node rb_node;
|
|
unsigned long start_page;
|
|
unsigned long nr_pages;
|
|
sector_t start_block;
|
|
};
|
|
|
|
union swap_header {
|
|
struct {
|
|
char reserved[4086];
|
|
char magic[10];
|
|
} magic;
|
|
struct {
|
|
char bootbits[1024];
|
|
__u32 version;
|
|
__u32 last_page;
|
|
__u32 nr_badpages;
|
|
unsigned char sws_uuid[16];
|
|
unsigned char sws_volume[16];
|
|
__u32 padding[117];
|
|
__u32 badpages[1];
|
|
} info;
|
|
};
|
|
|
|
struct sysinfo {
|
|
__kernel_long_t uptime;
|
|
__kernel_ulong_t loads[3];
|
|
__kernel_ulong_t totalram;
|
|
__kernel_ulong_t freeram;
|
|
__kernel_ulong_t sharedram;
|
|
__kernel_ulong_t bufferram;
|
|
__kernel_ulong_t totalswap;
|
|
__kernel_ulong_t freeswap;
|
|
__u16 procs;
|
|
__u16 pad;
|
|
__kernel_ulong_t totalhigh;
|
|
__kernel_ulong_t freehigh;
|
|
__u32 mem_unit;
|
|
char _f[0];
|
|
};
|
|
|
|
struct prepend_buffer {
|
|
char *buf;
|
|
int len;
|
|
};
|
|
|
|
struct inotify_inode_mark {
|
|
struct fsnotify_mark fsn_mark;
|
|
int wd;
|
|
};
|
|
|
|
struct inotify_event_info {
|
|
struct fsnotify_event fse;
|
|
u32 mask;
|
|
int wd;
|
|
u32 sync_cookie;
|
|
int name_len;
|
|
char name[0];
|
|
};
|
|
|
|
enum {
|
|
PROC_ENTRY_PERMANENT = 1,
|
|
};
|
|
|
|
struct fileattr {
|
|
u32 flags;
|
|
u32 fsx_xflags;
|
|
u32 fsx_extsize;
|
|
u32 fsx_nextents;
|
|
u32 fsx_projid;
|
|
u32 fsx_cowextsize;
|
|
bool flags_valid: 1;
|
|
bool fsx_valid: 1;
|
|
};
|
|
|
|
enum {
|
|
EXT4_FC_REASON_XATTR = 0,
|
|
EXT4_FC_REASON_CROSS_RENAME = 1,
|
|
EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2,
|
|
EXT4_FC_REASON_NOMEM = 3,
|
|
EXT4_FC_REASON_SWAP_BOOT = 4,
|
|
EXT4_FC_REASON_RESIZE = 5,
|
|
EXT4_FC_REASON_RENAME_DIR = 6,
|
|
EXT4_FC_REASON_FALLOC_RANGE = 7,
|
|
EXT4_FC_REASON_INODE_JOURNAL_DATA = 8,
|
|
EXT4_FC_REASON_ENCRYPTED_FILENAME = 9,
|
|
EXT4_FC_REASON_MAX = 10,
|
|
};
|
|
|
|
struct ext4_inode {
|
|
__le16 i_mode;
|
|
__le16 i_uid;
|
|
__le32 i_size_lo;
|
|
__le32 i_atime;
|
|
__le32 i_ctime;
|
|
__le32 i_mtime;
|
|
__le32 i_dtime;
|
|
__le16 i_gid;
|
|
__le16 i_links_count;
|
|
__le32 i_blocks_lo;
|
|
__le32 i_flags;
|
|
union {
|
|
struct {
|
|
__le32 l_i_version;
|
|
} linux1;
|
|
struct {
|
|
__u32 h_i_translator;
|
|
} hurd1;
|
|
struct {
|
|
__u32 m_i_reserved1;
|
|
} masix1;
|
|
} osd1;
|
|
__le32 i_block[15];
|
|
__le32 i_generation;
|
|
__le32 i_file_acl_lo;
|
|
__le32 i_size_high;
|
|
__le32 i_obso_faddr;
|
|
union {
|
|
struct {
|
|
__le16 l_i_blocks_high;
|
|
__le16 l_i_file_acl_high;
|
|
__le16 l_i_uid_high;
|
|
__le16 l_i_gid_high;
|
|
__le16 l_i_checksum_lo;
|
|
__le16 l_i_reserved;
|
|
} linux2;
|
|
struct {
|
|
__le16 h_i_reserved1;
|
|
__u16 h_i_mode_high;
|
|
__u16 h_i_uid_high;
|
|
__u16 h_i_gid_high;
|
|
__u32 h_i_author;
|
|
} hurd2;
|
|
struct {
|
|
__le16 h_i_reserved1;
|
|
__le16 m_i_file_acl_high;
|
|
__u32 m_i_reserved2[2];
|
|
} masix2;
|
|
} osd2;
|
|
__le16 i_extra_isize;
|
|
__le16 i_checksum_hi;
|
|
__le32 i_ctime_extra;
|
|
__le32 i_mtime_extra;
|
|
__le32 i_atime_extra;
|
|
__le32 i_crtime;
|
|
__le32 i_crtime_extra;
|
|
__le32 i_version_hi;
|
|
__le32 i_projid;
|
|
};
|
|
|
|
struct move_extent {
|
|
__u32 reserved;
|
|
__u32 donor_fd;
|
|
__u64 orig_start;
|
|
__u64 donor_start;
|
|
__u64 len;
|
|
__u64 moved_len;
|
|
};
|
|
|
|
struct ext4_new_group_input {
|
|
__u32 group;
|
|
__u64 block_bitmap;
|
|
__u64 inode_bitmap;
|
|
__u64 inode_table;
|
|
__u32 blocks_count;
|
|
__u16 reserved_blocks;
|
|
__u16 unused;
|
|
};
|
|
|
|
struct fiemap {
|
|
__u64 fm_start;
|
|
__u64 fm_length;
|
|
__u32 fm_flags;
|
|
__u32 fm_mapped_extents;
|
|
__u32 fm_extent_count;
|
|
__u32 fm_reserved;
|
|
struct fiemap_extent fm_extents[0];
|
|
};
|
|
|
|
struct fsmap {
|
|
__u32 fmr_device;
|
|
__u32 fmr_flags;
|
|
__u64 fmr_physical;
|
|
__u64 fmr_owner;
|
|
__u64 fmr_offset;
|
|
__u64 fmr_length;
|
|
__u64 fmr_reserved[3];
|
|
};
|
|
|
|
struct fsmap_head {
|
|
__u32 fmh_iflags;
|
|
__u32 fmh_oflags;
|
|
__u32 fmh_count;
|
|
__u32 fmh_entries;
|
|
__u64 fmh_reserved[6];
|
|
struct fsmap fmh_keys[2];
|
|
struct fsmap fmh_recs[0];
|
|
};
|
|
|
|
struct getfsmap_info {
|
|
struct super_block *gi_sb;
|
|
struct fsmap_head __attribute__((btf_type_tag("user"))) *gi_data;
|
|
unsigned int gi_idx;
|
|
__u32 gi_last_flags;
|
|
};
|
|
|
|
struct ext4_fsmap {
|
|
struct list_head fmr_list;
|
|
dev_t fmr_device;
|
|
uint32_t fmr_flags;
|
|
uint64_t fmr_physical;
|
|
uint64_t fmr_owner;
|
|
uint64_t fmr_length;
|
|
};
|
|
|
|
struct ext4_fsmap_head {
|
|
uint32_t fmh_iflags;
|
|
uint32_t fmh_oflags;
|
|
unsigned int fmh_count;
|
|
unsigned int fmh_entries;
|
|
struct ext4_fsmap fmh_keys[2];
|
|
};
|
|
|
|
struct fsuuid {
|
|
__u32 fsu_len;
|
|
__u32 fsu_flags;
|
|
__u8 fsu_uuid[0];
|
|
};
|
|
|
|
typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *);
|
|
|
|
typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *);
|
|
|
|
struct compat_ext4_new_group_input {
|
|
u32 group;
|
|
compat_u64 block_bitmap;
|
|
compat_u64 inode_bitmap;
|
|
compat_u64 inode_table;
|
|
u32 blocks_count;
|
|
u16 reserved_blocks;
|
|
u16 unused;
|
|
} __attribute__((packed));
|
|
|
|
enum isofs_file_format {
|
|
isofs_file_normal = 0,
|
|
isofs_file_sparse = 1,
|
|
isofs_file_compressed = 2,
|
|
};
|
|
|
|
struct SU_SP_s {
|
|
__u8 magic[2];
|
|
__u8 skip;
|
|
};
|
|
|
|
struct SU_CE_s {
|
|
__u8 extent[8];
|
|
__u8 offset[8];
|
|
__u8 size[8];
|
|
};
|
|
|
|
struct SU_ER_s {
|
|
__u8 len_id;
|
|
__u8 len_des;
|
|
__u8 len_src;
|
|
__u8 ext_ver;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct RR_RR_s {
|
|
__u8 flags[1];
|
|
};
|
|
|
|
struct RR_PX_s {
|
|
__u8 mode[8];
|
|
__u8 n_links[8];
|
|
__u8 uid[8];
|
|
__u8 gid[8];
|
|
};
|
|
|
|
struct RR_PN_s {
|
|
__u8 dev_high[8];
|
|
__u8 dev_low[8];
|
|
};
|
|
|
|
struct SL_component {
|
|
__u8 flags;
|
|
__u8 len;
|
|
__u8 text[0];
|
|
};
|
|
|
|
struct RR_SL_s {
|
|
__u8 flags;
|
|
struct SL_component link;
|
|
};
|
|
|
|
struct RR_NM_s {
|
|
__u8 flags;
|
|
char name[0];
|
|
};
|
|
|
|
struct RR_CL_s {
|
|
__u8 location[8];
|
|
};
|
|
|
|
struct RR_PL_s {
|
|
__u8 location[8];
|
|
};
|
|
|
|
struct stamp {
|
|
__u8 time[7];
|
|
};
|
|
|
|
struct RR_TF_s {
|
|
__u8 flags;
|
|
struct stamp times[0];
|
|
};
|
|
|
|
struct RR_ZF_s {
|
|
__u8 algorithm[2];
|
|
__u8 parms[2];
|
|
__u8 real_size[8];
|
|
};
|
|
|
|
struct rock_ridge {
|
|
__u8 signature[2];
|
|
__u8 len;
|
|
__u8 version;
|
|
union {
|
|
struct SU_SP_s SP;
|
|
struct SU_CE_s CE;
|
|
struct SU_ER_s ER;
|
|
struct RR_RR_s RR;
|
|
struct RR_PX_s PX;
|
|
struct RR_PN_s PN;
|
|
struct RR_SL_s SL;
|
|
struct RR_NM_s NM;
|
|
struct RR_CL_s CL;
|
|
struct RR_PL_s PL;
|
|
struct RR_TF_s TF;
|
|
struct RR_ZF_s ZF;
|
|
} u;
|
|
};
|
|
|
|
struct iso_inode_info {
|
|
unsigned long i_iget5_block;
|
|
unsigned long i_iget5_offset;
|
|
unsigned int i_first_extent;
|
|
unsigned char i_file_format;
|
|
unsigned char i_format_parm[3];
|
|
unsigned long i_next_section_block;
|
|
unsigned long i_next_section_offset;
|
|
off_t i_section_size;
|
|
struct inode vfs_inode;
|
|
};
|
|
|
|
struct iso_directory_record {
|
|
__u8 length[1];
|
|
__u8 ext_attr_length[1];
|
|
__u8 extent[8];
|
|
__u8 size[8];
|
|
__u8 date[7];
|
|
__u8 flags[1];
|
|
__u8 file_unit_size[1];
|
|
__u8 interleave[1];
|
|
__u8 volume_sequence_number[4];
|
|
__u8 name_len[1];
|
|
char name[0];
|
|
};
|
|
|
|
struct isofs_sb_info {
|
|
unsigned long s_ninodes;
|
|
unsigned long s_nzones;
|
|
unsigned long s_firstdatazone;
|
|
unsigned long s_log_zone_size;
|
|
unsigned long s_max_size;
|
|
int s_rock_offset;
|
|
s32 s_sbsector;
|
|
unsigned char s_joliet_level;
|
|
unsigned char s_mapping;
|
|
unsigned char s_check;
|
|
unsigned char s_session;
|
|
unsigned int s_high_sierra: 1;
|
|
unsigned int s_rock: 2;
|
|
unsigned int s_cruft: 1;
|
|
unsigned int s_nocompress: 1;
|
|
unsigned int s_hide: 1;
|
|
unsigned int s_showassoc: 1;
|
|
unsigned int s_overriderockperm: 1;
|
|
unsigned int s_uid_set: 1;
|
|
unsigned int s_gid_set: 1;
|
|
umode_t s_fmode;
|
|
umode_t s_dmode;
|
|
kgid_t s_gid;
|
|
kuid_t s_uid;
|
|
struct nls_table *s_nls_iocharset;
|
|
};
|
|
|
|
struct rock_state {
|
|
void *buffer;
|
|
unsigned char *chr;
|
|
int len;
|
|
int cont_size;
|
|
int cont_extent;
|
|
int cont_offset;
|
|
int cont_loops;
|
|
struct inode *inode;
|
|
};
|
|
|
|
enum {
|
|
NFSPROC4_CLNT_NULL = 0,
|
|
NFSPROC4_CLNT_READ = 1,
|
|
NFSPROC4_CLNT_WRITE = 2,
|
|
NFSPROC4_CLNT_COMMIT = 3,
|
|
NFSPROC4_CLNT_OPEN = 4,
|
|
NFSPROC4_CLNT_OPEN_CONFIRM = 5,
|
|
NFSPROC4_CLNT_OPEN_NOATTR = 6,
|
|
NFSPROC4_CLNT_OPEN_DOWNGRADE = 7,
|
|
NFSPROC4_CLNT_CLOSE = 8,
|
|
NFSPROC4_CLNT_SETATTR = 9,
|
|
NFSPROC4_CLNT_FSINFO = 10,
|
|
NFSPROC4_CLNT_RENEW = 11,
|
|
NFSPROC4_CLNT_SETCLIENTID = 12,
|
|
NFSPROC4_CLNT_SETCLIENTID_CONFIRM = 13,
|
|
NFSPROC4_CLNT_LOCK = 14,
|
|
NFSPROC4_CLNT_LOCKT = 15,
|
|
NFSPROC4_CLNT_LOCKU = 16,
|
|
NFSPROC4_CLNT_ACCESS = 17,
|
|
NFSPROC4_CLNT_GETATTR = 18,
|
|
NFSPROC4_CLNT_LOOKUP = 19,
|
|
NFSPROC4_CLNT_LOOKUP_ROOT = 20,
|
|
NFSPROC4_CLNT_REMOVE = 21,
|
|
NFSPROC4_CLNT_RENAME = 22,
|
|
NFSPROC4_CLNT_LINK = 23,
|
|
NFSPROC4_CLNT_SYMLINK = 24,
|
|
NFSPROC4_CLNT_CREATE = 25,
|
|
NFSPROC4_CLNT_PATHCONF = 26,
|
|
NFSPROC4_CLNT_STATFS = 27,
|
|
NFSPROC4_CLNT_READLINK = 28,
|
|
NFSPROC4_CLNT_READDIR = 29,
|
|
NFSPROC4_CLNT_SERVER_CAPS = 30,
|
|
NFSPROC4_CLNT_DELEGRETURN = 31,
|
|
NFSPROC4_CLNT_GETACL = 32,
|
|
NFSPROC4_CLNT_SETACL = 33,
|
|
NFSPROC4_CLNT_FS_LOCATIONS = 34,
|
|
NFSPROC4_CLNT_RELEASE_LOCKOWNER = 35,
|
|
NFSPROC4_CLNT_SECINFO = 36,
|
|
NFSPROC4_CLNT_FSID_PRESENT = 37,
|
|
NFSPROC4_CLNT_EXCHANGE_ID = 38,
|
|
NFSPROC4_CLNT_CREATE_SESSION = 39,
|
|
NFSPROC4_CLNT_DESTROY_SESSION = 40,
|
|
NFSPROC4_CLNT_SEQUENCE = 41,
|
|
NFSPROC4_CLNT_GET_LEASE_TIME = 42,
|
|
NFSPROC4_CLNT_RECLAIM_COMPLETE = 43,
|
|
NFSPROC4_CLNT_LAYOUTGET = 44,
|
|
NFSPROC4_CLNT_GETDEVICEINFO = 45,
|
|
NFSPROC4_CLNT_LAYOUTCOMMIT = 46,
|
|
NFSPROC4_CLNT_LAYOUTRETURN = 47,
|
|
NFSPROC4_CLNT_SECINFO_NO_NAME = 48,
|
|
NFSPROC4_CLNT_TEST_STATEID = 49,
|
|
NFSPROC4_CLNT_FREE_STATEID = 50,
|
|
NFSPROC4_CLNT_GETDEVICELIST = 51,
|
|
NFSPROC4_CLNT_BIND_CONN_TO_SESSION = 52,
|
|
NFSPROC4_CLNT_DESTROY_CLIENTID = 53,
|
|
NFSPROC4_CLNT_SEEK = 54,
|
|
NFSPROC4_CLNT_ALLOCATE = 55,
|
|
NFSPROC4_CLNT_DEALLOCATE = 56,
|
|
NFSPROC4_CLNT_LAYOUTSTATS = 57,
|
|
NFSPROC4_CLNT_CLONE = 58,
|
|
NFSPROC4_CLNT_COPY = 59,
|
|
NFSPROC4_CLNT_OFFLOAD_CANCEL = 60,
|
|
NFSPROC4_CLNT_LOOKUPP = 61,
|
|
NFSPROC4_CLNT_LAYOUTERROR = 62,
|
|
NFSPROC4_CLNT_COPY_NOTIFY = 63,
|
|
NFSPROC4_CLNT_GETXATTR = 64,
|
|
NFSPROC4_CLNT_SETXATTR = 65,
|
|
NFSPROC4_CLNT_LISTXATTRS = 66,
|
|
NFSPROC4_CLNT_REMOVEXATTR = 67,
|
|
NFSPROC4_CLNT_READ_PLUS = 68,
|
|
};
|
|
|
|
enum nfs4_slot_tbl_state {
|
|
NFS4_SLOT_TBL_DRAINING = 0,
|
|
};
|
|
|
|
struct nfs4_cached_acl {
|
|
enum nfs4_acl_type type;
|
|
int cached;
|
|
size_t len;
|
|
char data[0];
|
|
};
|
|
|
|
struct nfs4_layoutget;
|
|
|
|
struct nfs4_opendata {
|
|
struct kref kref;
|
|
struct nfs_openargs o_arg;
|
|
struct nfs_openres o_res;
|
|
struct nfs_open_confirmargs c_arg;
|
|
struct nfs_open_confirmres c_res;
|
|
struct nfs4_string owner_name;
|
|
struct nfs4_string group_name;
|
|
struct nfs4_label *a_label;
|
|
struct nfs_fattr f_attr;
|
|
struct dentry *dir;
|
|
struct dentry *dentry;
|
|
struct nfs4_state_owner *owner;
|
|
struct nfs4_state *state;
|
|
struct iattr attrs;
|
|
struct nfs4_layoutget *lgp;
|
|
unsigned long timestamp;
|
|
bool rpc_done;
|
|
bool file_created;
|
|
bool is_recover;
|
|
bool cancelled;
|
|
int rpc_status;
|
|
};
|
|
|
|
struct nfs4_layoutget {
|
|
struct nfs4_layoutget_args args;
|
|
struct nfs4_layoutget_res res;
|
|
const struct cred *cred;
|
|
struct pnfs_layout_hdr *lo;
|
|
gfp_t gfp_flags;
|
|
};
|
|
|
|
struct nfs4_get_lease_time_data {
|
|
struct nfs4_get_lease_time_args *args;
|
|
struct nfs4_get_lease_time_res *res;
|
|
struct nfs_client *clp;
|
|
};
|
|
|
|
typedef void (*rpc_action)(struct rpc_task *);
|
|
|
|
struct nfs4_call_sync_data {
|
|
const struct nfs_server *seq_server;
|
|
struct nfs4_sequence_args *seq_args;
|
|
struct nfs4_sequence_res *seq_res;
|
|
};
|
|
|
|
struct cache_detail {
|
|
struct module *owner;
|
|
int hash_size;
|
|
struct hlist_head *hash_table;
|
|
spinlock_t hash_lock;
|
|
char *name;
|
|
void (*cache_put)(struct kref *);
|
|
int (*cache_upcall)(struct cache_detail *, struct cache_head *);
|
|
void (*cache_request)(struct cache_detail *, struct cache_head *, char **, int *);
|
|
int (*cache_parse)(struct cache_detail *, char *, int);
|
|
int (*cache_show)(struct seq_file *, struct cache_detail *, struct cache_head *);
|
|
void (*warn_no_listener)(struct cache_detail *, int);
|
|
struct cache_head * (*alloc)();
|
|
void (*flush)();
|
|
int (*match)(struct cache_head *, struct cache_head *);
|
|
void (*init)(struct cache_head *, struct cache_head *);
|
|
void (*update)(struct cache_head *, struct cache_head *);
|
|
time64_t flush_time;
|
|
struct list_head others;
|
|
time64_t nextcheck;
|
|
int entries;
|
|
struct list_head queue;
|
|
atomic_t writers;
|
|
time64_t last_close;
|
|
time64_t last_warn;
|
|
union {
|
|
struct proc_dir_entry *procfs;
|
|
struct dentry *pipefs;
|
|
};
|
|
struct net *net;
|
|
};
|
|
|
|
struct nfs4_delegreturndata {
|
|
struct nfs4_delegreturnargs args;
|
|
struct nfs4_delegreturnres res;
|
|
struct nfs_fh fh;
|
|
nfs4_stateid stateid;
|
|
unsigned long timestamp;
|
|
struct {
|
|
struct nfs4_layoutreturn_args arg;
|
|
struct nfs4_layoutreturn_res res;
|
|
struct nfs4_xdr_opaque_data ld_private;
|
|
u32 roc_barrier;
|
|
bool roc;
|
|
} lr;
|
|
struct nfs_fattr fattr;
|
|
int rpc_status;
|
|
struct inode *inode;
|
|
};
|
|
|
|
struct nfs4_lockdata {
|
|
struct nfs_lock_args arg;
|
|
struct nfs_lock_res res;
|
|
struct nfs4_lock_state *lsp;
|
|
struct nfs_open_context *ctx;
|
|
struct file_lock fl;
|
|
unsigned long timestamp;
|
|
int rpc_status;
|
|
int cancelled;
|
|
struct nfs_server *server;
|
|
};
|
|
|
|
struct nfs4_exception {
|
|
struct nfs4_state *state;
|
|
struct inode *inode;
|
|
nfs4_stateid *stateid;
|
|
long timeout;
|
|
unsigned char task_is_privileged: 1;
|
|
unsigned char delay: 1;
|
|
unsigned char recovering: 1;
|
|
unsigned char retry: 1;
|
|
bool interruptible;
|
|
};
|
|
|
|
struct nfs4_createdata {
|
|
struct rpc_message msg;
|
|
struct nfs4_create_arg arg;
|
|
struct nfs4_create_res res;
|
|
struct nfs_fh fh;
|
|
struct nfs_fattr fattr;
|
|
};
|
|
|
|
struct nfs4_unlockdata {
|
|
struct nfs_locku_args arg;
|
|
struct nfs_locku_res res;
|
|
struct nfs4_lock_state *lsp;
|
|
struct nfs_open_context *ctx;
|
|
struct nfs_lock_context *l_ctx;
|
|
struct file_lock fl;
|
|
struct nfs_server *server;
|
|
unsigned long timestamp;
|
|
};
|
|
|
|
struct nfs4_open_createattrs {
|
|
struct nfs4_label *label;
|
|
struct iattr *sattr;
|
|
const __u32 verf[2];
|
|
};
|
|
|
|
struct nfs4_closedata {
|
|
struct inode *inode;
|
|
struct nfs4_state *state;
|
|
struct nfs_closeargs arg;
|
|
struct nfs_closeres res;
|
|
struct {
|
|
struct nfs4_layoutreturn_args arg;
|
|
struct nfs4_layoutreturn_res res;
|
|
struct nfs4_xdr_opaque_data ld_private;
|
|
u32 roc_barrier;
|
|
bool roc;
|
|
} lr;
|
|
struct nfs_fattr fattr;
|
|
unsigned long timestamp;
|
|
};
|
|
|
|
struct nfs_release_lockowner_res {
|
|
struct nfs4_sequence_res seq_res;
|
|
};
|
|
|
|
struct nfs_release_lockowner_data {
|
|
struct nfs4_lock_state *lsp;
|
|
struct nfs_server *server;
|
|
struct nfs_release_lockowner_args args;
|
|
struct nfs_release_lockowner_res res;
|
|
unsigned long timestamp;
|
|
};
|
|
|
|
struct nfs4_renewdata {
|
|
struct nfs_client *client;
|
|
unsigned long timestamp;
|
|
};
|
|
|
|
struct acpi_create_field_info {
|
|
struct acpi_namespace_node *region_node;
|
|
struct acpi_namespace_node *field_node;
|
|
struct acpi_namespace_node *register_node;
|
|
struct acpi_namespace_node *data_register_node;
|
|
struct acpi_namespace_node *connection_node;
|
|
u8 *resource_buffer;
|
|
u32 bank_value;
|
|
u32 field_bit_position;
|
|
u32 field_bit_length;
|
|
u16 resource_length;
|
|
u16 pin_number_index;
|
|
u8 field_flags;
|
|
u8 attribute;
|
|
u8 field_type;
|
|
u8 access_length;
|
|
};
|
|
|
|
typedef enum {
|
|
ACPI_TRACE_AML_METHOD = 0,
|
|
ACPI_TRACE_AML_OPCODE = 1,
|
|
ACPI_TRACE_AML_REGION = 2,
|
|
} acpi_trace_event_type;
|
|
|
|
enum {
|
|
ERASE = 0,
|
|
WERASE = 1,
|
|
KILL = 2,
|
|
};
|
|
|
|
struct n_tty_data {
|
|
size_t read_head;
|
|
size_t commit_head;
|
|
size_t canon_head;
|
|
size_t echo_head;
|
|
size_t echo_commit;
|
|
size_t echo_mark;
|
|
unsigned long char_map[4];
|
|
unsigned long overrun_time;
|
|
int num_overrun;
|
|
bool no_room;
|
|
unsigned char lnext: 1;
|
|
unsigned char erasing: 1;
|
|
unsigned char raw: 1;
|
|
unsigned char real_raw: 1;
|
|
unsigned char icanon: 1;
|
|
unsigned char push: 1;
|
|
char read_buf[4096];
|
|
unsigned long read_flags[64];
|
|
unsigned char echo_buf[4096];
|
|
size_t read_tail;
|
|
size_t line_start;
|
|
size_t lookahead_count;
|
|
unsigned int column;
|
|
unsigned int canon_column;
|
|
size_t echo_tail;
|
|
struct mutex atomic_read_lock;
|
|
struct mutex output_lock;
|
|
};
|
|
|
|
struct pci1xxxx_8250 {
|
|
unsigned int nr;
|
|
void *membase;
|
|
int line[0];
|
|
};
|
|
|
|
struct drm_mm_scan {
|
|
struct drm_mm *mm;
|
|
u64 size;
|
|
u64 alignment;
|
|
u64 remainder_mask;
|
|
u64 range_start;
|
|
u64 range_end;
|
|
u64 hit_start;
|
|
u64 hit_end;
|
|
unsigned long color;
|
|
enum drm_mm_insert_mode mode;
|
|
};
|
|
|
|
struct panel_bridge {
|
|
struct drm_bridge bridge;
|
|
struct drm_connector connector;
|
|
struct drm_panel *panel;
|
|
u32 connector_type;
|
|
};
|
|
|
|
struct drm_i915_gem_caching {
|
|
__u32 handle;
|
|
__u32 caching;
|
|
};
|
|
|
|
struct drm_i915_gem_set_domain {
|
|
__u32 handle;
|
|
__u32 read_domains;
|
|
__u32 write_domain;
|
|
};
|
|
|
|
struct drm_i915_query_item {
|
|
__u64 query_id;
|
|
__s32 length;
|
|
__u32 flags;
|
|
__u64 data_ptr;
|
|
};
|
|
|
|
struct i915_engine_class_instance {
|
|
__u16 engine_class;
|
|
__u16 engine_instance;
|
|
};
|
|
|
|
struct drm_i915_query_perf_config {
|
|
union {
|
|
__u64 n_configs;
|
|
__u64 config;
|
|
char uuid[36];
|
|
};
|
|
__u32 flags;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct drm_i915_query {
|
|
__u32 num_items;
|
|
__u32 flags;
|
|
__u64 items_ptr;
|
|
};
|
|
|
|
struct drm_i915_engine_info {
|
|
struct i915_engine_class_instance engine;
|
|
__u32 rsvd0;
|
|
__u64 flags;
|
|
__u64 capabilities;
|
|
__u16 logical_instance;
|
|
__u16 rsvd1[3];
|
|
__u64 rsvd2[3];
|
|
};
|
|
|
|
struct drm_i915_query_engine_info {
|
|
__u32 num_engines;
|
|
__u32 rsvd[3];
|
|
struct drm_i915_engine_info engines[0];
|
|
};
|
|
|
|
struct drm_i915_gem_memory_class_instance {
|
|
__u16 memory_class;
|
|
__u16 memory_instance;
|
|
};
|
|
|
|
struct drm_i915_memory_region_info {
|
|
struct drm_i915_gem_memory_class_instance region;
|
|
__u32 rsvd0;
|
|
__u64 probed_size;
|
|
__u64 unallocated_size;
|
|
union {
|
|
__u64 rsvd1[8];
|
|
struct {
|
|
__u64 probed_cpu_visible_size;
|
|
__u64 unallocated_cpu_visible_size;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct drm_i915_query_memory_regions {
|
|
__u32 num_regions;
|
|
__u32 rsvd[3];
|
|
struct drm_i915_memory_region_info regions[0];
|
|
};
|
|
|
|
struct drm_i915_query_topology_info {
|
|
__u16 flags;
|
|
__u16 max_slices;
|
|
__u16 max_subslices;
|
|
__u16 max_eus_per_subslice;
|
|
__u16 subslice_offset;
|
|
__u16 subslice_stride;
|
|
__u16 eu_offset;
|
|
__u16 eu_stride;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct drm_i915_perf_oa_config {
|
|
char uuid[36];
|
|
__u32 n_mux_regs;
|
|
__u32 n_boolean_regs;
|
|
__u32 n_flex_regs;
|
|
__u64 mux_regs_ptr;
|
|
__u64 boolean_regs_ptr;
|
|
__u64 flex_regs_ptr;
|
|
};
|
|
|
|
struct hwmon_ops;
|
|
|
|
struct hwmon_channel_info;
|
|
|
|
struct hwmon_chip_info {
|
|
const struct hwmon_ops *ops;
|
|
const struct hwmon_channel_info **info;
|
|
};
|
|
|
|
enum hwmon_sensor_types {
|
|
hwmon_chip = 0,
|
|
hwmon_temp = 1,
|
|
hwmon_in = 2,
|
|
hwmon_curr = 3,
|
|
hwmon_power = 4,
|
|
hwmon_energy = 5,
|
|
hwmon_humidity = 6,
|
|
hwmon_fan = 7,
|
|
hwmon_pwm = 8,
|
|
hwmon_intrusion = 9,
|
|
hwmon_max = 10,
|
|
};
|
|
|
|
struct hwmon_ops {
|
|
umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int);
|
|
int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long *);
|
|
int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **);
|
|
int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long);
|
|
};
|
|
|
|
struct hwmon_channel_info {
|
|
enum hwmon_sensor_types type;
|
|
const u32 *config;
|
|
};
|
|
|
|
struct sensor_device_attribute {
|
|
struct device_attribute dev_attr;
|
|
int index;
|
|
};
|
|
|
|
struct hwm_energy_info {
|
|
u32 reg_val_prev;
|
|
long accum_energy;
|
|
};
|
|
|
|
struct hwm_drvdata {
|
|
struct i915_hwmon *hwmon;
|
|
struct intel_uncore *uncore;
|
|
struct device *hwmon_dev;
|
|
struct hwm_energy_info ei;
|
|
char name[12];
|
|
int gt_n;
|
|
};
|
|
|
|
struct hwm_reg {
|
|
i915_reg_t gt_perf_status;
|
|
i915_reg_t pkg_power_sku_unit;
|
|
i915_reg_t pkg_power_sku;
|
|
i915_reg_t pkg_rapl_limit;
|
|
i915_reg_t energy_status_all;
|
|
i915_reg_t energy_status_tile;
|
|
};
|
|
|
|
struct i915_hwmon {
|
|
struct hwm_drvdata ddat;
|
|
struct hwm_drvdata ddat_gt[4];
|
|
struct mutex hwmon_lock;
|
|
struct hwm_reg rg;
|
|
int scl_shift_power;
|
|
int scl_shift_energy;
|
|
int scl_shift_time;
|
|
};
|
|
|
|
enum hwmon_energy_attributes {
|
|
hwmon_energy_enable = 0,
|
|
hwmon_energy_input = 1,
|
|
hwmon_energy_label = 2,
|
|
};
|
|
|
|
enum hwmon_in_attributes {
|
|
hwmon_in_enable = 0,
|
|
hwmon_in_input = 1,
|
|
hwmon_in_min = 2,
|
|
hwmon_in_max = 3,
|
|
hwmon_in_lcrit = 4,
|
|
hwmon_in_crit = 5,
|
|
hwmon_in_average = 6,
|
|
hwmon_in_lowest = 7,
|
|
hwmon_in_highest = 8,
|
|
hwmon_in_reset_history = 9,
|
|
hwmon_in_label = 10,
|
|
hwmon_in_alarm = 11,
|
|
hwmon_in_min_alarm = 12,
|
|
hwmon_in_max_alarm = 13,
|
|
hwmon_in_lcrit_alarm = 14,
|
|
hwmon_in_crit_alarm = 15,
|
|
hwmon_in_rated_min = 16,
|
|
hwmon_in_rated_max = 17,
|
|
};
|
|
|
|
enum hwmon_power_attributes {
|
|
hwmon_power_enable = 0,
|
|
hwmon_power_average = 1,
|
|
hwmon_power_average_interval = 2,
|
|
hwmon_power_average_interval_max = 3,
|
|
hwmon_power_average_interval_min = 4,
|
|
hwmon_power_average_highest = 5,
|
|
hwmon_power_average_lowest = 6,
|
|
hwmon_power_average_max = 7,
|
|
hwmon_power_average_min = 8,
|
|
hwmon_power_input = 9,
|
|
hwmon_power_input_highest = 10,
|
|
hwmon_power_input_lowest = 11,
|
|
hwmon_power_reset_history = 12,
|
|
hwmon_power_accuracy = 13,
|
|
hwmon_power_cap = 14,
|
|
hwmon_power_cap_hyst = 15,
|
|
hwmon_power_cap_max = 16,
|
|
hwmon_power_cap_min = 17,
|
|
hwmon_power_min = 18,
|
|
hwmon_power_max = 19,
|
|
hwmon_power_crit = 20,
|
|
hwmon_power_lcrit = 21,
|
|
hwmon_power_label = 22,
|
|
hwmon_power_alarm = 23,
|
|
hwmon_power_cap_alarm = 24,
|
|
hwmon_power_min_alarm = 25,
|
|
hwmon_power_max_alarm = 26,
|
|
hwmon_power_lcrit_alarm = 27,
|
|
hwmon_power_crit_alarm = 28,
|
|
hwmon_power_rated_min = 29,
|
|
hwmon_power_rated_max = 30,
|
|
};
|
|
|
|
enum hwmon_curr_attributes {
|
|
hwmon_curr_enable = 0,
|
|
hwmon_curr_input = 1,
|
|
hwmon_curr_min = 2,
|
|
hwmon_curr_max = 3,
|
|
hwmon_curr_lcrit = 4,
|
|
hwmon_curr_crit = 5,
|
|
hwmon_curr_average = 6,
|
|
hwmon_curr_lowest = 7,
|
|
hwmon_curr_highest = 8,
|
|
hwmon_curr_reset_history = 9,
|
|
hwmon_curr_label = 10,
|
|
hwmon_curr_alarm = 11,
|
|
hwmon_curr_min_alarm = 12,
|
|
hwmon_curr_max_alarm = 13,
|
|
hwmon_curr_lcrit_alarm = 14,
|
|
hwmon_curr_crit_alarm = 15,
|
|
hwmon_curr_rated_min = 16,
|
|
hwmon_curr_rated_max = 17,
|
|
};
|
|
|
|
struct intel_fbc_funcs {
|
|
void (*activate)(struct intel_fbc *);
|
|
void (*deactivate)(struct intel_fbc *);
|
|
bool (*is_active)(struct intel_fbc *);
|
|
bool (*is_compressing)(struct intel_fbc *);
|
|
void (*nuke)(struct intel_fbc *);
|
|
void (*program_cfb)(struct intel_fbc *);
|
|
void (*set_false_color)(struct intel_fbc *, bool);
|
|
};
|
|
|
|
struct intel_fbc_state {
|
|
struct intel_plane *plane;
|
|
unsigned int cfb_stride;
|
|
unsigned int cfb_size;
|
|
unsigned int fence_y_offset;
|
|
u16 override_cfb_stride;
|
|
u16 interval;
|
|
s8 fence_id;
|
|
};
|
|
|
|
struct intel_fbc {
|
|
struct drm_i915_private *i915;
|
|
const struct intel_fbc_funcs *funcs;
|
|
struct mutex lock;
|
|
unsigned int busy_bits;
|
|
struct drm_mm_node compressed_fb;
|
|
struct drm_mm_node compressed_llb;
|
|
enum intel_fbc_id id;
|
|
u8 limit;
|
|
bool false_color;
|
|
bool active;
|
|
bool activated;
|
|
bool flip_pending;
|
|
bool underrun_detected;
|
|
struct work_struct underrun_work;
|
|
struct intel_fbc_state state;
|
|
const char *no_fbc_reason;
|
|
};
|
|
|
|
struct ns2501_reg {
|
|
u8 offset;
|
|
u8 value;
|
|
};
|
|
|
|
struct ns2501_configuration {
|
|
u8 sync;
|
|
u8 conf;
|
|
u8 syncb;
|
|
u8 dither;
|
|
u8 pll_a;
|
|
u16 pll_b;
|
|
u16 hstart;
|
|
u16 hstop;
|
|
u16 vstart;
|
|
u16 vstop;
|
|
u16 vsync;
|
|
u16 vtotal;
|
|
u16 hpos;
|
|
u16 vpos;
|
|
u16 voffs;
|
|
u16 hscale;
|
|
u16 vscale;
|
|
};
|
|
|
|
enum {
|
|
MODE_640x480 = 0,
|
|
MODE_800x600 = 1,
|
|
MODE_1024x768 = 2,
|
|
};
|
|
|
|
struct ns2501_priv {
|
|
bool quiet;
|
|
const struct ns2501_configuration *conf;
|
|
};
|
|
|
|
enum intel_dp_aux_backlight_modparam {
|
|
INTEL_DP_AUX_BACKLIGHT_AUTO = -1,
|
|
INTEL_DP_AUX_BACKLIGHT_OFF = 0,
|
|
INTEL_DP_AUX_BACKLIGHT_ON = 1,
|
|
INTEL_DP_AUX_BACKLIGHT_FORCE_VESA = 2,
|
|
INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL = 3,
|
|
};
|
|
|
|
struct virtio_gpu_fpriv {
|
|
uint32_t ctx_id;
|
|
uint32_t context_init;
|
|
bool context_created;
|
|
uint32_t num_rings;
|
|
uint64_t base_fence_ctx;
|
|
uint64_t ring_idx_mask;
|
|
struct mutex context_lock;
|
|
};
|
|
|
|
struct subsys_dev_iter {
|
|
struct klist_iter ki;
|
|
const struct device_type *type;
|
|
};
|
|
|
|
enum nsim_resource_id {
|
|
NSIM_RESOURCE_NONE = 0,
|
|
NSIM_RESOURCE_IPV4 = 1,
|
|
NSIM_RESOURCE_IPV4_FIB = 2,
|
|
NSIM_RESOURCE_IPV4_FIB_RULES = 3,
|
|
NSIM_RESOURCE_IPV6 = 4,
|
|
NSIM_RESOURCE_IPV6_FIB = 5,
|
|
NSIM_RESOURCE_IPV6_FIB_RULES = 6,
|
|
NSIM_RESOURCE_NEXTHOPS = 7,
|
|
};
|
|
|
|
struct nsim_fib_entry {
|
|
u64 max;
|
|
atomic64_t num;
|
|
};
|
|
|
|
struct nsim_per_fib_data {
|
|
struct nsim_fib_entry fib;
|
|
struct nsim_fib_entry rules;
|
|
};
|
|
|
|
struct nsim_fib_data {
|
|
struct notifier_block fib_nb;
|
|
struct nsim_per_fib_data ipv4;
|
|
struct nsim_per_fib_data ipv6;
|
|
struct nsim_fib_entry nexthops;
|
|
struct rhashtable fib_rt_ht;
|
|
struct list_head fib_rt_list;
|
|
struct mutex fib_lock;
|
|
struct notifier_block nexthop_nb;
|
|
struct rhashtable nexthop_ht;
|
|
struct devlink *devlink;
|
|
struct work_struct fib_event_work;
|
|
struct work_struct fib_flush_work;
|
|
struct list_head fib_event_queue;
|
|
spinlock_t fib_event_queue_lock;
|
|
struct mutex nh_lock;
|
|
struct dentry *ddir;
|
|
bool fail_route_offload;
|
|
bool fail_res_nexthop_group_replace;
|
|
bool fail_nexthop_bucket_replace;
|
|
bool fail_route_delete;
|
|
};
|
|
|
|
struct nsim_fib6_event {
|
|
struct fib6_info **rt_arr;
|
|
unsigned int nrt6;
|
|
};
|
|
|
|
struct nsim_fib_event {
|
|
struct list_head list;
|
|
union {
|
|
struct fib_entry_notifier_info fen_info;
|
|
struct nsim_fib6_event fib6_event;
|
|
};
|
|
struct nsim_fib_data *data;
|
|
unsigned long event;
|
|
int family;
|
|
};
|
|
|
|
struct nsim_fib_rt_key {
|
|
unsigned char addr[16];
|
|
unsigned char prefix_len;
|
|
int family;
|
|
u32 tb_id;
|
|
};
|
|
|
|
struct nsim_fib_rt {
|
|
struct nsim_fib_rt_key key;
|
|
struct rhash_head ht_node;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct nsim_fib4_rt {
|
|
struct nsim_fib_rt common;
|
|
struct fib_info *fi;
|
|
dscp_t dscp;
|
|
u8 type;
|
|
};
|
|
|
|
struct nsim_fib6_rt_nh {
|
|
struct list_head list;
|
|
struct fib6_info *rt;
|
|
};
|
|
|
|
struct nsim_fib6_rt {
|
|
struct nsim_fib_rt common;
|
|
struct list_head nh_list;
|
|
unsigned int nhs;
|
|
};
|
|
|
|
struct fib6_entry_notifier_info {
|
|
struct fib_notifier_info info;
|
|
struct fib6_info *rt;
|
|
unsigned int nsiblings;
|
|
};
|
|
|
|
typedef u64 devlink_resource_occ_get_t(void *);
|
|
|
|
struct nsim_nexthop {
|
|
struct rhash_head ht_node;
|
|
u64 occ;
|
|
u32 id;
|
|
bool is_resilient;
|
|
};
|
|
|
|
struct ehci_driver_overrides {
|
|
size_t extra_priv_size;
|
|
int (*reset)(struct usb_hcd *);
|
|
int (*port_power)(struct usb_hcd *, int, bool);
|
|
};
|
|
|
|
enum ehci_hrtimer_event {
|
|
EHCI_HRTIMER_POLL_ASS = 0,
|
|
EHCI_HRTIMER_POLL_PSS = 1,
|
|
EHCI_HRTIMER_POLL_DEAD = 2,
|
|
EHCI_HRTIMER_UNLINK_INTR = 3,
|
|
EHCI_HRTIMER_FREE_ITDS = 4,
|
|
EHCI_HRTIMER_ACTIVE_UNLINK = 5,
|
|
EHCI_HRTIMER_START_UNLINK_INTR = 6,
|
|
EHCI_HRTIMER_ASYNC_UNLINKS = 7,
|
|
EHCI_HRTIMER_IAA_WATCHDOG = 8,
|
|
EHCI_HRTIMER_DISABLE_PERIODIC = 9,
|
|
EHCI_HRTIMER_DISABLE_ASYNC = 10,
|
|
EHCI_HRTIMER_IO_WATCHDOG = 11,
|
|
EHCI_HRTIMER_NUM_EVENTS = 12,
|
|
};
|
|
|
|
enum ehci_rh_state {
|
|
EHCI_RH_HALTED = 0,
|
|
EHCI_RH_SUSPENDED = 1,
|
|
EHCI_RH_RUNNING = 2,
|
|
EHCI_RH_STOPPING = 3,
|
|
};
|
|
|
|
struct ehci_qh;
|
|
|
|
union ehci_shadow;
|
|
|
|
struct ehci_itd;
|
|
|
|
struct ehci_sitd;
|
|
|
|
struct ehci_hcd {
|
|
enum ehci_hrtimer_event next_hrtimer_event;
|
|
unsigned int enabled_hrtimer_events;
|
|
ktime_t hr_timeouts[12];
|
|
struct hrtimer hrtimer;
|
|
int PSS_poll_count;
|
|
int ASS_poll_count;
|
|
int died_poll_count;
|
|
struct ehci_caps *caps;
|
|
struct ehci_regs *regs;
|
|
struct ehci_dbg_port *debug;
|
|
__u32 hcs_params;
|
|
spinlock_t lock;
|
|
enum ehci_rh_state rh_state;
|
|
bool scanning: 1;
|
|
bool need_rescan: 1;
|
|
bool intr_unlinking: 1;
|
|
bool iaa_in_progress: 1;
|
|
bool async_unlinking: 1;
|
|
bool shutdown: 1;
|
|
struct ehci_qh *qh_scan_next;
|
|
struct ehci_qh *async;
|
|
struct ehci_qh *dummy;
|
|
struct list_head async_unlink;
|
|
struct list_head async_idle;
|
|
unsigned int async_unlink_cycle;
|
|
unsigned int async_count;
|
|
__le32 old_current;
|
|
__le32 old_token;
|
|
unsigned int periodic_size;
|
|
__le32 *periodic;
|
|
dma_addr_t periodic_dma;
|
|
struct list_head intr_qh_list;
|
|
unsigned int i_thresh;
|
|
union ehci_shadow *pshadow;
|
|
struct list_head intr_unlink_wait;
|
|
struct list_head intr_unlink;
|
|
unsigned int intr_unlink_wait_cycle;
|
|
unsigned int intr_unlink_cycle;
|
|
unsigned int now_frame;
|
|
unsigned int last_iso_frame;
|
|
unsigned int intr_count;
|
|
unsigned int isoc_count;
|
|
unsigned int periodic_count;
|
|
unsigned int uframe_periodic_max;
|
|
struct list_head cached_itd_list;
|
|
struct ehci_itd *last_itd_to_free;
|
|
struct list_head cached_sitd_list;
|
|
struct ehci_sitd *last_sitd_to_free;
|
|
unsigned long reset_done[15];
|
|
unsigned long bus_suspended;
|
|
unsigned long companion_ports;
|
|
unsigned long owned_ports;
|
|
unsigned long port_c_suspend;
|
|
unsigned long suspended_ports;
|
|
unsigned long resuming_ports;
|
|
struct dma_pool *qh_pool;
|
|
struct dma_pool *qtd_pool;
|
|
struct dma_pool *itd_pool;
|
|
struct dma_pool *sitd_pool;
|
|
unsigned int random_frame;
|
|
unsigned long next_statechange;
|
|
ktime_t last_periodic_enable;
|
|
u32 command;
|
|
unsigned int no_selective_suspend: 1;
|
|
unsigned int has_fsl_port_bug: 1;
|
|
unsigned int has_fsl_hs_errata: 1;
|
|
unsigned int has_fsl_susp_errata: 1;
|
|
unsigned int big_endian_mmio: 1;
|
|
unsigned int big_endian_desc: 1;
|
|
unsigned int big_endian_capbase: 1;
|
|
unsigned int has_amcc_usb23: 1;
|
|
unsigned int need_io_watchdog: 1;
|
|
unsigned int amd_pll_fix: 1;
|
|
unsigned int use_dummy_qh: 1;
|
|
unsigned int has_synopsys_hc_bug: 1;
|
|
unsigned int frame_index_bug: 1;
|
|
unsigned int need_oc_pp_cycle: 1;
|
|
unsigned int imx28_write_fix: 1;
|
|
unsigned int spurious_oc: 1;
|
|
unsigned int is_aspeed: 1;
|
|
unsigned int zx_wakeup_clear_needed: 1;
|
|
__le32 *ohci_hcctrl_reg;
|
|
unsigned int has_hostpc: 1;
|
|
unsigned int has_tdi_phy_lpm: 1;
|
|
unsigned int has_ppcd: 1;
|
|
u8 sbrn;
|
|
u8 bandwidth[64];
|
|
u8 tt_budget[64];
|
|
struct list_head tt_list;
|
|
unsigned long priv[0];
|
|
};
|
|
|
|
struct ehci_fstn;
|
|
|
|
union ehci_shadow {
|
|
struct ehci_qh *qh;
|
|
struct ehci_itd *itd;
|
|
struct ehci_sitd *sitd;
|
|
struct ehci_fstn *fstn;
|
|
__le32 *hw_next;
|
|
void *ptr;
|
|
};
|
|
|
|
struct ehci_per_sched {
|
|
struct usb_device *udev;
|
|
struct usb_host_endpoint *ep;
|
|
struct list_head ps_list;
|
|
u16 tt_usecs;
|
|
u16 cs_mask;
|
|
u16 period;
|
|
u16 phase;
|
|
u8 bw_phase;
|
|
u8 phase_uf;
|
|
u8 usecs;
|
|
u8 c_usecs;
|
|
u8 bw_uperiod;
|
|
u8 bw_period;
|
|
};
|
|
|
|
struct ehci_qh_hw;
|
|
|
|
struct ehci_qtd;
|
|
|
|
struct ehci_qh {
|
|
struct ehci_qh_hw *hw;
|
|
dma_addr_t qh_dma;
|
|
union ehci_shadow qh_next;
|
|
struct list_head qtd_list;
|
|
struct list_head intr_node;
|
|
struct ehci_qtd *dummy;
|
|
struct list_head unlink_node;
|
|
struct ehci_per_sched ps;
|
|
unsigned int unlink_cycle;
|
|
u8 qh_state;
|
|
u8 xacterrs;
|
|
u8 unlink_reason;
|
|
u8 gap_uf;
|
|
unsigned int is_out: 1;
|
|
unsigned int clearing_tt: 1;
|
|
unsigned int dequeue_during_giveback: 1;
|
|
unsigned int should_be_inactive: 1;
|
|
};
|
|
|
|
struct ehci_qh_hw {
|
|
__le32 hw_next;
|
|
__le32 hw_info1;
|
|
__le32 hw_info2;
|
|
__le32 hw_current;
|
|
__le32 hw_qtd_next;
|
|
__le32 hw_alt_next;
|
|
__le32 hw_token;
|
|
__le32 hw_buf[5];
|
|
__le32 hw_buf_hi[5];
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct ehci_iso_stream;
|
|
|
|
struct ehci_itd {
|
|
__le32 hw_next;
|
|
__le32 hw_transaction[8];
|
|
__le32 hw_bufp[7];
|
|
__le32 hw_bufp_hi[7];
|
|
dma_addr_t itd_dma;
|
|
union ehci_shadow itd_next;
|
|
struct urb *urb;
|
|
struct ehci_iso_stream *stream;
|
|
struct list_head itd_list;
|
|
unsigned int frame;
|
|
unsigned int pg;
|
|
unsigned int index[8];
|
|
long: 64;
|
|
};
|
|
|
|
struct ehci_iso_stream {
|
|
struct ehci_qh_hw *hw;
|
|
u8 bEndpointAddress;
|
|
u8 highspeed;
|
|
struct list_head td_list;
|
|
struct list_head free_list;
|
|
struct ehci_per_sched ps;
|
|
unsigned int next_uframe;
|
|
__le32 splits;
|
|
u16 uperiod;
|
|
u16 maxp;
|
|
unsigned int bandwidth;
|
|
__le32 buf0;
|
|
__le32 buf1;
|
|
__le32 buf2;
|
|
__le32 address;
|
|
};
|
|
|
|
struct ehci_sitd {
|
|
__le32 hw_next;
|
|
__le32 hw_fullspeed_ep;
|
|
__le32 hw_uframe;
|
|
__le32 hw_results;
|
|
__le32 hw_buf[2];
|
|
__le32 hw_backpointer;
|
|
__le32 hw_buf_hi[2];
|
|
dma_addr_t sitd_dma;
|
|
union ehci_shadow sitd_next;
|
|
struct urb *urb;
|
|
struct ehci_iso_stream *stream;
|
|
struct list_head sitd_list;
|
|
unsigned int frame;
|
|
unsigned int index;
|
|
};
|
|
|
|
struct ehci_fstn {
|
|
__le32 hw_next;
|
|
__le32 hw_prev;
|
|
dma_addr_t fstn_dma;
|
|
union ehci_shadow fstn_next;
|
|
long: 64;
|
|
};
|
|
|
|
struct ehci_qtd {
|
|
__le32 hw_next;
|
|
__le32 hw_alt_next;
|
|
__le32 hw_token;
|
|
__le32 hw_buf[5];
|
|
__le32 hw_buf_hi[5];
|
|
dma_addr_t qtd_dma;
|
|
struct list_head qtd_list;
|
|
struct urb *urb;
|
|
size_t length;
|
|
};
|
|
|
|
struct touchscreen_properties {
|
|
unsigned int max_x;
|
|
unsigned int max_y;
|
|
bool invert_x;
|
|
bool invert_y;
|
|
bool swap_x_y;
|
|
};
|
|
|
|
struct input_mt_pos {
|
|
s16 x;
|
|
s16 y;
|
|
};
|
|
|
|
typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *);
|
|
|
|
typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int);
|
|
|
|
typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *, int);
|
|
|
|
typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int);
|
|
|
|
struct trace_event_raw_smbus_write {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u8 command;
|
|
__u8 len;
|
|
__u32 protocol;
|
|
__u8 buf[34];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_smbus_read {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 flags;
|
|
__u16 addr;
|
|
__u8 command;
|
|
__u32 protocol;
|
|
__u8 buf[34];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_smbus_reply {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u8 command;
|
|
__u8 len;
|
|
__u32 protocol;
|
|
__u8 buf[34];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_smbus_result {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u8 read_write;
|
|
__u8 command;
|
|
__s16 res;
|
|
__u32 protocol;
|
|
char __data[0];
|
|
};
|
|
|
|
struct i2c_smbus_alert_setup {
|
|
int irq;
|
|
};
|
|
|
|
struct trace_event_data_offsets_smbus_write {};
|
|
|
|
struct trace_event_data_offsets_smbus_read {};
|
|
|
|
struct trace_event_data_offsets_smbus_reply {};
|
|
|
|
struct trace_event_data_offsets_smbus_result {};
|
|
|
|
struct dmi_device_attribute {
|
|
struct device_attribute dev_attr;
|
|
int field;
|
|
};
|
|
|
|
struct mafield {
|
|
const char *prefix;
|
|
int field;
|
|
};
|
|
|
|
struct mbox_chan;
|
|
|
|
struct pcc_mbox_chan {
|
|
struct mbox_chan *mchan;
|
|
u64 shmem_base_addr;
|
|
u64 shmem_size;
|
|
u32 latency;
|
|
u32 max_access_rate;
|
|
u16 min_turnaround_time;
|
|
};
|
|
|
|
struct acpi_generic_address;
|
|
|
|
struct pcc_chan_reg {
|
|
void *vaddr;
|
|
struct acpi_generic_address *gas;
|
|
u64 preserve_mask;
|
|
u64 set_mask;
|
|
u64 status_mask;
|
|
};
|
|
|
|
struct pcc_chan_info {
|
|
struct pcc_mbox_chan chan;
|
|
struct pcc_chan_reg db;
|
|
struct pcc_chan_reg plat_irq_ack;
|
|
struct pcc_chan_reg cmd_complete;
|
|
struct pcc_chan_reg cmd_update;
|
|
struct pcc_chan_reg error;
|
|
int plat_irq;
|
|
};
|
|
|
|
struct mbox_controller;
|
|
|
|
struct mbox_client;
|
|
|
|
struct mbox_chan {
|
|
struct mbox_controller *mbox;
|
|
unsigned int txdone_method;
|
|
struct mbox_client *cl;
|
|
struct completion tx_complete;
|
|
void *active_req;
|
|
unsigned int msg_count;
|
|
unsigned int msg_free;
|
|
void *msg_data[20];
|
|
spinlock_t lock;
|
|
void *con_priv;
|
|
};
|
|
|
|
struct mbox_chan_ops;
|
|
|
|
struct mbox_controller {
|
|
struct device *dev;
|
|
const struct mbox_chan_ops *ops;
|
|
struct mbox_chan *chans;
|
|
int num_chans;
|
|
bool txdone_irq;
|
|
bool txdone_poll;
|
|
unsigned int txpoll_period;
|
|
struct mbox_chan * (*of_xlate)(struct mbox_controller *, const struct of_phandle_args *);
|
|
struct hrtimer poll_hrt;
|
|
spinlock_t poll_hrt_lock;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct mbox_chan_ops {
|
|
int (*send_data)(struct mbox_chan *, void *);
|
|
int (*flush)(struct mbox_chan *, unsigned long);
|
|
int (*startup)(struct mbox_chan *);
|
|
void (*shutdown)(struct mbox_chan *);
|
|
bool (*last_tx_done)(struct mbox_chan *);
|
|
bool (*peek_data)(struct mbox_chan *);
|
|
};
|
|
|
|
struct mbox_client {
|
|
struct device *dev;
|
|
bool tx_block;
|
|
unsigned long tx_tout;
|
|
bool knows_txdone;
|
|
void (*rx_callback)(struct mbox_client *, void *);
|
|
void (*tx_prepare)(struct mbox_client *, void *);
|
|
void (*tx_done)(struct mbox_client *, void *, int);
|
|
};
|
|
|
|
struct acpi_generic_address {
|
|
u8 space_id;
|
|
u8 bit_width;
|
|
u8 bit_offset;
|
|
u8 access_width;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
enum acpi_pcct_type {
|
|
ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0,
|
|
ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1,
|
|
ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2,
|
|
ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3,
|
|
ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4,
|
|
ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5,
|
|
ACPI_PCCT_TYPE_RESERVED = 6,
|
|
};
|
|
|
|
struct acpi_pcct_subspace {
|
|
struct acpi_subtable_header header;
|
|
u8 reserved[6];
|
|
u64 base_address;
|
|
u64 length;
|
|
struct acpi_generic_address doorbell_register;
|
|
u64 preserve_mask;
|
|
u64 write_mask;
|
|
u32 latency;
|
|
u32 max_access_rate;
|
|
u16 min_turnaround_time;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_table_pcct {
|
|
struct acpi_table_header header;
|
|
u32 flags;
|
|
u64 reserved;
|
|
};
|
|
|
|
struct acpi_pcct_hw_reduced {
|
|
struct acpi_subtable_header header;
|
|
u32 platform_interrupt;
|
|
u8 flags;
|
|
u8 reserved;
|
|
u64 base_address;
|
|
u64 length;
|
|
struct acpi_generic_address doorbell_register;
|
|
u64 preserve_mask;
|
|
u64 write_mask;
|
|
u32 latency;
|
|
u32 max_access_rate;
|
|
u16 min_turnaround_time;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_pcct_ext_pcc_master {
|
|
struct acpi_subtable_header header;
|
|
u32 platform_interrupt;
|
|
u8 flags;
|
|
u8 reserved1;
|
|
u64 base_address;
|
|
u32 length;
|
|
struct acpi_generic_address doorbell_register;
|
|
u64 preserve_mask;
|
|
u64 write_mask;
|
|
u32 latency;
|
|
u32 max_access_rate;
|
|
u32 min_turnaround_time;
|
|
struct acpi_generic_address platform_ack_register;
|
|
u64 ack_preserve_mask;
|
|
u64 ack_set_mask;
|
|
u64 reserved2;
|
|
struct acpi_generic_address cmd_complete_register;
|
|
u64 cmd_complete_mask;
|
|
struct acpi_generic_address cmd_update_register;
|
|
u64 cmd_update_preserve_mask;
|
|
u64 cmd_update_set_mask;
|
|
struct acpi_generic_address error_status_register;
|
|
u64 error_status_mask;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_pcct_hw_reduced_type2 {
|
|
struct acpi_subtable_header header;
|
|
u32 platform_interrupt;
|
|
u8 flags;
|
|
u8 reserved;
|
|
u64 base_address;
|
|
u64 length;
|
|
struct acpi_generic_address doorbell_register;
|
|
u64 preserve_mask;
|
|
u64 write_mask;
|
|
u32 latency;
|
|
u32 max_access_rate;
|
|
u16 min_turnaround_time;
|
|
struct acpi_generic_address platform_ack_register;
|
|
u64 ack_preserve_mask;
|
|
u64 ack_write_mask;
|
|
} __attribute__((packed));
|
|
|
|
struct action_ops {
|
|
int (*pre_action)(struct snd_pcm_substream *, snd_pcm_state_t);
|
|
int (*do_action)(struct snd_pcm_substream *, snd_pcm_state_t);
|
|
void (*undo_action)(struct snd_pcm_substream *, snd_pcm_state_t);
|
|
void (*post_action)(struct snd_pcm_substream *, snd_pcm_state_t);
|
|
};
|
|
|
|
enum {
|
|
SNDRV_TIMER_EVENT_RESOLUTION = 0,
|
|
SNDRV_TIMER_EVENT_TICK = 1,
|
|
SNDRV_TIMER_EVENT_START = 2,
|
|
SNDRV_TIMER_EVENT_STOP = 3,
|
|
SNDRV_TIMER_EVENT_CONTINUE = 4,
|
|
SNDRV_TIMER_EVENT_PAUSE = 5,
|
|
SNDRV_TIMER_EVENT_EARLY = 6,
|
|
SNDRV_TIMER_EVENT_SUSPEND = 7,
|
|
SNDRV_TIMER_EVENT_RESUME = 8,
|
|
SNDRV_TIMER_EVENT_MSTART = 12,
|
|
SNDRV_TIMER_EVENT_MSTOP = 13,
|
|
SNDRV_TIMER_EVENT_MCONTINUE = 14,
|
|
SNDRV_TIMER_EVENT_MPAUSE = 15,
|
|
SNDRV_TIMER_EVENT_MSUSPEND = 17,
|
|
SNDRV_TIMER_EVENT_MRESUME = 18,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_IOCTL_HW_REFINE32 = 3260825872,
|
|
SNDRV_PCM_IOCTL_HW_PARAMS32 = 3260825873,
|
|
SNDRV_PCM_IOCTL_SW_PARAMS32 = 3228057875,
|
|
SNDRV_PCM_IOCTL_STATUS_COMPAT32 = 2154578208,
|
|
SNDRV_PCM_IOCTL_STATUS_EXT_COMPAT32 = 3228320036,
|
|
SNDRV_PCM_IOCTL_DELAY32 = 2147762465,
|
|
SNDRV_PCM_IOCTL_CHANNEL_INFO32 = 2148548914,
|
|
SNDRV_PCM_IOCTL_REWIND32 = 1074020678,
|
|
SNDRV_PCM_IOCTL_FORWARD32 = 1074020681,
|
|
SNDRV_PCM_IOCTL_WRITEI_FRAMES32 = 1074544976,
|
|
SNDRV_PCM_IOCTL_READI_FRAMES32 = 2148286801,
|
|
SNDRV_PCM_IOCTL_WRITEN_FRAMES32 = 1074544978,
|
|
SNDRV_PCM_IOCTL_READN_FRAMES32 = 2148286803,
|
|
SNDRV_PCM_IOCTL_STATUS_COMPAT64 = 2155888928,
|
|
SNDRV_PCM_IOCTL_STATUS_EXT_COMPAT64 = 3229630756,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_PCM_MMAP_OFFSET_DATA = 0,
|
|
SNDRV_PCM_MMAP_OFFSET_STATUS_OLD = 2147483648,
|
|
SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD = 2164260864,
|
|
SNDRV_PCM_MMAP_OFFSET_STATUS_NEW = 2181038080,
|
|
SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW = 2197815296,
|
|
SNDRV_PCM_MMAP_OFFSET_STATUS = 2181038080,
|
|
SNDRV_PCM_MMAP_OFFSET_CONTROL = 2197815296,
|
|
};
|
|
|
|
typedef char __pad_before_u32[0];
|
|
|
|
struct __snd_pcm_mmap_control64_buggy {
|
|
__pad_before_u32 __pad1;
|
|
__u32 appl_ptr;
|
|
__pad_before_u32 __pad2;
|
|
__pad_before_u32 __pad3;
|
|
__u32 avail_min;
|
|
__pad_after_uframe __pad4;
|
|
};
|
|
|
|
struct snd_pcm_info {
|
|
unsigned int device;
|
|
unsigned int subdevice;
|
|
int stream;
|
|
int card;
|
|
unsigned char id[64];
|
|
unsigned char name[80];
|
|
unsigned char subname[32];
|
|
int dev_class;
|
|
int dev_subclass;
|
|
unsigned int subdevices_count;
|
|
unsigned int subdevices_avail;
|
|
union snd_pcm_sync_id sync;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_pcm_file {
|
|
struct snd_pcm_substream *substream;
|
|
int no_compat_mmap;
|
|
unsigned int user_pversion;
|
|
};
|
|
|
|
struct snd_pcm_hw_params_old {
|
|
unsigned int flags;
|
|
unsigned int masks[3];
|
|
struct snd_interval intervals[12];
|
|
unsigned int rmask;
|
|
unsigned int cmask;
|
|
unsigned int info;
|
|
unsigned int msbits;
|
|
unsigned int rate_num;
|
|
unsigned int rate_den;
|
|
snd_pcm_uframes_t fifo_size;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_pcm_status64 {
|
|
snd_pcm_state_t state;
|
|
u8 rsvd[4];
|
|
s64 trigger_tstamp_sec;
|
|
s64 trigger_tstamp_nsec;
|
|
s64 tstamp_sec;
|
|
s64 tstamp_nsec;
|
|
snd_pcm_uframes_t appl_ptr;
|
|
snd_pcm_uframes_t hw_ptr;
|
|
snd_pcm_sframes_t delay;
|
|
snd_pcm_uframes_t avail;
|
|
snd_pcm_uframes_t avail_max;
|
|
snd_pcm_uframes_t overrange;
|
|
snd_pcm_state_t suspended_state;
|
|
__u32 audio_tstamp_data;
|
|
s64 audio_tstamp_sec;
|
|
s64 audio_tstamp_nsec;
|
|
s64 driver_tstamp_sec;
|
|
s64 driver_tstamp_nsec;
|
|
__u32 audio_tstamp_accuracy;
|
|
unsigned char reserved[20];
|
|
};
|
|
|
|
struct snd_pcm_sw_params {
|
|
int tstamp_mode;
|
|
unsigned int period_step;
|
|
unsigned int sleep_min;
|
|
snd_pcm_uframes_t avail_min;
|
|
snd_pcm_uframes_t xfer_align;
|
|
snd_pcm_uframes_t start_threshold;
|
|
snd_pcm_uframes_t stop_threshold;
|
|
snd_pcm_uframes_t silence_threshold;
|
|
snd_pcm_uframes_t silence_size;
|
|
snd_pcm_uframes_t boundary;
|
|
unsigned int proto;
|
|
unsigned int tstamp_type;
|
|
unsigned char reserved[56];
|
|
};
|
|
|
|
struct snd_pcm_status32 {
|
|
snd_pcm_state_t state;
|
|
s32 trigger_tstamp_sec;
|
|
s32 trigger_tstamp_nsec;
|
|
s32 tstamp_sec;
|
|
s32 tstamp_nsec;
|
|
u32 appl_ptr;
|
|
u32 hw_ptr;
|
|
s32 delay;
|
|
u32 avail;
|
|
u32 avail_max;
|
|
u32 overrange;
|
|
snd_pcm_state_t suspended_state;
|
|
u32 audio_tstamp_data;
|
|
s32 audio_tstamp_sec;
|
|
s32 audio_tstamp_nsec;
|
|
s32 driver_tstamp_sec;
|
|
s32 driver_tstamp_nsec;
|
|
u32 audio_tstamp_accuracy;
|
|
unsigned char reserved[36];
|
|
};
|
|
|
|
struct snd_pcm_mmap_status32 {
|
|
snd_pcm_state_t state;
|
|
s32 pad1;
|
|
u32 hw_ptr;
|
|
s32 tstamp_sec;
|
|
s32 tstamp_nsec;
|
|
snd_pcm_state_t suspended_state;
|
|
s32 audio_tstamp_sec;
|
|
s32 audio_tstamp_nsec;
|
|
};
|
|
|
|
struct snd_pcm_mmap_control32 {
|
|
u32 appl_ptr;
|
|
u32 avail_min;
|
|
};
|
|
|
|
struct snd_pcm_sync_ptr32 {
|
|
u32 flags;
|
|
union {
|
|
struct snd_pcm_mmap_status32 status;
|
|
unsigned char reserved[64];
|
|
} s;
|
|
union {
|
|
struct snd_pcm_mmap_control32 control;
|
|
unsigned char reserved[64];
|
|
} c;
|
|
};
|
|
|
|
struct snd_pcm_sync_ptr {
|
|
__u32 flags;
|
|
__u32 pad1;
|
|
union {
|
|
struct snd_pcm_mmap_status status;
|
|
unsigned char reserved[64];
|
|
} s;
|
|
union {
|
|
struct snd_pcm_mmap_control control;
|
|
unsigned char reserved[64];
|
|
} c;
|
|
};
|
|
|
|
struct snd_xferi {
|
|
snd_pcm_sframes_t result;
|
|
void __attribute__((btf_type_tag("user"))) *buf;
|
|
snd_pcm_uframes_t frames;
|
|
};
|
|
|
|
struct snd_xfern {
|
|
snd_pcm_sframes_t result;
|
|
void __attribute__((btf_type_tag("user"))) * __attribute__((btf_type_tag("user"))) *bufs;
|
|
snd_pcm_uframes_t frames;
|
|
};
|
|
|
|
struct snd_pcm_hw_params32 {
|
|
u32 flags;
|
|
struct snd_mask masks[3];
|
|
struct snd_mask mres[5];
|
|
struct snd_interval intervals[12];
|
|
struct snd_interval ires[9];
|
|
u32 rmask;
|
|
u32 cmask;
|
|
u32 info;
|
|
u32 msbits;
|
|
u32 rate_num;
|
|
u32 rate_den;
|
|
u32 fifo_size;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_pcm_sw_params32 {
|
|
s32 tstamp_mode;
|
|
u32 period_step;
|
|
u32 sleep_min;
|
|
u32 avail_min;
|
|
u32 xfer_align;
|
|
u32 start_threshold;
|
|
u32 stop_threshold;
|
|
u32 silence_threshold;
|
|
u32 silence_size;
|
|
u32 boundary;
|
|
u32 proto;
|
|
u32 tstamp_type;
|
|
unsigned char reserved[56];
|
|
};
|
|
|
|
struct snd_pcm_channel_info32 {
|
|
u32 channel;
|
|
u32 offset;
|
|
u32 first;
|
|
u32 step;
|
|
};
|
|
|
|
struct snd_xferi32 {
|
|
s32 result;
|
|
u32 buf;
|
|
u32 frames;
|
|
};
|
|
|
|
struct snd_xfern32 {
|
|
s32 result;
|
|
u32 bufs;
|
|
u32 frames;
|
|
};
|
|
|
|
struct compat_snd_pcm_status64 {
|
|
snd_pcm_state_t state;
|
|
u8 rsvd[4];
|
|
s64 trigger_tstamp_sec;
|
|
s64 trigger_tstamp_nsec;
|
|
s64 tstamp_sec;
|
|
s64 tstamp_nsec;
|
|
u32 appl_ptr;
|
|
u32 hw_ptr;
|
|
s32 delay;
|
|
u32 avail;
|
|
u32 avail_max;
|
|
u32 overrange;
|
|
snd_pcm_state_t suspended_state;
|
|
u32 audio_tstamp_data;
|
|
s64 audio_tstamp_sec;
|
|
s64 audio_tstamp_nsec;
|
|
s64 driver_tstamp_sec;
|
|
s64 driver_tstamp_nsec;
|
|
u32 audio_tstamp_accuracy;
|
|
unsigned char reserved[20];
|
|
};
|
|
|
|
struct netdev_name_node {
|
|
struct hlist_node hlist;
|
|
struct list_head list;
|
|
struct net_device *dev;
|
|
const char *name;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_BITSET_UNSPEC = 0,
|
|
ETHTOOL_A_BITSET_NOMASK = 1,
|
|
ETHTOOL_A_BITSET_SIZE = 2,
|
|
ETHTOOL_A_BITSET_BITS = 3,
|
|
ETHTOOL_A_BITSET_VALUE = 4,
|
|
ETHTOOL_A_BITSET_MASK = 5,
|
|
__ETHTOOL_A_BITSET_CNT = 6,
|
|
ETHTOOL_A_BITSET_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_BITSET_BITS_UNSPEC = 0,
|
|
ETHTOOL_A_BITSET_BITS_BIT = 1,
|
|
__ETHTOOL_A_BITSET_BITS_CNT = 2,
|
|
ETHTOOL_A_BITSET_BITS_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_BITSET_BIT_UNSPEC = 0,
|
|
ETHTOOL_A_BITSET_BIT_INDEX = 1,
|
|
ETHTOOL_A_BITSET_BIT_NAME = 2,
|
|
ETHTOOL_A_BITSET_BIT_VALUE = 3,
|
|
__ETHTOOL_A_BITSET_BIT_CNT = 4,
|
|
ETHTOOL_A_BITSET_BIT_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_MM_STAT_UNSPEC = 0,
|
|
ETHTOOL_A_MM_STAT_PAD = 1,
|
|
ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS = 2,
|
|
ETHTOOL_A_MM_STAT_SMD_ERRORS = 3,
|
|
ETHTOOL_A_MM_STAT_REASSEMBLY_OK = 4,
|
|
ETHTOOL_A_MM_STAT_RX_FRAG_COUNT = 5,
|
|
ETHTOOL_A_MM_STAT_TX_FRAG_COUNT = 6,
|
|
ETHTOOL_A_MM_STAT_HOLD_COUNT = 7,
|
|
__ETHTOOL_A_MM_STAT_CNT = 8,
|
|
ETHTOOL_A_MM_STAT_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_MM_UNSPEC = 0,
|
|
ETHTOOL_A_MM_HEADER = 1,
|
|
ETHTOOL_A_MM_PMAC_ENABLED = 2,
|
|
ETHTOOL_A_MM_TX_ENABLED = 3,
|
|
ETHTOOL_A_MM_TX_ACTIVE = 4,
|
|
ETHTOOL_A_MM_TX_MIN_FRAG_SIZE = 5,
|
|
ETHTOOL_A_MM_RX_MIN_FRAG_SIZE = 6,
|
|
ETHTOOL_A_MM_VERIFY_ENABLED = 7,
|
|
ETHTOOL_A_MM_VERIFY_STATUS = 8,
|
|
ETHTOOL_A_MM_VERIFY_TIME = 9,
|
|
ETHTOOL_A_MM_MAX_VERIFY_TIME = 10,
|
|
ETHTOOL_A_MM_STATS = 11,
|
|
__ETHTOOL_A_MM_CNT = 12,
|
|
ETHTOOL_A_MM_MAX = 11,
|
|
};
|
|
|
|
struct mm_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_mm_state state;
|
|
struct ethtool_mm_stats stats;
|
|
};
|
|
|
|
enum {
|
|
NF_BPF_CT_OPTS_SZ = 12,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_CURRENT_NETNS = -1,
|
|
};
|
|
|
|
struct nf_conn___init {
|
|
struct nf_conn ct;
|
|
};
|
|
|
|
struct bpf_sock_tuple {
|
|
union {
|
|
struct {
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
__be16 sport;
|
|
__be16 dport;
|
|
} ipv4;
|
|
struct {
|
|
__be32 saddr[4];
|
|
__be32 daddr[4];
|
|
__be16 sport;
|
|
__be16 dport;
|
|
} ipv6;
|
|
};
|
|
};
|
|
|
|
struct bpf_ct_opts {
|
|
s32 netns_id;
|
|
s32 error;
|
|
u8 l4proto;
|
|
u8 dir;
|
|
u8 reserved[2];
|
|
};
|
|
|
|
enum sk_action {
|
|
SK_DROP = 0,
|
|
SK_PASS = 1,
|
|
};
|
|
|
|
struct bpf_sk_lookup_kern {
|
|
u16 family;
|
|
u16 protocol;
|
|
__be16 sport;
|
|
u16 dport;
|
|
struct {
|
|
__be32 saddr;
|
|
__be32 daddr;
|
|
} v4;
|
|
struct {
|
|
const struct in6_addr *saddr;
|
|
const struct in6_addr *daddr;
|
|
} v6;
|
|
struct sock *selected_sk;
|
|
u32 ingress_ifindex;
|
|
bool no_reuseport;
|
|
};
|
|
|
|
enum {
|
|
INET_FRAG_FIRST_IN = 1,
|
|
INET_FRAG_LAST_IN = 2,
|
|
INET_FRAG_COMPLETE = 4,
|
|
INET_FRAG_HASH_DEAD = 8,
|
|
INET_FRAG_DROP = 16,
|
|
};
|
|
|
|
struct ipfrag_skb_cb {
|
|
union {
|
|
struct inet_skb_parm h4;
|
|
struct inet6_skb_parm h6;
|
|
};
|
|
struct sk_buff *next_frag;
|
|
int frag_run_len;
|
|
};
|
|
|
|
enum ipt_reject_with {
|
|
IPT_ICMP_NET_UNREACHABLE = 0,
|
|
IPT_ICMP_HOST_UNREACHABLE = 1,
|
|
IPT_ICMP_PROT_UNREACHABLE = 2,
|
|
IPT_ICMP_PORT_UNREACHABLE = 3,
|
|
IPT_ICMP_ECHOREPLY = 4,
|
|
IPT_ICMP_NET_PROHIBITED = 5,
|
|
IPT_ICMP_HOST_PROHIBITED = 6,
|
|
IPT_TCP_RESET = 7,
|
|
IPT_ICMP_ADMIN_PROHIBITED = 8,
|
|
};
|
|
|
|
struct ipt_reject_info {
|
|
enum ipt_reject_with with;
|
|
};
|
|
|
|
struct ipt_ip {
|
|
struct in_addr src;
|
|
struct in_addr dst;
|
|
struct in_addr smsk;
|
|
struct in_addr dmsk;
|
|
char iniface[16];
|
|
char outiface[16];
|
|
unsigned char iniface_mask[16];
|
|
unsigned char outiface_mask[16];
|
|
__u16 proto;
|
|
__u8 flags;
|
|
__u8 invflags;
|
|
};
|
|
|
|
struct ipt_entry {
|
|
struct ipt_ip ip;
|
|
unsigned int nfcache;
|
|
__u16 target_offset;
|
|
__u16 next_offset;
|
|
unsigned int comefrom;
|
|
struct xt_counters counters;
|
|
unsigned char elems[0];
|
|
};
|
|
|
|
struct frag_hdr {
|
|
__u8 nexthdr;
|
|
__u8 reserved;
|
|
__be16 frag_off;
|
|
__be32 identification;
|
|
};
|
|
|
|
struct mmpin {
|
|
struct user_struct *user;
|
|
unsigned int num_pg;
|
|
};
|
|
|
|
struct ubuf_info_msgzc {
|
|
struct ubuf_info ubuf;
|
|
union {
|
|
struct {
|
|
unsigned long desc;
|
|
void *ctx;
|
|
};
|
|
struct {
|
|
u32 id;
|
|
u16 len;
|
|
u16 zerocopy: 1;
|
|
u32 bytelen;
|
|
};
|
|
};
|
|
struct mmpin mmp;
|
|
};
|
|
|
|
struct ipv4_addr_key {
|
|
__be32 addr;
|
|
int vif;
|
|
};
|
|
|
|
struct inetpeer_addr {
|
|
union {
|
|
struct ipv4_addr_key a4;
|
|
struct in6_addr a6;
|
|
u32 key[4];
|
|
};
|
|
__u16 family;
|
|
};
|
|
|
|
struct inet_peer {
|
|
struct rb_node rb_node;
|
|
struct inetpeer_addr daddr;
|
|
u32 metrics[17];
|
|
u32 rate_tokens;
|
|
u32 n_redirects;
|
|
unsigned long rate_last;
|
|
union {
|
|
struct {
|
|
atomic_t rid;
|
|
};
|
|
struct callback_head rcu;
|
|
};
|
|
__u32 dtime;
|
|
refcount_t refcnt;
|
|
};
|
|
|
|
struct ip6_frag_state {
|
|
u8 *prevhdr;
|
|
unsigned int hlen;
|
|
unsigned int mtu;
|
|
unsigned int left;
|
|
int offset;
|
|
int ptr;
|
|
int hroom;
|
|
int troom;
|
|
__be32 frag_id;
|
|
u8 nexthdr;
|
|
};
|
|
|
|
struct ip6_fraglist_iter {
|
|
struct ipv6hdr *tmp_hdr;
|
|
struct sk_buff *frag;
|
|
int offset;
|
|
unsigned int hlen;
|
|
__be32 frag_id;
|
|
u8 nexthdr;
|
|
};
|
|
|
|
struct hop_jumbo_hdr {
|
|
u8 nexthdr;
|
|
u8 hdrlen;
|
|
u8 tlv_type;
|
|
u8 tlv_len;
|
|
__be32 jumbo_payload_len;
|
|
};
|
|
|
|
struct ip6_ra_chain {
|
|
struct ip6_ra_chain *next;
|
|
struct sock *sk;
|
|
int sel;
|
|
void (*destructor)(struct sock *);
|
|
};
|
|
|
|
struct ip6t_ip6 {
|
|
struct in6_addr src;
|
|
struct in6_addr dst;
|
|
struct in6_addr smsk;
|
|
struct in6_addr dmsk;
|
|
char iniface[16];
|
|
char outiface[16];
|
|
unsigned char iniface_mask[16];
|
|
unsigned char outiface_mask[16];
|
|
__u16 proto;
|
|
__u8 tos;
|
|
__u8 flags;
|
|
__u8 invflags;
|
|
};
|
|
|
|
struct nf_sockopt_ops {
|
|
struct list_head list;
|
|
u_int8_t pf;
|
|
int set_optmin;
|
|
int set_optmax;
|
|
int (*set)(struct sock *, int, sockptr_t, unsigned int);
|
|
int get_optmin;
|
|
int get_optmax;
|
|
int (*get)(struct sock *, int, void __attribute__((btf_type_tag("user"))) *, int *);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct ip6t_entry {
|
|
struct ip6t_ip6 ipv6;
|
|
unsigned int nfcache;
|
|
__u16 target_offset;
|
|
__u16 next_offset;
|
|
unsigned int comefrom;
|
|
struct xt_counters counters;
|
|
unsigned char elems[0];
|
|
};
|
|
|
|
struct ip6t_error {
|
|
struct ip6t_entry entry;
|
|
struct xt_error_target target;
|
|
};
|
|
|
|
struct compat_ip6t_entry {
|
|
struct ip6t_ip6 ipv6;
|
|
compat_uint_t nfcache;
|
|
__u16 target_offset;
|
|
__u16 next_offset;
|
|
compat_uint_t comefrom;
|
|
struct compat_xt_counters counters;
|
|
unsigned char elems[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ip6t_replace {
|
|
char name[32];
|
|
unsigned int valid_hooks;
|
|
unsigned int num_entries;
|
|
unsigned int size;
|
|
unsigned int hook_entry[5];
|
|
unsigned int underflow[5];
|
|
unsigned int num_counters;
|
|
struct xt_counters __attribute__((btf_type_tag("user"))) *counters;
|
|
struct ip6t_entry entries[0];
|
|
};
|
|
|
|
struct ip6t_standard {
|
|
struct ip6t_entry entry;
|
|
struct xt_standard_target target;
|
|
};
|
|
|
|
struct compat_ip6t_replace {
|
|
char name[32];
|
|
u32 valid_hooks;
|
|
u32 num_entries;
|
|
u32 size;
|
|
u32 hook_entry[5];
|
|
u32 underflow[5];
|
|
u32 num_counters;
|
|
compat_uptr_t counters;
|
|
struct compat_ip6t_entry entries[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ip6t_getinfo {
|
|
char name[32];
|
|
unsigned int valid_hooks;
|
|
unsigned int hook_entry[5];
|
|
unsigned int underflow[5];
|
|
unsigned int num_entries;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct ip6t_get_entries {
|
|
char name[32];
|
|
unsigned int size;
|
|
struct ip6t_entry entrytable[0];
|
|
};
|
|
|
|
struct compat_ip6t_get_entries {
|
|
char name[32];
|
|
compat_uint_t size;
|
|
struct compat_ip6t_entry entrytable[0];
|
|
} __attribute__((packed));
|
|
|
|
struct xt_get_revision {
|
|
char name[29];
|
|
__u8 revision;
|
|
};
|
|
|
|
struct ip6t_icmp {
|
|
__u8 type;
|
|
__u8 code[2];
|
|
__u8 invflags;
|
|
};
|
|
|
|
enum rpc_msg_type {
|
|
RPC_CALL = 0,
|
|
RPC_REPLY = 1,
|
|
};
|
|
|
|
enum {
|
|
UDP_MIB_NUM = 0,
|
|
UDP_MIB_INDATAGRAMS = 1,
|
|
UDP_MIB_NOPORTS = 2,
|
|
UDP_MIB_INERRORS = 3,
|
|
UDP_MIB_OUTDATAGRAMS = 4,
|
|
UDP_MIB_RCVBUFERRORS = 5,
|
|
UDP_MIB_SNDBUFERRORS = 6,
|
|
UDP_MIB_CSUMERRORS = 7,
|
|
UDP_MIB_IGNOREDMULTI = 8,
|
|
UDP_MIB_MEMERRORS = 9,
|
|
__UDP_MIB_MAX = 10,
|
|
};
|
|
|
|
struct sock_xprt {
|
|
struct rpc_xprt xprt;
|
|
struct socket *sock;
|
|
struct sock *inet;
|
|
struct file *file;
|
|
struct {
|
|
struct {
|
|
__be32 fraghdr;
|
|
__be32 xid;
|
|
__be32 calldir;
|
|
};
|
|
u32 offset;
|
|
u32 len;
|
|
unsigned long copied;
|
|
} recv;
|
|
struct {
|
|
u32 offset;
|
|
} xmit;
|
|
unsigned long sock_state;
|
|
struct delayed_work connect_worker;
|
|
struct work_struct error_worker;
|
|
struct work_struct recv_worker;
|
|
struct mutex recv_mutex;
|
|
struct __kernel_sockaddr_storage srcaddr;
|
|
unsigned short srcport;
|
|
int xprt_err;
|
|
size_t rcvsize;
|
|
size_t sndsize;
|
|
struct rpc_timeout tcp_timeout;
|
|
void (*old_data_ready)(struct sock *);
|
|
void (*old_state_change)(struct sock *);
|
|
void (*old_write_space)(struct sock *);
|
|
void (*old_error_report)(struct sock *);
|
|
};
|
|
|
|
struct svc_sock {
|
|
struct svc_xprt sk_xprt;
|
|
struct socket *sk_sock;
|
|
struct sock *sk_sk;
|
|
void (*sk_ostate)(struct sock *);
|
|
void (*sk_odata)(struct sock *);
|
|
void (*sk_owspace)(struct sock *);
|
|
__be32 sk_marker;
|
|
u32 sk_tcplen;
|
|
u32 sk_datalen;
|
|
atomic_t sk_sendqlen;
|
|
struct page *sk_pages[259];
|
|
};
|
|
|
|
struct rpc_buffer {
|
|
size_t len;
|
|
char data[0];
|
|
};
|
|
|
|
typedef __be32 rpc_fraghdr;
|
|
|
|
enum ieee80211_rate_flags {
|
|
IEEE80211_RATE_SHORT_PREAMBLE = 1,
|
|
IEEE80211_RATE_MANDATORY_A = 2,
|
|
IEEE80211_RATE_MANDATORY_B = 4,
|
|
IEEE80211_RATE_MANDATORY_G = 8,
|
|
IEEE80211_RATE_ERP_G = 16,
|
|
IEEE80211_RATE_SUPPORTS_5MHZ = 32,
|
|
IEEE80211_RATE_SUPPORTS_10MHZ = 64,
|
|
};
|
|
|
|
enum cfg80211_event_type {
|
|
EVENT_CONNECT_RESULT = 0,
|
|
EVENT_ROAMED = 1,
|
|
EVENT_DISCONNECTED = 2,
|
|
EVENT_IBSS_JOINED = 3,
|
|
EVENT_STOPPED = 4,
|
|
EVENT_PORT_AUTHORIZED = 5,
|
|
};
|
|
|
|
enum nl80211_timeout_reason {
|
|
NL80211_TIMEOUT_UNSPECIFIED = 0,
|
|
NL80211_TIMEOUT_SCAN = 1,
|
|
NL80211_TIMEOUT_AUTH = 2,
|
|
NL80211_TIMEOUT_ASSOC = 3,
|
|
};
|
|
|
|
enum rate_info_flags {
|
|
RATE_INFO_FLAGS_MCS = 1,
|
|
RATE_INFO_FLAGS_VHT_MCS = 2,
|
|
RATE_INFO_FLAGS_SHORT_GI = 4,
|
|
RATE_INFO_FLAGS_DMG = 8,
|
|
RATE_INFO_FLAGS_HE_MCS = 16,
|
|
RATE_INFO_FLAGS_EDMG = 32,
|
|
RATE_INFO_FLAGS_EXTENDED_SC_DMG = 64,
|
|
RATE_INFO_FLAGS_EHT_MCS = 128,
|
|
};
|
|
|
|
enum ieee80211_vht_chanwidth {
|
|
IEEE80211_VHT_CHANWIDTH_USE_HT = 0,
|
|
IEEE80211_VHT_CHANWIDTH_80MHZ = 1,
|
|
IEEE80211_VHT_CHANWIDTH_160MHZ = 2,
|
|
IEEE80211_VHT_CHANWIDTH_80P80MHZ = 3,
|
|
};
|
|
|
|
enum rate_info_bw {
|
|
RATE_INFO_BW_20 = 0,
|
|
RATE_INFO_BW_5 = 1,
|
|
RATE_INFO_BW_10 = 2,
|
|
RATE_INFO_BW_40 = 3,
|
|
RATE_INFO_BW_80 = 4,
|
|
RATE_INFO_BW_160 = 5,
|
|
RATE_INFO_BW_HE_RU = 6,
|
|
RATE_INFO_BW_320 = 7,
|
|
RATE_INFO_BW_EHT_RU = 8,
|
|
};
|
|
|
|
enum nl80211_he_ru_alloc {
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_52 = 1,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_106 = 2,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_242 = 3,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_484 = 4,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_996 = 5,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 6,
|
|
};
|
|
|
|
enum nl80211_eht_gi {
|
|
NL80211_RATE_INFO_EHT_GI_0_8 = 0,
|
|
NL80211_RATE_INFO_EHT_GI_1_6 = 1,
|
|
NL80211_RATE_INFO_EHT_GI_3_2 = 2,
|
|
};
|
|
|
|
enum nl80211_eht_ru_alloc {
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 1,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 2,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 3,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 4,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 5,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 6,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 7,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 8,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 9,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 10,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 11,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 12,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 13,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 14,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 15,
|
|
};
|
|
|
|
struct cfg80211_fils_resp_params {
|
|
const u8 *kek;
|
|
size_t kek_len;
|
|
bool update_erp_next_seq_num;
|
|
u16 erp_next_seq_num;
|
|
const u8 *pmk;
|
|
size_t pmk_len;
|
|
const u8 *pmkid;
|
|
};
|
|
|
|
struct cfg80211_connect_resp_params {
|
|
int status;
|
|
const u8 *req_ie;
|
|
size_t req_ie_len;
|
|
const u8 *resp_ie;
|
|
size_t resp_ie_len;
|
|
struct cfg80211_fils_resp_params fils;
|
|
enum nl80211_timeout_reason timeout_reason;
|
|
const u8 *ap_mld_addr;
|
|
u16 valid_links;
|
|
struct {
|
|
const u8 *addr;
|
|
const u8 *bssid;
|
|
struct cfg80211_bss *bss;
|
|
u16 status;
|
|
} links[15];
|
|
};
|
|
|
|
struct cfg80211_roam_info {
|
|
const u8 *req_ie;
|
|
size_t req_ie_len;
|
|
const u8 *resp_ie;
|
|
size_t resp_ie_len;
|
|
struct cfg80211_fils_resp_params fils;
|
|
const u8 *ap_mld_addr;
|
|
u16 valid_links;
|
|
struct {
|
|
const u8 *addr;
|
|
const u8 *bssid;
|
|
struct ieee80211_channel *channel;
|
|
struct cfg80211_bss *bss;
|
|
} links[15];
|
|
};
|
|
|
|
struct cfg80211_event {
|
|
struct list_head list;
|
|
enum cfg80211_event_type type;
|
|
union {
|
|
struct cfg80211_connect_resp_params cr;
|
|
struct cfg80211_roam_info rm;
|
|
struct {
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
u16 reason;
|
|
bool locally_generated;
|
|
} dc;
|
|
struct {
|
|
u8 bssid[6];
|
|
struct ieee80211_channel *channel;
|
|
} ij;
|
|
struct {
|
|
u8 bssid[6];
|
|
const u8 *td_bitmap;
|
|
u8 td_bitmap_len;
|
|
} pa;
|
|
};
|
|
};
|
|
|
|
struct ieee80211s_hdr {
|
|
u8 flags;
|
|
u8 ttl;
|
|
__le32 seqnum;
|
|
u8 eaddr1[6];
|
|
u8 eaddr2[6];
|
|
} __attribute__((packed));
|
|
|
|
struct mpls_label {
|
|
__be32 entry;
|
|
};
|
|
|
|
struct iface_combination_params {
|
|
int num_different_channels;
|
|
u8 radar_detect;
|
|
int iftype_num[13];
|
|
u32 new_beacon_int;
|
|
};
|
|
|
|
struct iapp_layer2_update {
|
|
u8 da[6];
|
|
u8 sa[6];
|
|
__be16 len;
|
|
u8 dsap;
|
|
u8 ssap;
|
|
u8 control;
|
|
u8 xid_info[3];
|
|
};
|
|
|
|
enum ieee80211_encrypt {
|
|
ENCRYPT_NO = 0,
|
|
ENCRYPT_MGMT = 1,
|
|
ENCRYPT_DATA = 2,
|
|
};
|
|
|
|
enum ieee80211_radiotap_flags {
|
|
IEEE80211_RADIOTAP_F_CFP = 1,
|
|
IEEE80211_RADIOTAP_F_SHORTPRE = 2,
|
|
IEEE80211_RADIOTAP_F_WEP = 4,
|
|
IEEE80211_RADIOTAP_F_FRAG = 8,
|
|
IEEE80211_RADIOTAP_F_FCS = 16,
|
|
IEEE80211_RADIOTAP_F_DATAPAD = 32,
|
|
IEEE80211_RADIOTAP_F_BADFCS = 64,
|
|
};
|
|
|
|
enum ieee80211_radiotap_tx_flags {
|
|
IEEE80211_RADIOTAP_F_TX_FAIL = 1,
|
|
IEEE80211_RADIOTAP_F_TX_CTS = 2,
|
|
IEEE80211_RADIOTAP_F_TX_RTS = 4,
|
|
IEEE80211_RADIOTAP_F_TX_NOACK = 8,
|
|
IEEE80211_RADIOTAP_F_TX_NOSEQNO = 16,
|
|
IEEE80211_RADIOTAP_F_TX_ORDER = 32,
|
|
};
|
|
|
|
enum mac80211_tx_control_flags {
|
|
IEEE80211_TX_CTRL_PORT_CTRL_PROTO = 1,
|
|
IEEE80211_TX_CTRL_PS_RESPONSE = 2,
|
|
IEEE80211_TX_CTRL_RATE_INJECT = 4,
|
|
IEEE80211_TX_CTRL_AMSDU = 8,
|
|
IEEE80211_TX_CTRL_FAST_XMIT = 16,
|
|
IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP = 32,
|
|
IEEE80211_TX_INTCFL_NEED_TXPROCESSING = 64,
|
|
IEEE80211_TX_CTRL_NO_SEQNO = 128,
|
|
IEEE80211_TX_CTRL_DONT_REORDER = 256,
|
|
IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX = 512,
|
|
IEEE80211_TX_CTRL_MLO_LINK = 4026531840,
|
|
};
|
|
|
|
enum mac80211_rate_control_flags {
|
|
IEEE80211_TX_RC_USE_RTS_CTS = 1,
|
|
IEEE80211_TX_RC_USE_CTS_PROTECT = 2,
|
|
IEEE80211_TX_RC_USE_SHORT_PREAMBLE = 4,
|
|
IEEE80211_TX_RC_MCS = 8,
|
|
IEEE80211_TX_RC_GREEN_FIELD = 16,
|
|
IEEE80211_TX_RC_40_MHZ_WIDTH = 32,
|
|
IEEE80211_TX_RC_DUP_DATA = 64,
|
|
IEEE80211_TX_RC_SHORT_GI = 128,
|
|
IEEE80211_TX_RC_VHT_MCS = 256,
|
|
IEEE80211_TX_RC_80_MHZ_WIDTH = 512,
|
|
IEEE80211_TX_RC_160_MHZ_WIDTH = 1024,
|
|
};
|
|
|
|
enum ieee80211_radiotap_mcs_flags {
|
|
IEEE80211_RADIOTAP_MCS_BW_MASK = 3,
|
|
IEEE80211_RADIOTAP_MCS_BW_20 = 0,
|
|
IEEE80211_RADIOTAP_MCS_BW_40 = 1,
|
|
IEEE80211_RADIOTAP_MCS_BW_20L = 2,
|
|
IEEE80211_RADIOTAP_MCS_BW_20U = 3,
|
|
IEEE80211_RADIOTAP_MCS_SGI = 4,
|
|
IEEE80211_RADIOTAP_MCS_FMT_GF = 8,
|
|
IEEE80211_RADIOTAP_MCS_FEC_LDPC = 16,
|
|
IEEE80211_RADIOTAP_MCS_STBC_MASK = 96,
|
|
IEEE80211_RADIOTAP_MCS_STBC_1 = 1,
|
|
IEEE80211_RADIOTAP_MCS_STBC_2 = 2,
|
|
IEEE80211_RADIOTAP_MCS_STBC_3 = 3,
|
|
IEEE80211_RADIOTAP_MCS_STBC_SHIFT = 5,
|
|
};
|
|
|
|
enum ieee80211_radiotap_vht_flags {
|
|
IEEE80211_RADIOTAP_VHT_FLAG_STBC = 1,
|
|
IEEE80211_RADIOTAP_VHT_FLAG_TXOP_PS_NA = 2,
|
|
IEEE80211_RADIOTAP_VHT_FLAG_SGI = 4,
|
|
IEEE80211_RADIOTAP_VHT_FLAG_SGI_NSYM_M10_9 = 8,
|
|
IEEE80211_RADIOTAP_VHT_FLAG_LDPC_EXTRA_OFDM_SYM = 16,
|
|
IEEE80211_RADIOTAP_VHT_FLAG_BEAMFORMED = 32,
|
|
};
|
|
|
|
enum txq_info_flags {
|
|
IEEE80211_TXQ_STOP = 0,
|
|
IEEE80211_TXQ_AMPDU = 1,
|
|
IEEE80211_TXQ_NO_AMSDU = 2,
|
|
IEEE80211_TXQ_DIRTY = 3,
|
|
};
|
|
|
|
enum monitor_flags {
|
|
MONITOR_FLAG_CHANGED = 1,
|
|
MONITOR_FLAG_FCSFAIL = 2,
|
|
MONITOR_FLAG_PLCPFAIL = 4,
|
|
MONITOR_FLAG_CONTROL = 8,
|
|
MONITOR_FLAG_OTHER_BSS = 16,
|
|
MONITOR_FLAG_COOK_FRAMES = 32,
|
|
MONITOR_FLAG_ACTIVE = 64,
|
|
};
|
|
|
|
enum {
|
|
USE_NONE = 0,
|
|
USE_MGMT_KEY = 1,
|
|
USE_MCAST_KEY = 2,
|
|
};
|
|
|
|
enum ieee80211_offload_flags {
|
|
IEEE80211_OFFLOAD_ENCAP_ENABLED = 1,
|
|
IEEE80211_OFFLOAD_ENCAP_4ADDR = 2,
|
|
IEEE80211_OFFLOAD_DECAP_ENABLED = 4,
|
|
};
|
|
|
|
enum mesh_path_flags {
|
|
MESH_PATH_ACTIVE = 1,
|
|
MESH_PATH_RESOLVING = 2,
|
|
MESH_PATH_SN_VALID = 4,
|
|
MESH_PATH_FIXED = 8,
|
|
MESH_PATH_RESOLVED = 16,
|
|
MESH_PATH_REQ_QUEUED = 32,
|
|
MESH_PATH_DELETED = 64,
|
|
};
|
|
|
|
typedef unsigned int ieee80211_tx_result;
|
|
|
|
typedef bool fq_skb_filter_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *, void *);
|
|
|
|
typedef void fq_skb_free_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *);
|
|
|
|
struct ieee80211_tx_data {
|
|
struct sk_buff *skb;
|
|
struct sk_buff_head skbs;
|
|
struct ieee80211_local *local;
|
|
struct ieee80211_sub_if_data *sdata;
|
|
struct sta_info *sta;
|
|
struct ieee80211_key *key;
|
|
struct ieee80211_tx_rate rate;
|
|
unsigned int flags;
|
|
};
|
|
|
|
typedef struct sk_buff *fq_tin_dequeue_t(struct fq *, struct fq_tin *, struct fq_flow *);
|
|
|
|
typedef u32 (*codel_skb_len_t)(const struct sk_buff *);
|
|
|
|
typedef codel_time_t (*codel_skb_time_t)(const struct sk_buff *);
|
|
|
|
typedef void (*codel_skb_drop_t)(struct sk_buff *, void *);
|
|
|
|
typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *, void *);
|
|
|
|
struct ieee80211_mutable_offsets {
|
|
u16 tim_offset;
|
|
u16 tim_length;
|
|
u16 cntdwn_counter_offs[2];
|
|
u16 mbssid_off;
|
|
};
|
|
|
|
struct mesh_path {
|
|
u8 dst[6];
|
|
u8 mpp[6];
|
|
struct rhash_head rhash;
|
|
struct hlist_node walk_list;
|
|
struct hlist_node gate_list;
|
|
struct ieee80211_sub_if_data *sdata;
|
|
struct sta_info __attribute__((btf_type_tag("rcu"))) *next_hop;
|
|
struct timer_list timer;
|
|
struct sk_buff_head frame_queue;
|
|
struct callback_head rcu;
|
|
u32 sn;
|
|
u32 metric;
|
|
u8 hop_count;
|
|
unsigned long exp_time;
|
|
u32 discovery_timeout;
|
|
u8 discovery_retries;
|
|
enum mesh_path_flags flags;
|
|
spinlock_t state_lock;
|
|
u8 rann_snd_addr[6];
|
|
u32 rann_metric;
|
|
unsigned long last_preq_to_root;
|
|
bool is_root;
|
|
bool is_gate;
|
|
u32 path_change_count;
|
|
};
|
|
|
|
struct vlan_ethhdr {
|
|
union {
|
|
struct {
|
|
unsigned char h_dest[6];
|
|
unsigned char h_source[6];
|
|
};
|
|
struct {
|
|
unsigned char h_dest[6];
|
|
unsigned char h_source[6];
|
|
} addrs;
|
|
};
|
|
__be16 h_vlan_proto;
|
|
__be16 h_vlan_TCI;
|
|
__be16 h_vlan_encapsulated_proto;
|
|
};
|
|
|
|
struct ieee80211_rts {
|
|
__le16 frame_control;
|
|
__le16 duration;
|
|
u8 ra[6];
|
|
u8 ta[6];
|
|
};
|
|
|
|
struct ieee80211_cts {
|
|
__le16 frame_control;
|
|
__le16 duration;
|
|
u8 ra[6];
|
|
};
|
|
|
|
struct mptcp_skb_cb {
|
|
u64 map_seq;
|
|
u64 end_seq;
|
|
u32 offset;
|
|
u8 has_rxtstamp: 1;
|
|
};
|
|
|
|
struct mptcp_options_received {
|
|
u64 sndr_key;
|
|
u64 rcvr_key;
|
|
u64 data_ack;
|
|
u64 data_seq;
|
|
u32 subflow_seq;
|
|
u16 data_len;
|
|
__sum16 csum;
|
|
u16 suboptions;
|
|
u32 token;
|
|
u32 nonce;
|
|
u16 use_map: 1;
|
|
u16 dsn64: 1;
|
|
u16 data_fin: 1;
|
|
u16 use_ack: 1;
|
|
u16 ack64: 1;
|
|
u16 mpc_map: 1;
|
|
u16 reset_reason: 4;
|
|
u16 reset_transient: 1;
|
|
u16 echo: 1;
|
|
u16 backup: 1;
|
|
u16 deny_join_id0: 1;
|
|
u16 __unused: 2;
|
|
u8 join_id;
|
|
u64 thmac;
|
|
u8 hmac[20];
|
|
struct mptcp_addr_info addr;
|
|
struct mptcp_rm_list rm_list;
|
|
u64 ahmac;
|
|
u64 fail_seq;
|
|
};
|
|
|
|
struct idt_data {
|
|
unsigned int vector;
|
|
unsigned int segment;
|
|
struct idt_bits bits;
|
|
const void *addr;
|
|
};
|
|
|
|
enum {
|
|
GATE_INTERRUPT = 14,
|
|
GATE_TRAP = 15,
|
|
GATE_CALL = 12,
|
|
GATE_TASK = 5,
|
|
};
|
|
|
|
typedef void (*btf_trace_local_timer_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_local_timer_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_spurious_apic_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_spurious_apic_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_error_apic_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_error_apic_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_irq_work_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_irq_work_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_reschedule_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_reschedule_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_call_function_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_call_function_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_call_function_single_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_call_function_single_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_threshold_apic_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_threshold_apic_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_deferred_error_apic_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_deferred_error_apic_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_thermal_apic_entry)(void *, int);
|
|
|
|
typedef void (*btf_trace_thermal_apic_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_vector_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_vector_alloc)(void *, unsigned int, unsigned int, bool, int);
|
|
|
|
typedef void (*btf_trace_vector_alloc_managed)(void *, unsigned int, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool);
|
|
|
|
typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool);
|
|
|
|
typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool);
|
|
|
|
typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int);
|
|
|
|
typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool);
|
|
|
|
typedef struct {
|
|
unsigned int __nmi_count;
|
|
unsigned int apic_timer_irqs;
|
|
unsigned int irq_spurious_count;
|
|
unsigned int icr_read_retry_count;
|
|
unsigned int kvm_posted_intr_ipis;
|
|
unsigned int kvm_posted_intr_wakeup_ipis;
|
|
unsigned int kvm_posted_intr_nested_ipis;
|
|
unsigned int x86_platform_ipis;
|
|
unsigned int apic_perf_irqs;
|
|
unsigned int apic_irq_work_irqs;
|
|
unsigned int irq_resched_count;
|
|
unsigned int irq_call_count;
|
|
unsigned int irq_tlb_count;
|
|
unsigned int irq_thermal_count;
|
|
unsigned int irq_threshold_count;
|
|
unsigned int irq_deferred_error_count;
|
|
unsigned int irq_hv_callback_count;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
} irq_cpustat_t;
|
|
|
|
struct trace_event_raw_x86_irq_vector {
|
|
struct trace_entry ent;
|
|
int vector;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_config {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
unsigned int vector;
|
|
unsigned int cpu;
|
|
unsigned int apicdest;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_mod {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
unsigned int vector;
|
|
unsigned int cpu;
|
|
unsigned int prev_vector;
|
|
unsigned int prev_cpu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_reserve {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_alloc {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
unsigned int vector;
|
|
bool reserved;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_alloc_managed {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
unsigned int vector;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_activate {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
bool is_managed;
|
|
bool can_reserve;
|
|
bool reserve;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_teardown {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
bool is_managed;
|
|
bool has_reserved;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_setup {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
bool is_legacy;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vector_free_moved {
|
|
struct trace_entry ent;
|
|
unsigned int irq;
|
|
unsigned int cpu;
|
|
unsigned int vector;
|
|
bool is_managed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_x86_irq_vector {};
|
|
|
|
struct trace_event_data_offsets_vector_config {};
|
|
|
|
struct trace_event_data_offsets_vector_mod {};
|
|
|
|
struct trace_event_data_offsets_vector_reserve {};
|
|
|
|
struct trace_event_data_offsets_vector_alloc {};
|
|
|
|
struct trace_event_data_offsets_vector_alloc_managed {};
|
|
|
|
struct trace_event_data_offsets_vector_activate {};
|
|
|
|
struct trace_event_data_offsets_vector_teardown {};
|
|
|
|
struct trace_event_data_offsets_vector_setup {};
|
|
|
|
struct trace_event_data_offsets_vector_free_moved {};
|
|
|
|
struct syscore_ops {
|
|
struct list_head node;
|
|
int (*suspend)();
|
|
void (*resume)();
|
|
void (*shutdown)();
|
|
};
|
|
|
|
struct cpuid_bit {
|
|
u16 feature;
|
|
u8 reg;
|
|
u8 bit;
|
|
u32 level;
|
|
u32 sub_leaf;
|
|
};
|
|
|
|
enum cpuid_regs_idx {
|
|
CPUID_EAX = 0,
|
|
CPUID_EBX = 1,
|
|
CPUID_ECX = 2,
|
|
CPUID_EDX = 3,
|
|
};
|
|
|
|
struct pcpu_hot {
|
|
union {
|
|
struct {
|
|
struct task_struct *current_task;
|
|
int preempt_count;
|
|
int cpu_number;
|
|
u64 call_depth;
|
|
unsigned long top_of_stack;
|
|
void *hardirq_stack_ptr;
|
|
u16 softirq_pending;
|
|
bool hardirq_stack_inuse;
|
|
};
|
|
u8 pad[64];
|
|
};
|
|
};
|
|
|
|
struct fixed_percpu_data {
|
|
char gs_base[40];
|
|
unsigned long stack_canary;
|
|
};
|
|
|
|
struct cpuid_dependent_feature {
|
|
u32 feature;
|
|
u32 level;
|
|
};
|
|
|
|
struct ppin_info {
|
|
int feature;
|
|
int msr_ppin_ctl;
|
|
int msr_ppin;
|
|
};
|
|
|
|
enum {
|
|
DESC_TSS = 9,
|
|
DESC_LDT = 2,
|
|
DESCTYPE_S = 16,
|
|
};
|
|
|
|
struct ldttss_desc {
|
|
u16 limit0;
|
|
u16 base0;
|
|
u16 base1: 8;
|
|
u16 type: 5;
|
|
u16 dpl: 2;
|
|
u16 p: 1;
|
|
u16 limit1: 4;
|
|
u16 zero0: 3;
|
|
u16 g: 1;
|
|
u16 base2: 8;
|
|
u32 base3;
|
|
u32 zero1;
|
|
};
|
|
|
|
typedef struct ldttss_desc tss_desc;
|
|
|
|
enum auditsc_class_t {
|
|
AUDITSC_NATIVE = 0,
|
|
AUDITSC_COMPAT = 1,
|
|
AUDITSC_OPEN = 2,
|
|
AUDITSC_OPENAT = 3,
|
|
AUDITSC_SOCKETCALL = 4,
|
|
AUDITSC_EXECVE = 5,
|
|
AUDITSC_OPENAT2 = 6,
|
|
AUDITSC_NVALS = 7,
|
|
};
|
|
|
|
typedef void (*btf_trace_page_fault_user)(void *, unsigned long, struct pt_regs *, unsigned long);
|
|
|
|
typedef void (*btf_trace_page_fault_kernel)(void *, unsigned long, struct pt_regs *, unsigned long);
|
|
|
|
enum x86_pf_error_code {
|
|
X86_PF_PROT = 1,
|
|
X86_PF_WRITE = 2,
|
|
X86_PF_USER = 4,
|
|
X86_PF_RSVD = 8,
|
|
X86_PF_INSTR = 16,
|
|
X86_PF_PK = 32,
|
|
X86_PF_SGX = 32768,
|
|
};
|
|
|
|
enum perf_sw_ids {
|
|
PERF_COUNT_SW_CPU_CLOCK = 0,
|
|
PERF_COUNT_SW_TASK_CLOCK = 1,
|
|
PERF_COUNT_SW_PAGE_FAULTS = 2,
|
|
PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
|
|
PERF_COUNT_SW_CPU_MIGRATIONS = 4,
|
|
PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
|
|
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
|
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 7,
|
|
PERF_COUNT_SW_EMULATION_FAULTS = 8,
|
|
PERF_COUNT_SW_DUMMY = 9,
|
|
PERF_COUNT_SW_BPF_OUTPUT = 10,
|
|
PERF_COUNT_SW_CGROUP_SWITCHES = 11,
|
|
PERF_COUNT_SW_MAX = 12,
|
|
};
|
|
|
|
struct trace_event_raw_x86_exceptions {
|
|
struct trace_entry ent;
|
|
unsigned long address;
|
|
unsigned long ip;
|
|
unsigned long error_code;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_x86_exceptions {};
|
|
|
|
enum {
|
|
HP_THREAD_NONE = 0,
|
|
HP_THREAD_ACTIVE = 1,
|
|
HP_THREAD_PARKED = 2,
|
|
};
|
|
|
|
struct smpboot_thread_data {
|
|
unsigned int cpu;
|
|
unsigned int status;
|
|
struct smp_hotplug_thread *ht;
|
|
};
|
|
|
|
struct optimistic_spin_node {
|
|
struct optimistic_spin_node *next;
|
|
struct optimistic_spin_node *prev;
|
|
int locked;
|
|
int cpu;
|
|
};
|
|
|
|
struct platform_hibernation_ops {
|
|
int (*begin)(pm_message_t);
|
|
void (*end)();
|
|
int (*pre_snapshot)();
|
|
void (*finish)();
|
|
int (*prepare)();
|
|
int (*enter)();
|
|
void (*leave)();
|
|
int (*pre_restore)();
|
|
void (*restore_cleanup)();
|
|
void (*recover)();
|
|
};
|
|
|
|
enum {
|
|
HIBERNATION_INVALID = 0,
|
|
HIBERNATION_PLATFORM = 1,
|
|
HIBERNATION_SHUTDOWN = 2,
|
|
HIBERNATION_REBOOT = 3,
|
|
HIBERNATION_SUSPEND = 4,
|
|
HIBERNATION_TEST_RESUME = 5,
|
|
__HIBERNATION_AFTER_LAST = 6,
|
|
};
|
|
|
|
enum pci_p2pdma_map_type {
|
|
PCI_P2PDMA_MAP_UNKNOWN = 0,
|
|
PCI_P2PDMA_MAP_NOT_SUPPORTED = 1,
|
|
PCI_P2PDMA_MAP_BUS_ADDR = 2,
|
|
PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3,
|
|
};
|
|
|
|
struct io_tlb_area;
|
|
|
|
struct io_tlb_slot;
|
|
|
|
struct io_tlb_mem {
|
|
phys_addr_t start;
|
|
phys_addr_t end;
|
|
void *vaddr;
|
|
unsigned long nslabs;
|
|
unsigned long used;
|
|
struct dentry *debugfs;
|
|
bool late_alloc;
|
|
bool force_bounce;
|
|
bool for_alloc;
|
|
unsigned int nareas;
|
|
unsigned int area_nslabs;
|
|
struct io_tlb_area *areas;
|
|
struct io_tlb_slot *slots;
|
|
};
|
|
|
|
struct pci_p2pdma_map_state {
|
|
struct dev_pagemap *pgmap;
|
|
int map;
|
|
u64 bus_off;
|
|
};
|
|
|
|
enum tick_nohz_mode {
|
|
NOHZ_MODE_INACTIVE = 0,
|
|
NOHZ_MODE_LOWRES = 1,
|
|
NOHZ_MODE_HIGHRES = 2,
|
|
};
|
|
|
|
struct tick_sched {
|
|
struct hrtimer sched_timer;
|
|
unsigned long check_clocks;
|
|
enum tick_nohz_mode nohz_mode;
|
|
unsigned int inidle: 1;
|
|
unsigned int tick_stopped: 1;
|
|
unsigned int idle_active: 1;
|
|
unsigned int do_timer_last: 1;
|
|
unsigned int got_idle_tick: 1;
|
|
ktime_t last_tick;
|
|
ktime_t next_tick;
|
|
unsigned long idle_jiffies;
|
|
unsigned long idle_calls;
|
|
unsigned long idle_sleeps;
|
|
ktime_t idle_entrytime;
|
|
ktime_t idle_waketime;
|
|
ktime_t idle_exittime;
|
|
ktime_t idle_sleeptime;
|
|
ktime_t iowait_sleeptime;
|
|
unsigned long last_jiffies;
|
|
u64 timer_expires;
|
|
u64 timer_expires_base;
|
|
u64 next_timer;
|
|
ktime_t idle_expires;
|
|
atomic_t tick_dep_mask;
|
|
unsigned long last_tick_jiffies;
|
|
unsigned int stalled_jiffies;
|
|
};
|
|
|
|
struct timer_list_iter {
|
|
int cpu;
|
|
bool second_pass;
|
|
u64 now;
|
|
};
|
|
|
|
struct bsd_acct_struct {
|
|
struct fs_pin pin;
|
|
atomic_long_t count;
|
|
struct callback_head rcu;
|
|
struct mutex lock;
|
|
int active;
|
|
unsigned long needcheck;
|
|
struct file *file;
|
|
struct pid_namespace *ns;
|
|
struct work_struct work;
|
|
struct completion done;
|
|
};
|
|
|
|
typedef __u16 comp_t;
|
|
|
|
struct acct {
|
|
char ac_flag;
|
|
char ac_version;
|
|
__u16 ac_uid16;
|
|
__u16 ac_gid16;
|
|
__u16 ac_tty;
|
|
__u32 ac_btime;
|
|
comp_t ac_utime;
|
|
comp_t ac_stime;
|
|
comp_t ac_etime;
|
|
comp_t ac_mem;
|
|
comp_t ac_io;
|
|
comp_t ac_rw;
|
|
comp_t ac_minflt;
|
|
comp_t ac_majflt;
|
|
comp_t ac_swaps;
|
|
__u16 ac_ahz;
|
|
__u32 ac_exitcode;
|
|
char ac_comm[17];
|
|
__u8 ac_etime_hi;
|
|
__u16 ac_etime_lo;
|
|
__u32 ac_uid;
|
|
__u32 ac_gid;
|
|
};
|
|
|
|
typedef struct acct acct_t;
|
|
|
|
typedef __u32 comp2_t;
|
|
|
|
enum ftrace_dump_mode {
|
|
DUMP_NONE = 0,
|
|
DUMP_ALL = 1,
|
|
DUMP_ORIG = 2,
|
|
};
|
|
|
|
struct trace_export {
|
|
struct trace_export __attribute__((btf_type_tag("rcu"))) *next;
|
|
void (*write)(struct trace_export *, const void *, unsigned int);
|
|
int flags;
|
|
};
|
|
|
|
struct saved_cmdlines_buffer {
|
|
unsigned int map_pid_to_cmdline[32769];
|
|
unsigned int *map_cmdline_to_pid;
|
|
unsigned int cmdline_num;
|
|
int cmdline_idx;
|
|
char *saved_cmdlines;
|
|
};
|
|
|
|
struct ftrace_stack {
|
|
unsigned long calls[1024];
|
|
};
|
|
|
|
struct ftrace_stacks {
|
|
struct ftrace_stack stacks[4];
|
|
};
|
|
|
|
struct trace_buffer_struct {
|
|
int nesting;
|
|
char buffer[4096];
|
|
};
|
|
|
|
enum trace_type {
|
|
__TRACE_FIRST_TYPE = 0,
|
|
TRACE_FN = 1,
|
|
TRACE_CTX = 2,
|
|
TRACE_WAKE = 3,
|
|
TRACE_STACK = 4,
|
|
TRACE_PRINT = 5,
|
|
TRACE_BPRINT = 6,
|
|
TRACE_MMIO_RW = 7,
|
|
TRACE_MMIO_MAP = 8,
|
|
TRACE_BRANCH = 9,
|
|
TRACE_GRAPH_RET = 10,
|
|
TRACE_GRAPH_ENT = 11,
|
|
TRACE_USER_STACK = 12,
|
|
TRACE_BLK = 13,
|
|
TRACE_BPUTS = 14,
|
|
TRACE_HWLAT = 15,
|
|
TRACE_OSNOISE = 16,
|
|
TRACE_TIMERLAT = 17,
|
|
TRACE_RAW_DATA = 18,
|
|
TRACE_FUNC_REPEATS = 19,
|
|
__TRACE_LAST_TYPE = 20,
|
|
};
|
|
|
|
enum event_trigger_type {
|
|
ETT_NONE = 0,
|
|
ETT_TRACE_ONOFF = 1,
|
|
ETT_SNAPSHOT = 2,
|
|
ETT_STACKTRACE = 4,
|
|
ETT_EVENT_ENABLE = 8,
|
|
ETT_EVENT_HIST = 16,
|
|
ETT_HIST_ENABLE = 32,
|
|
ETT_EVENT_EPROBE = 64,
|
|
};
|
|
|
|
enum trace_iter_flags {
|
|
TRACE_FILE_LAT_FMT = 1,
|
|
TRACE_FILE_ANNOTATE = 2,
|
|
TRACE_FILE_TIME_IN_NS = 4,
|
|
};
|
|
|
|
enum ring_buffer_flags {
|
|
RB_FL_OVERWRITE = 1,
|
|
};
|
|
|
|
enum die_val {
|
|
DIE_OOPS = 1,
|
|
DIE_INT3 = 2,
|
|
DIE_DEBUG = 3,
|
|
DIE_PANIC = 4,
|
|
DIE_NMI = 5,
|
|
DIE_DIE = 6,
|
|
DIE_KERNELDEBUG = 7,
|
|
DIE_TRAP = 8,
|
|
DIE_GPF = 9,
|
|
DIE_CALL = 10,
|
|
DIE_PAGE_FAULT = 11,
|
|
DIE_NMIUNKNOWN = 12,
|
|
};
|
|
|
|
struct err_info {
|
|
const char **errs;
|
|
u8 type;
|
|
u16 pos;
|
|
u64 ts;
|
|
};
|
|
|
|
struct tracing_log_err {
|
|
struct list_head list;
|
|
struct err_info info;
|
|
char loc[128];
|
|
char *cmd;
|
|
};
|
|
|
|
struct buffer_ref {
|
|
struct trace_buffer *buffer;
|
|
void *page;
|
|
int cpu;
|
|
refcount_t refcount;
|
|
};
|
|
|
|
struct userstack_entry {
|
|
struct trace_entry ent;
|
|
unsigned int tgid;
|
|
unsigned long caller[8];
|
|
};
|
|
|
|
struct func_repeats_entry {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
unsigned long parent_ip;
|
|
u16 count;
|
|
u16 top_delta_ts;
|
|
u32 bottom_delta_ts;
|
|
};
|
|
|
|
typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *);
|
|
|
|
struct partial_page;
|
|
|
|
struct splice_pipe_desc {
|
|
struct page **pages;
|
|
struct partial_page *partial;
|
|
int nr_pages;
|
|
unsigned int nr_pages_max;
|
|
const struct pipe_buf_operations *ops;
|
|
void (*spd_release)(struct splice_pipe_desc *, unsigned int);
|
|
};
|
|
|
|
struct partial_page {
|
|
unsigned int offset;
|
|
unsigned int len;
|
|
unsigned long private;
|
|
};
|
|
|
|
struct print_entry {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
char buf[0];
|
|
};
|
|
|
|
struct bputs_entry {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
const char *str;
|
|
};
|
|
|
|
typedef bool (*cond_update_fn_t)(struct trace_array *, void *);
|
|
|
|
struct ftrace_entry {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
unsigned long parent_ip;
|
|
};
|
|
|
|
struct stack_entry {
|
|
struct trace_entry ent;
|
|
int size;
|
|
unsigned long caller[8];
|
|
};
|
|
|
|
struct bprint_entry {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
const char *fmt;
|
|
u32 buf[0];
|
|
};
|
|
|
|
struct trace_min_max_param {
|
|
struct mutex *lock;
|
|
u64 *val;
|
|
u64 *min;
|
|
u64 *max;
|
|
};
|
|
|
|
struct raw_data_entry {
|
|
struct trace_entry ent;
|
|
unsigned int id;
|
|
char buf[0];
|
|
};
|
|
|
|
struct ftrace_buffer_info {
|
|
struct trace_iterator iter;
|
|
void *spare;
|
|
unsigned int spare_cpu;
|
|
unsigned int read;
|
|
};
|
|
|
|
typedef void (*btf_trace_rseq_update)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
|
|
enum rseq_cs_flags {
|
|
RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1,
|
|
RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 2,
|
|
RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 4,
|
|
};
|
|
|
|
enum rseq_flags {
|
|
RSEQ_FLAG_UNREGISTER = 1,
|
|
};
|
|
|
|
enum rseq_cpu_id_state {
|
|
RSEQ_CPU_ID_UNINITIALIZED = -1,
|
|
RSEQ_CPU_ID_REGISTRATION_FAILED = -2,
|
|
};
|
|
|
|
struct trace_event_raw_rseq_update {
|
|
struct trace_entry ent;
|
|
s32 cpu_id;
|
|
s32 node_id;
|
|
s32 mm_cid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rseq_ip_fixup {
|
|
struct trace_entry ent;
|
|
unsigned long regs_ip;
|
|
unsigned long start_ip;
|
|
unsigned long post_commit_offset;
|
|
unsigned long abort_ip;
|
|
char __data[0];
|
|
};
|
|
|
|
struct rseq_cs {
|
|
__u32 version;
|
|
__u32 flags;
|
|
__u64 start_ip;
|
|
__u64 post_commit_offset;
|
|
__u64 abort_ip;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rseq_update {};
|
|
|
|
struct trace_event_data_offsets_rseq_ip_fixup {};
|
|
|
|
struct mmu_table_batch {
|
|
struct callback_head rcu;
|
|
unsigned int nr;
|
|
void *tables[0];
|
|
};
|
|
|
|
struct encoded_page;
|
|
|
|
struct mmu_gather_batch {
|
|
struct mmu_gather_batch *next;
|
|
unsigned int nr;
|
|
unsigned int max;
|
|
struct encoded_page *encoded_pages[0];
|
|
};
|
|
|
|
struct mmu_gather {
|
|
struct mm_struct *mm;
|
|
struct mmu_table_batch *batch;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
unsigned int fullmm: 1;
|
|
unsigned int need_flush_all: 1;
|
|
unsigned int freed_tables: 1;
|
|
unsigned int delayed_rmap: 1;
|
|
unsigned int cleared_ptes: 1;
|
|
unsigned int cleared_pmds: 1;
|
|
unsigned int cleared_puds: 1;
|
|
unsigned int cleared_p4ds: 1;
|
|
unsigned int vma_exec: 1;
|
|
unsigned int vma_huge: 1;
|
|
unsigned int vma_pfn: 1;
|
|
unsigned int batch_count;
|
|
struct mmu_gather_batch *active;
|
|
struct mmu_gather_batch local;
|
|
struct page *__pages[8];
|
|
};
|
|
|
|
struct swap_iocb {
|
|
struct kiocb iocb;
|
|
struct bio_vec bvec[32];
|
|
int pages;
|
|
int len;
|
|
};
|
|
|
|
struct space_resv_32 {
|
|
__s16 l_type;
|
|
__s16 l_whence;
|
|
__s64 l_start;
|
|
__s64 l_len;
|
|
__s32 l_sysid;
|
|
__u32 l_pid;
|
|
__s32 l_pad[4];
|
|
} __attribute__((packed));
|
|
|
|
struct file_clone_range {
|
|
__s64 src_fd;
|
|
__u64 src_offset;
|
|
__u64 src_length;
|
|
__u64 dest_offset;
|
|
};
|
|
|
|
struct fsxattr {
|
|
__u32 fsx_xflags;
|
|
__u32 fsx_extsize;
|
|
__u32 fsx_nextents;
|
|
__u32 fsx_projid;
|
|
__u32 fsx_cowextsize;
|
|
unsigned char fsx_pad[8];
|
|
};
|
|
|
|
struct file_dedupe_range_info {
|
|
__s64 dest_fd;
|
|
__u64 dest_offset;
|
|
__u64 bytes_deduped;
|
|
__s32 status;
|
|
__u32 reserved;
|
|
};
|
|
|
|
struct file_dedupe_range {
|
|
__u64 src_offset;
|
|
__u64 src_length;
|
|
__u16 dest_count;
|
|
__u16 reserved1;
|
|
__u32 reserved2;
|
|
struct file_dedupe_range_info info[0];
|
|
};
|
|
|
|
struct space_resv {
|
|
__s16 l_type;
|
|
__s16 l_whence;
|
|
__s64 l_start;
|
|
__s64 l_len;
|
|
__s32 l_sysid;
|
|
__u32 l_pid;
|
|
__s32 l_pad[4];
|
|
};
|
|
|
|
struct epitem;
|
|
|
|
struct eventpoll {
|
|
struct mutex mtx;
|
|
wait_queue_head_t wq;
|
|
wait_queue_head_t poll_wait;
|
|
struct list_head rdllist;
|
|
rwlock_t lock;
|
|
struct rb_root_cached rbr;
|
|
struct epitem *ovflist;
|
|
struct wakeup_source *ws;
|
|
struct user_struct *user;
|
|
struct file *file;
|
|
u64 gen;
|
|
struct hlist_head refs;
|
|
unsigned int napi_id;
|
|
};
|
|
|
|
struct epoll_filefd {
|
|
struct file *file;
|
|
int fd;
|
|
} __attribute__((packed));
|
|
|
|
struct epoll_event {
|
|
__poll_t events;
|
|
__u64 data;
|
|
} __attribute__((packed));
|
|
|
|
struct eppoll_entry;
|
|
|
|
struct epitem {
|
|
union {
|
|
struct rb_node rbn;
|
|
struct callback_head rcu;
|
|
};
|
|
struct list_head rdllink;
|
|
struct epitem *next;
|
|
struct epoll_filefd ffd;
|
|
struct eppoll_entry *pwqlist;
|
|
struct eventpoll *ep;
|
|
struct hlist_node fllink;
|
|
struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws;
|
|
struct epoll_event event;
|
|
};
|
|
|
|
struct eppoll_entry {
|
|
struct eppoll_entry *next;
|
|
struct epitem *base;
|
|
wait_queue_entry_t wait;
|
|
wait_queue_head_t *whead;
|
|
};
|
|
|
|
struct epitems_head {
|
|
struct hlist_head epitems;
|
|
struct epitems_head *next;
|
|
};
|
|
|
|
struct ep_pqueue {
|
|
poll_table pt;
|
|
struct epitem *epi;
|
|
};
|
|
|
|
typedef u32 compat_sigset_word;
|
|
|
|
typedef struct {
|
|
compat_sigset_word sig[2];
|
|
} compat_sigset_t;
|
|
|
|
enum netfs_failure {
|
|
netfs_fail_check_write_begin = 0,
|
|
netfs_fail_copy_to_cache = 1,
|
|
netfs_fail_read = 2,
|
|
netfs_fail_short_read = 3,
|
|
netfs_fail_prepare_write = 4,
|
|
};
|
|
|
|
struct fat_boot_fsinfo {
|
|
__le32 signature1;
|
|
__le32 reserved1[120];
|
|
__le32 signature2;
|
|
__le32 free_clusters;
|
|
__le32 next_cluster;
|
|
__le32 reserved2[4];
|
|
};
|
|
|
|
enum {
|
|
MOUNTPROC3_NULL = 0,
|
|
MOUNTPROC3_MNT = 1,
|
|
MOUNTPROC3_DUMP = 2,
|
|
MOUNTPROC3_UMNT = 3,
|
|
MOUNTPROC3_UMNTALL = 4,
|
|
MOUNTPROC3_EXPORT = 5,
|
|
};
|
|
|
|
enum {
|
|
MOUNTPROC_NULL = 0,
|
|
MOUNTPROC_MNT = 1,
|
|
MOUNTPROC_DUMP = 2,
|
|
MOUNTPROC_UMNT = 3,
|
|
MOUNTPROC_UMNTALL = 4,
|
|
MOUNTPROC_EXPORT = 5,
|
|
};
|
|
|
|
struct rpc_create_args {
|
|
struct net *net;
|
|
int protocol;
|
|
struct sockaddr *address;
|
|
size_t addrsize;
|
|
struct sockaddr *saddress;
|
|
const struct rpc_timeout *timeout;
|
|
const char *servername;
|
|
const char *nodename;
|
|
const struct rpc_program *program;
|
|
u32 prognumber;
|
|
u32 version;
|
|
rpc_authflavor_t authflavor;
|
|
u32 nconnect;
|
|
unsigned long flags;
|
|
char *client_name;
|
|
struct svc_xprt *bc_xprt;
|
|
const struct cred *cred;
|
|
unsigned int max_connect;
|
|
};
|
|
|
|
struct mountres {
|
|
int errno;
|
|
struct nfs_fh *fh;
|
|
unsigned int *auth_count;
|
|
rpc_authflavor_t *auth_flavors;
|
|
};
|
|
|
|
struct nfs_mount_request {
|
|
struct __kernel_sockaddr_storage *sap;
|
|
size_t salen;
|
|
char *hostname;
|
|
char *dirpath;
|
|
u32 version;
|
|
unsigned short protocol;
|
|
struct nfs_fh *fh;
|
|
int noresvport;
|
|
unsigned int *auth_flav_len;
|
|
rpc_authflavor_t *auth_flavs;
|
|
struct net *net;
|
|
};
|
|
|
|
struct utf8_table {
|
|
int cmask;
|
|
int cval;
|
|
int shift;
|
|
long lmask;
|
|
long lval;
|
|
};
|
|
|
|
typedef u32 unicode_t;
|
|
|
|
enum {
|
|
SELNL_MSG_SETENFORCE = 16,
|
|
SELNL_MSG_POLICYLOAD = 17,
|
|
SELNL_MSG_MAX = 18,
|
|
};
|
|
|
|
enum selinux_nlgroups {
|
|
SELNLGRP_NONE = 0,
|
|
SELNLGRP_AVC = 1,
|
|
__SELNLGRP_MAX = 2,
|
|
};
|
|
|
|
struct selnl_msg_setenforce {
|
|
__s32 val;
|
|
};
|
|
|
|
struct selnl_msg_policyload {
|
|
__u32 seqno;
|
|
};
|
|
|
|
struct ima_rule_opt_list;
|
|
|
|
struct ima_template_desc;
|
|
|
|
struct ima_rule_entry {
|
|
struct list_head list;
|
|
int action;
|
|
unsigned int flags;
|
|
enum ima_hooks func;
|
|
int mask;
|
|
unsigned long fsmagic;
|
|
uuid_t fsuuid;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
kuid_t fowner;
|
|
kgid_t fgroup;
|
|
bool (*uid_op)(kuid_t, kuid_t);
|
|
bool (*gid_op)(kgid_t, kgid_t);
|
|
bool (*fowner_op)(vfsuid_t, kuid_t);
|
|
bool (*fgroup_op)(vfsgid_t, kgid_t);
|
|
int pcr;
|
|
unsigned int allowed_algos;
|
|
struct {
|
|
void *rule;
|
|
char *args_p;
|
|
int type;
|
|
} lsm[6];
|
|
char *fsname;
|
|
struct ima_rule_opt_list *keyrings;
|
|
struct ima_rule_opt_list *label;
|
|
struct ima_template_desc *template;
|
|
};
|
|
|
|
struct ima_rule_opt_list {
|
|
size_t count;
|
|
char *items[0];
|
|
};
|
|
|
|
struct ima_template_field;
|
|
|
|
struct ima_template_desc {
|
|
struct list_head list;
|
|
char *name;
|
|
char *fmt;
|
|
int num_fields;
|
|
const struct ima_template_field **fields;
|
|
};
|
|
|
|
enum ima_show_type {
|
|
IMA_SHOW_BINARY = 0,
|
|
IMA_SHOW_BINARY_NO_FIELD_LEN = 1,
|
|
IMA_SHOW_BINARY_OLD_STRING_FMT = 2,
|
|
IMA_SHOW_ASCII = 3,
|
|
};
|
|
|
|
struct ima_event_data;
|
|
|
|
struct ima_field_data;
|
|
|
|
struct ima_template_field {
|
|
const char field_id[16];
|
|
int (*field_init)(struct ima_event_data *, struct ima_field_data *);
|
|
void (*field_show)(struct seq_file *, enum ima_show_type, struct ima_field_data *);
|
|
};
|
|
|
|
struct modsig;
|
|
|
|
struct integrity_iint_cache;
|
|
|
|
struct evm_ima_xattr_data;
|
|
|
|
struct ima_event_data {
|
|
struct integrity_iint_cache *iint;
|
|
struct file *file;
|
|
const unsigned char *filename;
|
|
struct evm_ima_xattr_data *xattr_value;
|
|
int xattr_len;
|
|
const struct modsig *modsig;
|
|
const char *violation;
|
|
const void *buf;
|
|
int buf_len;
|
|
};
|
|
|
|
enum integrity_status {
|
|
INTEGRITY_PASS = 0,
|
|
INTEGRITY_PASS_IMMUTABLE = 1,
|
|
INTEGRITY_FAIL = 2,
|
|
INTEGRITY_FAIL_IMMUTABLE = 3,
|
|
INTEGRITY_NOLABEL = 4,
|
|
INTEGRITY_NOXATTRS = 5,
|
|
INTEGRITY_UNKNOWN = 6,
|
|
};
|
|
|
|
struct ima_digest_data;
|
|
|
|
struct integrity_iint_cache {
|
|
struct rb_node rb_node;
|
|
struct mutex mutex;
|
|
struct inode *inode;
|
|
u64 version;
|
|
unsigned long flags;
|
|
unsigned long measured_pcrs;
|
|
unsigned long atomic_flags;
|
|
enum integrity_status ima_file_status: 4;
|
|
enum integrity_status ima_mmap_status: 4;
|
|
enum integrity_status ima_bprm_status: 4;
|
|
enum integrity_status ima_read_status: 4;
|
|
enum integrity_status ima_creds_status: 4;
|
|
enum integrity_status evm_status: 4;
|
|
struct ima_digest_data *ima_hash;
|
|
};
|
|
|
|
struct ima_digest_data {
|
|
u8 algo;
|
|
u8 length;
|
|
union {
|
|
struct {
|
|
u8 unused;
|
|
u8 type;
|
|
} sha1;
|
|
struct {
|
|
u8 type;
|
|
u8 algo;
|
|
} ng;
|
|
u8 data[2];
|
|
} xattr;
|
|
u8 digest[0];
|
|
};
|
|
|
|
struct evm_ima_xattr_data {
|
|
u8 type;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct ima_field_data {
|
|
u8 *data;
|
|
u32 len;
|
|
};
|
|
|
|
enum lsm_event {
|
|
LSM_POLICY_CHANGE = 0,
|
|
};
|
|
|
|
enum policy_rule_list {
|
|
IMA_DEFAULT_POLICY = 1,
|
|
IMA_CUSTOM_POLICY = 2,
|
|
};
|
|
|
|
enum policy_types {
|
|
ORIGINAL_TCB = 1,
|
|
DEFAULT_TCB = 2,
|
|
};
|
|
|
|
enum policy_opt {
|
|
Opt_measure = 0,
|
|
Opt_dont_measure = 1,
|
|
Opt_appraise = 2,
|
|
Opt_dont_appraise = 3,
|
|
Opt_audit = 4,
|
|
Opt_hash = 5,
|
|
Opt_dont_hash = 6,
|
|
Opt_obj_user = 7,
|
|
Opt_obj_role = 8,
|
|
Opt_obj_type = 9,
|
|
Opt_subj_user = 10,
|
|
Opt_subj_role = 11,
|
|
Opt_subj_type = 12,
|
|
Opt_func = 13,
|
|
Opt_mask = 14,
|
|
Opt_fsmagic = 15,
|
|
Opt_fsname = 16,
|
|
Opt_fsuuid = 17,
|
|
Opt_uid_eq = 18,
|
|
Opt_euid_eq = 19,
|
|
Opt_gid_eq = 20,
|
|
Opt_egid_eq = 21,
|
|
Opt_fowner_eq = 22,
|
|
Opt_fgroup_eq = 23,
|
|
Opt_uid_gt = 24,
|
|
Opt_euid_gt = 25,
|
|
Opt_gid_gt = 26,
|
|
Opt_egid_gt = 27,
|
|
Opt_fowner_gt = 28,
|
|
Opt_fgroup_gt = 29,
|
|
Opt_uid_lt = 30,
|
|
Opt_euid_lt = 31,
|
|
Opt_gid_lt = 32,
|
|
Opt_egid_lt = 33,
|
|
Opt_fowner_lt = 34,
|
|
Opt_fgroup_lt = 35,
|
|
Opt_digest_type = 36,
|
|
Opt_appraise_type = 37,
|
|
Opt_appraise_flag = 38,
|
|
Opt_appraise_algos = 39,
|
|
Opt_permit_directio = 40,
|
|
Opt_pcr = 41,
|
|
Opt_template = 42,
|
|
Opt_keyrings = 43,
|
|
Opt_label = 44,
|
|
Opt_err___2 = 45,
|
|
};
|
|
|
|
enum {
|
|
mask_exec = 0,
|
|
mask_write = 1,
|
|
mask_read = 2,
|
|
mask_append = 3,
|
|
};
|
|
|
|
enum lsm_rule_types {
|
|
LSM_OBJ_USER = 0,
|
|
LSM_OBJ_ROLE = 1,
|
|
LSM_OBJ_TYPE = 2,
|
|
LSM_SUBJ_USER = 3,
|
|
LSM_SUBJ_ROLE = 4,
|
|
LSM_SUBJ_TYPE = 5,
|
|
};
|
|
|
|
struct aead_instance {
|
|
void (*free)(struct aead_instance *);
|
|
union {
|
|
struct {
|
|
char head[64];
|
|
struct crypto_instance base;
|
|
} s;
|
|
struct aead_alg alg;
|
|
};
|
|
};
|
|
|
|
struct crypto_aead_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct aead_geniv_ctx {
|
|
spinlock_t lock;
|
|
struct crypto_aead *child;
|
|
struct crypto_sync_skcipher *sknull;
|
|
u8 salt[0];
|
|
};
|
|
|
|
struct io_epoll {
|
|
struct file *file;
|
|
int epfd;
|
|
int op;
|
|
int fd;
|
|
struct epoll_event event;
|
|
} __attribute__((packed));
|
|
|
|
enum pci_mmap_api {
|
|
PCI_MMAP_SYSFS = 0,
|
|
PCI_MMAP_PROCFS = 1,
|
|
};
|
|
|
|
enum pci_mmap_state {
|
|
pci_mmap_io = 0,
|
|
pci_mmap_mem = 1,
|
|
};
|
|
|
|
enum pci_bus_flags {
|
|
PCI_BUS_FLAGS_NO_MSI = 1,
|
|
PCI_BUS_FLAGS_NO_MMRBC = 2,
|
|
PCI_BUS_FLAGS_NO_AERSID = 4,
|
|
PCI_BUS_FLAGS_NO_EXTCFG = 8,
|
|
};
|
|
|
|
enum pci_bus_speed {
|
|
PCI_SPEED_33MHz = 0,
|
|
PCI_SPEED_66MHz = 1,
|
|
PCI_SPEED_66MHz_PCIX = 2,
|
|
PCI_SPEED_100MHz_PCIX = 3,
|
|
PCI_SPEED_133MHz_PCIX = 4,
|
|
PCI_SPEED_66MHz_PCIX_ECC = 5,
|
|
PCI_SPEED_100MHz_PCIX_ECC = 6,
|
|
PCI_SPEED_133MHz_PCIX_ECC = 7,
|
|
PCI_SPEED_66MHz_PCIX_266 = 9,
|
|
PCI_SPEED_100MHz_PCIX_266 = 10,
|
|
PCI_SPEED_133MHz_PCIX_266 = 11,
|
|
AGP_UNKNOWN = 12,
|
|
AGP_1X = 13,
|
|
AGP_2X = 14,
|
|
AGP_4X = 15,
|
|
AGP_8X = 16,
|
|
PCI_SPEED_66MHz_PCIX_533 = 17,
|
|
PCI_SPEED_100MHz_PCIX_533 = 18,
|
|
PCI_SPEED_133MHz_PCIX_533 = 19,
|
|
PCIE_SPEED_2_5GT = 20,
|
|
PCIE_SPEED_5_0GT = 21,
|
|
PCIE_SPEED_8_0GT = 22,
|
|
PCIE_SPEED_16_0GT = 23,
|
|
PCIE_SPEED_32_0GT = 24,
|
|
PCIE_SPEED_64_0GT = 25,
|
|
PCI_SPEED_UNKNOWN = 255,
|
|
};
|
|
|
|
enum pcie_link_width {
|
|
PCIE_LNK_WIDTH_RESRV = 0,
|
|
PCIE_LNK_X1 = 1,
|
|
PCIE_LNK_X2 = 2,
|
|
PCIE_LNK_X4 = 4,
|
|
PCIE_LNK_X8 = 8,
|
|
PCIE_LNK_X12 = 12,
|
|
PCIE_LNK_X16 = 16,
|
|
PCIE_LNK_X32 = 32,
|
|
PCIE_LNK_WIDTH_UNKNOWN = 255,
|
|
};
|
|
|
|
typedef u32 acpi_name;
|
|
|
|
enum {
|
|
AML_FIELD_ATTRIB_QUICK = 2,
|
|
AML_FIELD_ATTRIB_SEND_RECEIVE = 4,
|
|
AML_FIELD_ATTRIB_BYTE = 6,
|
|
AML_FIELD_ATTRIB_WORD = 8,
|
|
AML_FIELD_ATTRIB_BLOCK = 10,
|
|
AML_FIELD_ATTRIB_BYTES = 11,
|
|
AML_FIELD_ATTRIB_PROCESS_CALL = 12,
|
|
AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 13,
|
|
AML_FIELD_ATTRIB_RAW_BYTES = 14,
|
|
AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 15,
|
|
};
|
|
|
|
struct acpi_exception_info {
|
|
char *name;
|
|
};
|
|
|
|
struct acpi_pnp_device_id {
|
|
u32 length;
|
|
char *string;
|
|
};
|
|
|
|
struct acpi_pnp_device_id_list {
|
|
u32 count;
|
|
u32 list_size;
|
|
struct acpi_pnp_device_id ids[0];
|
|
};
|
|
|
|
struct file_priv {
|
|
struct tpm_chip *chip;
|
|
struct tpm_space *space;
|
|
struct mutex buffer_mutex;
|
|
struct timer_list user_read_timer;
|
|
struct work_struct timeout_work;
|
|
struct work_struct async_work;
|
|
wait_queue_head_t async_wait;
|
|
ssize_t response_length;
|
|
bool response_read;
|
|
bool command_enqueued;
|
|
u8 data_buffer[4096];
|
|
};
|
|
|
|
struct drmres_node {
|
|
struct list_head entry;
|
|
drmres_release_t release;
|
|
const char *name;
|
|
size_t size;
|
|
};
|
|
|
|
struct drmres {
|
|
struct drmres_node node;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct drm_bridge_connector {
|
|
struct drm_connector base;
|
|
struct drm_encoder *encoder;
|
|
struct drm_bridge *bridge_edid;
|
|
struct drm_bridge *bridge_hpd;
|
|
struct drm_bridge *bridge_detect;
|
|
struct drm_bridge *bridge_modes;
|
|
};
|
|
|
|
enum intel_gt_scratch_field {
|
|
INTEL_GT_SCRATCH_FIELD_DEFAULT = 0,
|
|
INTEL_GT_SCRATCH_FIELD_RENDER_FLUSH = 128,
|
|
INTEL_GT_SCRATCH_FIELD_COHERENTL3_WA = 256,
|
|
};
|
|
|
|
struct intel_gt_bool_throttle_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *);
|
|
i915_reg_t (*reg32)(struct intel_gt *);
|
|
u32 mask;
|
|
};
|
|
|
|
enum intel_gt_sysfs_op {
|
|
INTEL_GT_SYSFS_MIN = 0,
|
|
INTEL_GT_SYSFS_MAX = 1,
|
|
};
|
|
|
|
enum slpc_media_ratio_mode {
|
|
SLPC_MEDIA_RATIO_MODE_DYNAMIC_CONTROL = 0,
|
|
SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_ONE = 1,
|
|
SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_TWO = 2,
|
|
};
|
|
|
|
struct i915_lut_handle {
|
|
struct list_head obj_link;
|
|
struct i915_gem_context *ctx;
|
|
u32 handle;
|
|
};
|
|
|
|
struct dma_fence_work;
|
|
|
|
struct dma_fence_work_ops {
|
|
const char *name;
|
|
void (*work)(struct dma_fence_work *);
|
|
void (*release)(struct dma_fence_work *);
|
|
};
|
|
|
|
struct dma_fence_work {
|
|
struct dma_fence dma;
|
|
spinlock_t lock;
|
|
struct i915_sw_fence chain;
|
|
struct i915_sw_dma_fence_cb cb;
|
|
struct work_struct work;
|
|
const struct dma_fence_work_ops *ops;
|
|
};
|
|
|
|
enum {
|
|
DMA_FENCE_WORK_IMM = 3,
|
|
};
|
|
|
|
struct i915_vma_work {
|
|
struct dma_fence_work base;
|
|
struct i915_address_space *vm;
|
|
struct i915_vm_pt_stash stash;
|
|
struct i915_vma_resource *vma_res;
|
|
struct drm_i915_gem_object *obj;
|
|
struct i915_sw_dma_fence_cb cb;
|
|
enum i915_cache_level cache_level;
|
|
unsigned int flags;
|
|
};
|
|
|
|
enum bdb_block_id {
|
|
BDB_GENERAL_FEATURES = 1,
|
|
BDB_GENERAL_DEFINITIONS = 2,
|
|
BDB_OLD_TOGGLE_LIST = 3,
|
|
BDB_MODE_SUPPORT_LIST = 4,
|
|
BDB_GENERIC_MODE_TABLE = 5,
|
|
BDB_EXT_MMIO_REGS = 6,
|
|
BDB_SWF_IO = 7,
|
|
BDB_SWF_MMIO = 8,
|
|
BDB_PSR = 9,
|
|
BDB_MODE_REMOVAL_TABLE = 10,
|
|
BDB_CHILD_DEVICE_TABLE = 11,
|
|
BDB_DRIVER_FEATURES = 12,
|
|
BDB_DRIVER_PERSISTENCE = 13,
|
|
BDB_EXT_TABLE_PTRS = 14,
|
|
BDB_DOT_CLOCK_OVERRIDE = 15,
|
|
BDB_DISPLAY_SELECT = 16,
|
|
BDB_DRIVER_ROTATION = 18,
|
|
BDB_DISPLAY_REMOVE = 19,
|
|
BDB_OEM_CUSTOM = 20,
|
|
BDB_EFP_LIST = 21,
|
|
BDB_SDVO_LVDS_OPTIONS = 22,
|
|
BDB_SDVO_PANEL_DTDS = 23,
|
|
BDB_SDVO_LVDS_PNP_IDS = 24,
|
|
BDB_SDVO_LVDS_POWER_SEQ = 25,
|
|
BDB_TV_OPTIONS = 26,
|
|
BDB_EDP = 27,
|
|
BDB_LVDS_OPTIONS = 40,
|
|
BDB_LVDS_LFP_DATA_PTRS = 41,
|
|
BDB_LVDS_LFP_DATA = 42,
|
|
BDB_LVDS_BACKLIGHT = 43,
|
|
BDB_LFP_POWER = 44,
|
|
BDB_MIPI_CONFIG = 52,
|
|
BDB_MIPI_SEQUENCE = 53,
|
|
BDB_COMPRESSION_PARAMETERS = 56,
|
|
BDB_GENERIC_DTD = 58,
|
|
BDB_SKIP = 254,
|
|
};
|
|
|
|
struct dsc_compression_parameters_entry {
|
|
u8 version_major: 4;
|
|
u8 version_minor: 4;
|
|
u8 rc_buffer_block_size: 2;
|
|
u8 reserved1: 6;
|
|
u8 rc_buffer_size;
|
|
u32 slices_per_line;
|
|
u8 line_buffer_depth: 4;
|
|
u8 reserved2: 4;
|
|
u8 block_prediction_enable: 1;
|
|
u8 reserved3: 7;
|
|
u8 max_bpp;
|
|
u8 reserved4: 1;
|
|
u8 support_8bpc: 1;
|
|
u8 support_10bpc: 1;
|
|
u8 support_12bpc: 1;
|
|
u8 reserved5: 4;
|
|
u16 slice_height;
|
|
} __attribute__((packed));
|
|
|
|
enum panel_type {
|
|
PANEL_TYPE_OPREGION = 0,
|
|
PANEL_TYPE_VBT = 1,
|
|
PANEL_TYPE_PNPID = 2,
|
|
PANEL_TYPE_FALLBACK = 3,
|
|
};
|
|
|
|
enum mipi_seq {
|
|
MIPI_SEQ_END = 0,
|
|
MIPI_SEQ_DEASSERT_RESET = 1,
|
|
MIPI_SEQ_INIT_OTP = 2,
|
|
MIPI_SEQ_DISPLAY_ON = 3,
|
|
MIPI_SEQ_DISPLAY_OFF = 4,
|
|
MIPI_SEQ_ASSERT_RESET = 5,
|
|
MIPI_SEQ_BACKLIGHT_ON = 6,
|
|
MIPI_SEQ_BACKLIGHT_OFF = 7,
|
|
MIPI_SEQ_TEAR_ON = 8,
|
|
MIPI_SEQ_TEAR_OFF = 9,
|
|
MIPI_SEQ_POWER_ON = 10,
|
|
MIPI_SEQ_POWER_OFF = 11,
|
|
MIPI_SEQ_MAX = 12,
|
|
};
|
|
|
|
enum mipi_seq_element {
|
|
MIPI_SEQ_ELEM_END = 0,
|
|
MIPI_SEQ_ELEM_SEND_PKT = 1,
|
|
MIPI_SEQ_ELEM_DELAY = 2,
|
|
MIPI_SEQ_ELEM_GPIO = 3,
|
|
MIPI_SEQ_ELEM_I2C = 4,
|
|
MIPI_SEQ_ELEM_SPI = 5,
|
|
MIPI_SEQ_ELEM_PMIC = 6,
|
|
MIPI_SEQ_ELEM_MAX = 7,
|
|
};
|
|
|
|
struct bdb_block_entry {
|
|
struct list_head node;
|
|
enum bdb_block_id section_id;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct vbt_header {
|
|
u8 signature[20];
|
|
u16 version;
|
|
u16 header_size;
|
|
u16 vbt_size;
|
|
u8 vbt_checksum;
|
|
u8 reserved0;
|
|
u32 bdb_offset;
|
|
u32 aim_offset[4];
|
|
};
|
|
|
|
struct bdb_header {
|
|
u8 signature[16];
|
|
u16 version;
|
|
u16 header_size;
|
|
u16 bdb_size;
|
|
};
|
|
|
|
struct lvds_lfp_data_ptr_table {
|
|
u16 offset;
|
|
u8 table_size;
|
|
} __attribute__((packed));
|
|
|
|
struct lvds_lfp_data_ptr {
|
|
struct lvds_lfp_data_ptr_table fp_timing;
|
|
struct lvds_lfp_data_ptr_table dvo_timing;
|
|
struct lvds_lfp_data_ptr_table panel_pnp_id;
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_lvds_lfp_data_ptrs {
|
|
u8 lvds_entries;
|
|
struct lvds_lfp_data_ptr ptr[16];
|
|
struct lvds_lfp_data_ptr_table panel_name;
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_general_features {
|
|
u8 panel_fitting: 2;
|
|
u8 flexaim: 1;
|
|
u8 msg_enable: 1;
|
|
u8 clear_screen: 3;
|
|
u8 color_flip: 1;
|
|
u8 download_ext_vbt: 1;
|
|
u8 enable_ssc: 1;
|
|
u8 ssc_freq: 1;
|
|
u8 enable_lfp_on_override: 1;
|
|
u8 disable_ssc_ddt: 1;
|
|
u8 underscan_vga_timings: 1;
|
|
u8 display_clock_mode: 1;
|
|
u8 vbios_hotplug_support: 1;
|
|
u8 disable_smooth_vision: 1;
|
|
u8 single_dvi: 1;
|
|
u8 rotate_180: 1;
|
|
u8 fdi_rx_polarity_inverted: 1;
|
|
u8 vbios_extended_mode: 1;
|
|
u8 copy_ilfp_dtd_to_sdvo_lvds_dtd: 1;
|
|
u8 panel_best_fit_timing: 1;
|
|
u8 ignore_strap_state: 1;
|
|
u8 legacy_monitor_detect;
|
|
u8 int_crt_support: 1;
|
|
u8 int_tv_support: 1;
|
|
u8 int_efp_support: 1;
|
|
u8 dp_ssc_enable: 1;
|
|
u8 dp_ssc_freq: 1;
|
|
u8 dp_ssc_dongle_supported: 1;
|
|
u8 rsvd11: 2;
|
|
u8 tc_hpd_retry_timeout: 7;
|
|
u8 rsvd12: 1;
|
|
u8 afc_startup_config: 2;
|
|
u8 rsvd13: 6;
|
|
};
|
|
|
|
struct bdb_general_definitions {
|
|
u8 crt_ddc_gmbus_pin;
|
|
u8 dpms_non_acpi: 1;
|
|
u8 skip_boot_crt_detect: 1;
|
|
u8 dpms_aim: 1;
|
|
u8 rsvd1: 5;
|
|
u8 boot_display[2];
|
|
u8 child_dev_size;
|
|
u8 devices[0];
|
|
};
|
|
|
|
struct bdb_driver_features {
|
|
u8 boot_dev_algorithm: 1;
|
|
u8 allow_display_switch_dvd: 1;
|
|
u8 allow_display_switch_dos: 1;
|
|
u8 hotplug_dvo: 1;
|
|
u8 dual_view_zoom: 1;
|
|
u8 int15h_hook: 1;
|
|
u8 sprite_in_clone: 1;
|
|
u8 primary_lfp_id: 1;
|
|
u16 boot_mode_x;
|
|
u16 boot_mode_y;
|
|
u8 boot_mode_bpp;
|
|
u8 boot_mode_refresh;
|
|
u16 enable_lfp_primary: 1;
|
|
u16 selective_mode_pruning: 1;
|
|
u16 dual_frequency: 1;
|
|
u16 render_clock_freq: 1;
|
|
u16 nt_clone_support: 1;
|
|
u16 power_scheme_ui: 1;
|
|
u16 sprite_display_assign: 1;
|
|
u16 cui_aspect_scaling: 1;
|
|
u16 preserve_aspect_ratio: 1;
|
|
u16 sdvo_device_power_down: 1;
|
|
u16 crt_hotplug: 1;
|
|
u16 lvds_config: 2;
|
|
u16 tv_hotplug: 1;
|
|
u16 hdmi_config: 2;
|
|
u8 static_display: 1;
|
|
u8 embedded_platform: 1;
|
|
u8 display_subsystem_enable: 1;
|
|
u8 reserved0: 5;
|
|
u16 legacy_crt_max_x;
|
|
u16 legacy_crt_max_y;
|
|
u8 legacy_crt_max_refresh;
|
|
u8 hdmi_termination: 1;
|
|
u8 cea861d_hdmi_support: 1;
|
|
u8 self_refresh_enable: 1;
|
|
u8 reserved1: 5;
|
|
u8 custom_vbt_version;
|
|
u16 rmpm_enabled: 1;
|
|
u16 s2ddt_enabled: 1;
|
|
u16 dpst_enabled: 1;
|
|
u16 bltclt_enabled: 1;
|
|
u16 adb_enabled: 1;
|
|
u16 drrs_enabled: 1;
|
|
u16 grs_enabled: 1;
|
|
u16 gpmt_enabled: 1;
|
|
u16 tbt_enabled: 1;
|
|
u16 psr_enabled: 1;
|
|
u16 ips_enabled: 1;
|
|
u16 dpfs_enabled: 1;
|
|
u16 dmrrs_enabled: 1;
|
|
u16 adt_enabled: 1;
|
|
u16 hpd_wake: 1;
|
|
u16 pc_feature_valid: 1;
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_compression_parameters {
|
|
u16 entry_size;
|
|
struct dsc_compression_parameters_entry data[16];
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_lvds_options {
|
|
u8 panel_type;
|
|
u8 panel_type2;
|
|
u8 pfit_mode: 2;
|
|
u8 pfit_text_mode_enhanced: 1;
|
|
u8 pfit_gfx_mode_enhanced: 1;
|
|
u8 pfit_ratio_auto: 1;
|
|
u8 pixel_dither: 1;
|
|
u8 lvds_edid: 1;
|
|
u8 rsvd2: 1;
|
|
u8 rsvd4;
|
|
u32 lvds_panel_channel_bits;
|
|
u16 ssc_bits;
|
|
u16 ssc_freq;
|
|
u16 ssc_ddt;
|
|
u16 panel_color_depth;
|
|
u32 dps_panel_type_bits;
|
|
u32 blt_control_type_bits;
|
|
u16 lcdvcc_s0_enable;
|
|
u32 rotation;
|
|
u32 position;
|
|
} __attribute__((packed));
|
|
|
|
struct generic_dtd_entry {
|
|
u32 pixel_clock;
|
|
u16 hactive;
|
|
u16 hblank;
|
|
u16 hfront_porch;
|
|
u16 hsync;
|
|
u16 vactive;
|
|
u16 vblank;
|
|
u16 vfront_porch;
|
|
u16 vsync;
|
|
u16 width_mm;
|
|
u16 height_mm;
|
|
u8 rsvd_flags: 6;
|
|
u8 vsync_positive_polarity: 1;
|
|
u8 hsync_positive_polarity: 1;
|
|
u8 rsvd[3];
|
|
};
|
|
|
|
struct bdb_generic_dtd {
|
|
u16 gdtd_size;
|
|
struct generic_dtd_entry dtd[0];
|
|
} __attribute__((packed));
|
|
|
|
struct lvds_fp_timing {
|
|
u16 x_res;
|
|
u16 y_res;
|
|
u32 lvds_reg;
|
|
u32 lvds_reg_val;
|
|
u32 pp_on_reg;
|
|
u32 pp_on_reg_val;
|
|
u32 pp_off_reg;
|
|
u32 pp_off_reg_val;
|
|
u32 pp_cycle_reg;
|
|
u32 pp_cycle_reg_val;
|
|
u32 pfit_reg;
|
|
u32 pfit_reg_val;
|
|
u16 terminator;
|
|
} __attribute__((packed));
|
|
|
|
struct lvds_dvo_timing {
|
|
u16 clock;
|
|
u8 hactive_lo;
|
|
u8 hblank_lo;
|
|
u8 hblank_hi: 4;
|
|
u8 hactive_hi: 4;
|
|
u8 vactive_lo;
|
|
u8 vblank_lo;
|
|
u8 vblank_hi: 4;
|
|
u8 vactive_hi: 4;
|
|
u8 hsync_off_lo;
|
|
u8 hsync_pulse_width_lo;
|
|
u8 vsync_pulse_width_lo: 4;
|
|
u8 vsync_off_lo: 4;
|
|
u8 vsync_pulse_width_hi: 2;
|
|
u8 vsync_off_hi: 2;
|
|
u8 hsync_pulse_width_hi: 2;
|
|
u8 hsync_off_hi: 2;
|
|
u8 himage_lo;
|
|
u8 vimage_lo;
|
|
u8 vimage_hi: 4;
|
|
u8 himage_hi: 4;
|
|
u8 h_border;
|
|
u8 v_border;
|
|
u8 rsvd1: 3;
|
|
u8 digital: 2;
|
|
u8 vsync_positive: 1;
|
|
u8 hsync_positive: 1;
|
|
u8 non_interlaced: 1;
|
|
};
|
|
|
|
struct lvds_pnp_id {
|
|
u16 mfg_name;
|
|
u16 product_code;
|
|
u32 serial;
|
|
u8 mfg_week;
|
|
u8 mfg_year;
|
|
} __attribute__((packed));
|
|
|
|
struct lvds_lfp_data_entry {
|
|
struct lvds_fp_timing fp_timing;
|
|
struct lvds_dvo_timing dvo_timing;
|
|
struct lvds_pnp_id pnp_id;
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_lvds_lfp_data {
|
|
struct lvds_lfp_data_entry data[16];
|
|
};
|
|
|
|
struct lvds_lfp_panel_name {
|
|
u8 name[13];
|
|
};
|
|
|
|
struct lvds_lfp_black_border {
|
|
u8 top;
|
|
u8 bottom;
|
|
u8 left;
|
|
u8 right;
|
|
};
|
|
|
|
struct bdb_lvds_lfp_data_tail {
|
|
struct lvds_lfp_panel_name panel_name[16];
|
|
u16 scaling_enable;
|
|
u8 seamless_drrs_min_refresh_rate[16];
|
|
u8 pixel_overlap_count[16];
|
|
struct lvds_lfp_black_border black_border[16];
|
|
u16 dual_lfp_port_sync_enable;
|
|
u16 gpu_dithering_for_banding_artifacts;
|
|
};
|
|
|
|
struct lfp_backlight_data_entry {
|
|
u8 type: 2;
|
|
u8 active_low_pwm: 1;
|
|
u8 obsolete1: 5;
|
|
u16 pwm_freq_hz;
|
|
u8 min_brightness;
|
|
u8 obsolete2;
|
|
u8 obsolete3;
|
|
} __attribute__((packed));
|
|
|
|
struct lfp_backlight_control_method {
|
|
u8 type: 4;
|
|
u8 controller: 4;
|
|
};
|
|
|
|
struct lfp_brightness_level {
|
|
u16 level;
|
|
u16 reserved;
|
|
};
|
|
|
|
struct bdb_lfp_backlight_data {
|
|
u8 entry_size;
|
|
struct lfp_backlight_data_entry data[16];
|
|
u8 level[16];
|
|
struct lfp_backlight_control_method backlight_control[16];
|
|
struct lfp_brightness_level brightness_level[16];
|
|
struct lfp_brightness_level brightness_min_level[16];
|
|
u8 brightness_precision_bits[16];
|
|
u16 hdr_dpcd_refresh_timeout[16];
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_sdvo_panel_dtds {
|
|
struct lvds_dvo_timing dtds[4];
|
|
};
|
|
|
|
struct bdb_sdvo_lvds_options {
|
|
u8 panel_backlight;
|
|
u8 h40_set_panel_type;
|
|
u8 panel_type;
|
|
u8 ssc_clk_freq;
|
|
u16 als_low_trip;
|
|
u16 als_high_trip;
|
|
u8 sclalarcoeff_tab_row_num;
|
|
u8 sclalarcoeff_tab_row_size;
|
|
u8 coefficient[8];
|
|
u8 panel_misc_bits_1;
|
|
u8 panel_misc_bits_2;
|
|
u8 panel_misc_bits_3;
|
|
u8 panel_misc_bits_4;
|
|
};
|
|
|
|
struct lfp_power_features {
|
|
u8 reserved1: 1;
|
|
u8 power_conservation_pref: 3;
|
|
u8 reserved2: 1;
|
|
u8 lace_enabled_status: 1;
|
|
u8 lace_support: 1;
|
|
u8 als_enable: 1;
|
|
};
|
|
|
|
struct als_data_entry {
|
|
u16 backlight_adjust;
|
|
u16 lux;
|
|
};
|
|
|
|
struct aggressiveness_profile_entry {
|
|
u8 dpst_aggressiveness: 4;
|
|
u8 lace_aggressiveness: 4;
|
|
};
|
|
|
|
struct aggressiveness_profile2_entry {
|
|
u8 opst_aggressiveness: 4;
|
|
u8 elp_aggressiveness: 4;
|
|
};
|
|
|
|
struct bdb_lfp_power {
|
|
struct lfp_power_features features;
|
|
struct als_data_entry als[5];
|
|
u8 lace_aggressiveness_profile: 3;
|
|
u8 reserved1: 5;
|
|
u16 dpst;
|
|
u16 psr;
|
|
u16 drrs;
|
|
u16 lace_support;
|
|
u16 adt;
|
|
u16 dmrrs;
|
|
u16 adb;
|
|
u16 lace_enabled_status;
|
|
struct aggressiveness_profile_entry aggressiveness[16];
|
|
u16 hobl;
|
|
u16 vrr_feature_enabled;
|
|
u16 elp;
|
|
u16 opst;
|
|
struct aggressiveness_profile2_entry aggressiveness2[16];
|
|
} __attribute__((packed));
|
|
|
|
struct edp_fast_link_params {
|
|
u8 rate: 4;
|
|
u8 lanes: 4;
|
|
u8 preemphasis: 4;
|
|
u8 vswing: 4;
|
|
};
|
|
|
|
struct edp_pwm_delays {
|
|
u16 pwm_on_to_backlight_enable;
|
|
u16 backlight_disable_to_pwm_off;
|
|
};
|
|
|
|
struct edp_full_link_params {
|
|
u8 preemphasis: 4;
|
|
u8 vswing: 4;
|
|
};
|
|
|
|
struct edp_apical_params {
|
|
u32 panel_oui;
|
|
u32 dpcd_base_address;
|
|
u32 dpcd_idridix_control_0;
|
|
u32 dpcd_option_select;
|
|
u32 dpcd_backlight;
|
|
u32 ambient_light;
|
|
u32 backlight_scale;
|
|
};
|
|
|
|
struct bdb_edp {
|
|
struct edp_power_seq power_seqs[16];
|
|
u32 color_depth;
|
|
struct edp_fast_link_params fast_link_params[16];
|
|
u32 sdrrs_msa_timing_delay;
|
|
u16 edp_s3d_feature;
|
|
u16 edp_t3_optimization;
|
|
u64 edp_vswing_preemph;
|
|
u16 fast_link_training;
|
|
u16 dpcd_600h_write_required;
|
|
struct edp_pwm_delays pwm_delays[16];
|
|
u16 full_link_params_provided;
|
|
struct edp_full_link_params full_link_params[16];
|
|
u16 apical_enable;
|
|
struct edp_apical_params apical_params[16];
|
|
u16 edp_fast_link_training_rate[16];
|
|
u16 edp_max_port_link_rate[16];
|
|
} __attribute__((packed));
|
|
|
|
struct psr_table {
|
|
u8 full_link: 1;
|
|
u8 require_aux_to_wakeup: 1;
|
|
u8 feature_bits_rsvd: 6;
|
|
u8 idle_frames: 4;
|
|
u8 lines_to_wait: 3;
|
|
u8 wait_times_rsvd: 1;
|
|
u16 tp1_wakeup_time;
|
|
u16 tp2_tp3_wakeup_time;
|
|
};
|
|
|
|
struct bdb_psr {
|
|
struct psr_table psr_table[16];
|
|
u32 psr2_tp2_tp3_wakeup_time;
|
|
};
|
|
|
|
struct bdb_mipi_config {
|
|
struct mipi_config config[6];
|
|
struct mipi_pps_data pps[6];
|
|
struct edp_pwm_delays pwm_delays[6];
|
|
u8 pmic_i2c_bus_number[6];
|
|
} __attribute__((packed));
|
|
|
|
struct bdb_mipi_sequence {
|
|
u8 version;
|
|
u8 data[0];
|
|
};
|
|
|
|
enum intel_sbi_destination {
|
|
SBI_ICLK = 0,
|
|
SBI_MPHY = 1,
|
|
};
|
|
|
|
struct iclkip_params {
|
|
u32 iclk_virtual_root_freq;
|
|
u32 iclk_pi_range;
|
|
u32 divsel;
|
|
u32 phaseinc;
|
|
u32 auxdiv;
|
|
u32 phasedir;
|
|
u32 desired_divisor;
|
|
};
|
|
|
|
enum intel_quirk_id {
|
|
QUIRK_BACKLIGHT_PRESENT = 0,
|
|
QUIRK_INCREASE_DDI_DISABLED_TIME = 1,
|
|
QUIRK_INCREASE_T12_DELAY = 2,
|
|
QUIRK_INVERT_BRIGHTNESS = 3,
|
|
QUIRK_LVDS_SSC_DISABLE = 4,
|
|
QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK = 5,
|
|
};
|
|
|
|
enum icl_port_dpll_id {
|
|
ICL_PORT_DPLL_DEFAULT = 0,
|
|
ICL_PORT_DPLL_MG_PHY = 1,
|
|
ICL_PORT_DPLL_COUNT = 2,
|
|
};
|
|
|
|
struct intel_dkl_phy_reg {
|
|
u32 reg: 24;
|
|
u32 bank_idx: 4;
|
|
};
|
|
|
|
struct container_dev {
|
|
struct device dev;
|
|
int (*offline)(struct container_dev *);
|
|
};
|
|
|
|
typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t);
|
|
|
|
struct e1000_reg_info {
|
|
u32 ofs;
|
|
char *name;
|
|
};
|
|
|
|
enum e1000_state_t {
|
|
__E1000_TESTING = 0,
|
|
__E1000_RESETTING = 1,
|
|
__E1000_ACCESS_SHARED_RESOURCE = 2,
|
|
__E1000_DOWN = 3,
|
|
};
|
|
|
|
enum pkt_hash_types {
|
|
PKT_HASH_TYPE_NONE = 0,
|
|
PKT_HASH_TYPE_L2 = 1,
|
|
PKT_HASH_TYPE_L3 = 2,
|
|
PKT_HASH_TYPE_L4 = 3,
|
|
};
|
|
|
|
enum gro_result {
|
|
GRO_MERGED = 0,
|
|
GRO_MERGED_FREE = 1,
|
|
GRO_HELD = 2,
|
|
GRO_NORMAL = 3,
|
|
GRO_CONSUMED = 4,
|
|
};
|
|
|
|
enum hwtstamp_tx_types {
|
|
HWTSTAMP_TX_OFF = 0,
|
|
HWTSTAMP_TX_ON = 1,
|
|
HWTSTAMP_TX_ONESTEP_SYNC = 2,
|
|
HWTSTAMP_TX_ONESTEP_P2P = 3,
|
|
__HWTSTAMP_TX_CNT = 4,
|
|
};
|
|
|
|
enum hwtstamp_rx_filters {
|
|
HWTSTAMP_FILTER_NONE = 0,
|
|
HWTSTAMP_FILTER_ALL = 1,
|
|
HWTSTAMP_FILTER_SOME = 2,
|
|
HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
|
|
HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
|
|
HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
|
|
HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
|
|
HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
|
|
HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
|
|
HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
|
|
HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
|
|
HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
|
|
HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
|
|
HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
|
|
HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
|
|
HWTSTAMP_FILTER_NTP_ALL = 15,
|
|
__HWTSTAMP_FILTER_CNT = 16,
|
|
};
|
|
|
|
enum {
|
|
NAPI_STATE_SCHED = 0,
|
|
NAPI_STATE_MISSED = 1,
|
|
NAPI_STATE_DISABLE = 2,
|
|
NAPI_STATE_NPSVC = 3,
|
|
NAPI_STATE_LISTED = 4,
|
|
NAPI_STATE_NO_BUSY_POLL = 5,
|
|
NAPI_STATE_IN_BUSY_POLL = 6,
|
|
NAPI_STATE_PREFER_BUSY_POLL = 7,
|
|
NAPI_STATE_THREADED = 8,
|
|
NAPI_STATE_SCHED_THREADED = 9,
|
|
};
|
|
|
|
enum latency_range {
|
|
lowest_latency = 0,
|
|
low_latency = 1,
|
|
bulk_latency = 2,
|
|
latency_invalid = 255,
|
|
};
|
|
|
|
enum pci_ers_result {
|
|
PCI_ERS_RESULT_NONE = 1,
|
|
PCI_ERS_RESULT_CAN_RECOVER = 2,
|
|
PCI_ERS_RESULT_NEED_RESET = 3,
|
|
PCI_ERS_RESULT_DISCONNECT = 4,
|
|
PCI_ERS_RESULT_RECOVERED = 5,
|
|
PCI_ERS_RESULT_NO_AER_DRIVER = 6,
|
|
};
|
|
|
|
struct trace_event_raw_e1000e_trace_mac_register {
|
|
struct trace_entry ent;
|
|
uint32_t reg;
|
|
char __data[0];
|
|
};
|
|
|
|
union e1000_rx_desc_extended {
|
|
struct {
|
|
__le64 buffer_addr;
|
|
__le64 reserved;
|
|
} read;
|
|
struct {
|
|
struct {
|
|
__le32 mrq;
|
|
union {
|
|
__le32 rss;
|
|
struct {
|
|
__le16 ip_id;
|
|
__le16 csum;
|
|
} csum_ip;
|
|
} hi_dword;
|
|
} lower;
|
|
struct {
|
|
__le32 status_error;
|
|
__le16 length;
|
|
__le16 vlan;
|
|
} upper;
|
|
} wb;
|
|
};
|
|
|
|
union e1000_rx_desc_packet_split {
|
|
struct {
|
|
__le64 buffer_addr[4];
|
|
} read;
|
|
struct {
|
|
struct {
|
|
__le32 mrq;
|
|
union {
|
|
__le32 rss;
|
|
struct {
|
|
__le16 ip_id;
|
|
__le16 csum;
|
|
} csum_ip;
|
|
} hi_dword;
|
|
} lower;
|
|
struct {
|
|
__le32 status_error;
|
|
__le16 length0;
|
|
__le16 vlan;
|
|
} middle;
|
|
struct {
|
|
__le16 header_status;
|
|
__le16 length[3];
|
|
} upper;
|
|
__le64 reserved;
|
|
} wb;
|
|
};
|
|
|
|
struct e1000_tx_desc {
|
|
__le64 buffer_addr;
|
|
union {
|
|
__le32 data;
|
|
struct {
|
|
__le16 length;
|
|
u8 cso;
|
|
u8 cmd;
|
|
} flags;
|
|
} lower;
|
|
union {
|
|
__le32 data;
|
|
struct {
|
|
u8 status;
|
|
u8 css;
|
|
__le16 special;
|
|
} fields;
|
|
} upper;
|
|
};
|
|
|
|
struct e1000_context_desc {
|
|
union {
|
|
__le32 ip_config;
|
|
struct {
|
|
u8 ipcss;
|
|
u8 ipcso;
|
|
__le16 ipcse;
|
|
} ip_fields;
|
|
} lower_setup;
|
|
union {
|
|
__le32 tcp_config;
|
|
struct {
|
|
u8 tucss;
|
|
u8 tucso;
|
|
__le16 tucse;
|
|
} tcp_fields;
|
|
} upper_setup;
|
|
__le32 cmd_and_length;
|
|
union {
|
|
__le32 data;
|
|
struct {
|
|
u8 status;
|
|
u8 hdr_len;
|
|
__le16 mss;
|
|
} fields;
|
|
} tcp_seg_setup;
|
|
};
|
|
|
|
struct my_u0 {
|
|
__le64 a;
|
|
__le64 b;
|
|
};
|
|
|
|
struct my_u1 {
|
|
__le64 a;
|
|
__le64 b;
|
|
__le64 c;
|
|
__le64 d;
|
|
};
|
|
|
|
typedef enum gro_result gro_result_t;
|
|
|
|
struct trace_event_data_offsets_e1000e_trace_mac_register {};
|
|
|
|
struct input_led {
|
|
struct led_classdev cdev;
|
|
struct input_handle *handle;
|
|
unsigned int code;
|
|
};
|
|
|
|
struct input_leds {
|
|
struct input_handle handle;
|
|
unsigned int num_leds;
|
|
struct input_led leds[0];
|
|
};
|
|
|
|
struct lirc_scancode {
|
|
__u64 timestamp;
|
|
__u16 flags;
|
|
__u16 rc_proto;
|
|
__u32 keycode;
|
|
__u64 scancode;
|
|
};
|
|
|
|
struct lirc_fh {
|
|
struct list_head list;
|
|
struct rc_dev *rc;
|
|
int carrier_low;
|
|
struct {
|
|
union {
|
|
struct __kfifo kfifo;
|
|
unsigned int *type;
|
|
const unsigned int *const_type;
|
|
char (*rectype)[0];
|
|
unsigned int *ptr;
|
|
const unsigned int *ptr_const;
|
|
};
|
|
unsigned int buf[0];
|
|
} rawir;
|
|
struct {
|
|
union {
|
|
struct __kfifo kfifo;
|
|
struct lirc_scancode *type;
|
|
const struct lirc_scancode *const_type;
|
|
char (*rectype)[0];
|
|
struct lirc_scancode *ptr;
|
|
const struct lirc_scancode *ptr_const;
|
|
};
|
|
struct lirc_scancode buf[0];
|
|
} scancodes;
|
|
wait_queue_head_t wait_poll;
|
|
u8 send_mode;
|
|
u8 rec_mode;
|
|
};
|
|
|
|
struct ir_raw_event {
|
|
union {
|
|
u32 duration;
|
|
u32 carrier;
|
|
};
|
|
u8 duty_cycle;
|
|
unsigned int pulse: 1;
|
|
unsigned int overflow: 1;
|
|
unsigned int timeout: 1;
|
|
unsigned int carrier_report: 1;
|
|
};
|
|
|
|
struct ir_raw_event_ctrl {
|
|
struct list_head list;
|
|
struct task_struct *thread;
|
|
struct {
|
|
union {
|
|
struct __kfifo kfifo;
|
|
struct ir_raw_event *type;
|
|
const struct ir_raw_event *const_type;
|
|
char (*rectype)[0];
|
|
struct ir_raw_event *ptr;
|
|
const struct ir_raw_event *ptr_const;
|
|
};
|
|
struct ir_raw_event buf[512];
|
|
} kfifo;
|
|
ktime_t last_event;
|
|
struct rc_dev *dev;
|
|
spinlock_t edge_spinlock;
|
|
struct timer_list edge_handle;
|
|
struct ir_raw_event prev_ev;
|
|
struct ir_raw_event this_ev;
|
|
u32 bpf_sample;
|
|
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *progs;
|
|
};
|
|
|
|
struct cpuidle_governor {
|
|
char name[16];
|
|
struct list_head governor_list;
|
|
unsigned int rating;
|
|
int (*enable)(struct cpuidle_driver *, struct cpuidle_device *);
|
|
void (*disable)(struct cpuidle_driver *, struct cpuidle_device *);
|
|
int (*select)(struct cpuidle_driver *, struct cpuidle_device *, bool *);
|
|
void (*reflect)(struct cpuidle_device *, int);
|
|
};
|
|
|
|
struct tcg_pcr_event2_head {
|
|
u32 pcr_idx;
|
|
u32 event_type;
|
|
u32 count;
|
|
struct tpm_digest digests[0];
|
|
};
|
|
|
|
struct tcg_efi_specid_event_algs {
|
|
u16 alg_id;
|
|
u16 digest_size;
|
|
};
|
|
|
|
struct tcg_efi_specid_event_head {
|
|
u8 signature[16];
|
|
u32 platform_class;
|
|
u8 spec_version_minor;
|
|
u8 spec_version_major;
|
|
u8 spec_errata;
|
|
u8 uintnsize;
|
|
u32 num_algs;
|
|
struct tcg_efi_specid_event_algs digest_sizes[0];
|
|
};
|
|
|
|
struct tcg_event_field {
|
|
u32 event_size;
|
|
u8 event[0];
|
|
};
|
|
|
|
struct tcg_pcr_event {
|
|
u32 pcr_idx;
|
|
u32 event_type;
|
|
u8 digest[20];
|
|
u32 event_size;
|
|
u8 event[0];
|
|
};
|
|
|
|
struct linux_efi_tpm_eventlog {
|
|
u32 size;
|
|
u32 final_events_preboot_size;
|
|
u8 version;
|
|
u8 log[0];
|
|
};
|
|
|
|
struct efi_tcg2_final_events_table {
|
|
u64 version;
|
|
u64 nr_events;
|
|
u8 events[0];
|
|
};
|
|
|
|
enum efi_rts_ids {
|
|
EFI_NONE = 0,
|
|
EFI_GET_TIME = 1,
|
|
EFI_SET_TIME = 2,
|
|
EFI_GET_WAKEUP_TIME = 3,
|
|
EFI_SET_WAKEUP_TIME = 4,
|
|
EFI_GET_VARIABLE = 5,
|
|
EFI_GET_NEXT_VARIABLE = 6,
|
|
EFI_SET_VARIABLE = 7,
|
|
EFI_QUERY_VARIABLE_INFO = 8,
|
|
EFI_GET_NEXT_HIGH_MONO_COUNT = 9,
|
|
EFI_RESET_SYSTEM = 10,
|
|
EFI_UPDATE_CAPSULE = 11,
|
|
EFI_QUERY_CAPSULE_CAPS = 12,
|
|
};
|
|
|
|
struct efi_runtime_work {
|
|
void *arg1;
|
|
void *arg2;
|
|
void *arg3;
|
|
void *arg4;
|
|
void *arg5;
|
|
efi_status_t status;
|
|
struct work_struct work;
|
|
enum efi_rts_ids efi_rts_id;
|
|
struct completion efi_rts_comp;
|
|
};
|
|
|
|
struct snd_minor {
|
|
int type;
|
|
int card;
|
|
int device;
|
|
const struct file_operations *f_ops;
|
|
void *private_data;
|
|
struct device *dev;
|
|
struct snd_card *card_ptr;
|
|
};
|
|
|
|
typedef int (*hda_codec_patch_t)(struct hda_codec *);
|
|
|
|
struct hda_codec_driver {
|
|
struct hdac_driver core;
|
|
const struct hda_device_id *id;
|
|
};
|
|
|
|
struct cmsghdr {
|
|
__kernel_size_t cmsg_len;
|
|
int cmsg_level;
|
|
int cmsg_type;
|
|
};
|
|
|
|
struct scm_timestamping64 {
|
|
struct __kernel_timespec ts[3];
|
|
};
|
|
|
|
struct scm_timestamping {
|
|
struct __kernel_old_timespec ts[3];
|
|
};
|
|
|
|
enum tc_mq_command {
|
|
TC_MQ_CREATE = 0,
|
|
TC_MQ_DESTROY = 1,
|
|
TC_MQ_STATS = 2,
|
|
TC_MQ_GRAFT = 3,
|
|
};
|
|
|
|
struct tc_qopt_offload_stats {
|
|
struct gnet_stats_basic_sync *bstats;
|
|
struct gnet_stats_queue *qstats;
|
|
};
|
|
|
|
struct tc_mq_opt_offload_graft_params {
|
|
unsigned long queue;
|
|
u32 child_handle;
|
|
};
|
|
|
|
struct tc_mq_qopt_offload {
|
|
enum tc_mq_command command;
|
|
u32 handle;
|
|
union {
|
|
struct tc_qopt_offload_stats stats;
|
|
struct tc_mq_opt_offload_graft_params graft_params;
|
|
};
|
|
};
|
|
|
|
struct mq_sched {
|
|
struct Qdisc **qdiscs;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_RSS_UNSPEC = 0,
|
|
ETHTOOL_A_RSS_HEADER = 1,
|
|
ETHTOOL_A_RSS_CONTEXT = 2,
|
|
ETHTOOL_A_RSS_HFUNC = 3,
|
|
ETHTOOL_A_RSS_INDIR = 4,
|
|
ETHTOOL_A_RSS_HKEY = 5,
|
|
__ETHTOOL_A_RSS_CNT = 6,
|
|
ETHTOOL_A_RSS_MAX = 5,
|
|
};
|
|
|
|
struct rss_req_info {
|
|
struct ethnl_req_info base;
|
|
u32 rss_context;
|
|
};
|
|
|
|
struct rss_reply_data {
|
|
struct ethnl_reply_data base;
|
|
u32 indir_size;
|
|
u32 hkey_size;
|
|
u32 hfunc;
|
|
u32 *indir_table;
|
|
u8 *hkey;
|
|
};
|
|
|
|
struct nf_queue_entry;
|
|
|
|
struct nf_ipv6_ops {
|
|
void (*route_input)(struct sk_buff *);
|
|
int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
|
|
int (*reroute)(struct sk_buff *, const struct nf_queue_entry *);
|
|
};
|
|
|
|
struct nf_queue_entry {
|
|
struct list_head list;
|
|
struct sk_buff *skb;
|
|
unsigned int id;
|
|
unsigned int hook_index;
|
|
struct nf_hook_state state;
|
|
u16 size;
|
|
};
|
|
|
|
struct ip_rt_info {
|
|
__be32 daddr;
|
|
__be32 saddr;
|
|
u_int8_t tos;
|
|
u_int32_t mark;
|
|
};
|
|
|
|
struct ip_tunnel_encap_ops {
|
|
size_t (*encap_hlen)(struct ip_tunnel_encap *);
|
|
int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *);
|
|
int (*err_handler)(struct sk_buff *, u32);
|
|
};
|
|
|
|
enum {
|
|
IFLA_IPTUN_UNSPEC = 0,
|
|
IFLA_IPTUN_LINK = 1,
|
|
IFLA_IPTUN_LOCAL = 2,
|
|
IFLA_IPTUN_REMOTE = 3,
|
|
IFLA_IPTUN_TTL = 4,
|
|
IFLA_IPTUN_TOS = 5,
|
|
IFLA_IPTUN_ENCAP_LIMIT = 6,
|
|
IFLA_IPTUN_FLOWINFO = 7,
|
|
IFLA_IPTUN_FLAGS = 8,
|
|
IFLA_IPTUN_PROTO = 9,
|
|
IFLA_IPTUN_PMTUDISC = 10,
|
|
IFLA_IPTUN_6RD_PREFIX = 11,
|
|
IFLA_IPTUN_6RD_RELAY_PREFIX = 12,
|
|
IFLA_IPTUN_6RD_PREFIXLEN = 13,
|
|
IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14,
|
|
IFLA_IPTUN_ENCAP_TYPE = 15,
|
|
IFLA_IPTUN_ENCAP_FLAGS = 16,
|
|
IFLA_IPTUN_ENCAP_SPORT = 17,
|
|
IFLA_IPTUN_ENCAP_DPORT = 18,
|
|
IFLA_IPTUN_COLLECT_METADATA = 19,
|
|
IFLA_IPTUN_FWMARK = 20,
|
|
__IFLA_IPTUN_MAX = 21,
|
|
};
|
|
|
|
enum lwtunnel_ip_t {
|
|
LWTUNNEL_IP_UNSPEC = 0,
|
|
LWTUNNEL_IP_ID = 1,
|
|
LWTUNNEL_IP_DST = 2,
|
|
LWTUNNEL_IP_SRC = 3,
|
|
LWTUNNEL_IP_TTL = 4,
|
|
LWTUNNEL_IP_TOS = 5,
|
|
LWTUNNEL_IP_FLAGS = 6,
|
|
LWTUNNEL_IP_PAD = 7,
|
|
LWTUNNEL_IP_OPTS = 8,
|
|
__LWTUNNEL_IP_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
LWTUNNEL_IP_OPTS_UNSPEC = 0,
|
|
LWTUNNEL_IP_OPTS_GENEVE = 1,
|
|
LWTUNNEL_IP_OPTS_VXLAN = 2,
|
|
LWTUNNEL_IP_OPTS_ERSPAN = 3,
|
|
__LWTUNNEL_IP_OPTS_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
LWTUNNEL_IP_OPT_GENEVE_UNSPEC = 0,
|
|
LWTUNNEL_IP_OPT_GENEVE_CLASS = 1,
|
|
LWTUNNEL_IP_OPT_GENEVE_TYPE = 2,
|
|
LWTUNNEL_IP_OPT_GENEVE_DATA = 3,
|
|
__LWTUNNEL_IP_OPT_GENEVE_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0,
|
|
LWTUNNEL_IP_OPT_VXLAN_GBP = 1,
|
|
__LWTUNNEL_IP_OPT_VXLAN_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
LWTUNNEL_IP_OPT_ERSPAN_UNSPEC = 0,
|
|
LWTUNNEL_IP_OPT_ERSPAN_VER = 1,
|
|
LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2,
|
|
LWTUNNEL_IP_OPT_ERSPAN_DIR = 3,
|
|
LWTUNNEL_IP_OPT_ERSPAN_HWID = 4,
|
|
__LWTUNNEL_IP_OPT_ERSPAN_MAX = 5,
|
|
};
|
|
|
|
enum lwtunnel_ip6_t {
|
|
LWTUNNEL_IP6_UNSPEC = 0,
|
|
LWTUNNEL_IP6_ID = 1,
|
|
LWTUNNEL_IP6_DST = 2,
|
|
LWTUNNEL_IP6_SRC = 3,
|
|
LWTUNNEL_IP6_HOPLIMIT = 4,
|
|
LWTUNNEL_IP6_TC = 5,
|
|
LWTUNNEL_IP6_FLAGS = 6,
|
|
LWTUNNEL_IP6_PAD = 7,
|
|
LWTUNNEL_IP6_OPTS = 8,
|
|
__LWTUNNEL_IP6_MAX = 9,
|
|
};
|
|
|
|
struct geneve_opt {
|
|
__be16 opt_class;
|
|
u8 type;
|
|
u8 length: 5;
|
|
u8 r3: 1;
|
|
u8 r2: 1;
|
|
u8 r1: 1;
|
|
u8 opt_data[0];
|
|
};
|
|
|
|
struct vxlan_metadata {
|
|
u32 gbp;
|
|
};
|
|
|
|
struct seg6_pernet_data {
|
|
struct mutex lock;
|
|
struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src;
|
|
};
|
|
|
|
struct ipv6_sr_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
__u8 type;
|
|
__u8 segments_left;
|
|
__u8 first_segment;
|
|
__u8 flags;
|
|
__u16 tag;
|
|
struct in6_addr segments[0];
|
|
};
|
|
|
|
struct group_source_req {
|
|
__u32 gsr_interface;
|
|
struct __kernel_sockaddr_storage gsr_group;
|
|
struct __kernel_sockaddr_storage gsr_source;
|
|
};
|
|
|
|
struct compat_group_source_req {
|
|
__u32 gsr_interface;
|
|
struct __kernel_sockaddr_storage gsr_group;
|
|
struct __kernel_sockaddr_storage gsr_source;
|
|
} __attribute__((packed));
|
|
|
|
struct group_filter {
|
|
union {
|
|
struct {
|
|
__u32 gf_interface_aux;
|
|
struct __kernel_sockaddr_storage gf_group_aux;
|
|
__u32 gf_fmode_aux;
|
|
__u32 gf_numsrc_aux;
|
|
struct __kernel_sockaddr_storage gf_slist[1];
|
|
};
|
|
struct {
|
|
__u32 gf_interface;
|
|
struct __kernel_sockaddr_storage gf_group;
|
|
__u32 gf_fmode;
|
|
__u32 gf_numsrc;
|
|
struct __kernel_sockaddr_storage gf_slist_flex[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct ipv6_mreq {
|
|
struct in6_addr ipv6mr_multiaddr;
|
|
int ipv6mr_ifindex;
|
|
};
|
|
|
|
struct compat_group_req {
|
|
__u32 gr_interface;
|
|
struct __kernel_sockaddr_storage gr_group;
|
|
} __attribute__((packed));
|
|
|
|
struct group_req {
|
|
__u32 gr_interface;
|
|
struct __kernel_sockaddr_storage gr_group;
|
|
};
|
|
|
|
struct compat_group_filter {
|
|
union {
|
|
struct {
|
|
__u32 gf_interface_aux;
|
|
struct __kernel_sockaddr_storage gf_group_aux;
|
|
__u32 gf_fmode_aux;
|
|
__u32 gf_numsrc_aux;
|
|
struct __kernel_sockaddr_storage gf_slist[1];
|
|
} __attribute__((packed));
|
|
struct {
|
|
__u32 gf_interface;
|
|
struct __kernel_sockaddr_storage gf_group;
|
|
__u32 gf_fmode;
|
|
__u32 gf_numsrc;
|
|
struct __kernel_sockaddr_storage gf_slist_flex[0];
|
|
} __attribute__((packed));
|
|
};
|
|
} __attribute__((packed));
|
|
|
|
struct ip6_mtuinfo {
|
|
struct sockaddr_in6 ip6m_addr;
|
|
__u32 ip6m_mtu;
|
|
};
|
|
|
|
struct xdr_skb_reader {
|
|
struct sk_buff *skb;
|
|
unsigned int offset;
|
|
size_t count;
|
|
__wsum csum;
|
|
};
|
|
|
|
typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t);
|
|
|
|
typedef void (*btf_trace_rpcgss_import_ctx)(void *, int);
|
|
|
|
typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32);
|
|
|
|
struct gss_cred;
|
|
|
|
typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *);
|
|
|
|
enum rpc_gss_svc {
|
|
RPC_GSS_SVC_NONE = 1,
|
|
RPC_GSS_SVC_INTEGRITY = 2,
|
|
RPC_GSS_SVC_PRIVACY = 3,
|
|
};
|
|
|
|
struct gss_cl_ctx;
|
|
|
|
struct gss_upcall_msg;
|
|
|
|
struct gss_cred {
|
|
struct rpc_cred gc_base;
|
|
enum rpc_gss_svc gc_service;
|
|
struct gss_cl_ctx __attribute__((btf_type_tag("rcu"))) *gc_ctx;
|
|
struct gss_upcall_msg *gc_upcall;
|
|
const char *gc_principal;
|
|
unsigned long gc_upcall_timestamp;
|
|
};
|
|
|
|
enum rpc_gss_proc {
|
|
RPC_GSS_PROC_DATA = 0,
|
|
RPC_GSS_PROC_INIT = 1,
|
|
RPC_GSS_PROC_CONTINUE_INIT = 2,
|
|
RPC_GSS_PROC_DESTROY = 3,
|
|
};
|
|
|
|
struct gss_cl_ctx {
|
|
refcount_t count;
|
|
enum rpc_gss_proc gc_proc;
|
|
u32 gc_seq;
|
|
u32 gc_seq_xmit;
|
|
spinlock_t gc_seq_lock;
|
|
struct gss_ctx *gc_gss_ctx;
|
|
struct xdr_netobj gc_wire_ctx;
|
|
struct xdr_netobj gc_acceptor;
|
|
u32 gc_win;
|
|
unsigned long gc_expiry;
|
|
struct callback_head gc_rcu;
|
|
};
|
|
|
|
typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32);
|
|
|
|
struct rpc_gss_wire_cred;
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *);
|
|
|
|
struct rpc_gss_wire_cred {
|
|
u32 gc_v;
|
|
u32 gc_proc;
|
|
u32 gc_seq;
|
|
u32 gc_svc;
|
|
struct xdr_netobj gc_ctx;
|
|
};
|
|
|
|
typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool);
|
|
|
|
typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32);
|
|
|
|
typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *);
|
|
|
|
typedef void (*btf_trace_rpcgss_upcall_result)(void *, u32, int);
|
|
|
|
typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *);
|
|
|
|
typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *);
|
|
|
|
struct trace_event_raw_rpcgss_import_ctx {
|
|
struct trace_entry ent;
|
|
int status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_gssapi_event {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 maj_stat;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_ctx_class {
|
|
struct trace_entry ent;
|
|
const void *cred;
|
|
unsigned long service;
|
|
u32 __data_loc_principal;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_gssapi_class {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 maj_stat;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_wrap_failed {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_unwrap_failed {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_seqno_bad {
|
|
struct trace_entry ent;
|
|
u32 expected;
|
|
u32 received;
|
|
u32 xid;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_accept_upcall {
|
|
struct trace_entry ent;
|
|
u32 minor_status;
|
|
unsigned long major_status;
|
|
u32 xid;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_authenticate {
|
|
struct trace_entry ent;
|
|
u32 seqno;
|
|
u32 xid;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_unwrap_failed {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_bad_seqno {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 expected;
|
|
u32 received;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_seqno {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
u32 seqno;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_need_reencode {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
u32 seq_xmit;
|
|
u32 seqno;
|
|
bool ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_update_slack {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
const void *auth;
|
|
unsigned int rslack;
|
|
unsigned int ralign;
|
|
unsigned int verfsize;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_seqno_class {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 seqno;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_svc_seqno_low {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 seqno;
|
|
u32 min;
|
|
u32 max;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_upcall_msg {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_upcall_result {
|
|
struct trace_entry ent;
|
|
u32 uid;
|
|
int result;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_context {
|
|
struct trace_entry ent;
|
|
unsigned long expiry;
|
|
unsigned long now;
|
|
unsigned int timeout;
|
|
u32 window_size;
|
|
int len;
|
|
u32 __data_loc_acceptor;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_createauth {
|
|
struct trace_entry ent;
|
|
unsigned int flavor;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcgss_oid_to_mech {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_oid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_ctx_class {
|
|
u32 principal;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_gssapi_class {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_wrap_failed {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_unwrap_failed {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_seqno_bad {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_accept_upcall {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_authenticate {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_upcall_msg {
|
|
u32 msg;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_context {
|
|
u32 acceptor;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_oid_to_mech {
|
|
u32 oid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcgss_gssapi_event {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_import_ctx {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_unwrap_failed {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_bad_seqno {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_seqno {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_need_reencode {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_update_slack {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_seqno_class {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_svc_seqno_low {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_upcall_result {};
|
|
|
|
struct trace_event_data_offsets_rpcgss_createauth {};
|
|
|
|
enum sta_stats_type {
|
|
STA_STATS_RATE_TYPE_INVALID = 0,
|
|
STA_STATS_RATE_TYPE_LEGACY = 1,
|
|
STA_STATS_RATE_TYPE_HT = 2,
|
|
STA_STATS_RATE_TYPE_VHT = 3,
|
|
STA_STATS_RATE_TYPE_HE = 4,
|
|
STA_STATS_RATE_TYPE_S1G = 5,
|
|
STA_STATS_RATE_TYPE_EHT = 6,
|
|
};
|
|
|
|
enum ieee80211_s1g_actioncode {
|
|
WLAN_S1G_AID_SWITCH_REQUEST = 0,
|
|
WLAN_S1G_AID_SWITCH_RESPONSE = 1,
|
|
WLAN_S1G_SYNC_CONTROL = 2,
|
|
WLAN_S1G_STA_INFO_ANNOUNCE = 3,
|
|
WLAN_S1G_EDCA_PARAM_SET = 4,
|
|
WLAN_S1G_EL_OPERATION = 5,
|
|
WLAN_S1G_TWT_SETUP = 6,
|
|
WLAN_S1G_TWT_TEARDOWN = 7,
|
|
WLAN_S1G_SECT_GROUP_ID_LIST = 8,
|
|
WLAN_S1G_SECT_ID_FEEDBACK = 9,
|
|
WLAN_S1G_TWT_INFORMATION = 11,
|
|
};
|
|
|
|
enum ieee80211_twt_setup_cmd {
|
|
TWT_SETUP_CMD_REQUEST = 0,
|
|
TWT_SETUP_CMD_SUGGEST = 1,
|
|
TWT_SETUP_CMD_DEMAND = 2,
|
|
TWT_SETUP_CMD_GROUPING = 3,
|
|
TWT_SETUP_CMD_ACCEPT = 4,
|
|
TWT_SETUP_CMD_ALTERNATE = 5,
|
|
TWT_SETUP_CMD_DICTATE = 6,
|
|
TWT_SETUP_CMD_REJECT = 7,
|
|
};
|
|
|
|
struct xdp_ring;
|
|
|
|
struct xsk_queue {
|
|
u32 ring_mask;
|
|
u32 nentries;
|
|
u32 cached_prod;
|
|
u32 cached_cons;
|
|
struct xdp_ring *ring;
|
|
u64 invalid_descs;
|
|
u64 queue_empty_descs;
|
|
size_t ring_vmalloc_size;
|
|
};
|
|
|
|
struct xdp_ring {
|
|
u32 producer;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 pad1;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 consumer;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 pad2;
|
|
u32 flags;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 pad3;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct xdp_umem_ring {
|
|
struct xdp_ring ptrs;
|
|
u64 desc[0];
|
|
};
|
|
|
|
struct xdp_rxtx_ring {
|
|
struct xdp_ring ptrs;
|
|
struct xdp_desc desc[0];
|
|
};
|
|
|
|
typedef void (*btf_trace_mptcp_subflow_get_send)(void *, struct mptcp_subflow_context *);
|
|
|
|
typedef void (*btf_trace_mptcp_sendmsg_frag)(void *, struct mptcp_ext *);
|
|
|
|
typedef void (*btf_trace_get_mapping_status)(void *, struct mptcp_ext *);
|
|
|
|
typedef void (*btf_trace_ack_update_msk)(void *, u64, u64, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_subflow_check_data_avail)(void *, __u8, struct sk_buff *);
|
|
|
|
struct mptcp_delegated_action {
|
|
struct napi_struct napi;
|
|
struct list_head head;
|
|
};
|
|
|
|
struct inet_protosw {
|
|
struct list_head list;
|
|
unsigned short type;
|
|
unsigned short protocol;
|
|
struct proto *prot;
|
|
const struct proto_ops *ops;
|
|
unsigned char flags;
|
|
};
|
|
|
|
enum {
|
|
MPTCP_CMSG_TS = 1,
|
|
MPTCP_CMSG_INQ = 2,
|
|
};
|
|
|
|
struct trace_event_raw_mptcp_subflow_get_send {
|
|
struct trace_entry ent;
|
|
bool active;
|
|
bool free;
|
|
u32 snd_wnd;
|
|
u32 pace;
|
|
u8 backup;
|
|
u64 ratio;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mptcp_dump_mpext {
|
|
struct trace_entry ent;
|
|
u64 data_ack;
|
|
u64 data_seq;
|
|
u32 subflow_seq;
|
|
u16 data_len;
|
|
u16 csum;
|
|
u8 use_map;
|
|
u8 dsn64;
|
|
u8 data_fin;
|
|
u8 use_ack;
|
|
u8 ack64;
|
|
u8 mpc_map;
|
|
u8 frozen;
|
|
u8 reset_transient;
|
|
u8 reset_reason;
|
|
u8 csum_reqd;
|
|
u8 infinite_map;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ack_update_msk {
|
|
struct trace_entry ent;
|
|
u64 data_ack;
|
|
u64 old_snd_una;
|
|
u64 new_snd_una;
|
|
u64 new_wnd_end;
|
|
u64 msk_wnd_end;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_subflow_check_data_avail {
|
|
struct trace_entry ent;
|
|
u8 status;
|
|
const void *skb;
|
|
char __data[0];
|
|
};
|
|
|
|
struct mptcp_subflow_request_sock {
|
|
struct tcp_request_sock sk;
|
|
u16 mp_capable: 1;
|
|
u16 mp_join: 1;
|
|
u16 backup: 1;
|
|
u16 csum_reqd: 1;
|
|
u16 allow_join_id0: 1;
|
|
u8 local_id;
|
|
u8 remote_id;
|
|
u64 local_key;
|
|
u64 idsn;
|
|
u32 token;
|
|
u32 ssn_offset;
|
|
u64 thmac;
|
|
u32 local_nonce;
|
|
u32 remote_nonce;
|
|
struct mptcp_sock *msk;
|
|
struct hlist_nulls_node token_node;
|
|
};
|
|
|
|
struct mptcp_sendmsg_info {
|
|
int mss_now;
|
|
int size_goal;
|
|
u16 limit;
|
|
u16 sent;
|
|
unsigned int flags;
|
|
bool data_lock_held;
|
|
};
|
|
|
|
struct trace_event_data_offsets_mptcp_subflow_get_send {};
|
|
|
|
struct trace_event_data_offsets_mptcp_dump_mpext {};
|
|
|
|
struct trace_event_data_offsets_ack_update_msk {};
|
|
|
|
struct trace_event_data_offsets_subflow_check_data_avail {};
|
|
|
|
struct subflow_send_info {
|
|
struct sock *ssk;
|
|
u64 linger_time;
|
|
};
|
|
|
|
enum x86_legacy_i8042_state {
|
|
X86_LEGACY_I8042_PLATFORM_ABSENT = 0,
|
|
X86_LEGACY_I8042_FIRMWARE_ABSENT = 1,
|
|
X86_LEGACY_I8042_EXPECTED_PRESENT = 2,
|
|
};
|
|
|
|
enum show_regs_mode {
|
|
SHOW_REGS_SHORT = 0,
|
|
SHOW_REGS_USER = 1,
|
|
SHOW_REGS_ALL = 2,
|
|
};
|
|
|
|
enum which_selector {
|
|
FS = 0,
|
|
GS = 1,
|
|
};
|
|
|
|
typedef void (*btf_trace_mce_record)(void *, struct mce *);
|
|
|
|
struct mca_config {
|
|
__u64 lmce_disabled: 1;
|
|
__u64 disabled: 1;
|
|
__u64 ser: 1;
|
|
__u64 recovery: 1;
|
|
__u64 bios_cmci_threshold: 1;
|
|
__u64 initialized: 1;
|
|
__u64 __reserved: 58;
|
|
bool dont_log_ce;
|
|
bool cmci_disabled;
|
|
bool ignore_ce;
|
|
bool print_all;
|
|
int monarch_timeout;
|
|
int panic_timeout;
|
|
u32 rip_msr;
|
|
s8 bootlog;
|
|
};
|
|
|
|
struct mce_vendor_flags {
|
|
__u64 overflow_recov: 1;
|
|
__u64 succor: 1;
|
|
__u64 smca: 1;
|
|
__u64 amd_threshold: 1;
|
|
__u64 p5: 1;
|
|
__u64 winchip: 1;
|
|
__u64 snb_ifu_quirk: 1;
|
|
__u64 skx_repmov_quirk: 1;
|
|
__u64 __reserved_0: 56;
|
|
};
|
|
|
|
struct mce_bank_dev {
|
|
struct device_attribute attr;
|
|
char attrname[16];
|
|
u8 bank;
|
|
};
|
|
|
|
enum mce_notifier_prios {
|
|
MCE_PRIO_LOWEST = 0,
|
|
MCE_PRIO_MCELOG = 1,
|
|
MCE_PRIO_EDAC = 2,
|
|
MCE_PRIO_NFIT = 3,
|
|
MCE_PRIO_EXTLOG = 4,
|
|
MCE_PRIO_UC = 5,
|
|
MCE_PRIO_EARLY = 6,
|
|
MCE_PRIO_CEC = 7,
|
|
MCE_PRIO_HIGHEST = 7,
|
|
};
|
|
|
|
enum mf_flags {
|
|
MF_COUNT_INCREASED = 1,
|
|
MF_ACTION_REQUIRED = 2,
|
|
MF_MUST_KILL = 4,
|
|
MF_SOFT_OFFLINE = 8,
|
|
MF_UNPOISON = 16,
|
|
MF_SW_SIMULATED = 32,
|
|
MF_NO_RETRY = 64,
|
|
};
|
|
|
|
struct trace_event_raw_mce_record {
|
|
struct trace_entry ent;
|
|
u64 mcgcap;
|
|
u64 mcgstatus;
|
|
u64 status;
|
|
u64 addr;
|
|
u64 misc;
|
|
u64 synd;
|
|
u64 ipid;
|
|
u64 ip;
|
|
u64 tsc;
|
|
u64 walltime;
|
|
u32 cpu;
|
|
u32 cpuid;
|
|
u32 apicid;
|
|
u32 socketid;
|
|
u8 cs;
|
|
u8 bank;
|
|
u8 cpuvendor;
|
|
char __data[0];
|
|
};
|
|
|
|
struct mce_evt_llist {
|
|
struct llist_node llnode;
|
|
struct mce mce;
|
|
};
|
|
|
|
struct trace_event_data_offsets_mce_record {};
|
|
|
|
enum bpf_text_poke_type {
|
|
BPF_MOD_CALL = 0,
|
|
BPF_MOD_JUMP = 1,
|
|
};
|
|
|
|
enum {
|
|
BPF_REG_0 = 0,
|
|
BPF_REG_1 = 1,
|
|
BPF_REG_2 = 2,
|
|
BPF_REG_3 = 3,
|
|
BPF_REG_4 = 4,
|
|
BPF_REG_5 = 5,
|
|
BPF_REG_6 = 6,
|
|
BPF_REG_7 = 7,
|
|
BPF_REG_8 = 8,
|
|
BPF_REG_9 = 9,
|
|
BPF_REG_10 = 10,
|
|
__MAX_BPF_REG = 11,
|
|
};
|
|
|
|
enum bpf_jit_poke_reason {
|
|
BPF_POKE_REASON_TAIL_CALL = 0,
|
|
};
|
|
|
|
struct jit_context {
|
|
int cleanup_addr;
|
|
int tail_call_direct_label;
|
|
int tail_call_indirect_label;
|
|
};
|
|
|
|
struct bpf_binary_header {
|
|
u32 size;
|
|
int: 32;
|
|
u8 image[0];
|
|
};
|
|
|
|
typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int);
|
|
|
|
struct bpf_tramp_run_ctx;
|
|
|
|
typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *);
|
|
|
|
struct bpf_tramp_run_ctx {
|
|
struct bpf_run_ctx run_ctx;
|
|
u64 bpf_cookie;
|
|
struct bpf_run_ctx *saved_run_ctx;
|
|
};
|
|
|
|
typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *);
|
|
|
|
struct x64_jit_data {
|
|
struct bpf_binary_header *rw_header;
|
|
struct bpf_binary_header *header;
|
|
int *addrs;
|
|
u8 *image;
|
|
int proglen;
|
|
struct jit_context ctx;
|
|
};
|
|
|
|
struct kallsym_iter {
|
|
loff_t pos;
|
|
loff_t pos_arch_end;
|
|
loff_t pos_mod_end;
|
|
loff_t pos_ftrace_mod_end;
|
|
loff_t pos_bpf_end;
|
|
unsigned long value;
|
|
unsigned int nameoff;
|
|
char type;
|
|
char name[512];
|
|
char module_name[56];
|
|
int exported;
|
|
int show_value;
|
|
};
|
|
|
|
struct bpf_iter__ksym {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct kallsym_iter *ksym;
|
|
};
|
|
};
|
|
|
|
typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool);
|
|
|
|
typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int);
|
|
|
|
typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32);
|
|
|
|
typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *);
|
|
|
|
typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int);
|
|
|
|
typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int);
|
|
|
|
typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool);
|
|
|
|
typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int);
|
|
|
|
typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int);
|
|
|
|
typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_pm_qos_add_request)(void *, s32);
|
|
|
|
typedef void (*btf_trace_pm_qos_update_request)(void *, s32);
|
|
|
|
typedef void (*btf_trace_pm_qos_remove_request)(void *, s32);
|
|
|
|
enum pm_qos_req_action {
|
|
PM_QOS_ADD_REQ = 0,
|
|
PM_QOS_UPDATE_REQ = 1,
|
|
PM_QOS_REMOVE_REQ = 2,
|
|
};
|
|
|
|
typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int);
|
|
|
|
typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int);
|
|
|
|
typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
|
|
|
|
typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
|
|
|
|
typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
|
|
|
|
typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int);
|
|
|
|
struct trace_event_raw_cpu {
|
|
struct trace_entry ent;
|
|
u32 state;
|
|
u32 cpu_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cpu_idle_miss {
|
|
struct trace_entry ent;
|
|
u32 cpu_id;
|
|
u32 state;
|
|
bool below;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_powernv_throttle {
|
|
struct trace_entry ent;
|
|
int chip_id;
|
|
u32 __data_loc_reason;
|
|
int pmax;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_pstate_sample {
|
|
struct trace_entry ent;
|
|
u32 core_busy;
|
|
u32 scaled_busy;
|
|
u32 from;
|
|
u32 to;
|
|
u64 mperf;
|
|
u64 aperf;
|
|
u64 tsc;
|
|
u32 freq;
|
|
u32 io_boost;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cpu_frequency_limits {
|
|
struct trace_entry ent;
|
|
u32 min_freq;
|
|
u32 max_freq;
|
|
u32 cpu_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_device_pm_callback_start {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_device;
|
|
u32 __data_loc_driver;
|
|
u32 __data_loc_parent;
|
|
u32 __data_loc_pm_ops;
|
|
int event;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_device_pm_callback_end {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_device;
|
|
u32 __data_loc_driver;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_suspend_resume {
|
|
struct trace_entry ent;
|
|
const char *action;
|
|
int val;
|
|
bool start;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wakeup_source {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u64 state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_clock {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u64 state;
|
|
u64 cpu_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_power_domain {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u64 state;
|
|
u64 cpu_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cpu_latency_qos_request {
|
|
struct trace_entry ent;
|
|
s32 value;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_pm_qos_update {
|
|
struct trace_entry ent;
|
|
enum pm_qos_req_action action;
|
|
int prev_value;
|
|
int curr_value;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_dev_pm_qos_request {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
enum dev_pm_qos_req_type type;
|
|
s32 new_value;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_guest_halt_poll_ns {
|
|
struct trace_entry ent;
|
|
bool grow;
|
|
unsigned int new;
|
|
unsigned int old;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_powernv_throttle {
|
|
u32 reason;
|
|
};
|
|
|
|
struct trace_event_data_offsets_device_pm_callback_end {
|
|
u32 device;
|
|
u32 driver;
|
|
};
|
|
|
|
struct trace_event_data_offsets_wakeup_source {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_clock {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_power_domain {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_dev_pm_qos_request {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cpu {};
|
|
|
|
struct trace_event_data_offsets_cpu_idle_miss {};
|
|
|
|
struct trace_event_data_offsets_pstate_sample {};
|
|
|
|
struct trace_event_data_offsets_cpu_frequency_limits {};
|
|
|
|
struct trace_event_data_offsets_device_pm_callback_start {
|
|
u32 device;
|
|
u32 driver;
|
|
u32 parent;
|
|
u32 pm_ops;
|
|
};
|
|
|
|
struct trace_event_data_offsets_suspend_resume {};
|
|
|
|
struct trace_event_data_offsets_cpu_latency_qos_request {};
|
|
|
|
struct trace_event_data_offsets_pm_qos_update {};
|
|
|
|
struct trace_event_data_offsets_guest_halt_poll_ns {};
|
|
|
|
struct bpf_dispatcher_prog {
|
|
struct bpf_prog *prog;
|
|
refcount_t users;
|
|
};
|
|
|
|
struct bpf_dispatcher {
|
|
struct mutex mutex;
|
|
void *func;
|
|
struct bpf_dispatcher_prog progs[48];
|
|
int num_progs;
|
|
void *image;
|
|
void *rw_image;
|
|
u32 image_off;
|
|
struct bpf_ksym ksym;
|
|
struct static_call_key *sc_key;
|
|
void *sc_tramp;
|
|
};
|
|
|
|
enum {
|
|
REGION_INTERSECTS = 0,
|
|
REGION_DISJOINT = 1,
|
|
REGION_MIXED = 2,
|
|
};
|
|
|
|
enum sgp_type {
|
|
SGP_READ = 0,
|
|
SGP_NOALLOC = 1,
|
|
SGP_CACHE = 2,
|
|
SGP_WRITE = 3,
|
|
SGP_FALLOC = 4,
|
|
};
|
|
|
|
enum shmem_param {
|
|
Opt_gid___2 = 0,
|
|
Opt_huge = 1,
|
|
Opt_mode___2 = 2,
|
|
Opt_mpol = 3,
|
|
Opt_nr_blocks = 4,
|
|
Opt_nr_inodes___2 = 5,
|
|
Opt_size___2 = 6,
|
|
Opt_uid___2 = 7,
|
|
Opt_inode32 = 8,
|
|
Opt_inode64 = 9,
|
|
};
|
|
|
|
struct mempolicy;
|
|
|
|
struct shmem_sb_info {
|
|
unsigned long max_blocks;
|
|
struct percpu_counter used_blocks;
|
|
unsigned long max_inodes;
|
|
unsigned long free_inodes;
|
|
raw_spinlock_t stat_lock;
|
|
umode_t mode;
|
|
unsigned char huge;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
bool full_inums;
|
|
ino_t next_ino;
|
|
ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch;
|
|
struct mempolicy *mpol;
|
|
spinlock_t shrinklist_lock;
|
|
struct list_head shrinklist;
|
|
unsigned long shrinklist_len;
|
|
};
|
|
|
|
struct mempolicy {};
|
|
|
|
struct xattr;
|
|
|
|
typedef int (*initxattrs)(struct inode *, const struct xattr *, void *);
|
|
|
|
struct xattr {
|
|
const char *name;
|
|
void *value;
|
|
size_t value_len;
|
|
};
|
|
|
|
struct simple_xattr {
|
|
struct rb_node rb_node;
|
|
char *name;
|
|
size_t size;
|
|
char value[0];
|
|
};
|
|
|
|
struct shmem_falloc {
|
|
wait_queue_head_t *waitq;
|
|
unsigned long start;
|
|
unsigned long next;
|
|
unsigned long nr_falloced;
|
|
unsigned long nr_unswapped;
|
|
};
|
|
|
|
struct shmem_options {
|
|
unsigned long long blocks;
|
|
unsigned long long inodes;
|
|
struct mempolicy *mpol;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
bool full_inums;
|
|
int huge;
|
|
int seen;
|
|
};
|
|
|
|
struct mmu_notifier_ops;
|
|
|
|
struct mmu_notifier {
|
|
struct hlist_node hlist;
|
|
const struct mmu_notifier_ops *ops;
|
|
struct mm_struct *mm;
|
|
struct callback_head rcu;
|
|
unsigned int users;
|
|
};
|
|
|
|
struct mmu_notifier_ops {
|
|
void (*release)(struct mmu_notifier *, struct mm_struct *);
|
|
int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long);
|
|
int (*clear_young)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long);
|
|
int (*test_young)(struct mmu_notifier *, struct mm_struct *, unsigned long);
|
|
void (*change_pte)(struct mmu_notifier *, struct mm_struct *, unsigned long, pte_t);
|
|
int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *);
|
|
void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *);
|
|
void (*invalidate_range)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long);
|
|
struct mmu_notifier * (*alloc_notifier)(struct mm_struct *);
|
|
void (*free_notifier)(struct mmu_notifier *);
|
|
};
|
|
|
|
struct mmu_notifier_subscriptions {
|
|
struct hlist_head list;
|
|
bool has_itree;
|
|
spinlock_t lock;
|
|
unsigned long invalidate_seq;
|
|
unsigned long active_invalidate_ranges;
|
|
struct rb_root_cached itree;
|
|
wait_queue_head_t wq;
|
|
struct hlist_head deferred_list;
|
|
};
|
|
|
|
struct __old_kernel_stat {
|
|
unsigned short st_dev;
|
|
unsigned short st_ino;
|
|
unsigned short st_mode;
|
|
unsigned short st_nlink;
|
|
unsigned short st_uid;
|
|
unsigned short st_gid;
|
|
unsigned short st_rdev;
|
|
unsigned int st_size;
|
|
unsigned int st_atime;
|
|
unsigned int st_mtime;
|
|
unsigned int st_ctime;
|
|
};
|
|
|
|
typedef unsigned short __kernel_old_uid_t;
|
|
|
|
typedef __kernel_old_uid_t old_uid_t;
|
|
|
|
typedef unsigned short __kernel_old_gid_t;
|
|
|
|
typedef __kernel_old_gid_t old_gid_t;
|
|
|
|
struct stat {
|
|
__kernel_ulong_t st_dev;
|
|
__kernel_ulong_t st_ino;
|
|
__kernel_ulong_t st_nlink;
|
|
unsigned int st_mode;
|
|
unsigned int st_uid;
|
|
unsigned int st_gid;
|
|
unsigned int __pad0;
|
|
__kernel_ulong_t st_rdev;
|
|
__kernel_long_t st_size;
|
|
__kernel_long_t st_blksize;
|
|
__kernel_long_t st_blocks;
|
|
__kernel_ulong_t st_atime;
|
|
__kernel_ulong_t st_atime_nsec;
|
|
__kernel_ulong_t st_mtime;
|
|
__kernel_ulong_t st_mtime_nsec;
|
|
__kernel_ulong_t st_ctime;
|
|
__kernel_ulong_t st_ctime_nsec;
|
|
__kernel_long_t __unused[3];
|
|
};
|
|
|
|
struct statx_timestamp {
|
|
__s64 tv_sec;
|
|
__u32 tv_nsec;
|
|
__s32 __reserved;
|
|
};
|
|
|
|
struct statx {
|
|
__u32 stx_mask;
|
|
__u32 stx_blksize;
|
|
__u64 stx_attributes;
|
|
__u32 stx_nlink;
|
|
__u32 stx_uid;
|
|
__u32 stx_gid;
|
|
__u16 stx_mode;
|
|
__u16 __spare0[1];
|
|
__u64 stx_ino;
|
|
__u64 stx_size;
|
|
__u64 stx_blocks;
|
|
__u64 stx_attributes_mask;
|
|
struct statx_timestamp stx_atime;
|
|
struct statx_timestamp stx_btime;
|
|
struct statx_timestamp stx_ctime;
|
|
struct statx_timestamp stx_mtime;
|
|
__u32 stx_rdev_major;
|
|
__u32 stx_rdev_minor;
|
|
__u32 stx_dev_major;
|
|
__u32 stx_dev_minor;
|
|
__u64 stx_mnt_id;
|
|
__u32 stx_dio_mem_align;
|
|
__u32 stx_dio_offset_align;
|
|
__u64 __spare3[12];
|
|
};
|
|
|
|
typedef u16 compat_nlink_t;
|
|
|
|
struct compat_stat {
|
|
u32 st_dev;
|
|
compat_ino_t st_ino;
|
|
compat_mode_t st_mode;
|
|
compat_nlink_t st_nlink;
|
|
__compat_uid_t st_uid;
|
|
__compat_gid_t st_gid;
|
|
u32 st_rdev;
|
|
u32 st_size;
|
|
u32 st_blksize;
|
|
u32 st_blocks;
|
|
u32 st_atime;
|
|
u32 st_atime_nsec;
|
|
u32 st_mtime;
|
|
u32 st_mtime_nsec;
|
|
u32 st_ctime;
|
|
u32 st_ctime_nsec;
|
|
u32 __unused4;
|
|
u32 __unused5;
|
|
};
|
|
|
|
enum kernel_read_file_id {
|
|
READING_UNKNOWN = 0,
|
|
READING_FIRMWARE = 1,
|
|
READING_MODULE = 2,
|
|
READING_KEXEC_IMAGE = 3,
|
|
READING_KEXEC_INITRAMFS = 4,
|
|
READING_POLICY = 5,
|
|
READING_X509_CERTIFICATE = 6,
|
|
READING_MAX_ID = 7,
|
|
};
|
|
|
|
struct inotify_event {
|
|
__s32 wd;
|
|
__u32 mask;
|
|
__u32 cookie;
|
|
__u32 len;
|
|
char name[0];
|
|
};
|
|
|
|
struct vmcore {
|
|
struct list_head list;
|
|
unsigned long long paddr;
|
|
unsigned long long size;
|
|
loff_t offset;
|
|
};
|
|
|
|
struct vmcore_cb {
|
|
bool (*pfn_is_ram)(struct vmcore_cb *, unsigned long);
|
|
struct list_head next;
|
|
};
|
|
|
|
struct elf64_phdr {
|
|
Elf64_Word p_type;
|
|
Elf64_Word p_flags;
|
|
Elf64_Off p_offset;
|
|
Elf64_Addr p_vaddr;
|
|
Elf64_Addr p_paddr;
|
|
Elf64_Xword p_filesz;
|
|
Elf64_Xword p_memsz;
|
|
Elf64_Xword p_align;
|
|
};
|
|
|
|
typedef struct elf64_phdr Elf64_Phdr;
|
|
|
|
typedef struct elf64_note Elf64_Nhdr;
|
|
|
|
typedef __u16 Elf32_Half;
|
|
|
|
typedef __u32 Elf32_Addr;
|
|
|
|
typedef __u32 Elf32_Off;
|
|
|
|
struct elf32_hdr {
|
|
unsigned char e_ident[16];
|
|
Elf32_Half e_type;
|
|
Elf32_Half e_machine;
|
|
Elf32_Word e_version;
|
|
Elf32_Addr e_entry;
|
|
Elf32_Off e_phoff;
|
|
Elf32_Off e_shoff;
|
|
Elf32_Word e_flags;
|
|
Elf32_Half e_ehsize;
|
|
Elf32_Half e_phentsize;
|
|
Elf32_Half e_phnum;
|
|
Elf32_Half e_shentsize;
|
|
Elf32_Half e_shnum;
|
|
Elf32_Half e_shstrndx;
|
|
};
|
|
|
|
typedef struct elf32_hdr Elf32_Ehdr;
|
|
|
|
struct elf32_phdr {
|
|
Elf32_Word p_type;
|
|
Elf32_Off p_offset;
|
|
Elf32_Addr p_vaddr;
|
|
Elf32_Addr p_paddr;
|
|
Elf32_Word p_filesz;
|
|
Elf32_Word p_memsz;
|
|
Elf32_Word p_flags;
|
|
Elf32_Word p_align;
|
|
};
|
|
|
|
typedef struct elf32_phdr Elf32_Phdr;
|
|
|
|
typedef struct elf32_note Elf32_Nhdr;
|
|
|
|
struct partial_cluster {
|
|
ext4_fsblk_t pclu;
|
|
ext4_lblk_t lblk;
|
|
enum {
|
|
initial = 0,
|
|
tofree = 1,
|
|
nofree = 2,
|
|
} state;
|
|
};
|
|
|
|
enum {
|
|
ES_WRITTEN_B = 0,
|
|
ES_UNWRITTEN_B = 1,
|
|
ES_DELAYED_B = 2,
|
|
ES_HOLE_B = 3,
|
|
ES_REFERENCED_B = 4,
|
|
ES_FLAGS = 5,
|
|
};
|
|
|
|
enum SHIFT_DIRECTION {
|
|
SHIFT_LEFT = 0,
|
|
SHIFT_RIGHT = 1,
|
|
};
|
|
|
|
struct ext4_io_end_vec {
|
|
struct list_head list;
|
|
loff_t offset;
|
|
ssize_t size;
|
|
};
|
|
|
|
struct ext4_extent_tail {
|
|
__le32 et_checksum;
|
|
};
|
|
|
|
struct ext4_allocation_request {
|
|
struct inode *inode;
|
|
unsigned int len;
|
|
ext4_lblk_t logical;
|
|
ext4_lblk_t lleft;
|
|
ext4_lblk_t lright;
|
|
ext4_fsblk_t goal;
|
|
ext4_fsblk_t pleft;
|
|
ext4_fsblk_t pright;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct ext4_io_end {
|
|
struct list_head list;
|
|
handle_t *handle;
|
|
struct inode *inode;
|
|
struct bio *bio;
|
|
unsigned int flag;
|
|
refcount_t count;
|
|
struct list_head list_vec;
|
|
};
|
|
|
|
typedef struct ext4_io_end ext4_io_end_t;
|
|
|
|
struct nfs_page_iter_page {
|
|
const struct nfs_page *req;
|
|
size_t count;
|
|
};
|
|
|
|
struct nlm_cookie {
|
|
unsigned char data[32];
|
|
unsigned int len;
|
|
};
|
|
|
|
struct nlm_lock {
|
|
char *caller;
|
|
unsigned int len;
|
|
struct nfs_fh fh;
|
|
struct xdr_netobj oh;
|
|
u32 svid;
|
|
u64 lock_start;
|
|
u64 lock_len;
|
|
struct file_lock fl;
|
|
};
|
|
|
|
struct nlm_res {
|
|
struct nlm_cookie cookie;
|
|
__be32 status;
|
|
struct nlm_lock lock;
|
|
};
|
|
|
|
struct nlm_args {
|
|
struct nlm_cookie cookie;
|
|
struct nlm_lock lock;
|
|
u32 block;
|
|
u32 reclaim;
|
|
u32 state;
|
|
u32 monitor;
|
|
u32 fsm_access;
|
|
u32 fsm_mode;
|
|
};
|
|
|
|
struct nlm_block;
|
|
|
|
struct nlm_rqst {
|
|
refcount_t a_count;
|
|
unsigned int a_flags;
|
|
struct nlm_host *a_host;
|
|
struct nlm_args a_args;
|
|
struct nlm_res a_res;
|
|
struct nlm_block *a_block;
|
|
unsigned int a_retries;
|
|
u8 a_owner[74];
|
|
void *a_callback_data;
|
|
};
|
|
|
|
struct nlm_file;
|
|
|
|
struct nlm_block {
|
|
struct kref b_count;
|
|
struct list_head b_list;
|
|
struct list_head b_flist;
|
|
struct nlm_rqst *b_call;
|
|
struct svc_serv *b_daemon;
|
|
struct nlm_host *b_host;
|
|
unsigned long b_when;
|
|
unsigned int b_id;
|
|
unsigned char b_granted;
|
|
struct nlm_file *b_file;
|
|
struct cache_req *b_cache_req;
|
|
struct cache_deferred_req *b_deferred_req;
|
|
unsigned int b_flags;
|
|
};
|
|
|
|
struct nlm_share;
|
|
|
|
struct nlm_file {
|
|
struct hlist_node f_list;
|
|
struct nfs_fh f_handle;
|
|
struct file *f_file[2];
|
|
struct nlm_share *f_shares;
|
|
struct list_head f_blocks;
|
|
unsigned int f_locks;
|
|
unsigned int f_count;
|
|
struct mutex f_mutex;
|
|
};
|
|
|
|
struct nlm_share {
|
|
struct nlm_share *s_next;
|
|
struct nlm_host *s_host;
|
|
struct nlm_file *s_file;
|
|
struct xdr_netobj s_owner;
|
|
u32 s_access;
|
|
u32 s_mode;
|
|
};
|
|
|
|
struct nlm_reboot {
|
|
char *mon;
|
|
unsigned int len;
|
|
u32 state;
|
|
struct nsm_private priv;
|
|
};
|
|
|
|
struct ima_template_entry {
|
|
int pcr;
|
|
struct tpm_digest *digests;
|
|
struct ima_template_desc *template_desc;
|
|
u32 template_data_len;
|
|
struct ima_field_data template_data[0];
|
|
};
|
|
|
|
struct ima_max_digest_data {
|
|
struct ima_digest_data hdr;
|
|
u8 digest[64];
|
|
};
|
|
|
|
struct skcipher_request {
|
|
unsigned int cryptlen;
|
|
u8 *iv;
|
|
struct scatterlist *src;
|
|
struct scatterlist *dst;
|
|
struct crypto_async_request base;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct skcipher_alg {
|
|
int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int);
|
|
int (*encrypt)(struct skcipher_request *);
|
|
int (*decrypt)(struct skcipher_request *);
|
|
int (*init)(struct crypto_skcipher *);
|
|
void (*exit)(struct crypto_skcipher *);
|
|
unsigned int min_keysize;
|
|
unsigned int max_keysize;
|
|
unsigned int ivsize;
|
|
unsigned int chunksize;
|
|
unsigned int walksize;
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct skcipher_instance {
|
|
void (*free)(struct skcipher_instance *);
|
|
union {
|
|
struct {
|
|
char head[64];
|
|
struct crypto_instance base;
|
|
} s;
|
|
struct skcipher_alg alg;
|
|
};
|
|
};
|
|
|
|
struct crypto_cipher_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct crypto_skcipher_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct crypto_cipher {
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct skcipher_ctx_simple {
|
|
struct crypto_cipher *cipher;
|
|
};
|
|
|
|
struct scatter_walk {
|
|
struct scatterlist *sg;
|
|
unsigned int offset;
|
|
};
|
|
|
|
struct skcipher_walk {
|
|
union {
|
|
struct {
|
|
struct page *page;
|
|
unsigned long offset;
|
|
} phys;
|
|
struct {
|
|
u8 *page;
|
|
void *addr;
|
|
} virt;
|
|
} src;
|
|
union {
|
|
struct {
|
|
struct page *page;
|
|
unsigned long offset;
|
|
} phys;
|
|
struct {
|
|
u8 *page;
|
|
void *addr;
|
|
} virt;
|
|
} dst;
|
|
struct scatter_walk in;
|
|
unsigned int nbytes;
|
|
struct scatter_walk out;
|
|
unsigned int total;
|
|
struct list_head buffers;
|
|
u8 *page;
|
|
u8 *buffer;
|
|
u8 *oiv;
|
|
void *iv;
|
|
unsigned int ivsize;
|
|
int flags;
|
|
unsigned int blocksize;
|
|
unsigned int stride;
|
|
unsigned int alignmask;
|
|
};
|
|
|
|
struct crypto_rfc3686_ctx {
|
|
struct crypto_skcipher *child;
|
|
u8 nonce[4];
|
|
};
|
|
|
|
struct crypto_rfc3686_req_ctx {
|
|
u8 iv[16];
|
|
struct skcipher_request subreq;
|
|
};
|
|
|
|
typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *);
|
|
|
|
typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *);
|
|
|
|
typedef void (*btf_trace_block_rq_requeue)(void *, struct request *);
|
|
|
|
typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_block_rq_insert)(void *, struct request *);
|
|
|
|
typedef void (*btf_trace_block_rq_issue)(void *, struct request *);
|
|
|
|
typedef void (*btf_trace_block_rq_merge)(void *, struct request *);
|
|
|
|
typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *);
|
|
|
|
typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *);
|
|
|
|
typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *);
|
|
|
|
typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *);
|
|
|
|
typedef void (*btf_trace_block_bio_queue)(void *, struct bio *);
|
|
|
|
typedef void (*btf_trace_block_getrq)(void *, struct bio *);
|
|
|
|
typedef void (*btf_trace_block_plug)(void *, struct request_queue *);
|
|
|
|
typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool);
|
|
|
|
typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int);
|
|
|
|
typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t);
|
|
|
|
typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t);
|
|
|
|
enum {
|
|
BLK_MQ_REQ_NOWAIT = 1,
|
|
BLK_MQ_REQ_RESERVED = 2,
|
|
BLK_MQ_REQ_PM = 4,
|
|
};
|
|
|
|
enum {
|
|
sysctl_hung_task_timeout_secs = 0,
|
|
};
|
|
|
|
struct blk_plug_cb;
|
|
|
|
typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool);
|
|
|
|
struct blk_plug_cb {
|
|
struct list_head list;
|
|
blk_plug_cb_fn callback;
|
|
void *data;
|
|
};
|
|
|
|
struct trace_event_raw_block_buffer {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
size_t size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_rq_requeue {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
char rwbs[8];
|
|
u32 __data_loc_cmd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_rq_completion {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
int error;
|
|
char rwbs[8];
|
|
u32 __data_loc_cmd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_rq {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
unsigned int bytes;
|
|
char rwbs[8];
|
|
char comm[16];
|
|
u32 __data_loc_cmd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_bio_complete {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
int error;
|
|
char rwbs[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_bio {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
char rwbs[8];
|
|
char comm[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_plug {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_unplug {
|
|
struct trace_entry ent;
|
|
int nr_rq;
|
|
char comm[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_split {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
sector_t new_sector;
|
|
char rwbs[8];
|
|
char comm[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_bio_remap {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
dev_t old_dev;
|
|
sector_t old_sector;
|
|
char rwbs[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_block_rq_remap {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
sector_t sector;
|
|
unsigned int nr_sector;
|
|
dev_t old_dev;
|
|
sector_t old_sector;
|
|
unsigned int nr_bios;
|
|
char rwbs[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_block_buffer {};
|
|
|
|
struct trace_event_data_offsets_block_rq_requeue {
|
|
u32 cmd;
|
|
};
|
|
|
|
struct trace_event_data_offsets_block_rq_completion {
|
|
u32 cmd;
|
|
};
|
|
|
|
struct trace_event_data_offsets_block_rq {
|
|
u32 cmd;
|
|
};
|
|
|
|
struct trace_event_data_offsets_block_bio_complete {};
|
|
|
|
struct trace_event_data_offsets_block_bio {};
|
|
|
|
struct trace_event_data_offsets_block_plug {};
|
|
|
|
struct trace_event_data_offsets_block_unplug {};
|
|
|
|
struct trace_event_data_offsets_block_split {};
|
|
|
|
struct trace_event_data_offsets_block_bio_remap {};
|
|
|
|
struct trace_event_data_offsets_block_rq_remap {};
|
|
|
|
struct io_open {
|
|
struct file *file;
|
|
int dfd;
|
|
u32 file_slot;
|
|
struct filename *filename;
|
|
struct open_how how;
|
|
unsigned long nofile;
|
|
};
|
|
|
|
struct io_close {
|
|
struct file *file;
|
|
int fd;
|
|
u32 file_slot;
|
|
};
|
|
|
|
struct prt_quirk {
|
|
const struct dmi_system_id *system;
|
|
unsigned int segment;
|
|
unsigned int bus;
|
|
unsigned int device;
|
|
unsigned char pin;
|
|
const char *source;
|
|
const char *actual_source;
|
|
};
|
|
|
|
enum pci_irq_reroute_variant {
|
|
INTEL_IRQ_REROUTE_VARIANT = 1,
|
|
MAX_IRQ_REROUTE_VARIANTS = 3,
|
|
};
|
|
|
|
struct acpi_pci_routing_table {
|
|
u32 length;
|
|
u32 pin;
|
|
u64 address;
|
|
u32 source_index;
|
|
char source[4];
|
|
};
|
|
|
|
struct acpi_prt_entry {
|
|
struct acpi_pci_id id;
|
|
u8 pin;
|
|
acpi_handle link;
|
|
u32 index;
|
|
};
|
|
|
|
typedef u32 acpi_event_status;
|
|
|
|
typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *);
|
|
|
|
struct acpi_gpe_block_status_context {
|
|
struct acpi_gpe_register_info *gpe_skip_register_info;
|
|
u8 gpe_skip_mask;
|
|
u8 retval;
|
|
};
|
|
|
|
struct aml_resource_small_header {
|
|
u8 descriptor_type;
|
|
};
|
|
|
|
struct aml_resource_large_header {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_irq {
|
|
u8 descriptor_type;
|
|
u16 irq_mask;
|
|
u8 flags;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_dma {
|
|
u8 descriptor_type;
|
|
u8 dma_channel_mask;
|
|
u8 flags;
|
|
};
|
|
|
|
struct aml_resource_start_dependent {
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
};
|
|
|
|
struct aml_resource_end_dependent {
|
|
u8 descriptor_type;
|
|
};
|
|
|
|
struct aml_resource_io {
|
|
u8 descriptor_type;
|
|
u8 flags;
|
|
u16 minimum;
|
|
u16 maximum;
|
|
u8 alignment;
|
|
u8 address_length;
|
|
};
|
|
|
|
struct aml_resource_fixed_io {
|
|
u8 descriptor_type;
|
|
u16 address;
|
|
u8 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_fixed_dma {
|
|
u8 descriptor_type;
|
|
u16 request_lines;
|
|
u16 channels;
|
|
u8 width;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_vendor_small {
|
|
u8 descriptor_type;
|
|
};
|
|
|
|
struct aml_resource_end_tag {
|
|
u8 descriptor_type;
|
|
u8 checksum;
|
|
};
|
|
|
|
struct aml_resource_memory24 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 flags;
|
|
u16 minimum;
|
|
u16 maximum;
|
|
u16 alignment;
|
|
u16 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_generic_register {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 address_space_id;
|
|
u8 bit_width;
|
|
u8 bit_offset;
|
|
u8 access_size;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_vendor_large {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_memory32 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 flags;
|
|
u32 minimum;
|
|
u32 maximum;
|
|
u32 alignment;
|
|
u32 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_fixed_memory32 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 flags;
|
|
u32 address;
|
|
u32 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_address16 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 resource_type;
|
|
u8 flags;
|
|
u8 specific_flags;
|
|
u16 granularity;
|
|
u16 minimum;
|
|
u16 maximum;
|
|
u16 translation_offset;
|
|
u16 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_address32 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 resource_type;
|
|
u8 flags;
|
|
u8 specific_flags;
|
|
u32 granularity;
|
|
u32 minimum;
|
|
u32 maximum;
|
|
u32 translation_offset;
|
|
u32 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_address64 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 resource_type;
|
|
u8 flags;
|
|
u8 specific_flags;
|
|
u64 granularity;
|
|
u64 minimum;
|
|
u64 maximum;
|
|
u64 translation_offset;
|
|
u64 address_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_extended_address64 {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 resource_type;
|
|
u8 flags;
|
|
u8 specific_flags;
|
|
u8 revision_ID;
|
|
u8 reserved;
|
|
u64 granularity;
|
|
u64 minimum;
|
|
u64 maximum;
|
|
u64 translation_offset;
|
|
u64 address_length;
|
|
u64 type_specific;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_extended_irq {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 flags;
|
|
u8 interrupt_count;
|
|
u32 interrupts[1];
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_gpio {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u8 connection_type;
|
|
u16 flags;
|
|
u16 int_flags;
|
|
u8 pin_config;
|
|
u16 drive_strength;
|
|
u16 debounce_timeout;
|
|
u16 pin_table_offset;
|
|
u8 res_source_index;
|
|
u16 res_source_offset;
|
|
u16 vendor_offset;
|
|
u16 vendor_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_i2c_serialbus {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u8 res_source_index;
|
|
u8 type;
|
|
u8 flags;
|
|
u16 type_specific_flags;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u32 connection_speed;
|
|
u16 slave_address;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_spi_serialbus {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u8 res_source_index;
|
|
u8 type;
|
|
u8 flags;
|
|
u16 type_specific_flags;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u32 connection_speed;
|
|
u8 data_bit_length;
|
|
u8 clock_phase;
|
|
u8 clock_polarity;
|
|
u16 device_selection;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_uart_serialbus {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u8 res_source_index;
|
|
u8 type;
|
|
u8 flags;
|
|
u16 type_specific_flags;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
u32 default_baud_rate;
|
|
u16 rx_fifo_size;
|
|
u16 tx_fifo_size;
|
|
u8 parity;
|
|
u8 lines_enabled;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_csi2_serialbus {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u8 res_source_index;
|
|
u8 type;
|
|
u8 flags;
|
|
u16 type_specific_flags;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_common_serialbus {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u8 res_source_index;
|
|
u8 type;
|
|
u8 flags;
|
|
u16 type_specific_flags;
|
|
u8 type_revision_id;
|
|
u16 type_data_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_pin_function {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u16 flags;
|
|
u8 pin_config;
|
|
u16 function_number;
|
|
u16 pin_table_offset;
|
|
u8 res_source_index;
|
|
u16 res_source_offset;
|
|
u16 vendor_offset;
|
|
u16 vendor_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_pin_config {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u16 flags;
|
|
u8 pin_config_type;
|
|
u32 pin_config_value;
|
|
u16 pin_table_offset;
|
|
u8 res_source_index;
|
|
u16 res_source_offset;
|
|
u16 vendor_offset;
|
|
u16 vendor_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_pin_group {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u16 flags;
|
|
u16 pin_table_offset;
|
|
u16 label_offset;
|
|
u16 vendor_offset;
|
|
u16 vendor_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_pin_group_function {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u16 flags;
|
|
u16 function_number;
|
|
u8 res_source_index;
|
|
u16 res_source_offset;
|
|
u16 res_source_label_offset;
|
|
u16 vendor_offset;
|
|
u16 vendor_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_pin_group_config {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 revision_id;
|
|
u16 flags;
|
|
u8 pin_config_type;
|
|
u32 pin_config_value;
|
|
u8 res_source_index;
|
|
u16 res_source_offset;
|
|
u16 res_source_label_offset;
|
|
u16 vendor_offset;
|
|
u16 vendor_length;
|
|
} __attribute__((packed));
|
|
|
|
struct aml_resource_address {
|
|
u8 descriptor_type;
|
|
u16 resource_length;
|
|
u8 resource_type;
|
|
u8 flags;
|
|
u8 specific_flags;
|
|
} __attribute__((packed));
|
|
|
|
union aml_resource {
|
|
u8 descriptor_type;
|
|
struct aml_resource_small_header small_header;
|
|
struct aml_resource_large_header large_header;
|
|
struct aml_resource_irq irq;
|
|
struct aml_resource_dma dma;
|
|
struct aml_resource_start_dependent start_dpf;
|
|
struct aml_resource_end_dependent end_dpf;
|
|
struct aml_resource_io io;
|
|
struct aml_resource_fixed_io fixed_io;
|
|
struct aml_resource_fixed_dma fixed_dma;
|
|
struct aml_resource_vendor_small vendor_small;
|
|
struct aml_resource_end_tag end_tag;
|
|
struct aml_resource_memory24 memory24;
|
|
struct aml_resource_generic_register generic_reg;
|
|
struct aml_resource_vendor_large vendor_large;
|
|
struct aml_resource_memory32 memory32;
|
|
struct aml_resource_fixed_memory32 fixed_memory32;
|
|
struct aml_resource_address16 address16;
|
|
struct aml_resource_address32 address32;
|
|
struct aml_resource_address64 address64;
|
|
struct aml_resource_extended_address64 ext_address64;
|
|
struct aml_resource_extended_irq extended_irq;
|
|
struct aml_resource_gpio gpio;
|
|
struct aml_resource_i2c_serialbus i2c_serial_bus;
|
|
struct aml_resource_spi_serialbus spi_serial_bus;
|
|
struct aml_resource_uart_serialbus uart_serial_bus;
|
|
struct aml_resource_csi2_serialbus csi2_serial_bus;
|
|
struct aml_resource_common_serialbus common_serial_bus;
|
|
struct aml_resource_pin_function pin_function;
|
|
struct aml_resource_pin_config pin_config;
|
|
struct aml_resource_pin_group pin_group;
|
|
struct aml_resource_pin_group_function pin_group_function;
|
|
struct aml_resource_pin_group_config pin_group_config;
|
|
struct aml_resource_address address;
|
|
u32 dword_item;
|
|
u16 word_item;
|
|
u8 byte_item;
|
|
};
|
|
|
|
typedef u16 acpi_rs_length;
|
|
|
|
typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **);
|
|
|
|
struct virt_dma_desc {
|
|
struct dma_async_tx_descriptor tx;
|
|
struct dmaengine_result tx_result;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct virt_dma_chan {
|
|
struct dma_chan chan;
|
|
struct tasklet_struct task;
|
|
void (*desc_free)(struct virt_dma_desc *);
|
|
spinlock_t lock;
|
|
struct list_head desc_allocated;
|
|
struct list_head desc_submitted;
|
|
struct list_head desc_issued;
|
|
struct list_head desc_completed;
|
|
struct list_head desc_terminated;
|
|
struct virt_dma_desc *cyclic;
|
|
};
|
|
|
|
struct dmaengine_desc_callback {
|
|
dma_async_tx_callback callback;
|
|
dma_async_tx_callback_result callback_result;
|
|
void *callback_param;
|
|
};
|
|
|
|
struct timer_rand_state {
|
|
unsigned long last_time;
|
|
long last_delta;
|
|
long last_delta2;
|
|
};
|
|
|
|
enum {
|
|
CRNG_EMPTY = 0,
|
|
CRNG_EARLY = 1,
|
|
CRNG_READY = 2,
|
|
};
|
|
|
|
struct batch_u8 {
|
|
u8 entropy[96];
|
|
local_lock_t lock;
|
|
unsigned long generation;
|
|
unsigned int position;
|
|
};
|
|
|
|
struct batch_u16 {
|
|
u16 entropy[48];
|
|
local_lock_t lock;
|
|
unsigned long generation;
|
|
unsigned int position;
|
|
};
|
|
|
|
struct batch_u32 {
|
|
u32 entropy[24];
|
|
local_lock_t lock;
|
|
unsigned long generation;
|
|
unsigned int position;
|
|
};
|
|
|
|
struct batch_u64 {
|
|
u64 entropy[12];
|
|
local_lock_t lock;
|
|
unsigned long generation;
|
|
unsigned int position;
|
|
};
|
|
|
|
struct crng {
|
|
u8 key[32];
|
|
unsigned long generation;
|
|
local_lock_t lock;
|
|
};
|
|
|
|
struct execute_work {
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct blake2s_state {
|
|
u32 h[8];
|
|
u32 t[2];
|
|
u32 f[2];
|
|
u8 buf[64];
|
|
unsigned int buflen;
|
|
unsigned int outlen;
|
|
};
|
|
|
|
struct fast_pool {
|
|
unsigned long pool[4];
|
|
unsigned long last;
|
|
unsigned int count;
|
|
struct timer_list mix;
|
|
};
|
|
|
|
enum {
|
|
NUM_TRIAL_SAMPLES = 8192,
|
|
MAX_SAMPLES_PER_BIT = 66,
|
|
};
|
|
|
|
enum {
|
|
MIX_INFLIGHT = 2147483648,
|
|
};
|
|
|
|
enum blake2s_lengths {
|
|
BLAKE2S_BLOCK_SIZE = 64,
|
|
BLAKE2S_HASH_SIZE = 32,
|
|
BLAKE2S_KEY_SIZE = 32,
|
|
BLAKE2S_128_HASH_SIZE = 16,
|
|
BLAKE2S_160_HASH_SIZE = 20,
|
|
BLAKE2S_224_HASH_SIZE = 28,
|
|
BLAKE2S_256_HASH_SIZE = 32,
|
|
};
|
|
|
|
enum blake2s_iv {
|
|
BLAKE2S_IV0 = 1779033703,
|
|
BLAKE2S_IV1 = 3144134277,
|
|
BLAKE2S_IV2 = 1013904242,
|
|
BLAKE2S_IV3 = 2773480762,
|
|
BLAKE2S_IV4 = 1359893119,
|
|
BLAKE2S_IV5 = 2600822924,
|
|
BLAKE2S_IV6 = 528734635,
|
|
BLAKE2S_IV7 = 1541459225,
|
|
};
|
|
|
|
enum chacha_constants {
|
|
CHACHA_CONSTANT_EXPA = 1634760805,
|
|
CHACHA_CONSTANT_ND_3 = 857760878,
|
|
CHACHA_CONSTANT_2_BY = 2036477234,
|
|
CHACHA_CONSTANT_TE_K = 1797285236,
|
|
};
|
|
|
|
enum {
|
|
POOL_BITS = 256,
|
|
POOL_READY_BITS = 256,
|
|
POOL_EARLY_BITS = 128,
|
|
};
|
|
|
|
enum {
|
|
CRNG_RESEED_START_INTERVAL = 1000,
|
|
CRNG_RESEED_INTERVAL = 60000,
|
|
};
|
|
|
|
struct entropy_timer_state {
|
|
unsigned long entropy;
|
|
struct timer_list timer;
|
|
atomic_t samples;
|
|
unsigned int samples_per_bit;
|
|
};
|
|
|
|
struct dram_dimm_info {
|
|
u16 size;
|
|
u8 width;
|
|
u8 ranks;
|
|
};
|
|
|
|
struct dram_channel_info {
|
|
struct dram_dimm_info dimm_l;
|
|
struct dram_dimm_info dimm_s;
|
|
u8 ranks;
|
|
bool is_16gb_dimm;
|
|
};
|
|
|
|
struct intel_gt_buffer_pool_node {
|
|
struct i915_active active;
|
|
struct drm_i915_gem_object *obj;
|
|
struct list_head link;
|
|
union {
|
|
struct intel_gt_buffer_pool *pool;
|
|
struct intel_gt_buffer_pool_node *free;
|
|
struct callback_head rcu;
|
|
};
|
|
unsigned long age;
|
|
enum i915_map_type type;
|
|
u32 pinned;
|
|
};
|
|
|
|
struct ttm_kmap_iter_ops;
|
|
|
|
struct ttm_kmap_iter {
|
|
const struct ttm_kmap_iter_ops *ops;
|
|
};
|
|
|
|
struct ttm_kmap_iter_tt {
|
|
struct ttm_kmap_iter base;
|
|
struct ttm_tt *tt;
|
|
pgprot_t prot;
|
|
};
|
|
|
|
struct ttm_kmap_iter_iomap {
|
|
struct ttm_kmap_iter base;
|
|
struct io_mapping *iomap;
|
|
struct sg_table *st;
|
|
resource_size_t start;
|
|
struct {
|
|
struct scatterlist *sg;
|
|
unsigned long i;
|
|
unsigned long end;
|
|
unsigned long offs;
|
|
} cache;
|
|
};
|
|
|
|
struct i915_ttm_memcpy_arg {
|
|
union {
|
|
struct ttm_kmap_iter_tt tt;
|
|
struct ttm_kmap_iter_iomap io;
|
|
} _dst_iter;
|
|
union {
|
|
struct ttm_kmap_iter_tt tt;
|
|
struct ttm_kmap_iter_iomap io;
|
|
} _src_iter;
|
|
struct ttm_kmap_iter *dst_iter;
|
|
struct ttm_kmap_iter *src_iter;
|
|
unsigned long num_pages;
|
|
bool clear;
|
|
struct i915_refct_sgt *src_rsgt;
|
|
struct i915_refct_sgt *dst_rsgt;
|
|
};
|
|
|
|
struct i915_ttm_memcpy_work {
|
|
struct dma_fence fence;
|
|
struct work_struct work;
|
|
spinlock_t lock;
|
|
struct irq_work irq_work;
|
|
struct dma_fence_cb cb;
|
|
struct i915_ttm_memcpy_arg arg;
|
|
struct drm_i915_private___3 *i915;
|
|
struct drm_i915_gem_object *obj;
|
|
bool memcpy_allowed;
|
|
};
|
|
|
|
struct ttm_kmap_iter_ops {
|
|
void (*map_local)(struct ttm_kmap_iter *, struct iosys_map *, unsigned long);
|
|
void (*unmap_local)(struct ttm_kmap_iter *, struct iosys_map *);
|
|
bool maps_tt;
|
|
};
|
|
|
|
struct i915_deps {
|
|
struct dma_fence *single;
|
|
struct dma_fence **fences;
|
|
unsigned int num_deps;
|
|
unsigned int fences_size;
|
|
gfp_t gfp;
|
|
};
|
|
|
|
enum intel_guc_state_capture_event_status {
|
|
INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_SUCCESS = 0,
|
|
INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_NOSPACE = 1,
|
|
};
|
|
|
|
enum i915_request_state {
|
|
I915_REQUEST_UNKNOWN = 0,
|
|
I915_REQUEST_COMPLETE = 1,
|
|
I915_REQUEST_PENDING = 2,
|
|
I915_REQUEST_QUEUED = 3,
|
|
I915_REQUEST_ACTIVE = 4,
|
|
};
|
|
|
|
enum {
|
|
GUC_CONTEXT_POLICIES_KLV_ID_EXECUTION_QUANTUM = 8193,
|
|
GUC_CONTEXT_POLICIES_KLV_ID_PREEMPTION_TIMEOUT = 8194,
|
|
GUC_CONTEXT_POLICIES_KLV_ID_SCHEDULING_PRIORITY = 8195,
|
|
GUC_CONTEXT_POLICIES_KLV_ID_PREEMPT_TO_IDLE_ON_QUANTUM_EXPIRY = 8196,
|
|
GUC_CONTEXT_POLICIES_KLV_ID_SLPM_GT_FREQUENCY = 8197,
|
|
GUC_CONTEXT_POLICIES_KLV_NUM_IDS = 5,
|
|
};
|
|
|
|
enum {
|
|
GUC_SCHEDULING_POLICIES_KLV_ID_RENDER_COMPUTE_YIELD = 4097,
|
|
};
|
|
|
|
struct guc_sched_wq_desc {
|
|
u32 head;
|
|
u32 tail;
|
|
u32 error_offset;
|
|
u32 wq_status;
|
|
u32 reserved[28];
|
|
};
|
|
|
|
struct guc_process_desc_v69 {
|
|
u32 stage_id;
|
|
u64 db_base_addr;
|
|
u32 head;
|
|
u32 tail;
|
|
u32 error_offset;
|
|
u64 wq_base_addr;
|
|
u32 wq_size_bytes;
|
|
u32 wq_status;
|
|
u32 engine_presence;
|
|
u32 priority;
|
|
u32 reserved[36];
|
|
} __attribute__((packed));
|
|
|
|
union guc_descs {
|
|
struct guc_sched_wq_desc wq_desc;
|
|
struct guc_process_desc_v69 pdesc;
|
|
};
|
|
|
|
struct sync_semaphore {
|
|
u32 semaphore;
|
|
u8 unused[60];
|
|
};
|
|
|
|
struct parent_scratch {
|
|
union guc_descs descs;
|
|
struct sync_semaphore go;
|
|
struct sync_semaphore join[9];
|
|
u8 unused[1216];
|
|
u32 wq[512];
|
|
};
|
|
|
|
struct guc_virtual_engine {
|
|
struct intel_engine_cs base;
|
|
struct intel_context context;
|
|
};
|
|
|
|
struct guc_update_scheduling_policy_header {
|
|
u32 action;
|
|
};
|
|
|
|
struct guc_update_scheduling_policy {
|
|
struct guc_update_scheduling_policy_header header;
|
|
u32 data[3];
|
|
};
|
|
|
|
struct scheduling_policy {
|
|
u32 max_words;
|
|
u32 num_words;
|
|
u32 count;
|
|
struct guc_update_scheduling_policy h2g;
|
|
};
|
|
|
|
struct guc_ctxt_registration_info {
|
|
u32 flags;
|
|
u32 context_idx;
|
|
u32 engine_class;
|
|
u32 engine_submit_mask;
|
|
u32 wq_desc_lo;
|
|
u32 wq_desc_hi;
|
|
u32 wq_base_lo;
|
|
u32 wq_base_hi;
|
|
u32 wq_size;
|
|
u32 hwlrca_lo;
|
|
u32 hwlrca_hi;
|
|
};
|
|
|
|
struct guc_lrc_desc_v69 {
|
|
u32 hw_context_desc;
|
|
u32 slpm_perf_mode_hint;
|
|
u32 slpm_freq_hint;
|
|
u32 engine_submit_mask;
|
|
u8 engine_class;
|
|
u8 reserved0[3];
|
|
u32 priority;
|
|
u32 process_desc;
|
|
u32 wq_addr;
|
|
u32 wq_size;
|
|
u32 context_flags;
|
|
u32 execution_quantum;
|
|
u32 preemption_timeout;
|
|
u32 policy_flags;
|
|
u32 reserved1[19];
|
|
};
|
|
|
|
struct guc_engine_usage_record {
|
|
u32 current_context_index;
|
|
u32 last_switch_in_stamp;
|
|
u32 reserved0;
|
|
u32 total_runtime;
|
|
u32 reserved1[4];
|
|
};
|
|
|
|
struct guc_update_context_policy_header {
|
|
u32 action;
|
|
u32 ctx_id;
|
|
};
|
|
|
|
struct guc_klv_generic_dw_t {
|
|
u32 kl;
|
|
u32 value;
|
|
};
|
|
|
|
struct guc_update_context_policy {
|
|
struct guc_update_context_policy_header header;
|
|
struct guc_klv_generic_dw_t klv[5];
|
|
};
|
|
|
|
struct context_policy {
|
|
u32 count;
|
|
struct guc_update_context_policy h2g;
|
|
};
|
|
|
|
struct intel_dbuf_state {
|
|
struct intel_global_state base;
|
|
struct skl_ddb_entry ddb[4];
|
|
unsigned int weight[4];
|
|
u8 slices[4];
|
|
u8 enabled_slices;
|
|
u8 active_pipes;
|
|
bool joined_mbus;
|
|
};
|
|
|
|
typedef void (*btf_trace_intel_pipe_enable)(void *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_pipe_disable)(void *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_pipe_crc)(void *, struct intel_crtc *, const u32 *);
|
|
|
|
typedef void (*btf_trace_intel_cpu_fifo_underrun)(void *, struct drm_i915_private *, enum pipe);
|
|
|
|
typedef void (*btf_trace_intel_pch_fifo_underrun)(void *, struct drm_i915_private *, enum pipe);
|
|
|
|
typedef void (*btf_trace_intel_memory_cxsr)(void *, struct drm_i915_private *, bool, bool);
|
|
|
|
typedef void (*btf_trace_g4x_wm)(void *, struct intel_crtc *, const struct g4x_wm_values *);
|
|
|
|
typedef void (*btf_trace_vlv_wm)(void *, struct intel_crtc *, const struct vlv_wm_values *);
|
|
|
|
typedef void (*btf_trace_vlv_fifo_size)(void *, struct intel_crtc *, u32, u32, u32);
|
|
|
|
typedef void (*btf_trace_intel_plane_update_noarm)(void *, struct intel_plane *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_plane_update_arm)(void *, struct intel_plane *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_plane_disable_arm)(void *, struct intel_plane *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_fbc_activate)(void *, struct intel_plane *);
|
|
|
|
typedef void (*btf_trace_intel_fbc_deactivate)(void *, struct intel_plane *);
|
|
|
|
typedef void (*btf_trace_intel_fbc_nuke)(void *, struct intel_plane *);
|
|
|
|
typedef void (*btf_trace_intel_crtc_vblank_work_start)(void *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_crtc_vblank_work_end)(void *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_pipe_update_start)(void *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_pipe_update_vblank_evaded)(void *, struct intel_crtc *);
|
|
|
|
typedef void (*btf_trace_intel_pipe_update_end)(void *, struct intel_crtc *, u32, int);
|
|
|
|
typedef void (*btf_trace_intel_frontbuffer_invalidate)(void *, struct drm_i915_private *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_intel_frontbuffer_flush)(void *, struct drm_i915_private *, unsigned int, unsigned int);
|
|
|
|
struct trace_event_raw_intel_pipe_enable {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 frame[3];
|
|
u32 scanline[3];
|
|
enum pipe pipe;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_pipe_disable {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 frame[3];
|
|
u32 scanline[3];
|
|
enum pipe pipe;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_pipe_crc {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u32 crcs[5];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_cpu_fifo_underrun {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_pch_fifo_underrun {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_memory_cxsr {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 frame[3];
|
|
u32 scanline[3];
|
|
bool old;
|
|
bool new;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_g4x_wm {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u16 primary;
|
|
u16 sprite;
|
|
u16 cursor;
|
|
u16 sr_plane;
|
|
u16 sr_cursor;
|
|
u16 sr_fbc;
|
|
u16 hpll_plane;
|
|
u16 hpll_cursor;
|
|
u16 hpll_fbc;
|
|
bool cxsr;
|
|
bool hpll;
|
|
bool fbc;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vlv_wm {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u32 level;
|
|
u32 cxsr;
|
|
u32 primary;
|
|
u32 sprite0;
|
|
u32 sprite1;
|
|
u32 cursor;
|
|
u32 sr_plane;
|
|
u32 sr_cursor;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vlv_fifo_size {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u32 sprite0_start;
|
|
u32 sprite1_start;
|
|
u32 fifo_size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_plane_update_noarm {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
int src[4];
|
|
int dst[4];
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_plane_update_arm {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
int src[4];
|
|
int dst[4];
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_plane_disable_arm {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_fbc_activate {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_name;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_fbc_deactivate {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_name;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_fbc_nuke {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_name;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_crtc_vblank_work_start {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_crtc_vblank_work_end {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_pipe_update_start {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u32 min;
|
|
u32 max;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_pipe_update_vblank_evaded {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
u32 min;
|
|
u32 max;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_pipe_update_end {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
enum pipe pipe;
|
|
u32 frame;
|
|
u32 scanline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_frontbuffer_invalidate {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
unsigned int frontbuffer_bits;
|
|
unsigned int origin;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_intel_frontbuffer_flush {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
unsigned int frontbuffer_bits;
|
|
unsigned int origin;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pipe_enable {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pipe_disable {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pipe_crc {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_cpu_fifo_underrun {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pch_fifo_underrun {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_memory_cxsr {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_g4x_wm {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_vlv_wm {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_vlv_fifo_size {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_plane_update_noarm {
|
|
u32 dev;
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_plane_update_arm {
|
|
u32 dev;
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_plane_disable_arm {
|
|
u32 dev;
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_fbc_activate {
|
|
u32 dev;
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_fbc_deactivate {
|
|
u32 dev;
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_fbc_nuke {
|
|
u32 dev;
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_crtc_vblank_work_start {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_crtc_vblank_work_end {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pipe_update_start {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pipe_update_vblank_evaded {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_pipe_update_end {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_frontbuffer_invalidate {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_intel_frontbuffer_flush {
|
|
u32 dev;
|
|
};
|
|
|
|
typedef void (*btf_trace_virtio_gpu_cmd_queue)(void *, struct virtqueue *, struct virtio_gpu_ctrl_hdr *, u32);
|
|
|
|
typedef void (*btf_trace_virtio_gpu_cmd_response)(void *, struct virtqueue *, struct virtio_gpu_ctrl_hdr *, u32);
|
|
|
|
struct trace_event_raw_virtio_gpu_cmd {
|
|
struct trace_entry ent;
|
|
int dev;
|
|
unsigned int vq;
|
|
u32 __data_loc_name;
|
|
u32 type;
|
|
u32 flags;
|
|
u64 fence_id;
|
|
u32 ctx_id;
|
|
u32 num_free;
|
|
u32 seqno;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_virtio_gpu_cmd {
|
|
u32 name;
|
|
};
|
|
|
|
struct dma_fence_array_cb {
|
|
struct dma_fence_cb cb;
|
|
struct dma_fence_array *array;
|
|
};
|
|
|
|
enum {
|
|
ACTION_FAIL = 0,
|
|
ACTION_REPREP = 1,
|
|
ACTION_DELAYED_REPREP = 2,
|
|
ACTION_RETRY = 3,
|
|
ACTION_DELAYED_RETRY = 4,
|
|
};
|
|
|
|
enum {
|
|
BLK_MQ_F_SHOULD_MERGE = 1,
|
|
BLK_MQ_F_TAG_QUEUE_SHARED = 2,
|
|
BLK_MQ_F_STACKING = 4,
|
|
BLK_MQ_F_TAG_HCTX_SHARED = 8,
|
|
BLK_MQ_F_BLOCKING = 32,
|
|
BLK_MQ_F_NO_SCHED = 64,
|
|
BLK_MQ_F_NO_SCHED_BY_DEFAULT = 128,
|
|
BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
|
|
BLK_MQ_F_ALLOC_POLICY_BITS = 1,
|
|
BLK_MQ_S_STOPPED = 0,
|
|
BLK_MQ_S_TAG_ACTIVE = 1,
|
|
BLK_MQ_S_SCHED_RESTART = 2,
|
|
BLK_MQ_S_INACTIVE = 3,
|
|
BLK_MQ_MAX_DEPTH = 10240,
|
|
BLK_MQ_CPU_WORK_BATCH = 8,
|
|
};
|
|
|
|
enum scsi_host_prot_capabilities {
|
|
SHOST_DIF_TYPE1_PROTECTION = 1,
|
|
SHOST_DIF_TYPE2_PROTECTION = 2,
|
|
SHOST_DIF_TYPE3_PROTECTION = 4,
|
|
SHOST_DIX_TYPE0_PROTECTION = 8,
|
|
SHOST_DIX_TYPE1_PROTECTION = 16,
|
|
SHOST_DIX_TYPE2_PROTECTION = 32,
|
|
SHOST_DIX_TYPE3_PROTECTION = 64,
|
|
};
|
|
|
|
enum hctx_type {
|
|
HCTX_TYPE_DEFAULT = 0,
|
|
HCTX_TYPE_READ = 1,
|
|
HCTX_TYPE_POLL = 2,
|
|
HCTX_MAX_TYPES = 3,
|
|
};
|
|
|
|
struct scsi_mode_data {
|
|
__u32 length;
|
|
__u16 block_descriptor_length;
|
|
__u8 medium_type;
|
|
__u8 device_specific;
|
|
__u8 header_length;
|
|
__u8 longlba: 1;
|
|
};
|
|
|
|
typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *);
|
|
|
|
enum i2c_alert_protocol {
|
|
I2C_PROTOCOL_SMBUS_ALERT = 0,
|
|
I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1,
|
|
};
|
|
|
|
enum i2c_driver_flags {
|
|
I2C_DRV_ACPI_WAIVE_D0_PROBE = 1,
|
|
};
|
|
|
|
enum acpi_reconfig_event {
|
|
ACPI_RECONFIG_DEVICE_ADD = 0,
|
|
ACPI_RECONFIG_DEVICE_REMOVE = 1,
|
|
};
|
|
|
|
struct i2c_device_id;
|
|
|
|
struct i2c_driver {
|
|
unsigned int class;
|
|
int (*probe)(struct i2c_client *, const struct i2c_device_id *);
|
|
void (*remove)(struct i2c_client *);
|
|
int (*probe_new)(struct i2c_client *);
|
|
void (*shutdown)(struct i2c_client *);
|
|
void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int);
|
|
int (*command)(struct i2c_client *, unsigned int, void *);
|
|
struct device_driver driver;
|
|
const struct i2c_device_id *id_table;
|
|
int (*detect)(struct i2c_client *, struct i2c_board_info *);
|
|
const unsigned short *address_list;
|
|
struct list_head clients;
|
|
u32 flags;
|
|
};
|
|
|
|
struct i2c_device_id {
|
|
char name[20];
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
struct gsb_buffer {
|
|
u8 status;
|
|
u8 len;
|
|
union {
|
|
u16 wdata;
|
|
u8 bdata;
|
|
struct {
|
|
struct { } __empty_data;
|
|
u8 data[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct i2c_acpi_irq_context {
|
|
int irq;
|
|
bool wake_capable;
|
|
};
|
|
|
|
struct i2c_acpi_lookup {
|
|
struct i2c_board_info *info;
|
|
acpi_handle adapter_handle;
|
|
acpi_handle device_handle;
|
|
acpi_handle search_handle;
|
|
int n;
|
|
int index;
|
|
u32 speed;
|
|
u32 min_speed;
|
|
u32 force_speed;
|
|
};
|
|
|
|
struct acpi_connection_info {
|
|
u8 *connection;
|
|
u16 length;
|
|
u8 access_length;
|
|
};
|
|
|
|
struct i2c_acpi_handler_data {
|
|
struct acpi_connection_info info;
|
|
struct i2c_adapter *adapter;
|
|
};
|
|
|
|
struct linear_c {
|
|
struct dm_dev *dev;
|
|
sector_t start;
|
|
};
|
|
|
|
struct cpuidle_state_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct cpuidle_state *, struct cpuidle_state_usage *, char *);
|
|
ssize_t (*store)(struct cpuidle_state *, struct cpuidle_state_usage *, const char *, size_t);
|
|
};
|
|
|
|
struct cpuidle_state_kobj {
|
|
struct cpuidle_state *state;
|
|
struct cpuidle_state_usage *state_usage;
|
|
struct completion kobj_unregister;
|
|
struct kobject kobj;
|
|
struct cpuidle_device *device;
|
|
};
|
|
|
|
struct cpuidle_device_kobj {
|
|
struct cpuidle_device *dev;
|
|
struct completion kobj_unregister;
|
|
struct kobject kobj;
|
|
};
|
|
|
|
struct cpuidle_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct cpuidle_device *, char *);
|
|
ssize_t (*store)(struct cpuidle_device *, const char *, size_t);
|
|
};
|
|
|
|
struct usage_priority {
|
|
__u32 usage;
|
|
bool global;
|
|
unsigned int slot_overwrite;
|
|
};
|
|
|
|
typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int);
|
|
|
|
struct snd_hrtimer {
|
|
struct snd_timer *timer;
|
|
struct hrtimer hrt;
|
|
bool in_callback;
|
|
};
|
|
|
|
typedef atomic_t snd_use_lock_t;
|
|
|
|
struct snd_seq_prioq;
|
|
|
|
struct snd_seq_timer;
|
|
|
|
struct snd_seq_queue {
|
|
int queue;
|
|
char name[64];
|
|
struct snd_seq_prioq *tickq;
|
|
struct snd_seq_prioq *timeq;
|
|
struct snd_seq_timer *timer;
|
|
int owner;
|
|
bool locked;
|
|
bool klocked;
|
|
bool check_again;
|
|
bool check_blocked;
|
|
unsigned int flags;
|
|
unsigned int info_flags;
|
|
spinlock_t owner_lock;
|
|
spinlock_t check_lock;
|
|
unsigned long clients_bitmap[3];
|
|
unsigned int clients;
|
|
struct mutex timer_mutex;
|
|
snd_use_lock_t use_lock;
|
|
};
|
|
|
|
struct snd_seq_event_cell;
|
|
|
|
struct snd_seq_prioq {
|
|
struct snd_seq_event_cell *head;
|
|
struct snd_seq_event_cell *tail;
|
|
int cells;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
typedef unsigned char snd_seq_event_type_t;
|
|
|
|
typedef unsigned int snd_seq_tick_time_t;
|
|
|
|
struct snd_seq_real_time {
|
|
unsigned int tv_sec;
|
|
unsigned int tv_nsec;
|
|
};
|
|
|
|
union snd_seq_timestamp {
|
|
snd_seq_tick_time_t tick;
|
|
struct snd_seq_real_time time;
|
|
};
|
|
|
|
struct snd_seq_addr {
|
|
unsigned char client;
|
|
unsigned char port;
|
|
};
|
|
|
|
struct snd_seq_ev_note {
|
|
unsigned char channel;
|
|
unsigned char note;
|
|
unsigned char velocity;
|
|
unsigned char off_velocity;
|
|
unsigned int duration;
|
|
};
|
|
|
|
struct snd_seq_ev_ctrl {
|
|
unsigned char channel;
|
|
unsigned char unused1;
|
|
unsigned char unused2;
|
|
unsigned char unused3;
|
|
unsigned int param;
|
|
int value;
|
|
};
|
|
|
|
struct snd_seq_ev_raw8 {
|
|
unsigned char d[12];
|
|
};
|
|
|
|
struct snd_seq_ev_raw32 {
|
|
unsigned int d[3];
|
|
};
|
|
|
|
struct snd_seq_ev_ext {
|
|
unsigned int len;
|
|
void *ptr;
|
|
} __attribute__((packed));
|
|
|
|
struct snd_seq_queue_skew {
|
|
unsigned int value;
|
|
unsigned int base;
|
|
};
|
|
|
|
struct snd_seq_ev_queue_control {
|
|
unsigned char queue;
|
|
unsigned char pad[3];
|
|
union {
|
|
int value;
|
|
union snd_seq_timestamp time;
|
|
unsigned int position;
|
|
struct snd_seq_queue_skew skew;
|
|
unsigned int d32[2];
|
|
unsigned char d8[8];
|
|
} param;
|
|
};
|
|
|
|
struct snd_seq_connect {
|
|
struct snd_seq_addr sender;
|
|
struct snd_seq_addr dest;
|
|
};
|
|
|
|
struct snd_seq_result {
|
|
int event;
|
|
int result;
|
|
};
|
|
|
|
struct snd_seq_event;
|
|
|
|
struct snd_seq_ev_quote {
|
|
struct snd_seq_addr origin;
|
|
unsigned short value;
|
|
struct snd_seq_event *event;
|
|
} __attribute__((packed));
|
|
|
|
struct snd_seq_event {
|
|
snd_seq_event_type_t type;
|
|
unsigned char flags;
|
|
char tag;
|
|
unsigned char queue;
|
|
union snd_seq_timestamp time;
|
|
struct snd_seq_addr source;
|
|
struct snd_seq_addr dest;
|
|
union {
|
|
struct snd_seq_ev_note note;
|
|
struct snd_seq_ev_ctrl control;
|
|
struct snd_seq_ev_raw8 raw8;
|
|
struct snd_seq_ev_raw32 raw32;
|
|
struct snd_seq_ev_ext ext;
|
|
struct snd_seq_ev_queue_control queue;
|
|
union snd_seq_timestamp time;
|
|
struct snd_seq_addr addr;
|
|
struct snd_seq_connect connect;
|
|
struct snd_seq_result result;
|
|
struct snd_seq_ev_quote quote;
|
|
} data;
|
|
} __attribute__((packed));
|
|
|
|
struct snd_seq_pool;
|
|
|
|
struct snd_seq_event_cell {
|
|
struct snd_seq_event event;
|
|
struct snd_seq_pool *pool;
|
|
struct snd_seq_event_cell *next;
|
|
};
|
|
|
|
struct snd_seq_pool {
|
|
struct snd_seq_event_cell *ptr;
|
|
struct snd_seq_event_cell *free;
|
|
int total_elements;
|
|
atomic_t counter;
|
|
int size;
|
|
int room;
|
|
int closing;
|
|
int max_used;
|
|
int event_alloc_nopool;
|
|
int event_alloc_failures;
|
|
int event_alloc_success;
|
|
wait_queue_head_t output_sleep;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
typedef struct snd_seq_real_time snd_seq_real_time_t;
|
|
|
|
struct snd_seq_timer_tick {
|
|
snd_seq_tick_time_t cur_tick;
|
|
unsigned long resolution;
|
|
unsigned long fraction;
|
|
};
|
|
|
|
struct snd_timer_id {
|
|
int dev_class;
|
|
int dev_sclass;
|
|
int card;
|
|
int device;
|
|
int subdevice;
|
|
};
|
|
|
|
struct snd_timer_instance;
|
|
|
|
struct snd_seq_timer {
|
|
unsigned int running: 1;
|
|
unsigned int initialized: 1;
|
|
unsigned int tempo;
|
|
int ppq;
|
|
snd_seq_real_time_t cur_time;
|
|
struct snd_seq_timer_tick tick;
|
|
int tick_updated;
|
|
int type;
|
|
struct snd_timer_id alsa_id;
|
|
struct snd_timer_instance *timeri;
|
|
unsigned int ticks;
|
|
unsigned long preferred_resolution;
|
|
unsigned int skew;
|
|
unsigned int skew_base;
|
|
struct timespec64 last_update;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct snd_timer_instance {
|
|
struct snd_timer *timer;
|
|
char *owner;
|
|
unsigned int flags;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_timer_instance *);
|
|
void (*callback)(struct snd_timer_instance *, unsigned long, unsigned long);
|
|
void (*ccallback)(struct snd_timer_instance *, int, struct timespec64 *, unsigned long);
|
|
void (*disconnect)(struct snd_timer_instance *);
|
|
void *callback_data;
|
|
unsigned long ticks;
|
|
unsigned long cticks;
|
|
unsigned long pticks;
|
|
unsigned long resolution;
|
|
unsigned long lost;
|
|
int slave_class;
|
|
unsigned int slave_id;
|
|
struct list_head open_list;
|
|
struct list_head active_list;
|
|
struct list_head ack_list;
|
|
struct list_head slave_list_head;
|
|
struct list_head slave_active_head;
|
|
struct snd_timer_instance *master;
|
|
};
|
|
|
|
struct snd_seq_remove_events {
|
|
unsigned int remove_mode;
|
|
union snd_seq_timestamp time;
|
|
unsigned char queue;
|
|
struct snd_seq_addr dest;
|
|
unsigned char channel;
|
|
int type;
|
|
char tag;
|
|
int reserved[10];
|
|
};
|
|
|
|
struct snd_seq_queue_tempo {
|
|
int queue;
|
|
unsigned int tempo;
|
|
int ppq;
|
|
unsigned int skew_value;
|
|
unsigned int skew_base;
|
|
char reserved[24];
|
|
};
|
|
|
|
struct net_device_devres {
|
|
struct net_device *ndev;
|
|
};
|
|
|
|
struct page_pool_stats {
|
|
struct page_pool_alloc_stats alloc_stats;
|
|
struct page_pool_recycle_stats recycle_stats;
|
|
};
|
|
|
|
enum {
|
|
LWT_BPF_UNSPEC = 0,
|
|
LWT_BPF_IN = 1,
|
|
LWT_BPF_OUT = 2,
|
|
LWT_BPF_XMIT = 3,
|
|
LWT_BPF_XMIT_HEADROOM = 4,
|
|
__LWT_BPF_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
LWT_BPF_PROG_UNSPEC = 0,
|
|
LWT_BPF_PROG_FD = 1,
|
|
LWT_BPF_PROG_NAME = 2,
|
|
__LWT_BPF_PROG_MAX = 3,
|
|
};
|
|
|
|
enum bpf_ret_code {
|
|
BPF_OK = 0,
|
|
BPF_DROP = 2,
|
|
BPF_REDIRECT = 7,
|
|
BPF_LWT_REROUTE = 128,
|
|
BPF_FLOW_DISSECTOR_CONTINUE = 129,
|
|
};
|
|
|
|
struct bpf_skb_data_end {
|
|
struct qdisc_skb_cb qdisc_cb;
|
|
void *data_meta;
|
|
void *data_end;
|
|
};
|
|
|
|
struct bpf_lwt_prog {
|
|
struct bpf_prog *prog;
|
|
char *name;
|
|
};
|
|
|
|
struct bpf_lwt {
|
|
struct bpf_lwt_prog in;
|
|
struct bpf_lwt_prog out;
|
|
struct bpf_lwt_prog xmit;
|
|
int family;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_LINKINFO_UNSPEC = 0,
|
|
ETHTOOL_A_LINKINFO_HEADER = 1,
|
|
ETHTOOL_A_LINKINFO_PORT = 2,
|
|
ETHTOOL_A_LINKINFO_PHYADDR = 3,
|
|
ETHTOOL_A_LINKINFO_TP_MDIX = 4,
|
|
ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5,
|
|
ETHTOOL_A_LINKINFO_TRANSCEIVER = 6,
|
|
__ETHTOOL_A_LINKINFO_CNT = 7,
|
|
ETHTOOL_A_LINKINFO_MAX = 6,
|
|
};
|
|
|
|
struct linkinfo_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_link_ksettings ksettings;
|
|
struct ethtool_link_settings *lsettings;
|
|
};
|
|
|
|
struct nfnl_ct_hook {
|
|
size_t (*build_size)(const struct nf_conn *);
|
|
int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t);
|
|
int (*parse)(const struct nlattr *, struct nf_conn *);
|
|
int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32);
|
|
void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32);
|
|
};
|
|
|
|
struct nf_ct_hook {
|
|
int (*update)(struct net *, struct sk_buff *);
|
|
void (*destroy)(struct nf_conntrack *);
|
|
bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *);
|
|
void (*attach)(struct sk_buff *, const struct sk_buff *);
|
|
void (*set_closing)(struct nf_conntrack *);
|
|
};
|
|
|
|
struct nf_hook_entries_rcu_head {
|
|
struct callback_head head;
|
|
void *allocation;
|
|
};
|
|
|
|
enum nf_ct_ftp_type {
|
|
NF_CT_FTP_PORT = 0,
|
|
NF_CT_FTP_PASV = 1,
|
|
NF_CT_FTP_EPRT = 2,
|
|
NF_CT_FTP_EPSV = 3,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32);
|
|
|
|
struct in_pktinfo {
|
|
int ipi_ifindex;
|
|
struct in_addr ipi_spec_dst;
|
|
struct in_addr ipi_addr;
|
|
};
|
|
|
|
struct xfrm_tunnel {
|
|
int (*handler)(struct sk_buff *);
|
|
int (*cb_handler)(struct sk_buff *, int);
|
|
int (*err_handler)(struct sk_buff *, u32);
|
|
struct xfrm_tunnel __attribute__((btf_type_tag("rcu"))) *next;
|
|
int priority;
|
|
};
|
|
|
|
struct sit_net {
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r_l[16];
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r[16];
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_l[16];
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_wc[1];
|
|
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) **tunnels[4];
|
|
struct net_device *fb_tunnel_dev;
|
|
};
|
|
|
|
struct ip_tunnel_prl {
|
|
__be32 addr;
|
|
__u16 flags;
|
|
__u16 __reserved;
|
|
__u32 datalen;
|
|
__u32 __reserved2;
|
|
};
|
|
|
|
struct metadata_dst;
|
|
|
|
struct sunrpc_net {
|
|
struct proc_dir_entry *proc_net_rpc;
|
|
struct cache_detail *ip_map_cache;
|
|
struct cache_detail *unix_gid_cache;
|
|
struct cache_detail *rsc_cache;
|
|
struct cache_detail *rsi_cache;
|
|
struct super_block *pipefs_sb;
|
|
struct rpc_pipe *gssd_dummy;
|
|
struct mutex pipefs_sb_lock;
|
|
struct list_head all_clients;
|
|
spinlock_t rpc_client_lock;
|
|
struct rpc_clnt *rpcb_local_clnt;
|
|
struct rpc_clnt *rpcb_local_clnt4;
|
|
spinlock_t rpcb_clnt_lock;
|
|
unsigned int rpcb_users;
|
|
unsigned int rpcb_is_af_local: 1;
|
|
struct mutex gssp_lock;
|
|
struct rpc_clnt *gssp_clnt;
|
|
int use_gss_proxy;
|
|
int pipe_version;
|
|
atomic_t pipe_users;
|
|
struct proc_dir_entry *use_gssp_proc;
|
|
struct proc_dir_entry *gss_krb5_enctypes;
|
|
};
|
|
|
|
struct rpc_sysfs_client {
|
|
struct kobject kobject;
|
|
struct net *net;
|
|
struct rpc_clnt *clnt;
|
|
struct rpc_xprt_switch *xprt_switch;
|
|
};
|
|
|
|
enum nl80211_key_type {
|
|
NL80211_KEYTYPE_GROUP = 0,
|
|
NL80211_KEYTYPE_PAIRWISE = 1,
|
|
NL80211_KEYTYPE_PEERKEY = 2,
|
|
NUM_NL80211_KEYTYPES = 3,
|
|
};
|
|
|
|
struct cfg80211_mgmt_registration {
|
|
struct list_head list;
|
|
struct wireless_dev *wdev;
|
|
u32 nlportid;
|
|
int match_len;
|
|
__le16 frame_type;
|
|
bool multicast_rx;
|
|
u8 match[0];
|
|
};
|
|
|
|
struct cfg80211_rx_info {
|
|
int freq;
|
|
int sig_dbm;
|
|
bool have_link_id;
|
|
u8 link_id;
|
|
const u8 *buf;
|
|
size_t len;
|
|
u32 flags;
|
|
u64 rx_tstamp;
|
|
u64 ack_tstamp;
|
|
};
|
|
|
|
enum ieee80211_spectrum_mgmt_actioncode {
|
|
WLAN_ACTION_SPCT_MSR_REQ = 0,
|
|
WLAN_ACTION_SPCT_MSR_RPRT = 1,
|
|
WLAN_ACTION_SPCT_TPC_REQ = 2,
|
|
WLAN_ACTION_SPCT_TPC_RPRT = 3,
|
|
WLAN_ACTION_SPCT_CHL_SWITCH = 4,
|
|
};
|
|
|
|
struct pcibios_fwaddrmap {
|
|
struct list_head list;
|
|
struct pci_dev *dev;
|
|
resource_size_t fw_addr[11];
|
|
};
|
|
|
|
struct pci_check_idx_range {
|
|
int start;
|
|
int end;
|
|
};
|
|
|
|
enum xz_mode {
|
|
XZ_SINGLE = 0,
|
|
XZ_PREALLOC = 1,
|
|
XZ_DYNALLOC = 2,
|
|
};
|
|
|
|
struct xz_dec;
|
|
|
|
struct real_mode_header {
|
|
u32 text_start;
|
|
u32 ro_end;
|
|
u32 trampoline_start;
|
|
u32 trampoline_header;
|
|
u32 trampoline_start64;
|
|
u32 trampoline_pgd;
|
|
u32 wakeup_start;
|
|
u32 wakeup_header;
|
|
u32 machine_real_restart_asm;
|
|
u32 machine_real_restart_seg;
|
|
};
|
|
|
|
struct trampoline_header {
|
|
u64 start;
|
|
u64 efer;
|
|
u32 cr4;
|
|
u32 flags;
|
|
};
|
|
|
|
enum xfeature {
|
|
XFEATURE_FP = 0,
|
|
XFEATURE_SSE = 1,
|
|
XFEATURE_YMM = 2,
|
|
XFEATURE_BNDREGS = 3,
|
|
XFEATURE_BNDCSR = 4,
|
|
XFEATURE_OPMASK = 5,
|
|
XFEATURE_ZMM_Hi256 = 6,
|
|
XFEATURE_Hi16_ZMM = 7,
|
|
XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8,
|
|
XFEATURE_PKRU = 9,
|
|
XFEATURE_PASID = 10,
|
|
XFEATURE_RSRVD_COMP_11 = 11,
|
|
XFEATURE_RSRVD_COMP_12 = 12,
|
|
XFEATURE_RSRVD_COMP_13 = 13,
|
|
XFEATURE_RSRVD_COMP_14 = 14,
|
|
XFEATURE_LBR = 15,
|
|
XFEATURE_RSRVD_COMP_16 = 16,
|
|
XFEATURE_XTILE_CFG = 17,
|
|
XFEATURE_XTILE_DATA = 18,
|
|
XFEATURE_MAX = 19,
|
|
};
|
|
|
|
enum rseq_event_mask_bits {
|
|
RSEQ_EVENT_PREEMPT_BIT = 0,
|
|
RSEQ_EVENT_SIGNAL_BIT = 1,
|
|
RSEQ_EVENT_MIGRATE_BIT = 2,
|
|
};
|
|
|
|
struct kernel_vm86_regs {
|
|
struct pt_regs pt;
|
|
unsigned short es;
|
|
unsigned short __esh;
|
|
unsigned short ds;
|
|
unsigned short __dsh;
|
|
unsigned short fs;
|
|
unsigned short __fsh;
|
|
unsigned short gs;
|
|
unsigned short __gsh;
|
|
};
|
|
|
|
struct debugfs_blob_wrapper {
|
|
void *data;
|
|
unsigned long size;
|
|
};
|
|
|
|
struct setup_indirect {
|
|
__u32 type;
|
|
__u32 reserved;
|
|
__u64 len;
|
|
__u64 addr;
|
|
};
|
|
|
|
struct setup_data_node {
|
|
u64 paddr;
|
|
u32 type;
|
|
u32 len;
|
|
};
|
|
|
|
struct unwind_state {
|
|
struct stack_info stack_info;
|
|
unsigned long stack_mask;
|
|
struct task_struct *task;
|
|
int graph_idx;
|
|
struct llist_node *kr_cur;
|
|
bool error;
|
|
bool signal;
|
|
bool full_regs;
|
|
unsigned long sp;
|
|
unsigned long bp;
|
|
unsigned long ip;
|
|
struct pt_regs *regs;
|
|
struct pt_regs *prev_regs;
|
|
};
|
|
|
|
struct stack_frame_user {
|
|
const void __attribute__((btf_type_tag("user"))) *next_fp;
|
|
unsigned long ret_addr;
|
|
};
|
|
|
|
typedef bool (*stack_trace_consume_fn)(void *, unsigned long);
|
|
|
|
struct chipset {
|
|
u32 vendor;
|
|
u32 device;
|
|
u32 class;
|
|
u32 class_mask;
|
|
u32 flags;
|
|
void (*f)(int, int, int);
|
|
};
|
|
|
|
struct intel_early_ops {
|
|
resource_size_t (*stolen_size)(int, int, int);
|
|
resource_size_t (*stolen_base)(int, int, int, resource_size_t);
|
|
};
|
|
|
|
struct mpc_intsrc {
|
|
unsigned char type;
|
|
unsigned char irqtype;
|
|
unsigned short irqflag;
|
|
unsigned char srcbus;
|
|
unsigned char srcbusirq;
|
|
unsigned char dstapic;
|
|
unsigned char dstirq;
|
|
};
|
|
|
|
enum ioapic_domain_type {
|
|
IOAPIC_DOMAIN_INVALID = 0,
|
|
IOAPIC_DOMAIN_LEGACY = 1,
|
|
IOAPIC_DOMAIN_STRICT = 2,
|
|
IOAPIC_DOMAIN_DYNAMIC = 3,
|
|
};
|
|
|
|
enum mp_irq_source_types {
|
|
mp_INT = 0,
|
|
mp_NMI = 1,
|
|
mp_SMI = 2,
|
|
mp_ExtINT = 3,
|
|
};
|
|
|
|
struct mpc_cpu {
|
|
unsigned char type;
|
|
unsigned char apicid;
|
|
unsigned char apicver;
|
|
unsigned char cpuflag;
|
|
unsigned int cpufeature;
|
|
unsigned int featureflag;
|
|
unsigned int reserved[2];
|
|
};
|
|
|
|
struct mpc_bus {
|
|
unsigned char type;
|
|
unsigned char busid;
|
|
unsigned char bustype[6];
|
|
};
|
|
|
|
struct mpc_ioapic {
|
|
unsigned char type;
|
|
unsigned char apicid;
|
|
unsigned char apicver;
|
|
unsigned char flags;
|
|
unsigned int apicaddr;
|
|
};
|
|
|
|
struct mpc_lintsrc {
|
|
unsigned char type;
|
|
unsigned char irqtype;
|
|
unsigned short irqflag;
|
|
unsigned char srcbusid;
|
|
unsigned char srcbusirq;
|
|
unsigned char destapic;
|
|
unsigned char destapiclint;
|
|
};
|
|
|
|
struct mpf_intel {
|
|
char signature[4];
|
|
unsigned int physptr;
|
|
unsigned char length;
|
|
unsigned char specification;
|
|
unsigned char checksum;
|
|
unsigned char feature1;
|
|
unsigned char feature2;
|
|
unsigned char feature3;
|
|
unsigned char feature4;
|
|
unsigned char feature5;
|
|
};
|
|
|
|
struct ioapic_domain_cfg {
|
|
enum ioapic_domain_type type;
|
|
const struct irq_domain_ops *ops;
|
|
struct device_node *dev;
|
|
};
|
|
|
|
struct mpc_table {
|
|
char signature[4];
|
|
unsigned short length;
|
|
char spec;
|
|
char checksum;
|
|
char oem[8];
|
|
char productid[12];
|
|
unsigned int oemptr;
|
|
unsigned short oemsize;
|
|
unsigned short oemcount;
|
|
unsigned int lapic;
|
|
unsigned int reserved;
|
|
};
|
|
|
|
struct tlb_state_shared {
|
|
bool is_lazy;
|
|
};
|
|
|
|
struct flush_tlb_info {
|
|
struct mm_struct *mm;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
u64 new_tlb_gen;
|
|
unsigned int initiating_cpu;
|
|
u8 stride_shift;
|
|
u8 freed_tables;
|
|
};
|
|
|
|
enum tlb_flush_reason {
|
|
TLB_FLUSH_ON_TASK_SWITCH = 0,
|
|
TLB_REMOTE_SHOOTDOWN = 1,
|
|
TLB_LOCAL_SHOOTDOWN = 2,
|
|
TLB_LOCAL_MM_SHOOTDOWN = 3,
|
|
TLB_REMOTE_SEND_IPI = 4,
|
|
NR_TLB_FLUSH_REASONS = 5,
|
|
};
|
|
|
|
typedef void (*task_work_func_t)(struct callback_head *);
|
|
|
|
enum rtmutex_chainwalk {
|
|
RT_MUTEX_MIN_CHAINWALK = 0,
|
|
RT_MUTEX_FULL_CHAINWALK = 1,
|
|
};
|
|
|
|
struct rt_mutex_waiter {
|
|
struct rb_node tree_entry;
|
|
struct rb_node pi_tree_entry;
|
|
struct task_struct *task;
|
|
struct rt_mutex_base *lock;
|
|
unsigned int wake_state;
|
|
int prio;
|
|
u64 deadline;
|
|
struct ww_acquire_ctx *ww_ctx;
|
|
};
|
|
|
|
struct rt_wake_q_head {
|
|
struct wake_q_head head;
|
|
struct task_struct *rtlock_task;
|
|
};
|
|
|
|
enum {
|
|
IRQTF_RUNTHREAD = 0,
|
|
IRQTF_WARNED = 1,
|
|
IRQTF_AFFINITY = 2,
|
|
IRQTF_FORCED_THREAD = 3,
|
|
IRQTF_READY = 4,
|
|
};
|
|
|
|
struct io_tlb_area {
|
|
unsigned long used;
|
|
unsigned int index;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct io_tlb_slot {
|
|
phys_addr_t orig_addr;
|
|
size_t alloc_size;
|
|
unsigned int list;
|
|
};
|
|
|
|
typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t);
|
|
|
|
struct trace_event_raw_swiotlb_bounced {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev_name;
|
|
u64 dma_mask;
|
|
dma_addr_t dev_addr;
|
|
size_t size;
|
|
bool force;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_swiotlb_bounced {
|
|
u32 dev_name;
|
|
};
|
|
|
|
struct audit_parent {
|
|
struct list_head watches;
|
|
struct fsnotify_mark mark;
|
|
};
|
|
|
|
struct audit_watch {
|
|
refcount_t count;
|
|
dev_t dev;
|
|
char *path;
|
|
unsigned long ino;
|
|
struct audit_parent *parent;
|
|
struct list_head wlist;
|
|
struct list_head rules;
|
|
};
|
|
|
|
struct bpf_verifier_stack_elem {
|
|
struct bpf_verifier_state st;
|
|
int insn_idx;
|
|
int prev_insn_idx;
|
|
struct bpf_verifier_stack_elem *next;
|
|
u32 log_pos;
|
|
};
|
|
|
|
struct bpf_kfunc_desc {
|
|
struct btf_func_model func_model;
|
|
u32 func_id;
|
|
s32 imm;
|
|
u16 offset;
|
|
};
|
|
|
|
struct bpf_kfunc_desc_tab {
|
|
struct bpf_kfunc_desc descs[256];
|
|
u32 nr_descs;
|
|
};
|
|
|
|
struct bpf_kfunc_btf {
|
|
struct btf *btf;
|
|
struct module *module;
|
|
u16 offset;
|
|
};
|
|
|
|
struct bpf_kfunc_btf_tab {
|
|
struct bpf_kfunc_btf descs[256];
|
|
u32 nr_descs;
|
|
};
|
|
|
|
struct bpf_reg_types {
|
|
const enum bpf_reg_type types[10];
|
|
u32 *btf_id;
|
|
};
|
|
|
|
enum bpf_stack_slot_type {
|
|
STACK_INVALID = 0,
|
|
STACK_SPILL = 1,
|
|
STACK_MISC = 2,
|
|
STACK_ZERO = 3,
|
|
STACK_DYNPTR = 4,
|
|
STACK_ITER = 5,
|
|
};
|
|
|
|
enum bpf_access_src {
|
|
ACCESS_DIRECT = 1,
|
|
ACCESS_HELPER = 2,
|
|
};
|
|
|
|
enum {
|
|
DISCOVERED = 16,
|
|
EXPLORED = 32,
|
|
FALLTHROUGH = 1,
|
|
BRANCH = 2,
|
|
};
|
|
|
|
enum {
|
|
DONE_EXPLORING = 0,
|
|
KEEP_EXPLORING = 1,
|
|
};
|
|
|
|
enum btf_func_linkage {
|
|
BTF_FUNC_STATIC = 0,
|
|
BTF_FUNC_GLOBAL = 1,
|
|
BTF_FUNC_EXTERN = 2,
|
|
};
|
|
|
|
enum reg_arg_type {
|
|
SRC_OP = 0,
|
|
DST_OP = 1,
|
|
DST_OP_NO_MARK = 2,
|
|
};
|
|
|
|
enum {
|
|
REASON_BOUNDS = -1,
|
|
REASON_TYPE = -2,
|
|
REASON_PATHS = -3,
|
|
REASON_LIMIT = -4,
|
|
REASON_STACK = -5,
|
|
};
|
|
|
|
enum special_kfunc_type {
|
|
KF_bpf_obj_new_impl = 0,
|
|
KF_bpf_obj_drop_impl = 1,
|
|
KF_bpf_list_push_front = 2,
|
|
KF_bpf_list_push_back = 3,
|
|
KF_bpf_list_pop_front = 4,
|
|
KF_bpf_list_pop_back = 5,
|
|
KF_bpf_cast_to_kern_ctx = 6,
|
|
KF_bpf_rdonly_cast = 7,
|
|
KF_bpf_rcu_read_lock = 8,
|
|
KF_bpf_rcu_read_unlock = 9,
|
|
KF_bpf_rbtree_remove = 10,
|
|
KF_bpf_rbtree_add = 11,
|
|
KF_bpf_rbtree_first = 12,
|
|
KF_bpf_dynptr_from_skb = 13,
|
|
KF_bpf_dynptr_from_xdp = 14,
|
|
KF_bpf_dynptr_slice = 15,
|
|
KF_bpf_dynptr_slice_rdwr = 16,
|
|
};
|
|
|
|
enum kfunc_ptr_arg_type {
|
|
KF_ARG_PTR_TO_CTX = 0,
|
|
KF_ARG_PTR_TO_ALLOC_BTF_ID = 1,
|
|
KF_ARG_PTR_TO_KPTR = 2,
|
|
KF_ARG_PTR_TO_DYNPTR = 3,
|
|
KF_ARG_PTR_TO_ITER = 4,
|
|
KF_ARG_PTR_TO_LIST_HEAD = 5,
|
|
KF_ARG_PTR_TO_LIST_NODE = 6,
|
|
KF_ARG_PTR_TO_BTF_ID = 7,
|
|
KF_ARG_PTR_TO_MEM = 8,
|
|
KF_ARG_PTR_TO_MEM_SIZE = 9,
|
|
KF_ARG_PTR_TO_CALLBACK = 10,
|
|
KF_ARG_PTR_TO_RB_ROOT = 11,
|
|
KF_ARG_PTR_TO_RB_NODE = 12,
|
|
};
|
|
|
|
enum {
|
|
KF_ARG_DYNPTR_ID = 0,
|
|
KF_ARG_LIST_HEAD_ID = 1,
|
|
KF_ARG_LIST_NODE_ID = 2,
|
|
KF_ARG_RB_ROOT_ID = 3,
|
|
KF_ARG_RB_NODE_ID = 4,
|
|
};
|
|
|
|
enum {
|
|
BTF_TRACING_TYPE_TASK = 0,
|
|
BTF_TRACING_TYPE_FILE = 1,
|
|
BTF_TRACING_TYPE_VMA = 2,
|
|
MAX_BTF_TRACING_TYPE = 3,
|
|
};
|
|
|
|
enum {
|
|
AT_PKT_END = -1,
|
|
BEYOND_PKT_END = -2,
|
|
};
|
|
|
|
enum {
|
|
BPF_MAX_LOOPS = 8388608,
|
|
};
|
|
|
|
struct bpf_iter_meta__safe_trusted {
|
|
union {
|
|
struct seq_file *seq;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter__task__safe_trusted {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct task_struct *task;
|
|
};
|
|
};
|
|
|
|
struct linux_binprm__safe_trusted {
|
|
struct file *file;
|
|
};
|
|
|
|
struct file__safe_trusted {
|
|
struct inode *f_inode;
|
|
};
|
|
|
|
struct dentry__safe_trusted {
|
|
struct inode *d_inode;
|
|
};
|
|
|
|
struct socket__safe_trusted {
|
|
struct sock *sk;
|
|
};
|
|
|
|
struct task_struct__safe_rcu {
|
|
const cpumask_t *cpus_ptr;
|
|
struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups;
|
|
struct task_struct __attribute__((btf_type_tag("rcu"))) *real_parent;
|
|
struct task_struct *group_leader;
|
|
};
|
|
|
|
struct css_set__safe_rcu {
|
|
struct cgroup *dfl_cgrp;
|
|
};
|
|
|
|
struct btf_var_secinfo {
|
|
__u32 type;
|
|
__u32 offset;
|
|
__u32 size;
|
|
};
|
|
|
|
struct bpf_iter;
|
|
|
|
typedef void (*bpf_insn_print_t)(void *, const char *, ...);
|
|
|
|
typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *);
|
|
|
|
typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64);
|
|
|
|
struct bpf_insn_cbs {
|
|
bpf_insn_print_t cb_print;
|
|
bpf_insn_revmap_call_t cb_call;
|
|
bpf_insn_print_imm_t cb_imm;
|
|
void *private_data;
|
|
};
|
|
|
|
struct btf_id_set {
|
|
u32 cnt;
|
|
u32 ids[0];
|
|
};
|
|
|
|
typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
|
|
|
|
struct bpf_call_arg_meta {
|
|
struct bpf_map *map_ptr;
|
|
bool raw_mode;
|
|
bool pkt_access;
|
|
u8 release_regno;
|
|
int regno;
|
|
int access_size;
|
|
int mem_size;
|
|
u64 msize_max_value;
|
|
int ref_obj_id;
|
|
int dynptr_id;
|
|
int map_uid;
|
|
int func_id;
|
|
struct btf *btf;
|
|
u32 btf_id;
|
|
struct btf *ret_btf;
|
|
u32 ret_btf_id;
|
|
u32 subprogno;
|
|
struct btf_field *kptr_field;
|
|
};
|
|
|
|
struct bpf_core_ctx {
|
|
struct bpf_verifier_log *log;
|
|
const struct btf *btf;
|
|
};
|
|
|
|
struct bpf_attach_target_info {
|
|
struct btf_func_model fmodel;
|
|
long tgt_addr;
|
|
const char *tgt_name;
|
|
const struct btf_type *tgt_type;
|
|
};
|
|
|
|
struct bpf_kfunc_call_arg_meta {
|
|
struct btf *btf;
|
|
u32 func_id;
|
|
u32 kfunc_flags;
|
|
const struct btf_type *func_proto;
|
|
const char *func_name;
|
|
u32 ref_obj_id;
|
|
u8 release_regno;
|
|
bool r0_rdonly;
|
|
u32 ret_btf_id;
|
|
u64 r0_size;
|
|
u32 subprogno;
|
|
struct {
|
|
u64 value;
|
|
bool found;
|
|
} arg_constant;
|
|
struct {
|
|
struct btf *btf;
|
|
u32 btf_id;
|
|
} arg_obj_drop;
|
|
struct {
|
|
struct btf_field *field;
|
|
} arg_list_head;
|
|
struct {
|
|
struct btf_field *field;
|
|
} arg_rbtree_root;
|
|
struct {
|
|
enum bpf_dynptr_type type;
|
|
u32 id;
|
|
} initialized_dynptr;
|
|
struct {
|
|
u8 spi;
|
|
u8 frameno;
|
|
} iter;
|
|
u64 mem_size;
|
|
};
|
|
|
|
struct bpf_bprintf_data {
|
|
u32 *bin_args;
|
|
char *buf;
|
|
bool get_bin_args;
|
|
bool get_buf;
|
|
};
|
|
|
|
struct bpf_sanitize_info {
|
|
struct bpf_insn_aux_data aux;
|
|
bool mask_to_left;
|
|
};
|
|
|
|
typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int);
|
|
|
|
struct assoc_array_edit;
|
|
|
|
struct crypto_report_aead {
|
|
char type[64];
|
|
char geniv[64];
|
|
unsigned int blocksize;
|
|
unsigned int maxauthsize;
|
|
unsigned int ivsize;
|
|
};
|
|
|
|
struct sha512_state;
|
|
|
|
typedef void sha512_block_fn(struct sha512_state *, const u8 *, int);
|
|
|
|
struct sha512_state {
|
|
u64 state[8];
|
|
u64 count[2];
|
|
u8 buf[128];
|
|
};
|
|
|
|
struct af_alg_type;
|
|
|
|
struct alg_type_list {
|
|
const struct af_alg_type *type;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct af_alg_type {
|
|
void * (*bind)(const char *, u32, u32);
|
|
void (*release)(void *);
|
|
int (*setkey)(void *, const u8 *, unsigned int);
|
|
int (*setentropy)(void *, sockptr_t, unsigned int);
|
|
int (*accept)(void *, struct sock *);
|
|
int (*accept_nokey)(void *, struct sock *);
|
|
int (*setauthsize)(void *, unsigned int);
|
|
struct proto_ops *ops;
|
|
struct proto_ops *ops_nokey;
|
|
struct module *owner;
|
|
char name[14];
|
|
};
|
|
|
|
struct af_alg_tsgl {
|
|
struct list_head list;
|
|
unsigned int cur;
|
|
struct scatterlist sg[0];
|
|
};
|
|
|
|
struct alg_sock {
|
|
struct sock sk;
|
|
struct sock *parent;
|
|
atomic_t refcnt;
|
|
atomic_t nokey_refcnt;
|
|
const struct af_alg_type *type;
|
|
void *private;
|
|
};
|
|
|
|
struct af_alg_sgl {
|
|
struct scatterlist sg[17];
|
|
struct page *pages[16];
|
|
unsigned int npages;
|
|
};
|
|
|
|
struct af_alg_rsgl {
|
|
struct af_alg_sgl sgl;
|
|
struct list_head list;
|
|
size_t sg_num_bytes;
|
|
};
|
|
|
|
struct crypto_wait {
|
|
struct completion completion;
|
|
int err;
|
|
};
|
|
|
|
struct af_alg_ctx {
|
|
struct list_head tsgl_list;
|
|
void *iv;
|
|
size_t aead_assoclen;
|
|
struct crypto_wait wait;
|
|
size_t used;
|
|
atomic_t rcvused;
|
|
bool more;
|
|
bool merge;
|
|
bool enc;
|
|
bool init;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct af_alg_iv;
|
|
|
|
struct af_alg_control {
|
|
struct af_alg_iv *iv;
|
|
int op;
|
|
unsigned int aead_assoclen;
|
|
};
|
|
|
|
struct af_alg_iv {
|
|
__u32 ivlen;
|
|
__u8 iv[0];
|
|
};
|
|
|
|
struct af_alg_async_req {
|
|
struct kiocb *iocb;
|
|
struct sock *sk;
|
|
struct af_alg_rsgl first_rsgl;
|
|
struct af_alg_rsgl *last_rsgl;
|
|
struct list_head rsgl_list;
|
|
struct scatterlist *tsgl;
|
|
unsigned int tsgl_entries;
|
|
unsigned int outlen;
|
|
unsigned int areqlen;
|
|
union {
|
|
struct aead_request aead_req;
|
|
struct skcipher_request skcipher_req;
|
|
} cra_u;
|
|
};
|
|
|
|
struct sockaddr_alg_new {
|
|
__u16 salg_family;
|
|
__u8 salg_type[14];
|
|
__u32 salg_feat;
|
|
__u32 salg_mask;
|
|
__u8 salg_name[0];
|
|
};
|
|
|
|
struct xattr_name;
|
|
|
|
struct xattr_ctx {
|
|
union {
|
|
const void __attribute__((btf_type_tag("user"))) *cvalue;
|
|
void __attribute__((btf_type_tag("user"))) *value;
|
|
};
|
|
void *kvalue;
|
|
size_t size;
|
|
struct xattr_name *kname;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct io_xattr {
|
|
struct file *file;
|
|
struct xattr_ctx ctx;
|
|
struct filename *filename;
|
|
};
|
|
|
|
struct xattr_name {
|
|
char name[256];
|
|
};
|
|
|
|
enum {
|
|
REG_OP_ISFREE = 0,
|
|
REG_OP_ALLOC = 1,
|
|
REG_OP_RELEASE = 2,
|
|
};
|
|
|
|
struct region {
|
|
unsigned int start;
|
|
unsigned int off;
|
|
unsigned int group_len;
|
|
unsigned int end;
|
|
unsigned int nbits;
|
|
};
|
|
|
|
typedef unsigned long mpi_limb_t;
|
|
|
|
struct gcry_mpi;
|
|
|
|
typedef struct gcry_mpi *MPI;
|
|
|
|
struct gcry_mpi {
|
|
int alloced;
|
|
int nlimbs;
|
|
int nbits;
|
|
int sign;
|
|
unsigned int flags;
|
|
mpi_limb_t *d;
|
|
};
|
|
|
|
typedef mpi_limb_t *mpi_ptr_t;
|
|
|
|
typedef int mpi_size_t;
|
|
|
|
typedef long mpi_limb_signed_t;
|
|
|
|
struct karatsuba_ctx {
|
|
struct karatsuba_ctx *next;
|
|
mpi_ptr_t tspace;
|
|
mpi_size_t tspace_size;
|
|
mpi_ptr_t tp;
|
|
mpi_size_t tp_size;
|
|
};
|
|
|
|
enum asn1_opcode {
|
|
ASN1_OP_MATCH = 0,
|
|
ASN1_OP_MATCH_OR_SKIP = 1,
|
|
ASN1_OP_MATCH_ACT = 2,
|
|
ASN1_OP_MATCH_ACT_OR_SKIP = 3,
|
|
ASN1_OP_MATCH_JUMP = 4,
|
|
ASN1_OP_MATCH_JUMP_OR_SKIP = 5,
|
|
ASN1_OP_MATCH_ANY = 8,
|
|
ASN1_OP_MATCH_ANY_OR_SKIP = 9,
|
|
ASN1_OP_MATCH_ANY_ACT = 10,
|
|
ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11,
|
|
ASN1_OP_COND_MATCH_OR_SKIP = 17,
|
|
ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19,
|
|
ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21,
|
|
ASN1_OP_COND_MATCH_ANY = 24,
|
|
ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25,
|
|
ASN1_OP_COND_MATCH_ANY_ACT = 26,
|
|
ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27,
|
|
ASN1_OP_COND_FAIL = 28,
|
|
ASN1_OP_COMPLETE = 29,
|
|
ASN1_OP_ACT = 30,
|
|
ASN1_OP_MAYBE_ACT = 31,
|
|
ASN1_OP_END_SEQ = 32,
|
|
ASN1_OP_END_SET = 33,
|
|
ASN1_OP_END_SEQ_OF = 34,
|
|
ASN1_OP_END_SET_OF = 35,
|
|
ASN1_OP_END_SEQ_ACT = 36,
|
|
ASN1_OP_END_SET_ACT = 37,
|
|
ASN1_OP_END_SEQ_OF_ACT = 38,
|
|
ASN1_OP_END_SET_OF_ACT = 39,
|
|
ASN1_OP_RETURN = 40,
|
|
ASN1_OP__NR = 41,
|
|
};
|
|
|
|
enum asn1_method {
|
|
ASN1_PRIM = 0,
|
|
ASN1_CONS = 1,
|
|
};
|
|
|
|
struct msr {
|
|
union {
|
|
struct {
|
|
u32 l;
|
|
u32 h;
|
|
};
|
|
u64 q;
|
|
};
|
|
};
|
|
|
|
struct msr_info {
|
|
u32 msr_no;
|
|
struct msr reg;
|
|
struct msr *msrs;
|
|
int err;
|
|
};
|
|
|
|
struct msr_info_completion {
|
|
struct msr_info msr;
|
|
struct completion done;
|
|
};
|
|
|
|
typedef struct __call_single_data call_single_data_t;
|
|
|
|
struct msr_regs_info {
|
|
u32 *regs;
|
|
int err;
|
|
};
|
|
|
|
enum pci_dev_flags {
|
|
PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1,
|
|
PCI_DEV_FLAGS_NO_D3 = 2,
|
|
PCI_DEV_FLAGS_ASSIGNED = 4,
|
|
PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8,
|
|
PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32,
|
|
PCI_DEV_FLAGS_NO_BUS_RESET = 64,
|
|
PCI_DEV_FLAGS_NO_PM_RESET = 128,
|
|
PCI_DEV_FLAGS_VPD_REF_F0 = 256,
|
|
PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512,
|
|
PCI_DEV_FLAGS_NO_FLR_RESET = 1024,
|
|
PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048,
|
|
PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096,
|
|
};
|
|
|
|
struct pci_slot_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct pci_slot *, char *);
|
|
ssize_t (*store)(struct pci_slot *, const char *, size_t);
|
|
};
|
|
|
|
struct hotplug_slot_ops;
|
|
|
|
struct hotplug_slot {
|
|
const struct hotplug_slot_ops *ops;
|
|
struct list_head slot_list;
|
|
struct pci_slot *pci_slot;
|
|
struct module *owner;
|
|
const char *mod_name;
|
|
};
|
|
|
|
struct hotplug_slot_ops {
|
|
int (*enable_slot)(struct hotplug_slot *);
|
|
int (*disable_slot)(struct hotplug_slot *);
|
|
int (*set_attention_status)(struct hotplug_slot *, u8);
|
|
int (*hardware_test)(struct hotplug_slot *, u32);
|
|
int (*get_power_status)(struct hotplug_slot *, u8 *);
|
|
int (*get_attention_status)(struct hotplug_slot *, u8 *);
|
|
int (*get_latch_status)(struct hotplug_slot *, u8 *);
|
|
int (*get_adapter_status)(struct hotplug_slot *, u8 *);
|
|
int (*reset_slot)(struct hotplug_slot *, bool);
|
|
};
|
|
|
|
typedef u32 (*acpi_osd_handler)(void *);
|
|
|
|
struct acpi_gpe_device_info {
|
|
u32 index;
|
|
u32 next_block_base_index;
|
|
acpi_status status;
|
|
struct acpi_namespace_node *gpe_device;
|
|
};
|
|
|
|
typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **);
|
|
|
|
struct acpi_repair_info {
|
|
char name[4];
|
|
acpi_repair_function repair_function;
|
|
};
|
|
|
|
struct virtio_dma_buf_ops {
|
|
struct dma_buf_ops ops;
|
|
int (*device_attach)(struct dma_buf *, struct dma_buf_attachment *);
|
|
int (*get_uuid)(struct dma_buf *, uuid_t *);
|
|
};
|
|
|
|
struct dw8250_port_data {
|
|
int line;
|
|
struct uart_8250_dma dma;
|
|
u8 dlf_size;
|
|
bool hw_rs485_support;
|
|
};
|
|
|
|
struct dw8250_platform_data;
|
|
|
|
struct dw8250_data {
|
|
struct dw8250_port_data data;
|
|
const struct dw8250_platform_data *pdata;
|
|
int msr_mask_on;
|
|
int msr_mask_off;
|
|
struct clk *clk;
|
|
struct clk *pclk;
|
|
struct notifier_block clk_notifier;
|
|
struct work_struct clk_work;
|
|
struct reset_control *rst;
|
|
unsigned int skip_autocfg: 1;
|
|
unsigned int uart_16550_compatible: 1;
|
|
};
|
|
|
|
struct dw8250_platform_data {
|
|
u8 usr_reg;
|
|
u32 cpr_val;
|
|
unsigned int quirks;
|
|
};
|
|
|
|
enum tpm2_return_codes {
|
|
TPM2_RC_SUCCESS = 0,
|
|
TPM2_RC_HASH = 131,
|
|
TPM2_RC_HANDLE = 139,
|
|
TPM2_RC_INITIALIZE = 256,
|
|
TPM2_RC_FAILURE = 257,
|
|
TPM2_RC_DISABLED = 288,
|
|
TPM2_RC_UPGRADE = 301,
|
|
TPM2_RC_COMMAND_CODE = 323,
|
|
TPM2_RC_TESTING = 2314,
|
|
TPM2_RC_REFERENCE_H0 = 2320,
|
|
TPM2_RC_RETRY = 2338,
|
|
};
|
|
|
|
enum tpm2_command_codes {
|
|
TPM2_CC_FIRST = 287,
|
|
TPM2_CC_HIERARCHY_CONTROL = 289,
|
|
TPM2_CC_HIERARCHY_CHANGE_AUTH = 297,
|
|
TPM2_CC_CREATE_PRIMARY = 305,
|
|
TPM2_CC_SEQUENCE_COMPLETE = 318,
|
|
TPM2_CC_SELF_TEST = 323,
|
|
TPM2_CC_STARTUP = 324,
|
|
TPM2_CC_SHUTDOWN = 325,
|
|
TPM2_CC_NV_READ = 334,
|
|
TPM2_CC_CREATE = 339,
|
|
TPM2_CC_LOAD = 343,
|
|
TPM2_CC_SEQUENCE_UPDATE = 348,
|
|
TPM2_CC_UNSEAL = 350,
|
|
TPM2_CC_CONTEXT_LOAD = 353,
|
|
TPM2_CC_CONTEXT_SAVE = 354,
|
|
TPM2_CC_FLUSH_CONTEXT = 357,
|
|
TPM2_CC_VERIFY_SIGNATURE = 375,
|
|
TPM2_CC_GET_CAPABILITY = 378,
|
|
TPM2_CC_GET_RANDOM = 379,
|
|
TPM2_CC_PCR_READ = 382,
|
|
TPM2_CC_PCR_EXTEND = 386,
|
|
TPM2_CC_EVENT_SEQUENCE_COMPLETE = 389,
|
|
TPM2_CC_HASH_SEQUENCE_START = 390,
|
|
TPM2_CC_CREATE_LOADED = 401,
|
|
TPM2_CC_LAST = 403,
|
|
};
|
|
|
|
enum TPM_OPS_FLAGS {
|
|
TPM_OPS_AUTO_STARTUP = 1,
|
|
};
|
|
|
|
enum tpm2_startup_types {
|
|
TPM2_SU_CLEAR = 0,
|
|
TPM2_SU_STATE = 1,
|
|
};
|
|
|
|
enum tpm_timeout {
|
|
TPM_TIMEOUT = 5,
|
|
TPM_TIMEOUT_RETRY = 100,
|
|
TPM_TIMEOUT_RANGE_US = 300,
|
|
TPM_TIMEOUT_POLL = 1,
|
|
TPM_TIMEOUT_USECS_MIN = 100,
|
|
TPM_TIMEOUT_USECS_MAX = 500,
|
|
};
|
|
|
|
typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *);
|
|
|
|
struct drm_modeset_ctl {
|
|
__u32 crtc;
|
|
__u32 cmd;
|
|
};
|
|
|
|
struct drm_crtc_get_sequence {
|
|
__u32 crtc_id;
|
|
__u32 active;
|
|
__u64 sequence;
|
|
__s64 sequence_ns;
|
|
};
|
|
|
|
struct drm_crtc_queue_sequence {
|
|
__u32 crtc_id;
|
|
__u32 flags;
|
|
__u64 sequence;
|
|
__u64 user_data;
|
|
};
|
|
|
|
struct ttm_pool_dma {
|
|
dma_addr_t addr;
|
|
unsigned long vaddr;
|
|
};
|
|
|
|
enum x86_hypervisor_type {
|
|
X86_HYPER_NATIVE = 0,
|
|
X86_HYPER_VMWARE = 1,
|
|
X86_HYPER_MS_HYPERV = 2,
|
|
X86_HYPER_XEN_PV = 3,
|
|
X86_HYPER_XEN_HVM = 4,
|
|
X86_HYPER_KVM = 5,
|
|
X86_HYPER_JAILHOUSE = 6,
|
|
X86_HYPER_ACRN = 7,
|
|
};
|
|
|
|
enum intel_steering_type {
|
|
L3BANK = 0,
|
|
MSLICE = 1,
|
|
LNCF = 2,
|
|
GAM = 3,
|
|
DSS = 4,
|
|
OADDRM = 5,
|
|
INSTANCE0 = 6,
|
|
NUM_STEERING_TYPES = 7,
|
|
};
|
|
|
|
struct drm_syncobj {
|
|
struct kref refcount;
|
|
struct dma_fence __attribute__((btf_type_tag("rcu"))) *fence;
|
|
struct list_head cb_list;
|
|
spinlock_t lock;
|
|
struct file *file;
|
|
};
|
|
|
|
enum i915_gem_engine_type {
|
|
I915_GEM_ENGINE_TYPE_INVALID = 0,
|
|
I915_GEM_ENGINE_TYPE_PHYSICAL = 1,
|
|
I915_GEM_ENGINE_TYPE_BALANCED = 2,
|
|
I915_GEM_ENGINE_TYPE_PARALLEL = 3,
|
|
};
|
|
|
|
struct i915_context_engines_load_balance {
|
|
struct i915_user_extension base;
|
|
__u16 engine_index;
|
|
__u16 num_siblings;
|
|
__u32 flags;
|
|
__u64 mbz64;
|
|
struct i915_engine_class_instance engines[0];
|
|
};
|
|
|
|
struct i915_context_engines_bond {
|
|
struct i915_user_extension base;
|
|
struct i915_engine_class_instance master;
|
|
__u16 virtual_index;
|
|
__u16 num_bonds;
|
|
__u64 flags;
|
|
__u64 mbz64[4];
|
|
struct i915_engine_class_instance engines[0];
|
|
};
|
|
|
|
struct i915_context_engines_parallel_submit {
|
|
struct i915_user_extension base;
|
|
__u16 engine_index;
|
|
__u16 width;
|
|
__u16 num_siblings;
|
|
__u16 mbz16;
|
|
__u64 flags;
|
|
__u64 mbz64[3];
|
|
struct i915_engine_class_instance engines[0];
|
|
};
|
|
|
|
struct i915_gem_proto_engine;
|
|
|
|
struct i915_gem_proto_context {
|
|
struct i915_address_space *vm;
|
|
unsigned long user_flags;
|
|
struct i915_sched_attr sched;
|
|
int num_user_engines;
|
|
struct i915_gem_proto_engine *user_engines;
|
|
struct intel_sseu legacy_rcs_sseu;
|
|
bool single_timeline;
|
|
bool uses_protected_content;
|
|
intel_wakeref_t pxp_wakeref;
|
|
};
|
|
|
|
struct i915_gem_proto_engine {
|
|
enum i915_gem_engine_type type;
|
|
struct intel_engine_cs *engine;
|
|
unsigned int num_siblings;
|
|
unsigned int width;
|
|
struct intel_engine_cs **siblings;
|
|
struct intel_sseu sseu;
|
|
};
|
|
|
|
struct i915_gem_engines_iter {
|
|
unsigned int idx;
|
|
const struct i915_gem_engines *engines;
|
|
};
|
|
|
|
struct drm_i915_gem_context_param {
|
|
__u32 ctx_id;
|
|
__u32 size;
|
|
__u64 param;
|
|
__u64 value;
|
|
};
|
|
|
|
struct drm_i915_gem_context_param_sseu {
|
|
struct i915_engine_class_instance engine;
|
|
__u32 flags;
|
|
__u64 slice_mask;
|
|
__u64 subslice_mask;
|
|
__u16 min_eus_per_subslice;
|
|
__u16 max_eus_per_subslice;
|
|
__u32 rsvd;
|
|
};
|
|
|
|
struct set_proto_ctx_engines {
|
|
struct drm_i915_private___3 *i915;
|
|
unsigned int num_engines;
|
|
struct i915_gem_proto_engine *engines;
|
|
};
|
|
|
|
struct i915_context_param_engines {
|
|
__u64 extensions;
|
|
struct i915_engine_class_instance engines[0];
|
|
};
|
|
|
|
struct i915_pxp_component;
|
|
|
|
struct intel_pxp {
|
|
struct intel_gt *ctrl_gt;
|
|
struct i915_pxp_component *pxp_component;
|
|
bool pxp_component_added;
|
|
struct intel_context *ce;
|
|
struct mutex arb_mutex;
|
|
bool arb_is_valid;
|
|
u32 key_instance;
|
|
struct mutex tee_mutex;
|
|
struct {
|
|
struct drm_i915_gem_object *obj;
|
|
void *vaddr;
|
|
} stream_cmd;
|
|
bool hw_state_invalidated;
|
|
bool irq_enabled;
|
|
struct completion termination;
|
|
struct work_struct session_work;
|
|
u32 session_events;
|
|
};
|
|
|
|
struct drm_i915_gem_vm_control {
|
|
__u64 extensions;
|
|
__u32 flags;
|
|
__u32 vm_id;
|
|
};
|
|
|
|
struct create_ext {
|
|
struct i915_gem_proto_context *pc;
|
|
struct drm_i915_file_private *fpriv;
|
|
};
|
|
|
|
struct drm_i915_gem_context_create_ext {
|
|
__u32 ctx_id;
|
|
__u32 flags;
|
|
__u64 extensions;
|
|
};
|
|
|
|
struct drm_i915_gem_context_destroy {
|
|
__u32 ctx_id;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_i915_reset_stats {
|
|
__u32 ctx_id;
|
|
__u32 flags;
|
|
__u32 reset_count;
|
|
__u32 batch_active;
|
|
__u32 batch_pending;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_i915_gem_context_create_ext_setparam {
|
|
struct i915_user_extension base;
|
|
struct drm_i915_gem_context_param param;
|
|
};
|
|
|
|
struct execute_cb {
|
|
struct irq_work work;
|
|
struct i915_sw_fence *fence;
|
|
struct i915_request *signal;
|
|
};
|
|
|
|
struct request_wait {
|
|
struct dma_fence_cb cb;
|
|
struct task_struct *tsk;
|
|
};
|
|
|
|
struct drm_color_ctm {
|
|
__u64 matrix[9];
|
|
};
|
|
|
|
enum virtio_gpu_shm_id {
|
|
VIRTIO_GPU_SHM_ID_UNDEFINED = 0,
|
|
VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1,
|
|
};
|
|
|
|
struct virtio_gpu_drv_cap_cache {
|
|
struct list_head head;
|
|
void *caps_cache;
|
|
uint32_t id;
|
|
uint32_t version;
|
|
uint32_t size;
|
|
atomic_t is_valid;
|
|
};
|
|
|
|
struct cb_id {
|
|
__u32 idx;
|
|
__u32 val;
|
|
};
|
|
|
|
struct cn_callback_id {
|
|
unsigned char name[32];
|
|
struct cb_id id;
|
|
};
|
|
|
|
struct cn_queue_dev;
|
|
|
|
struct cn_msg;
|
|
|
|
struct cn_callback_entry {
|
|
struct list_head callback_entry;
|
|
refcount_t refcnt;
|
|
struct cn_queue_dev *pdev;
|
|
struct cn_callback_id id;
|
|
void (*callback)(struct cn_msg *, struct netlink_skb_parms *);
|
|
u32 seq;
|
|
u32 group;
|
|
};
|
|
|
|
struct cn_queue_dev {
|
|
atomic_t refcnt;
|
|
unsigned char name[32];
|
|
struct list_head queue_list;
|
|
spinlock_t queue_lock;
|
|
struct sock *nls;
|
|
};
|
|
|
|
struct cn_msg {
|
|
struct cb_id id;
|
|
__u32 seq;
|
|
__u32 ack;
|
|
__u16 len;
|
|
__u16 flags;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct sync_file {
|
|
struct file *file;
|
|
char user_name[32];
|
|
struct list_head sync_file_list;
|
|
wait_queue_head_t wq;
|
|
unsigned long flags;
|
|
struct dma_fence *fence;
|
|
struct dma_fence_cb cb;
|
|
};
|
|
|
|
struct sync_merge_data {
|
|
char name[32];
|
|
__s32 fd2;
|
|
__s32 fence;
|
|
__u32 flags;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct sync_file_info {
|
|
char name[32];
|
|
__s32 status;
|
|
__u32 flags;
|
|
__u32 num_fences;
|
|
__u32 pad;
|
|
__u64 sync_fence_info;
|
|
};
|
|
|
|
struct sync_fence_info {
|
|
char obj_name[32];
|
|
char driver_name[32];
|
|
__s32 status;
|
|
__u32 flags;
|
|
__u64 timestamp_ns;
|
|
};
|
|
|
|
struct media_event_desc {
|
|
__u8 media_event_code: 4;
|
|
__u8 reserved1: 4;
|
|
__u8 door_open: 1;
|
|
__u8 media_present: 1;
|
|
__u8 reserved2: 6;
|
|
__u8 start_slot;
|
|
__u8 end_slot;
|
|
};
|
|
|
|
struct cdrom_tochdr {
|
|
__u8 cdth_trk0;
|
|
__u8 cdth_trk1;
|
|
};
|
|
|
|
struct scsi_cd {
|
|
unsigned int capacity;
|
|
struct scsi_device *device;
|
|
unsigned int vendor;
|
|
unsigned long ms_offset;
|
|
unsigned int writeable: 1;
|
|
unsigned int use: 1;
|
|
unsigned int xa_flag: 1;
|
|
unsigned int readcd_known: 1;
|
|
unsigned int readcd_cdda: 1;
|
|
unsigned int media_present: 1;
|
|
int tur_mismatch;
|
|
bool tur_changed: 1;
|
|
bool get_event_changed: 1;
|
|
bool ignore_get_event: 1;
|
|
struct cdrom_device_info cdi;
|
|
struct mutex lock;
|
|
struct gendisk *disk;
|
|
};
|
|
|
|
struct cdrom_ti {
|
|
__u8 cdti_trk0;
|
|
__u8 cdti_ind0;
|
|
__u8 cdti_trk1;
|
|
__u8 cdti_ind1;
|
|
};
|
|
|
|
struct cdrom_tocentry {
|
|
__u8 cdte_track;
|
|
__u8 cdte_adr: 4;
|
|
__u8 cdte_ctrl: 4;
|
|
__u8 cdte_format;
|
|
union cdrom_addr cdte_addr;
|
|
__u8 cdte_datamode;
|
|
};
|
|
|
|
typedef struct scsi_cd Scsi_CD;
|
|
|
|
struct fixed_mdio_bus {
|
|
struct mii_bus *mii_bus;
|
|
struct list_head phys;
|
|
};
|
|
|
|
struct fixed_phy_status {
|
|
int link;
|
|
int speed;
|
|
int duplex;
|
|
int pause;
|
|
int asym_pause;
|
|
};
|
|
|
|
struct fixed_phy {
|
|
int addr;
|
|
struct phy_device *phydev;
|
|
struct fixed_phy_status status;
|
|
bool no_carrier;
|
|
int (*link_update)(struct net_device *, struct fixed_phy_status *);
|
|
struct list_head node;
|
|
struct gpio_desc *link_gpiod;
|
|
};
|
|
|
|
enum devlink_param_type {
|
|
DEVLINK_PARAM_TYPE_U8 = 0,
|
|
DEVLINK_PARAM_TYPE_U16 = 1,
|
|
DEVLINK_PARAM_TYPE_U32 = 2,
|
|
DEVLINK_PARAM_TYPE_STRING = 3,
|
|
DEVLINK_PARAM_TYPE_BOOL = 4,
|
|
};
|
|
|
|
struct devlink_param_gset_ctx;
|
|
|
|
union devlink_param_value;
|
|
|
|
struct devlink_param {
|
|
u32 id;
|
|
const char *name;
|
|
bool generic;
|
|
enum devlink_param_type type;
|
|
unsigned long supported_cmodes;
|
|
int (*get)(struct devlink *, u32, struct devlink_param_gset_ctx *);
|
|
int (*set)(struct devlink *, u32, struct devlink_param_gset_ctx *);
|
|
int (*validate)(struct devlink *, u32, union devlink_param_value, struct netlink_ext_ack *);
|
|
};
|
|
|
|
union devlink_param_value {
|
|
u8 vu8;
|
|
u16 vu16;
|
|
u32 vu32;
|
|
char vstr[32];
|
|
bool vbool;
|
|
};
|
|
|
|
enum devlink_param_cmode {
|
|
DEVLINK_PARAM_CMODE_RUNTIME = 0,
|
|
DEVLINK_PARAM_CMODE_DRIVERINIT = 1,
|
|
DEVLINK_PARAM_CMODE_PERMANENT = 2,
|
|
__DEVLINK_PARAM_CMODE_MAX = 3,
|
|
DEVLINK_PARAM_CMODE_MAX = 2,
|
|
};
|
|
|
|
struct devlink_param_gset_ctx {
|
|
union devlink_param_value val;
|
|
enum devlink_param_cmode cmode;
|
|
};
|
|
|
|
struct devlink_region_ops {
|
|
const char *name;
|
|
void (*destructor)(const void *);
|
|
int (*snapshot)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u8 **);
|
|
int (*read)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u64, u32, u8 *);
|
|
void *priv;
|
|
};
|
|
|
|
enum devlink_param_generic_id {
|
|
DEVLINK_PARAM_GENERIC_ID_INT_ERR_RESET = 0,
|
|
DEVLINK_PARAM_GENERIC_ID_MAX_MACS = 1,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_SRIOV = 2,
|
|
DEVLINK_PARAM_GENERIC_ID_REGION_SNAPSHOT = 3,
|
|
DEVLINK_PARAM_GENERIC_ID_IGNORE_ARI = 4,
|
|
DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MAX = 5,
|
|
DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN = 6,
|
|
DEVLINK_PARAM_GENERIC_ID_FW_LOAD_POLICY = 7,
|
|
DEVLINK_PARAM_GENERIC_ID_RESET_DEV_ON_DRV_PROBE = 8,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE = 9,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_REMOTE_DEV_RESET = 10,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_ETH = 11,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA = 12,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET = 13,
|
|
DEVLINK_PARAM_GENERIC_ID_ENABLE_IWARP = 14,
|
|
DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE = 15,
|
|
DEVLINK_PARAM_GENERIC_ID_EVENT_EQ_SIZE = 16,
|
|
__DEVLINK_PARAM_GENERIC_ID_MAX = 17,
|
|
DEVLINK_PARAM_GENERIC_ID_MAX = 16,
|
|
};
|
|
|
|
enum nsim_devlink_param_id {
|
|
NSIM_DEVLINK_PARAM_ID_BASE = 16,
|
|
NSIM_DEVLINK_PARAM_ID_TEST1 = 17,
|
|
};
|
|
|
|
enum devlink_info_version_type {
|
|
DEVLINK_INFO_VERSION_TYPE_NONE = 0,
|
|
DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1,
|
|
};
|
|
|
|
enum devlink_resource_unit {
|
|
DEVLINK_RESOURCE_UNIT_ENTRY = 0,
|
|
};
|
|
|
|
struct nsim_trap_item;
|
|
|
|
struct nsim_trap_data {
|
|
struct delayed_work trap_report_dw;
|
|
struct nsim_trap_item *trap_items_arr;
|
|
u64 *trap_policers_cnt_arr;
|
|
u64 trap_pkt_cnt;
|
|
struct nsim_dev *nsim_dev;
|
|
spinlock_t trap_lock;
|
|
};
|
|
|
|
struct nsim_trap_item {
|
|
void *trap_ctx;
|
|
enum devlink_trap_action action;
|
|
};
|
|
|
|
struct devlink_resource_size_params {
|
|
u64 size_min;
|
|
u64 size_max;
|
|
u64 size_granularity;
|
|
enum devlink_resource_unit unit;
|
|
};
|
|
|
|
struct nsim_rate_node {
|
|
struct dentry *ddir;
|
|
struct dentry *rate_parent;
|
|
char *parent_name;
|
|
u16 tx_share;
|
|
u16 tx_max;
|
|
};
|
|
|
|
enum xhci_overhead_type {
|
|
LS_OVERHEAD_TYPE = 0,
|
|
FS_OVERHEAD_TYPE = 1,
|
|
HS_OVERHEAD_TYPE = 2,
|
|
};
|
|
|
|
enum xhci_setup_dev {
|
|
SETUP_CONTEXT_ONLY = 0,
|
|
SETUP_CONTEXT_ADDRESS = 1,
|
|
};
|
|
|
|
typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *);
|
|
|
|
struct xhci_driver_overrides {
|
|
size_t extra_priv_size;
|
|
int (*reset)(struct usb_hcd *);
|
|
int (*start)(struct usb_hcd *);
|
|
int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
|
|
int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
|
|
int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
|
|
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
|
int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t);
|
|
int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16);
|
|
};
|
|
|
|
struct dm_stat_percpu {
|
|
unsigned long long sectors[2];
|
|
unsigned long long ios[2];
|
|
unsigned long long merges[2];
|
|
unsigned long long ticks[2];
|
|
unsigned long long io_ticks[2];
|
|
unsigned long long io_ticks_total;
|
|
unsigned long long time_in_queue;
|
|
unsigned long long *histogram;
|
|
};
|
|
|
|
struct dm_stat_shared {
|
|
atomic_t in_flight[2];
|
|
unsigned long long stamp;
|
|
struct dm_stat_percpu tmp;
|
|
};
|
|
|
|
struct dm_stat {
|
|
struct list_head list_entry;
|
|
int id;
|
|
unsigned int stat_flags;
|
|
size_t n_entries;
|
|
sector_t start;
|
|
sector_t end;
|
|
sector_t step;
|
|
unsigned int n_histogram_entries;
|
|
unsigned long long *histogram_boundaries;
|
|
const char *program_id;
|
|
const char *aux_data;
|
|
struct callback_head callback_head;
|
|
size_t shared_alloc_size;
|
|
size_t percpu_alloc_size;
|
|
size_t histogram_alloc_size;
|
|
struct dm_stat_percpu *stat_percpu[64];
|
|
struct dm_stat_shared stat_shared[0];
|
|
};
|
|
|
|
struct dm_arg_set {
|
|
unsigned int argc;
|
|
char **argv;
|
|
};
|
|
|
|
struct a4tech_sc {
|
|
unsigned long quirks;
|
|
unsigned int hw_wheel;
|
|
__s32 delayed_value;
|
|
};
|
|
|
|
struct key_entry {
|
|
int type;
|
|
u32 code;
|
|
union {
|
|
u16 keycode;
|
|
struct {
|
|
u8 code;
|
|
u8 value;
|
|
} sw;
|
|
};
|
|
};
|
|
|
|
enum {
|
|
DISABLE_ASL_WLAN = 1,
|
|
DISABLE_ASL_BLUETOOTH = 2,
|
|
DISABLE_ASL_IRDA = 4,
|
|
DISABLE_ASL_CAMERA = 8,
|
|
DISABLE_ASL_TV = 16,
|
|
DISABLE_ASL_GPS = 32,
|
|
DISABLE_ASL_DISPLAYSWITCH = 64,
|
|
DISABLE_ASL_MODEM = 128,
|
|
DISABLE_ASL_CARDREADER = 256,
|
|
DISABLE_ASL_3G = 512,
|
|
DISABLE_ASL_WIMAX = 1024,
|
|
DISABLE_ASL_HWCF = 2048,
|
|
};
|
|
|
|
enum {
|
|
CM_ASL_WLAN = 0,
|
|
CM_ASL_BLUETOOTH = 1,
|
|
CM_ASL_IRDA = 2,
|
|
CM_ASL_1394 = 3,
|
|
CM_ASL_CAMERA = 4,
|
|
CM_ASL_TV = 5,
|
|
CM_ASL_GPS = 6,
|
|
CM_ASL_DVDROM = 7,
|
|
CM_ASL_DISPLAYSWITCH = 8,
|
|
CM_ASL_PANELBRIGHT = 9,
|
|
CM_ASL_BIOSFLASH = 10,
|
|
CM_ASL_ACPIFLASH = 11,
|
|
CM_ASL_CPUFV = 12,
|
|
CM_ASL_CPUTEMPERATURE = 13,
|
|
CM_ASL_FANCPU = 14,
|
|
CM_ASL_FANCHASSIS = 15,
|
|
CM_ASL_USBPORT1 = 16,
|
|
CM_ASL_USBPORT2 = 17,
|
|
CM_ASL_USBPORT3 = 18,
|
|
CM_ASL_MODEM = 19,
|
|
CM_ASL_CARDREADER = 20,
|
|
CM_ASL_3G = 21,
|
|
CM_ASL_WIMAX = 22,
|
|
CM_ASL_HWCF = 23,
|
|
CM_ASL_LID = 24,
|
|
CM_ASL_TYPE = 25,
|
|
CM_ASL_PANELPOWER = 26,
|
|
CM_ASL_TPD = 27,
|
|
};
|
|
|
|
enum rfkill_type {
|
|
RFKILL_TYPE_ALL = 0,
|
|
RFKILL_TYPE_WLAN = 1,
|
|
RFKILL_TYPE_BLUETOOTH = 2,
|
|
RFKILL_TYPE_UWB = 3,
|
|
RFKILL_TYPE_WIMAX = 4,
|
|
RFKILL_TYPE_WWAN = 5,
|
|
RFKILL_TYPE_GPS = 6,
|
|
RFKILL_TYPE_FM = 7,
|
|
RFKILL_TYPE_NFC = 8,
|
|
NUM_RFKILL_TYPES = 9,
|
|
};
|
|
|
|
struct eeepc_laptop {
|
|
acpi_handle handle;
|
|
u32 cm_supported;
|
|
bool cpufv_disabled;
|
|
bool hotplug_disabled;
|
|
u16 event_count[128];
|
|
struct platform_device *platform_device;
|
|
struct acpi_device *device;
|
|
struct backlight_device *backlight_device;
|
|
struct input_dev *inputdev;
|
|
struct rfkill *wlan_rfkill;
|
|
struct rfkill *bluetooth_rfkill;
|
|
struct rfkill *wwan3g_rfkill;
|
|
struct rfkill *wimax_rfkill;
|
|
struct hotplug_slot hotplug_slot;
|
|
struct mutex hotplug_lock;
|
|
struct led_classdev tpd_led;
|
|
int tpd_led_wk;
|
|
struct workqueue_struct *led_workqueue;
|
|
struct work_struct tpd_led_work;
|
|
};
|
|
|
|
struct eeepc_cpufv {
|
|
int num;
|
|
int cur;
|
|
};
|
|
|
|
enum xdp_mem_type {
|
|
MEM_TYPE_PAGE_SHARED = 0,
|
|
MEM_TYPE_PAGE_ORDER0 = 1,
|
|
MEM_TYPE_PAGE_POOL = 2,
|
|
MEM_TYPE_XSK_BUFF_POOL = 3,
|
|
MEM_TYPE_MAX = 4,
|
|
};
|
|
|
|
enum xdp_buff_flags {
|
|
XDP_FLAGS_HAS_FRAGS = 1,
|
|
XDP_FLAGS_FRAGS_PF_MEMALLOC = 2,
|
|
};
|
|
|
|
struct xdp_mem_allocator {
|
|
struct xdp_mem_info mem;
|
|
union {
|
|
void *allocator;
|
|
struct page_pool *page_pool;
|
|
};
|
|
struct rhash_head node;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct bpf_nh_params {
|
|
u32 nh_family;
|
|
union {
|
|
u32 ipv4_nh;
|
|
struct in6_addr ipv6_nh;
|
|
};
|
|
};
|
|
|
|
struct bpf_redirect_info {
|
|
u64 tgt_index;
|
|
void *tgt_value;
|
|
struct bpf_map *map;
|
|
u32 flags;
|
|
u32 kern_flags;
|
|
u32 map_id;
|
|
enum bpf_map_type map_type;
|
|
struct bpf_nh_params nh;
|
|
};
|
|
|
|
struct xdp_frame_bulk {
|
|
int count;
|
|
void *xa;
|
|
void *q[16];
|
|
};
|
|
|
|
enum net_xmit_qdisc_t {
|
|
__NET_XMIT_STOLEN = 65536,
|
|
__NET_XMIT_BYPASS = 131072,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_LINKMODES_UNSPEC = 0,
|
|
ETHTOOL_A_LINKMODES_HEADER = 1,
|
|
ETHTOOL_A_LINKMODES_AUTONEG = 2,
|
|
ETHTOOL_A_LINKMODES_OURS = 3,
|
|
ETHTOOL_A_LINKMODES_PEER = 4,
|
|
ETHTOOL_A_LINKMODES_SPEED = 5,
|
|
ETHTOOL_A_LINKMODES_DUPLEX = 6,
|
|
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7,
|
|
ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8,
|
|
ETHTOOL_A_LINKMODES_LANES = 9,
|
|
ETHTOOL_A_LINKMODES_RATE_MATCHING = 10,
|
|
__ETHTOOL_A_LINKMODES_CNT = 11,
|
|
ETHTOOL_A_LINKMODES_MAX = 10,
|
|
};
|
|
|
|
struct linkmodes_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_link_ksettings ksettings;
|
|
struct ethtool_link_settings *lsettings;
|
|
bool peer_empty;
|
|
};
|
|
|
|
struct link_mode_info {
|
|
int speed;
|
|
u8 lanes;
|
|
u8 duplex;
|
|
};
|
|
|
|
enum ethtool_podl_pse_admin_state {
|
|
ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
|
|
ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED = 2,
|
|
ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED = 3,
|
|
};
|
|
|
|
enum ethtool_podl_pse_pw_d_status {
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1,
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED = 2,
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING = 3,
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING = 4,
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP = 5,
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE = 6,
|
|
ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR = 7,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_PSE_UNSPEC = 0,
|
|
ETHTOOL_A_PSE_HEADER = 1,
|
|
ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2,
|
|
ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3,
|
|
ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4,
|
|
__ETHTOOL_A_PSE_CNT = 5,
|
|
ETHTOOL_A_PSE_MAX = 4,
|
|
};
|
|
|
|
struct pse_control_status {
|
|
enum ethtool_podl_pse_admin_state podl_admin_state;
|
|
enum ethtool_podl_pse_pw_d_status podl_pw_status;
|
|
};
|
|
|
|
struct pse_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct pse_control_status status;
|
|
};
|
|
|
|
struct pse_control_config {
|
|
enum ethtool_podl_pse_admin_state admin_cotrol;
|
|
};
|
|
|
|
struct ftp_search {
|
|
const char *pattern;
|
|
size_t plen;
|
|
char skip;
|
|
char term;
|
|
enum nf_ct_ftp_type ftptype;
|
|
int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char, unsigned int *);
|
|
};
|
|
|
|
struct nf_ct_ftp_master {
|
|
u_int32_t seq_aft_nl[4];
|
|
u_int16_t seq_aft_nl_num[2];
|
|
u_int16_t flags[2];
|
|
};
|
|
|
|
struct ip_sf_socklist {
|
|
unsigned int sl_max;
|
|
unsigned int sl_count;
|
|
struct callback_head rcu;
|
|
__be32 sl_addr[0];
|
|
};
|
|
|
|
struct icmp_filter {
|
|
__u32 data;
|
|
};
|
|
|
|
struct raw_sock {
|
|
struct inet_sock inet;
|
|
struct icmp_filter filter;
|
|
u32 ipmr_table;
|
|
};
|
|
|
|
struct ipcm_cookie {
|
|
struct sockcm_cookie sockc;
|
|
__be32 addr;
|
|
int oif;
|
|
struct ip_options_rcu *opt;
|
|
__u8 ttl;
|
|
__s16 tos;
|
|
char priority;
|
|
__u16 gso_size;
|
|
};
|
|
|
|
struct raw_frag_vec {
|
|
struct msghdr *msg;
|
|
union {
|
|
struct icmphdr icmph;
|
|
char c[1];
|
|
} hdr;
|
|
int hlen;
|
|
};
|
|
|
|
struct raw_iter_state {
|
|
struct seq_net_private p;
|
|
int bucket;
|
|
};
|
|
|
|
struct ip_options_data {
|
|
struct ip_options_rcu opt;
|
|
char data[40];
|
|
};
|
|
|
|
struct ipt_standard {
|
|
struct ipt_entry entry;
|
|
struct xt_standard_target target;
|
|
};
|
|
|
|
struct ipt_replace {
|
|
char name[32];
|
|
unsigned int valid_hooks;
|
|
unsigned int num_entries;
|
|
unsigned int size;
|
|
unsigned int hook_entry[5];
|
|
unsigned int underflow[5];
|
|
unsigned int num_counters;
|
|
struct xt_counters __attribute__((btf_type_tag("user"))) *counters;
|
|
struct ipt_entry entries[0];
|
|
};
|
|
|
|
struct ipv6_params {
|
|
__s32 disable_ipv6;
|
|
__s32 autoconf;
|
|
};
|
|
|
|
struct ipv6_stub {
|
|
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
|
|
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
|
|
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
|
|
int (*ipv6_route_input)(struct sk_buff *);
|
|
struct fib6_table * (*fib6_get_table)(struct net *, u32);
|
|
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
|
|
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
|
|
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
|
|
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
|
|
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
|
|
void (*fib6_nh_release)(struct fib6_nh *);
|
|
void (*fib6_nh_release_dsts)(struct fib6_nh *);
|
|
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
|
|
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
|
|
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
|
|
void (*udpv6_encap_enable)();
|
|
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
|
|
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
|
|
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
|
|
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
|
|
struct neigh_table *nd_tbl;
|
|
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
|
|
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
|
|
};
|
|
|
|
struct ipv6_bpf_stub {
|
|
int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32);
|
|
struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *);
|
|
int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
|
|
int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t);
|
|
};
|
|
|
|
enum flowlabel_reflect {
|
|
FLOWLABEL_REFLECT_ESTABLISHED = 1,
|
|
FLOWLABEL_REFLECT_TCP_RESET = 2,
|
|
FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4,
|
|
};
|
|
|
|
struct rps_sock_flow_table {
|
|
u32 mask;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 ents[0];
|
|
};
|
|
|
|
struct compat_in6_rtmsg {
|
|
struct in6_addr rtmsg_dst;
|
|
struct in6_addr rtmsg_src;
|
|
struct in6_addr rtmsg_gateway;
|
|
u32 rtmsg_type;
|
|
u16 rtmsg_dst_len;
|
|
u16 rtmsg_src_len;
|
|
u32 rtmsg_metric;
|
|
u32 rtmsg_info;
|
|
u32 rtmsg_flags;
|
|
s32 rtmsg_ifindex;
|
|
};
|
|
|
|
struct snmp_mib {
|
|
const char *name;
|
|
int entry;
|
|
};
|
|
|
|
struct devlink_cmd {
|
|
int (*dump_one)(struct sk_buff *, struct devlink *, struct netlink_callback *);
|
|
};
|
|
|
|
enum devlink_attr {
|
|
DEVLINK_ATTR_UNSPEC = 0,
|
|
DEVLINK_ATTR_BUS_NAME = 1,
|
|
DEVLINK_ATTR_DEV_NAME = 2,
|
|
DEVLINK_ATTR_PORT_INDEX = 3,
|
|
DEVLINK_ATTR_PORT_TYPE = 4,
|
|
DEVLINK_ATTR_PORT_DESIRED_TYPE = 5,
|
|
DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6,
|
|
DEVLINK_ATTR_PORT_NETDEV_NAME = 7,
|
|
DEVLINK_ATTR_PORT_IBDEV_NAME = 8,
|
|
DEVLINK_ATTR_PORT_SPLIT_COUNT = 9,
|
|
DEVLINK_ATTR_PORT_SPLIT_GROUP = 10,
|
|
DEVLINK_ATTR_SB_INDEX = 11,
|
|
DEVLINK_ATTR_SB_SIZE = 12,
|
|
DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 13,
|
|
DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 14,
|
|
DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 15,
|
|
DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 16,
|
|
DEVLINK_ATTR_SB_POOL_INDEX = 17,
|
|
DEVLINK_ATTR_SB_POOL_TYPE = 18,
|
|
DEVLINK_ATTR_SB_POOL_SIZE = 19,
|
|
DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 20,
|
|
DEVLINK_ATTR_SB_THRESHOLD = 21,
|
|
DEVLINK_ATTR_SB_TC_INDEX = 22,
|
|
DEVLINK_ATTR_SB_OCC_CUR = 23,
|
|
DEVLINK_ATTR_SB_OCC_MAX = 24,
|
|
DEVLINK_ATTR_ESWITCH_MODE = 25,
|
|
DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26,
|
|
DEVLINK_ATTR_DPIPE_TABLES = 27,
|
|
DEVLINK_ATTR_DPIPE_TABLE = 28,
|
|
DEVLINK_ATTR_DPIPE_TABLE_NAME = 29,
|
|
DEVLINK_ATTR_DPIPE_TABLE_SIZE = 30,
|
|
DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 31,
|
|
DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 32,
|
|
DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 33,
|
|
DEVLINK_ATTR_DPIPE_ENTRIES = 34,
|
|
DEVLINK_ATTR_DPIPE_ENTRY = 35,
|
|
DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 36,
|
|
DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 37,
|
|
DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 38,
|
|
DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 39,
|
|
DEVLINK_ATTR_DPIPE_MATCH = 40,
|
|
DEVLINK_ATTR_DPIPE_MATCH_VALUE = 41,
|
|
DEVLINK_ATTR_DPIPE_MATCH_TYPE = 42,
|
|
DEVLINK_ATTR_DPIPE_ACTION = 43,
|
|
DEVLINK_ATTR_DPIPE_ACTION_VALUE = 44,
|
|
DEVLINK_ATTR_DPIPE_ACTION_TYPE = 45,
|
|
DEVLINK_ATTR_DPIPE_VALUE = 46,
|
|
DEVLINK_ATTR_DPIPE_VALUE_MASK = 47,
|
|
DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 48,
|
|
DEVLINK_ATTR_DPIPE_HEADERS = 49,
|
|
DEVLINK_ATTR_DPIPE_HEADER = 50,
|
|
DEVLINK_ATTR_DPIPE_HEADER_NAME = 51,
|
|
DEVLINK_ATTR_DPIPE_HEADER_ID = 52,
|
|
DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 53,
|
|
DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 54,
|
|
DEVLINK_ATTR_DPIPE_HEADER_INDEX = 55,
|
|
DEVLINK_ATTR_DPIPE_FIELD = 56,
|
|
DEVLINK_ATTR_DPIPE_FIELD_NAME = 57,
|
|
DEVLINK_ATTR_DPIPE_FIELD_ID = 58,
|
|
DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 59,
|
|
DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 60,
|
|
DEVLINK_ATTR_PAD = 61,
|
|
DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62,
|
|
DEVLINK_ATTR_RESOURCE_LIST = 63,
|
|
DEVLINK_ATTR_RESOURCE = 64,
|
|
DEVLINK_ATTR_RESOURCE_NAME = 65,
|
|
DEVLINK_ATTR_RESOURCE_ID = 66,
|
|
DEVLINK_ATTR_RESOURCE_SIZE = 67,
|
|
DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68,
|
|
DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69,
|
|
DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70,
|
|
DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71,
|
|
DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72,
|
|
DEVLINK_ATTR_RESOURCE_UNIT = 73,
|
|
DEVLINK_ATTR_RESOURCE_OCC = 74,
|
|
DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75,
|
|
DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76,
|
|
DEVLINK_ATTR_PORT_FLAVOUR = 77,
|
|
DEVLINK_ATTR_PORT_NUMBER = 78,
|
|
DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 79,
|
|
DEVLINK_ATTR_PARAM = 80,
|
|
DEVLINK_ATTR_PARAM_NAME = 81,
|
|
DEVLINK_ATTR_PARAM_GENERIC = 82,
|
|
DEVLINK_ATTR_PARAM_TYPE = 83,
|
|
DEVLINK_ATTR_PARAM_VALUES_LIST = 84,
|
|
DEVLINK_ATTR_PARAM_VALUE = 85,
|
|
DEVLINK_ATTR_PARAM_VALUE_DATA = 86,
|
|
DEVLINK_ATTR_PARAM_VALUE_CMODE = 87,
|
|
DEVLINK_ATTR_REGION_NAME = 88,
|
|
DEVLINK_ATTR_REGION_SIZE = 89,
|
|
DEVLINK_ATTR_REGION_SNAPSHOTS = 90,
|
|
DEVLINK_ATTR_REGION_SNAPSHOT = 91,
|
|
DEVLINK_ATTR_REGION_SNAPSHOT_ID = 92,
|
|
DEVLINK_ATTR_REGION_CHUNKS = 93,
|
|
DEVLINK_ATTR_REGION_CHUNK = 94,
|
|
DEVLINK_ATTR_REGION_CHUNK_DATA = 95,
|
|
DEVLINK_ATTR_REGION_CHUNK_ADDR = 96,
|
|
DEVLINK_ATTR_REGION_CHUNK_LEN = 97,
|
|
DEVLINK_ATTR_INFO_DRIVER_NAME = 98,
|
|
DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99,
|
|
DEVLINK_ATTR_INFO_VERSION_FIXED = 100,
|
|
DEVLINK_ATTR_INFO_VERSION_RUNNING = 101,
|
|
DEVLINK_ATTR_INFO_VERSION_STORED = 102,
|
|
DEVLINK_ATTR_INFO_VERSION_NAME = 103,
|
|
DEVLINK_ATTR_INFO_VERSION_VALUE = 104,
|
|
DEVLINK_ATTR_SB_POOL_CELL_SIZE = 105,
|
|
DEVLINK_ATTR_FMSG = 106,
|
|
DEVLINK_ATTR_FMSG_OBJ_NEST_START = 107,
|
|
DEVLINK_ATTR_FMSG_PAIR_NEST_START = 108,
|
|
DEVLINK_ATTR_FMSG_ARR_NEST_START = 109,
|
|
DEVLINK_ATTR_FMSG_NEST_END = 110,
|
|
DEVLINK_ATTR_FMSG_OBJ_NAME = 111,
|
|
DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 112,
|
|
DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 113,
|
|
DEVLINK_ATTR_HEALTH_REPORTER = 114,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_NAME = 115,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_STATE = 116,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 117,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 118,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 119,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 120,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 121,
|
|
DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 122,
|
|
DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 123,
|
|
DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 124,
|
|
DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 125,
|
|
DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 126,
|
|
DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127,
|
|
DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 128,
|
|
DEVLINK_ATTR_STATS = 129,
|
|
DEVLINK_ATTR_TRAP_NAME = 130,
|
|
DEVLINK_ATTR_TRAP_ACTION = 131,
|
|
DEVLINK_ATTR_TRAP_TYPE = 132,
|
|
DEVLINK_ATTR_TRAP_GENERIC = 133,
|
|
DEVLINK_ATTR_TRAP_METADATA = 134,
|
|
DEVLINK_ATTR_TRAP_GROUP_NAME = 135,
|
|
DEVLINK_ATTR_RELOAD_FAILED = 136,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 137,
|
|
DEVLINK_ATTR_NETNS_FD = 138,
|
|
DEVLINK_ATTR_NETNS_PID = 139,
|
|
DEVLINK_ATTR_NETNS_ID = 140,
|
|
DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 141,
|
|
DEVLINK_ATTR_TRAP_POLICER_ID = 142,
|
|
DEVLINK_ATTR_TRAP_POLICER_RATE = 143,
|
|
DEVLINK_ATTR_TRAP_POLICER_BURST = 144,
|
|
DEVLINK_ATTR_PORT_FUNCTION = 145,
|
|
DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 146,
|
|
DEVLINK_ATTR_PORT_LANES = 147,
|
|
DEVLINK_ATTR_PORT_SPLITTABLE = 148,
|
|
DEVLINK_ATTR_PORT_EXTERNAL = 149,
|
|
DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150,
|
|
DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 151,
|
|
DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 152,
|
|
DEVLINK_ATTR_RELOAD_ACTION = 153,
|
|
DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 154,
|
|
DEVLINK_ATTR_RELOAD_LIMITS = 155,
|
|
DEVLINK_ATTR_DEV_STATS = 156,
|
|
DEVLINK_ATTR_RELOAD_STATS = 157,
|
|
DEVLINK_ATTR_RELOAD_STATS_ENTRY = 158,
|
|
DEVLINK_ATTR_RELOAD_STATS_LIMIT = 159,
|
|
DEVLINK_ATTR_RELOAD_STATS_VALUE = 160,
|
|
DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161,
|
|
DEVLINK_ATTR_RELOAD_ACTION_INFO = 162,
|
|
DEVLINK_ATTR_RELOAD_ACTION_STATS = 163,
|
|
DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164,
|
|
DEVLINK_ATTR_RATE_TYPE = 165,
|
|
DEVLINK_ATTR_RATE_TX_SHARE = 166,
|
|
DEVLINK_ATTR_RATE_TX_MAX = 167,
|
|
DEVLINK_ATTR_RATE_NODE_NAME = 168,
|
|
DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169,
|
|
DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 170,
|
|
DEVLINK_ATTR_LINECARD_INDEX = 171,
|
|
DEVLINK_ATTR_LINECARD_STATE = 172,
|
|
DEVLINK_ATTR_LINECARD_TYPE = 173,
|
|
DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 174,
|
|
DEVLINK_ATTR_NESTED_DEVLINK = 175,
|
|
DEVLINK_ATTR_SELFTESTS = 176,
|
|
DEVLINK_ATTR_RATE_TX_PRIORITY = 177,
|
|
DEVLINK_ATTR_RATE_TX_WEIGHT = 178,
|
|
DEVLINK_ATTR_REGION_DIRECT = 179,
|
|
__DEVLINK_ATTR_MAX = 180,
|
|
DEVLINK_ATTR_MAX = 179,
|
|
};
|
|
|
|
struct devlink_nl_dump_state {
|
|
unsigned long instance;
|
|
int idx;
|
|
union {
|
|
struct {
|
|
u64 start_offset;
|
|
};
|
|
struct {
|
|
u64 dump_ts;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct gss_domain {
|
|
struct auth_domain h;
|
|
u32 pseudoflavor;
|
|
};
|
|
|
|
struct rsi {
|
|
struct cache_head h;
|
|
struct xdr_netobj in_handle;
|
|
struct xdr_netobj in_token;
|
|
struct xdr_netobj out_handle;
|
|
struct xdr_netobj out_token;
|
|
int major_status;
|
|
int minor_status;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
typedef unsigned int OM_uint32;
|
|
|
|
struct gss_svc_seq_data {
|
|
u32 sd_max;
|
|
unsigned long sd_win[2];
|
|
spinlock_t sd_lock;
|
|
};
|
|
|
|
struct rsc {
|
|
struct cache_head h;
|
|
struct xdr_netobj handle;
|
|
struct svc_cred cred;
|
|
struct gss_svc_seq_data seqdata;
|
|
struct gss_ctx *mechctx;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct gss_svc_data {
|
|
struct rpc_gss_wire_cred clcred;
|
|
u32 gsd_databody_offset;
|
|
struct rsc *rsci;
|
|
__be32 gsd_seq_num;
|
|
u8 gsd_scratch[40];
|
|
};
|
|
|
|
struct gssp_in_token {
|
|
struct page **pages;
|
|
unsigned int page_base;
|
|
unsigned int page_len;
|
|
};
|
|
|
|
struct gssp_upcall_data {
|
|
struct xdr_netobj in_handle;
|
|
struct gssp_in_token in_token;
|
|
struct xdr_netobj out_handle;
|
|
struct xdr_netobj out_token;
|
|
struct rpcsec_gss_oid mech_oid;
|
|
struct svc_cred creds;
|
|
int found_creds;
|
|
int major_status;
|
|
int minor_status;
|
|
};
|
|
|
|
enum ieee80211_back_parties {
|
|
WLAN_BACK_RECIPIENT = 0,
|
|
WLAN_BACK_INITIATOR = 1,
|
|
};
|
|
|
|
enum ieee80211_back_actioncode {
|
|
WLAN_ACTION_ADDBA_REQ = 0,
|
|
WLAN_ACTION_ADDBA_RESP = 1,
|
|
WLAN_ACTION_DELBA = 2,
|
|
};
|
|
|
|
enum ieee80211_tdls_actioncode {
|
|
WLAN_TDLS_SETUP_REQUEST = 0,
|
|
WLAN_TDLS_SETUP_RESPONSE = 1,
|
|
WLAN_TDLS_SETUP_CONFIRM = 2,
|
|
WLAN_TDLS_TEARDOWN = 3,
|
|
WLAN_TDLS_PEER_TRAFFIC_INDICATION = 4,
|
|
WLAN_TDLS_CHANNEL_SWITCH_REQUEST = 5,
|
|
WLAN_TDLS_CHANNEL_SWITCH_RESPONSE = 6,
|
|
WLAN_TDLS_PEER_PSM_REQUEST = 7,
|
|
WLAN_TDLS_PEER_PSM_RESPONSE = 8,
|
|
WLAN_TDLS_PEER_TRAFFIC_RESPONSE = 9,
|
|
WLAN_TDLS_DISCOVERY_REQUEST = 10,
|
|
};
|
|
|
|
enum ieee80211_pub_actioncode {
|
|
WLAN_PUB_ACTION_20_40_BSS_COEX = 0,
|
|
WLAN_PUB_ACTION_DSE_ENABLEMENT = 1,
|
|
WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2,
|
|
WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3,
|
|
WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4,
|
|
WLAN_PUB_ACTION_DSE_MSMT_REQ = 5,
|
|
WLAN_PUB_ACTION_DSE_MSMT_RESP = 6,
|
|
WLAN_PUB_ACTION_MSMT_PILOT = 7,
|
|
WLAN_PUB_ACTION_DSE_PC = 8,
|
|
WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9,
|
|
WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10,
|
|
WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11,
|
|
WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12,
|
|
WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13,
|
|
WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14,
|
|
WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15,
|
|
WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16,
|
|
WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17,
|
|
WLAN_PUB_ACTION_QMF_POLICY = 18,
|
|
WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19,
|
|
WLAN_PUB_ACTION_QLOAD_REQUEST = 20,
|
|
WLAN_PUB_ACTION_QLOAD_REPORT = 21,
|
|
WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22,
|
|
WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23,
|
|
WLAN_PUB_ACTION_PUBLIC_KEY = 24,
|
|
WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25,
|
|
WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26,
|
|
WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27,
|
|
WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28,
|
|
WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29,
|
|
WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30,
|
|
WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31,
|
|
WLAN_PUB_ACTION_FTM_REQUEST = 32,
|
|
WLAN_PUB_ACTION_FTM = 33,
|
|
WLAN_PUB_ACTION_FILS_DISCOVERY = 34,
|
|
};
|
|
|
|
struct ieee80211_tdls_data {
|
|
u8 da[6];
|
|
u8 sa[6];
|
|
__be16 ether_type;
|
|
u8 payload_type;
|
|
u8 category;
|
|
u8 action_code;
|
|
union {
|
|
struct {
|
|
u8 dialog_token;
|
|
__le16 capability;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) setup_req;
|
|
struct {
|
|
__le16 status_code;
|
|
u8 dialog_token;
|
|
__le16 capability;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) setup_resp;
|
|
struct {
|
|
__le16 status_code;
|
|
u8 dialog_token;
|
|
u8 variable[0];
|
|
} __attribute__((packed)) setup_cfm;
|
|
struct {
|
|
__le16 reason_code;
|
|
u8 variable[0];
|
|
} teardown;
|
|
struct {
|
|
u8 dialog_token;
|
|
u8 variable[0];
|
|
} discover_req;
|
|
struct {
|
|
u8 target_channel;
|
|
u8 oper_class;
|
|
u8 variable[0];
|
|
} chan_switch_req;
|
|
struct {
|
|
__le16 status_code;
|
|
u8 variable[0];
|
|
} chan_switch_resp;
|
|
} u;
|
|
} __attribute__((packed));
|
|
|
|
struct ieee80211_wmm_ac_param {
|
|
u8 aci_aifsn;
|
|
u8 cw;
|
|
__le16 txop_limit;
|
|
};
|
|
|
|
struct ieee80211_wmm_param_ie {
|
|
u8 element_id;
|
|
u8 len;
|
|
u8 oui[3];
|
|
u8 oui_type;
|
|
u8 oui_subtype;
|
|
u8 version;
|
|
u8 qos_info;
|
|
u8 reserved;
|
|
struct ieee80211_wmm_ac_param ac[4];
|
|
};
|
|
|
|
struct tcpvegas_info {
|
|
__u32 tcpv_enabled;
|
|
__u32 tcpv_rttcnt;
|
|
__u32 tcpv_rtt;
|
|
__u32 tcpv_minrtt;
|
|
};
|
|
|
|
struct tcp_dctcp_info {
|
|
__u16 dctcp_enabled;
|
|
__u16 dctcp_ce_state;
|
|
__u32 dctcp_alpha;
|
|
__u32 dctcp_ab_ecn;
|
|
__u32 dctcp_ab_tot;
|
|
};
|
|
|
|
struct tcp_bbr_info {
|
|
__u32 bbr_bw_lo;
|
|
__u32 bbr_bw_hi;
|
|
__u32 bbr_min_rtt;
|
|
__u32 bbr_pacing_gain;
|
|
__u32 bbr_cwnd_gain;
|
|
};
|
|
|
|
union tcp_cc_info {
|
|
struct tcpvegas_info vegas;
|
|
struct tcp_dctcp_info dctcp;
|
|
struct tcp_bbr_info bbr;
|
|
};
|
|
|
|
enum {
|
|
INET_ULP_INFO_UNSPEC = 0,
|
|
INET_ULP_INFO_NAME = 1,
|
|
INET_ULP_INFO_TLS = 2,
|
|
INET_ULP_INFO_MPTCP = 3,
|
|
__INET_ULP_INFO_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
MPTCP_SUBFLOW_ATTR_UNSPEC = 0,
|
|
MPTCP_SUBFLOW_ATTR_TOKEN_REM = 1,
|
|
MPTCP_SUBFLOW_ATTR_TOKEN_LOC = 2,
|
|
MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ = 3,
|
|
MPTCP_SUBFLOW_ATTR_MAP_SEQ = 4,
|
|
MPTCP_SUBFLOW_ATTR_MAP_SFSEQ = 5,
|
|
MPTCP_SUBFLOW_ATTR_SSN_OFFSET = 6,
|
|
MPTCP_SUBFLOW_ATTR_MAP_DATALEN = 7,
|
|
MPTCP_SUBFLOW_ATTR_FLAGS = 8,
|
|
MPTCP_SUBFLOW_ATTR_ID_REM = 9,
|
|
MPTCP_SUBFLOW_ATTR_ID_LOC = 10,
|
|
MPTCP_SUBFLOW_ATTR_PAD = 11,
|
|
__MPTCP_SUBFLOW_ATTR_MAX = 12,
|
|
};
|
|
|
|
enum efi_secureboot_mode {
|
|
efi_secureboot_mode_unset = 0,
|
|
efi_secureboot_mode_unknown = 1,
|
|
efi_secureboot_mode_disabled = 2,
|
|
efi_secureboot_mode_enabled = 3,
|
|
};
|
|
|
|
struct ima_setup_data {
|
|
__u64 addr;
|
|
__u64 size;
|
|
};
|
|
|
|
struct change_member {
|
|
struct e820_entry *entry;
|
|
unsigned long long addr;
|
|
};
|
|
|
|
struct mcs_spinlock {
|
|
struct mcs_spinlock *next;
|
|
int locked;
|
|
int count;
|
|
};
|
|
|
|
struct qnode {
|
|
struct mcs_spinlock mcs;
|
|
};
|
|
|
|
struct module_use {
|
|
struct list_head source_list;
|
|
struct list_head target_list;
|
|
struct module *source;
|
|
struct module *target;
|
|
};
|
|
|
|
struct k_itimer;
|
|
|
|
struct k_clock {
|
|
int (*clock_getres)(const clockid_t, struct timespec64 *);
|
|
int (*clock_set)(const clockid_t, const struct timespec64 *);
|
|
int (*clock_get_timespec)(const clockid_t, struct timespec64 *);
|
|
ktime_t (*clock_get_ktime)(const clockid_t);
|
|
int (*clock_adj)(const clockid_t, struct __kernel_timex *);
|
|
int (*timer_create)(struct k_itimer *);
|
|
int (*nsleep)(const clockid_t, int, const struct timespec64 *);
|
|
int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *);
|
|
int (*timer_del)(struct k_itimer *);
|
|
void (*timer_get)(struct k_itimer *, struct itimerspec64 *);
|
|
void (*timer_rearm)(struct k_itimer *);
|
|
s64 (*timer_forward)(struct k_itimer *, ktime_t);
|
|
ktime_t (*timer_remaining)(struct k_itimer *, ktime_t);
|
|
int (*timer_try_to_cancel)(struct k_itimer *);
|
|
void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool);
|
|
void (*timer_wait_running)(struct k_itimer *);
|
|
};
|
|
|
|
enum alarmtimer_restart {
|
|
ALARMTIMER_NORESTART = 0,
|
|
ALARMTIMER_RESTART = 1,
|
|
};
|
|
|
|
enum alarmtimer_type {
|
|
ALARM_REALTIME = 0,
|
|
ALARM_BOOTTIME = 1,
|
|
ALARM_NUMTYPE = 2,
|
|
ALARM_REALTIME_FREEZER = 3,
|
|
ALARM_BOOTTIME_FREEZER = 4,
|
|
};
|
|
|
|
struct alarm {
|
|
struct timerqueue_node node;
|
|
struct hrtimer timer;
|
|
enum alarmtimer_restart (*function)(struct alarm *, ktime_t);
|
|
enum alarmtimer_type type;
|
|
int state;
|
|
void *data;
|
|
};
|
|
|
|
struct cpu_timer {
|
|
struct timerqueue_node node;
|
|
struct timerqueue_head *head;
|
|
struct pid *pid;
|
|
struct list_head elist;
|
|
int firing;
|
|
};
|
|
|
|
typedef __kernel_timer_t timer_t;
|
|
|
|
struct sigqueue;
|
|
|
|
struct k_itimer {
|
|
struct list_head list;
|
|
struct hlist_node t_hash;
|
|
spinlock_t it_lock;
|
|
const struct k_clock *kclock;
|
|
clockid_t it_clock;
|
|
timer_t it_id;
|
|
int it_active;
|
|
s64 it_overrun;
|
|
s64 it_overrun_last;
|
|
int it_requeue_pending;
|
|
int it_sigev_notify;
|
|
ktime_t it_interval;
|
|
struct signal_struct *it_signal;
|
|
union {
|
|
struct pid *it_pid;
|
|
struct task_struct *it_process;
|
|
};
|
|
struct sigqueue *sigq;
|
|
union {
|
|
struct {
|
|
struct hrtimer timer;
|
|
} real;
|
|
struct cpu_timer cpu;
|
|
struct {
|
|
struct alarm alarmtimer;
|
|
} alarm;
|
|
} it;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct sigqueue {
|
|
struct list_head list;
|
|
int flags;
|
|
kernel_siginfo_t info;
|
|
struct ucounts *ucounts;
|
|
};
|
|
|
|
struct sigevent {
|
|
sigval_t sigev_value;
|
|
int sigev_signo;
|
|
int sigev_notify;
|
|
union {
|
|
int _pad[12];
|
|
int _tid;
|
|
struct {
|
|
void (*_function)(sigval_t);
|
|
void *_attribute;
|
|
} _sigev_thread;
|
|
} _sigev_un;
|
|
};
|
|
|
|
union compat_sigval {
|
|
compat_int_t sival_int;
|
|
compat_uptr_t sival_ptr;
|
|
};
|
|
|
|
typedef union compat_sigval compat_sigval_t;
|
|
|
|
struct compat_sigevent {
|
|
compat_sigval_t sigev_value;
|
|
compat_int_t sigev_signo;
|
|
compat_int_t sigev_notify;
|
|
union {
|
|
compat_int_t _pad[13];
|
|
compat_int_t _tid;
|
|
struct {
|
|
compat_uptr_t _function;
|
|
compat_uptr_t _attribute;
|
|
} _sigev_thread;
|
|
} _sigev_un;
|
|
};
|
|
|
|
struct __kernel_itimerspec {
|
|
struct __kernel_timespec it_interval;
|
|
struct __kernel_timespec it_value;
|
|
};
|
|
|
|
struct old_itimerspec32 {
|
|
struct old_timespec32 it_interval;
|
|
struct old_timespec32 it_value;
|
|
};
|
|
|
|
struct old_timex32 {
|
|
u32 modes;
|
|
s32 offset;
|
|
s32 freq;
|
|
s32 maxerror;
|
|
s32 esterror;
|
|
s32 status;
|
|
s32 constant;
|
|
s32 precision;
|
|
s32 tolerance;
|
|
struct old_timeval32 time;
|
|
s32 tick;
|
|
s32 ppsfreq;
|
|
s32 jitter;
|
|
s32 shift;
|
|
s32 stabil;
|
|
s32 jitcnt;
|
|
s32 calcnt;
|
|
s32 errcnt;
|
|
s32 stbcnt;
|
|
s32 tai;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef struct sigevent sigevent_t;
|
|
|
|
struct timezone {
|
|
int tz_minuteswest;
|
|
int tz_dsttime;
|
|
};
|
|
|
|
struct tracer_stat;
|
|
|
|
struct stat_session {
|
|
struct list_head session_list;
|
|
struct tracer_stat *ts;
|
|
struct rb_root stat_root;
|
|
struct mutex stat_mutex;
|
|
struct dentry *file;
|
|
};
|
|
|
|
struct tracer_stat {
|
|
const char *name;
|
|
void * (*stat_start)(struct tracer_stat *);
|
|
void * (*stat_next)(void *, int);
|
|
cmp_func_t stat_cmp;
|
|
int (*stat_show)(struct seq_file *, void *);
|
|
void (*stat_release)(void *);
|
|
int (*stat_headers)(struct seq_file *);
|
|
};
|
|
|
|
struct stat_node {
|
|
struct rb_node node;
|
|
void *stat;
|
|
};
|
|
|
|
struct fprobe {
|
|
struct ftrace_ops ops;
|
|
unsigned long nmissed;
|
|
unsigned int flags;
|
|
struct rethook *rethook;
|
|
void (*entry_handler)(struct fprobe *, unsigned long, struct pt_regs *);
|
|
void (*exit_handler)(struct fprobe *, unsigned long, struct pt_regs *);
|
|
};
|
|
|
|
struct fprobe_rethook_node {
|
|
struct rethook_node node;
|
|
unsigned long entry_ip;
|
|
};
|
|
|
|
enum {
|
|
BPF_MAX_TRAMP_LINKS = 38,
|
|
};
|
|
|
|
struct bpf_shim_tramp_link {
|
|
struct bpf_tramp_link link;
|
|
struct bpf_trampoline *trampoline;
|
|
};
|
|
|
|
enum {
|
|
FOLL_TOUCH = 65536,
|
|
FOLL_TRIED = 131072,
|
|
FOLL_REMOTE = 262144,
|
|
FOLL_PIN = 524288,
|
|
FOLL_FAST_ONLY = 1048576,
|
|
FOLL_UNLOCKABLE = 2097152,
|
|
};
|
|
|
|
struct follow_page_context {
|
|
struct dev_pagemap *pgmap;
|
|
unsigned int page_mask;
|
|
};
|
|
|
|
enum mcopy_atomic_mode {
|
|
MCOPY_ATOMIC_NORMAL = 0,
|
|
MCOPY_ATOMIC_ZEROPAGE = 1,
|
|
MCOPY_ATOMIC_CONTINUE = 2,
|
|
};
|
|
|
|
struct mpage_readpage_args {
|
|
struct bio *bio;
|
|
struct folio *folio;
|
|
unsigned int nr_pages;
|
|
bool is_readahead;
|
|
sector_t last_block_in_bio;
|
|
struct buffer_head map_bh;
|
|
unsigned long first_logical_block;
|
|
get_block_t *get_block;
|
|
};
|
|
|
|
struct mpage_data {
|
|
struct bio *bio;
|
|
sector_t last_block_in_bio;
|
|
get_block_t *get_block;
|
|
};
|
|
|
|
struct iomap_dio_ops;
|
|
|
|
struct iomap_dio {
|
|
struct kiocb *iocb;
|
|
const struct iomap_dio_ops *dops;
|
|
loff_t i_size;
|
|
loff_t size;
|
|
atomic_t ref;
|
|
unsigned int flags;
|
|
int error;
|
|
size_t done_before;
|
|
bool wait_for_completion;
|
|
union {
|
|
struct {
|
|
struct iov_iter *iter;
|
|
struct task_struct *waiter;
|
|
struct bio *poll_bio;
|
|
} submit;
|
|
struct {
|
|
struct work_struct work;
|
|
} aio;
|
|
};
|
|
};
|
|
|
|
struct iomap_dio_ops {
|
|
int (*end_io)(struct kiocb *, ssize_t, int, unsigned int);
|
|
void (*submit_io)(const struct iomap_iter *, struct bio *, loff_t);
|
|
struct bio_set *bio_set;
|
|
};
|
|
|
|
struct ext4_system_zone {
|
|
struct rb_node node;
|
|
ext4_fsblk_t start_blk;
|
|
unsigned int count;
|
|
u32 ino;
|
|
};
|
|
|
|
struct ext4_orphan_block_tail {
|
|
__le32 ob_magic;
|
|
__le32 ob_checksum;
|
|
};
|
|
|
|
enum p9_open_mode_t {
|
|
P9_OREAD = 0,
|
|
P9_OWRITE = 1,
|
|
P9_ORDWR = 2,
|
|
P9_OEXEC = 3,
|
|
P9_OTRUNC = 16,
|
|
P9_OREXEC = 32,
|
|
P9_ORCLOSE = 64,
|
|
P9_OAPPEND = 128,
|
|
P9_OEXCL = 4096,
|
|
};
|
|
|
|
enum label_initialized {
|
|
LABEL_INVALID = 0,
|
|
LABEL_INITIALIZED = 1,
|
|
LABEL_PENDING = 2,
|
|
};
|
|
|
|
enum sel_inos {
|
|
SEL_ROOT_INO = 2,
|
|
SEL_LOAD = 3,
|
|
SEL_ENFORCE = 4,
|
|
SEL_CONTEXT = 5,
|
|
SEL_ACCESS = 6,
|
|
SEL_CREATE = 7,
|
|
SEL_RELABEL = 8,
|
|
SEL_USER = 9,
|
|
SEL_POLICYVERS = 10,
|
|
SEL_COMMIT_BOOLS = 11,
|
|
SEL_MLS = 12,
|
|
SEL_DISABLE = 13,
|
|
SEL_MEMBER = 14,
|
|
SEL_CHECKREQPROT = 15,
|
|
SEL_COMPAT_NET = 16,
|
|
SEL_REJECT_UNKNOWN = 17,
|
|
SEL_DENY_UNKNOWN = 18,
|
|
SEL_STATUS = 19,
|
|
SEL_POLICY = 20,
|
|
SEL_VALIDATE_TRANS = 21,
|
|
SEL_INO_NEXT = 22,
|
|
};
|
|
|
|
struct avc_cache_stats {
|
|
unsigned int lookups;
|
|
unsigned int misses;
|
|
unsigned int allocations;
|
|
unsigned int reclaims;
|
|
unsigned int frees;
|
|
};
|
|
|
|
struct selinux_fs_info {
|
|
struct dentry *bool_dir;
|
|
unsigned int bool_num;
|
|
char **bool_pending_names;
|
|
int *bool_pending_values;
|
|
struct dentry *class_dir;
|
|
unsigned long last_class_ino;
|
|
bool policy_opened;
|
|
struct dentry *policycap_dir;
|
|
unsigned long last_ino;
|
|
struct selinux_state *state;
|
|
struct super_block *sb;
|
|
};
|
|
|
|
struct inode_security_struct {
|
|
struct inode *inode;
|
|
struct list_head list;
|
|
u32 task_sid;
|
|
u32 sid;
|
|
u16 sclass;
|
|
unsigned char initialized;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct task_security_struct {
|
|
u32 osid;
|
|
u32 sid;
|
|
u32 exec_sid;
|
|
u32 create_sid;
|
|
u32 keycreate_sid;
|
|
u32 sockcreate_sid;
|
|
};
|
|
|
|
struct lsm_network_audit;
|
|
|
|
struct lsm_ioctlop_audit;
|
|
|
|
struct lsm_ibpkey_audit;
|
|
|
|
struct lsm_ibendport_audit;
|
|
|
|
struct selinux_audit_data;
|
|
|
|
struct common_audit_data {
|
|
char type;
|
|
union {
|
|
struct path path;
|
|
struct dentry *dentry;
|
|
struct inode *inode;
|
|
struct lsm_network_audit *net;
|
|
int cap;
|
|
int ipc_id;
|
|
struct task_struct *tsk;
|
|
struct {
|
|
key_serial_t key;
|
|
char *key_desc;
|
|
} key_struct;
|
|
char *kmod_name;
|
|
struct lsm_ioctlop_audit *op;
|
|
struct file *file;
|
|
struct lsm_ibpkey_audit *ibpkey;
|
|
struct lsm_ibendport_audit *ibendport;
|
|
int reason;
|
|
const char *anonclass;
|
|
} u;
|
|
union {
|
|
struct selinux_audit_data *selinux_audit_data;
|
|
};
|
|
};
|
|
|
|
struct lsm_network_audit {
|
|
int netif;
|
|
const struct sock *sk;
|
|
u16 family;
|
|
__be16 dport;
|
|
__be16 sport;
|
|
union {
|
|
struct {
|
|
__be32 daddr;
|
|
__be32 saddr;
|
|
} v4;
|
|
struct {
|
|
struct in6_addr daddr;
|
|
struct in6_addr saddr;
|
|
} v6;
|
|
} fam;
|
|
};
|
|
|
|
struct lsm_ioctlop_audit {
|
|
struct path path;
|
|
u16 cmd;
|
|
};
|
|
|
|
struct lsm_ibpkey_audit {
|
|
u64 subnet_prefix;
|
|
u16 pkey;
|
|
};
|
|
|
|
struct lsm_ibendport_audit {
|
|
const char *dev_name;
|
|
u8 port;
|
|
};
|
|
|
|
struct selinux_audit_data {
|
|
u32 ssid;
|
|
u32 tsid;
|
|
u16 tclass;
|
|
u32 requested;
|
|
u32 audited;
|
|
u32 denied;
|
|
int result;
|
|
struct selinux_state *state;
|
|
};
|
|
|
|
struct selinux_policy_convert_data;
|
|
|
|
struct selinux_load_state {
|
|
struct selinux_policy *policy;
|
|
struct selinux_policy_convert_data *convert_data;
|
|
};
|
|
|
|
struct av_decision {
|
|
u32 allowed;
|
|
u32 auditallow;
|
|
u32 auditdeny;
|
|
u32 seqno;
|
|
u32 flags;
|
|
};
|
|
|
|
struct policy_load_memory {
|
|
size_t len;
|
|
void *data;
|
|
};
|
|
|
|
struct rsa_mpi_key {
|
|
MPI n;
|
|
MPI e;
|
|
MPI d;
|
|
MPI p;
|
|
MPI q;
|
|
MPI dp;
|
|
MPI dq;
|
|
MPI qinv;
|
|
};
|
|
|
|
struct rsa_key {
|
|
const u8 *n;
|
|
const u8 *e;
|
|
const u8 *d;
|
|
const u8 *p;
|
|
const u8 *q;
|
|
const u8 *dp;
|
|
const u8 *dq;
|
|
const u8 *qinv;
|
|
size_t n_sz;
|
|
size_t e_sz;
|
|
size_t d_sz;
|
|
size_t p_sz;
|
|
size_t q_sz;
|
|
size_t dp_sz;
|
|
size_t dq_sz;
|
|
size_t qinv_sz;
|
|
};
|
|
|
|
struct chksum_ctx {
|
|
u32 key;
|
|
};
|
|
|
|
struct chksum_desc_ctx {
|
|
u32 crc;
|
|
};
|
|
|
|
struct drbg_state;
|
|
|
|
struct drbg_state_ops {
|
|
int (*update)(struct drbg_state *, struct list_head *, int);
|
|
int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *);
|
|
int (*crypto_init)(struct drbg_state *);
|
|
int (*crypto_fini)(struct drbg_state *);
|
|
};
|
|
|
|
enum drbg_seed_state {
|
|
DRBG_SEED_STATE_UNSEEDED = 0,
|
|
DRBG_SEED_STATE_PARTIAL = 1,
|
|
DRBG_SEED_STATE_FULL = 2,
|
|
};
|
|
|
|
struct drbg_string {
|
|
const unsigned char *buf;
|
|
size_t len;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct drbg_core;
|
|
|
|
struct drbg_state {
|
|
struct mutex drbg_mutex;
|
|
unsigned char *V;
|
|
unsigned char *Vbuf;
|
|
unsigned char *C;
|
|
unsigned char *Cbuf;
|
|
size_t reseed_ctr;
|
|
size_t reseed_threshold;
|
|
unsigned char *scratchpad;
|
|
unsigned char *scratchpadbuf;
|
|
void *priv_data;
|
|
struct crypto_skcipher *ctr_handle;
|
|
struct skcipher_request *ctr_req;
|
|
__u8 *outscratchpadbuf;
|
|
__u8 *outscratchpad;
|
|
struct crypto_wait ctr_wait;
|
|
struct scatterlist sg_in;
|
|
struct scatterlist sg_out;
|
|
enum drbg_seed_state seeded;
|
|
unsigned long last_seed_time;
|
|
bool pr;
|
|
bool fips_primed;
|
|
unsigned char *prev;
|
|
struct crypto_rng *jent;
|
|
const struct drbg_state_ops *d_ops;
|
|
const struct drbg_core *core;
|
|
struct drbg_string test_data;
|
|
};
|
|
|
|
typedef uint32_t drbg_flag_t;
|
|
|
|
struct drbg_core {
|
|
drbg_flag_t flags;
|
|
__u8 statelen;
|
|
__u8 blocklen_bytes;
|
|
char cra_name[128];
|
|
char backend_cra_name[128];
|
|
};
|
|
|
|
enum drbg_prefixes {
|
|
DRBG_PREFIX0 = 0,
|
|
DRBG_PREFIX1 = 1,
|
|
DRBG_PREFIX2 = 2,
|
|
DRBG_PREFIX3 = 3,
|
|
};
|
|
|
|
struct sdesc {
|
|
struct shash_desc shash;
|
|
char ctx[0];
|
|
};
|
|
|
|
enum bio_merge_status {
|
|
BIO_MERGE_OK = 0,
|
|
BIO_MERGE_NONE = 1,
|
|
BIO_MERGE_FAILED = 2,
|
|
};
|
|
|
|
struct req_iterator {
|
|
struct bvec_iter iter;
|
|
struct bio *bio;
|
|
};
|
|
|
|
enum {
|
|
MAX_OPT_ARGS = 3,
|
|
};
|
|
|
|
typedef void sg_free_fn(struct scatterlist *, unsigned int);
|
|
|
|
struct sg_append_table {
|
|
struct sg_table sgt;
|
|
struct scatterlist *prv;
|
|
unsigned int total_nents;
|
|
};
|
|
|
|
struct sg_page_iter {
|
|
struct scatterlist *sg;
|
|
unsigned int sg_pgoffset;
|
|
unsigned int __nents;
|
|
int __pg_advance;
|
|
};
|
|
|
|
struct sg_mapping_iter {
|
|
struct page *page;
|
|
void *addr;
|
|
size_t length;
|
|
size_t consumed;
|
|
struct sg_page_iter piter;
|
|
unsigned int __offset;
|
|
unsigned int __remaining;
|
|
unsigned int __flags;
|
|
};
|
|
|
|
typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t);
|
|
|
|
struct sg_dma_page_iter {
|
|
struct sg_page_iter base;
|
|
};
|
|
|
|
typedef enum {
|
|
ZSTD_error_no_error = 0,
|
|
ZSTD_error_GENERIC = 1,
|
|
ZSTD_error_prefix_unknown = 10,
|
|
ZSTD_error_version_unsupported = 12,
|
|
ZSTD_error_frameParameter_unsupported = 14,
|
|
ZSTD_error_frameParameter_windowTooLarge = 16,
|
|
ZSTD_error_corruption_detected = 20,
|
|
ZSTD_error_checksum_wrong = 22,
|
|
ZSTD_error_dictionary_corrupted = 30,
|
|
ZSTD_error_dictionary_wrong = 32,
|
|
ZSTD_error_dictionaryCreation_failed = 34,
|
|
ZSTD_error_parameter_unsupported = 40,
|
|
ZSTD_error_parameter_outOfBound = 42,
|
|
ZSTD_error_tableLog_tooLarge = 44,
|
|
ZSTD_error_maxSymbolValue_tooLarge = 46,
|
|
ZSTD_error_maxSymbolValue_tooSmall = 48,
|
|
ZSTD_error_stage_wrong = 60,
|
|
ZSTD_error_init_missing = 62,
|
|
ZSTD_error_memory_allocation = 64,
|
|
ZSTD_error_workSpace_tooSmall = 66,
|
|
ZSTD_error_dstSize_tooSmall = 70,
|
|
ZSTD_error_srcSize_wrong = 72,
|
|
ZSTD_error_dstBuffer_null = 74,
|
|
ZSTD_error_frameIndex_tooLarge = 100,
|
|
ZSTD_error_seekableIO = 102,
|
|
ZSTD_error_dstBuffer_wrong = 104,
|
|
ZSTD_error_srcBuffer_wrong = 105,
|
|
ZSTD_error_maxCode = 120,
|
|
} ZSTD_ErrorCode;
|
|
|
|
struct ZSTD_DCtx_s;
|
|
|
|
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
|
|
|
|
typedef ZSTD_DCtx ZSTD_DStream;
|
|
|
|
struct ZSTD_outBuffer_s {
|
|
void *dst;
|
|
size_t size;
|
|
size_t pos;
|
|
};
|
|
|
|
typedef struct ZSTD_outBuffer_s ZSTD_outBuffer;
|
|
|
|
struct ZSTD_inBuffer_s {
|
|
const void *src;
|
|
size_t size;
|
|
size_t pos;
|
|
};
|
|
|
|
typedef struct ZSTD_inBuffer_s ZSTD_inBuffer;
|
|
|
|
typedef enum {
|
|
ZSTD_frame = 0,
|
|
ZSTD_skippableFrame = 1,
|
|
} ZSTD_frameType_e;
|
|
|
|
typedef struct {
|
|
unsigned long long frameContentSize;
|
|
unsigned long long windowSize;
|
|
unsigned int blockSizeMax;
|
|
ZSTD_frameType_e frameType;
|
|
unsigned int headerSize;
|
|
unsigned int dictID;
|
|
unsigned int checksumFlag;
|
|
} ZSTD_frameHeader;
|
|
|
|
typedef ZSTD_ErrorCode zstd_error_code;
|
|
|
|
typedef ZSTD_DCtx zstd_dctx;
|
|
|
|
typedef ZSTD_DStream zstd_dstream;
|
|
|
|
typedef ZSTD_outBuffer zstd_out_buffer;
|
|
|
|
typedef ZSTD_inBuffer zstd_in_buffer;
|
|
|
|
typedef ZSTD_frameHeader zstd_frame_header;
|
|
|
|
typedef mpi_limb_t UWtype;
|
|
|
|
typedef unsigned int UHWtype;
|
|
|
|
enum gcry_mpi_format {
|
|
GCRYMPI_FMT_NONE = 0,
|
|
GCRYMPI_FMT_STD = 1,
|
|
GCRYMPI_FMT_PGP = 2,
|
|
GCRYMPI_FMT_SSH = 3,
|
|
GCRYMPI_FMT_HEX = 4,
|
|
GCRYMPI_FMT_USG = 5,
|
|
GCRYMPI_FMT_OPAQUE = 8,
|
|
};
|
|
|
|
struct pcie_device;
|
|
|
|
struct pcie_port_service_driver {
|
|
const char *name;
|
|
int (*probe)(struct pcie_device *);
|
|
void (*remove)(struct pcie_device *);
|
|
int (*suspend)(struct pcie_device *);
|
|
int (*resume_noirq)(struct pcie_device *);
|
|
int (*resume)(struct pcie_device *);
|
|
int (*runtime_suspend)(struct pcie_device *);
|
|
int (*runtime_resume)(struct pcie_device *);
|
|
int (*slot_reset)(struct pcie_device *);
|
|
int port_type;
|
|
u32 service;
|
|
struct device_driver driver;
|
|
};
|
|
|
|
struct pcie_device {
|
|
int irq;
|
|
struct pci_dev *port;
|
|
u32 service;
|
|
void *priv_data;
|
|
struct device device;
|
|
};
|
|
|
|
struct pcie_pme_service_data {
|
|
spinlock_t lock;
|
|
struct pcie_device *srv;
|
|
struct work_struct work;
|
|
bool noirq;
|
|
};
|
|
|
|
struct irq_override_cmp {
|
|
const struct dmi_system_id *system;
|
|
unsigned char irq;
|
|
unsigned char triggering;
|
|
unsigned char polarity;
|
|
unsigned char shareable;
|
|
bool override;
|
|
};
|
|
|
|
struct res_proc_context {
|
|
struct list_head *list;
|
|
int (*preproc)(struct acpi_resource *, void *);
|
|
void *preproc_data;
|
|
int count;
|
|
int error;
|
|
};
|
|
|
|
struct lpi_constraints {
|
|
acpi_handle handle;
|
|
int min_dstate;
|
|
};
|
|
|
|
struct amd_lps0_hid_device_data {
|
|
const bool check_off_by_one;
|
|
};
|
|
|
|
struct acpi_s2idle_dev_ops {
|
|
struct list_head list_node;
|
|
void (*prepare)();
|
|
void (*check)();
|
|
void (*restore)();
|
|
};
|
|
|
|
struct lpi_device_constraint_amd {
|
|
char *name;
|
|
int enabled;
|
|
int function_states;
|
|
int min_dstate;
|
|
};
|
|
|
|
struct lpi_device_info {
|
|
char *name;
|
|
int enabled;
|
|
union acpi_object *package;
|
|
};
|
|
|
|
struct lpi_device_constraint {
|
|
int uid;
|
|
int min_dstate;
|
|
int function_states;
|
|
};
|
|
|
|
struct acpi_rsconvert_info {
|
|
u8 opcode;
|
|
u8 resource_offset;
|
|
u8 aml_offset;
|
|
u8 value;
|
|
};
|
|
|
|
struct acpi_vendor_uuid {
|
|
u8 subtype;
|
|
u8 data[16];
|
|
};
|
|
|
|
struct pnp_resource {
|
|
struct list_head list;
|
|
struct resource res;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long bits[4];
|
|
} pnp_irq_mask_t;
|
|
|
|
struct acpipnp_parse_option_s {
|
|
struct pnp_dev *dev;
|
|
unsigned int option_flags;
|
|
};
|
|
|
|
struct pts_fs_info;
|
|
|
|
enum {
|
|
VIA_STRFILT_CNT_SHIFT = 16,
|
|
VIA_STRFILT_FAIL = 32768,
|
|
VIA_STRFILT_ENABLE = 16384,
|
|
VIA_RAWBITS_ENABLE = 8192,
|
|
VIA_RNG_ENABLE = 64,
|
|
VIA_NOISESRC1 = 256,
|
|
VIA_NOISESRC2 = 512,
|
|
VIA_XSTORE_CNT_MASK = 15,
|
|
VIA_RNG_CHUNK_8 = 0,
|
|
VIA_RNG_CHUNK_4 = 1,
|
|
VIA_RNG_CHUNK_4_MASK = 4294967295,
|
|
VIA_RNG_CHUNK_2 = 2,
|
|
VIA_RNG_CHUNK_2_MASK = 65535,
|
|
VIA_RNG_CHUNK_1 = 3,
|
|
VIA_RNG_CHUNK_1_MASK = 255,
|
|
};
|
|
|
|
struct aper_size_info_16 {
|
|
int size;
|
|
int num_entries;
|
|
int page_order;
|
|
u16 size_value;
|
|
};
|
|
|
|
enum aper_size_type {
|
|
U8_APER_SIZE = 0,
|
|
U16_APER_SIZE = 1,
|
|
U32_APER_SIZE = 2,
|
|
LVL2_APER_SIZE = 3,
|
|
FIXED_APER_SIZE = 4,
|
|
};
|
|
|
|
enum chipset_type {
|
|
NOT_SUPPORTED = 0,
|
|
SUPPORTED = 1,
|
|
};
|
|
|
|
struct aper_size_info_8 {
|
|
int size;
|
|
int num_entries;
|
|
int page_order;
|
|
u8 size_value;
|
|
};
|
|
|
|
struct aper_size_info_32 {
|
|
int size;
|
|
int num_entries;
|
|
int page_order;
|
|
u32 size_value;
|
|
};
|
|
|
|
struct aper_size_info_lvl2 {
|
|
int size;
|
|
int num_entries;
|
|
u32 size_value;
|
|
};
|
|
|
|
struct aper_size_info_fixed {
|
|
int size;
|
|
int num_entries;
|
|
int page_order;
|
|
};
|
|
|
|
struct agp_bridge_data;
|
|
|
|
struct agp_memory {
|
|
struct agp_memory *next;
|
|
struct agp_memory *prev;
|
|
struct agp_bridge_data *bridge;
|
|
struct page **pages;
|
|
size_t page_count;
|
|
int key;
|
|
int num_scratch_pages;
|
|
off_t pg_start;
|
|
u32 type;
|
|
u32 physical;
|
|
bool is_bound;
|
|
bool is_flushed;
|
|
struct list_head mapped_list;
|
|
struct scatterlist *sg_list;
|
|
int num_sg;
|
|
};
|
|
|
|
struct agp_version;
|
|
|
|
struct agp_bridge_driver;
|
|
|
|
struct agp_bridge_data {
|
|
const struct agp_version *version;
|
|
const struct agp_bridge_driver *driver;
|
|
const struct vm_operations_struct *vm_ops;
|
|
void *previous_size;
|
|
void *current_size;
|
|
void *dev_private_data;
|
|
struct pci_dev *dev;
|
|
u32 *gatt_table;
|
|
u32 *gatt_table_real;
|
|
unsigned long scratch_page;
|
|
struct page *scratch_page_page;
|
|
dma_addr_t scratch_page_dma;
|
|
unsigned long gart_bus_addr;
|
|
unsigned long gatt_bus_addr;
|
|
u32 mode;
|
|
enum chipset_type type;
|
|
unsigned long *key_list;
|
|
atomic_t current_memory_agp;
|
|
atomic_t agp_in_use;
|
|
int max_memory_agp;
|
|
int aperture_size_idx;
|
|
int capndx;
|
|
int flags;
|
|
char major_version;
|
|
char minor_version;
|
|
struct list_head list;
|
|
u32 apbase_config;
|
|
struct list_head mapped_list;
|
|
spinlock_t mapped_lock;
|
|
};
|
|
|
|
struct agp_version {
|
|
u16 major;
|
|
u16 minor;
|
|
};
|
|
|
|
struct gatt_mask;
|
|
|
|
struct agp_bridge_driver {
|
|
struct module *owner;
|
|
const void *aperture_sizes;
|
|
int num_aperture_sizes;
|
|
enum aper_size_type size_type;
|
|
bool cant_use_aperture;
|
|
bool needs_scratch_page;
|
|
const struct gatt_mask *masks;
|
|
int (*fetch_size)();
|
|
int (*configure)();
|
|
void (*agp_enable)(struct agp_bridge_data *, u32);
|
|
void (*cleanup)();
|
|
void (*tlb_flush)(struct agp_memory *);
|
|
unsigned long (*mask_memory)(struct agp_bridge_data *, dma_addr_t, int);
|
|
void (*cache_flush)();
|
|
int (*create_gatt_table)(struct agp_bridge_data *);
|
|
int (*free_gatt_table)(struct agp_bridge_data *);
|
|
int (*insert_memory)(struct agp_memory *, off_t, int);
|
|
int (*remove_memory)(struct agp_memory *, off_t, int);
|
|
struct agp_memory * (*alloc_by_type)(size_t, int);
|
|
void (*free_by_type)(struct agp_memory *);
|
|
struct page * (*agp_alloc_page)(struct agp_bridge_data *);
|
|
int (*agp_alloc_pages)(struct agp_bridge_data *, struct agp_memory *, size_t);
|
|
void (*agp_destroy_page)(struct page *, int);
|
|
void (*agp_destroy_pages)(struct agp_memory *);
|
|
int (*agp_type_to_mask_type)(struct agp_bridge_data *, int);
|
|
};
|
|
|
|
struct gatt_mask {
|
|
unsigned long mask;
|
|
u32 type;
|
|
};
|
|
|
|
struct agp_kern_info {
|
|
struct agp_version version;
|
|
struct pci_dev *device;
|
|
enum chipset_type chipset;
|
|
unsigned long mode;
|
|
unsigned long aper_base;
|
|
size_t aper_size;
|
|
int max_memory;
|
|
int current_memory;
|
|
bool cant_use_aperture;
|
|
unsigned long page_mask;
|
|
const struct vm_operations_struct *vm_ops;
|
|
};
|
|
|
|
struct ivrs_quirk_entry {
|
|
u8 id;
|
|
u32 devid;
|
|
};
|
|
|
|
enum acpi_dmar_scope_type {
|
|
ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0,
|
|
ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1,
|
|
ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2,
|
|
ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3,
|
|
ACPI_DMAR_SCOPE_TYPE_HPET = 4,
|
|
ACPI_DMAR_SCOPE_TYPE_NAMESPACE = 5,
|
|
ACPI_DMAR_SCOPE_TYPE_RESERVED = 6,
|
|
};
|
|
|
|
enum latency_type {
|
|
DMAR_LATENCY_INV_IOTLB = 0,
|
|
DMAR_LATENCY_INV_DEVTLB = 1,
|
|
DMAR_LATENCY_INV_IEC = 2,
|
|
DMAR_LATENCY_PRQ = 3,
|
|
DMAR_LATENCY_NUM = 4,
|
|
};
|
|
|
|
enum {
|
|
QI_FREE = 0,
|
|
QI_IN_USE = 1,
|
|
QI_DONE = 2,
|
|
QI_ABORT = 3,
|
|
};
|
|
|
|
enum acpi_dmar_type {
|
|
ACPI_DMAR_TYPE_HARDWARE_UNIT = 0,
|
|
ACPI_DMAR_TYPE_RESERVED_MEMORY = 1,
|
|
ACPI_DMAR_TYPE_ROOT_ATS = 2,
|
|
ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3,
|
|
ACPI_DMAR_TYPE_NAMESPACE = 4,
|
|
ACPI_DMAR_TYPE_SATC = 5,
|
|
ACPI_DMAR_TYPE_RESERVED = 6,
|
|
};
|
|
|
|
enum faulttype {
|
|
DMA_REMAP = 0,
|
|
INTR_REMAP = 1,
|
|
UNKNOWN = 2,
|
|
};
|
|
|
|
struct acpi_dmar_pci_path {
|
|
u8 device;
|
|
u8 function;
|
|
};
|
|
|
|
struct acpi_dmar_header;
|
|
|
|
struct dmar_dev_scope;
|
|
|
|
struct intel_iommu;
|
|
|
|
struct dmar_drhd_unit {
|
|
struct list_head list;
|
|
struct acpi_dmar_header *hdr;
|
|
u64 reg_base_addr;
|
|
unsigned long reg_size;
|
|
struct dmar_dev_scope *devices;
|
|
int devices_cnt;
|
|
u16 segment;
|
|
u8 ignored: 1;
|
|
u8 include_all: 1;
|
|
u8 gfx_dedicated: 1;
|
|
struct intel_iommu *iommu;
|
|
};
|
|
|
|
struct acpi_dmar_header {
|
|
u16 type;
|
|
u16 length;
|
|
};
|
|
|
|
struct dmar_dev_scope {
|
|
struct device __attribute__((btf_type_tag("rcu"))) *dev;
|
|
u8 bus;
|
|
u8 devfn;
|
|
};
|
|
|
|
struct iommu_flush {
|
|
void (*flush_context)(struct intel_iommu *, u16, u16, u8, u64);
|
|
void (*flush_iotlb)(struct intel_iommu *, u16, u64, unsigned int, u64);
|
|
};
|
|
|
|
struct iopf_queue;
|
|
|
|
struct root_entry;
|
|
|
|
struct q_inval;
|
|
|
|
struct iommu_pmu;
|
|
|
|
struct intel_iommu {
|
|
void *reg;
|
|
u64 reg_phys;
|
|
u64 reg_size;
|
|
u64 cap;
|
|
u64 ecap;
|
|
u64 vccap;
|
|
u64 ecmdcap[4];
|
|
u32 gcmd;
|
|
raw_spinlock_t register_lock;
|
|
int seq_id;
|
|
int agaw;
|
|
int msagaw;
|
|
unsigned int irq;
|
|
unsigned int pr_irq;
|
|
unsigned int perf_irq;
|
|
u16 segment;
|
|
unsigned char name[13];
|
|
unsigned long *domain_ids;
|
|
unsigned long *copied_tables;
|
|
spinlock_t lock;
|
|
struct root_entry *root_entry;
|
|
struct iommu_flush flush;
|
|
struct iopf_queue *iopf_queue;
|
|
unsigned char iopfq_name[16];
|
|
struct q_inval *qi;
|
|
u32 *iommu_state;
|
|
struct iommu_device iommu;
|
|
int node;
|
|
u32 flags;
|
|
struct dmar_drhd_unit *drhd;
|
|
void *perf_statistic;
|
|
struct iommu_pmu *pmu;
|
|
};
|
|
|
|
struct root_entry {
|
|
u64 lo;
|
|
u64 hi;
|
|
};
|
|
|
|
struct q_inval {
|
|
raw_spinlock_t q_lock;
|
|
void *desc;
|
|
int *desc_status;
|
|
int free_head;
|
|
int free_tail;
|
|
int free_cnt;
|
|
};
|
|
|
|
struct iommu_pmu {
|
|
struct intel_iommu *iommu;
|
|
u32 num_cntr;
|
|
u32 num_eg;
|
|
u32 cntr_width;
|
|
u32 cntr_stride;
|
|
u32 filter;
|
|
void *base;
|
|
void *cfg_reg;
|
|
void *cntr_reg;
|
|
void *overflow;
|
|
u64 *evcap;
|
|
u32 **cntr_evcap;
|
|
struct pmu pmu;
|
|
unsigned long used_mask[1];
|
|
struct perf_event *event_list[64];
|
|
unsigned char irq_name[16];
|
|
};
|
|
|
|
struct acpi_dmar_hardware_unit {
|
|
struct acpi_dmar_header header;
|
|
u8 flags;
|
|
u8 size;
|
|
u16 segment;
|
|
u64 address;
|
|
};
|
|
|
|
struct acpi_table_dmar {
|
|
struct acpi_table_header header;
|
|
u8 width;
|
|
u8 flags;
|
|
u8 reserved[10];
|
|
};
|
|
|
|
typedef unsigned long long cycles_t;
|
|
|
|
struct dmar_pci_path {
|
|
u8 bus;
|
|
u8 device;
|
|
u8 function;
|
|
};
|
|
|
|
struct dmar_pci_notify_info {
|
|
struct pci_dev *dev;
|
|
unsigned long event;
|
|
int bus;
|
|
u16 seg;
|
|
u16 level;
|
|
struct dmar_pci_path path[0];
|
|
};
|
|
|
|
struct acpi_dmar_reserved_memory {
|
|
struct acpi_dmar_header header;
|
|
u16 reserved;
|
|
u16 segment;
|
|
u64 base_address;
|
|
u64 end_address;
|
|
};
|
|
|
|
struct acpi_dmar_atsr {
|
|
struct acpi_dmar_header header;
|
|
u8 flags;
|
|
u8 reserved;
|
|
u16 segment;
|
|
};
|
|
|
|
struct acpi_dmar_rhsa {
|
|
struct acpi_dmar_header header;
|
|
u32 reserved;
|
|
u64 base_address;
|
|
u32 proximity_domain;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_dmar_satc {
|
|
struct acpi_dmar_header header;
|
|
u8 flags;
|
|
u8 reserved;
|
|
u16 segment;
|
|
};
|
|
|
|
typedef int (*dmar_res_handler_t)(struct acpi_dmar_header *, void *);
|
|
|
|
struct dmar_res_callback {
|
|
dmar_res_handler_t cb[6];
|
|
void *arg[6];
|
|
bool ignore_unhandled;
|
|
bool print_entry;
|
|
};
|
|
|
|
struct qi_desc {
|
|
u64 qw0;
|
|
u64 qw1;
|
|
u64 qw2;
|
|
u64 qw3;
|
|
};
|
|
|
|
struct acpi_dmar_device_scope {
|
|
u8 entry_type;
|
|
u8 length;
|
|
u16 reserved;
|
|
u8 enumeration_id;
|
|
u8 bus;
|
|
};
|
|
|
|
struct acpi_dmar_andd {
|
|
struct acpi_dmar_header header;
|
|
u8 reserved[3];
|
|
u8 device_number;
|
|
char device_name[1];
|
|
} __attribute__((packed));
|
|
|
|
typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool);
|
|
|
|
typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file___3 *, int, unsigned int);
|
|
|
|
typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file___3 *, int, unsigned int);
|
|
|
|
struct trace_event_raw_drm_vblank_event {
|
|
struct trace_entry ent;
|
|
int crtc;
|
|
unsigned int seq;
|
|
ktime_t time;
|
|
bool high_prec;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drm_vblank_event_queued {
|
|
struct trace_entry ent;
|
|
struct drm_file___3 *file;
|
|
int crtc;
|
|
unsigned int seq;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_drm_vblank_event_delivered {
|
|
struct trace_entry ent;
|
|
struct drm_file___3 *file;
|
|
int crtc;
|
|
unsigned int seq;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_drm_vblank_event {};
|
|
|
|
struct trace_event_data_offsets_drm_vblank_event_queued {};
|
|
|
|
struct trace_event_data_offsets_drm_vblank_event_delivered {};
|
|
|
|
typedef u32 gen6_pte_t;
|
|
|
|
struct insert_entries {
|
|
struct i915_address_space *vm;
|
|
struct i915_vma_resource *vma_res;
|
|
enum i915_cache_level level;
|
|
u32 flags;
|
|
};
|
|
|
|
struct insert_page {
|
|
struct i915_address_space *vm;
|
|
dma_addr_t addr;
|
|
u64 offset;
|
|
enum i915_cache_level level;
|
|
};
|
|
|
|
struct ch7xxx_id_struct {
|
|
u8 vid;
|
|
char *name;
|
|
};
|
|
|
|
struct ch7xxx_did_struct {
|
|
u8 did;
|
|
char *name;
|
|
};
|
|
|
|
struct ch7xxx_priv {
|
|
bool quiet;
|
|
};
|
|
|
|
enum intel_broadcast_rgb {
|
|
INTEL_BROADCAST_RGB_AUTO = 0,
|
|
INTEL_BROADCAST_RGB_FULL = 1,
|
|
INTEL_BROADCAST_RGB_LIMITED = 2,
|
|
};
|
|
|
|
struct dp_sdp_header {
|
|
u8 HB0;
|
|
u8 HB1;
|
|
u8 HB2;
|
|
u8 HB3;
|
|
};
|
|
|
|
struct dp_sdp {
|
|
struct dp_sdp_header sdp_header;
|
|
u8 db[32];
|
|
};
|
|
|
|
struct link_config_limits {
|
|
int min_rate;
|
|
int max_rate;
|
|
int min_lane_count;
|
|
int max_lane_count;
|
|
int min_bpp;
|
|
int max_bpp;
|
|
};
|
|
|
|
struct suspend_stats {
|
|
int success;
|
|
int fail;
|
|
int failed_freeze;
|
|
int failed_prepare;
|
|
int failed_suspend;
|
|
int failed_suspend_late;
|
|
int failed_suspend_noirq;
|
|
int failed_resume;
|
|
int failed_resume_early;
|
|
int failed_resume_noirq;
|
|
int last_failed_dev;
|
|
char failed_devs[80];
|
|
int last_failed_errno;
|
|
int errno[2];
|
|
int last_failed_step;
|
|
enum suspend_stat_step failed_steps[2];
|
|
};
|
|
|
|
struct transport_class {
|
|
struct class class;
|
|
int (*setup)(struct transport_container *, struct device *, struct device *);
|
|
int (*configure)(struct transport_container *, struct device *, struct device *);
|
|
int (*remove)(struct transport_container *, struct device *, struct device *);
|
|
};
|
|
|
|
struct ata_internal {
|
|
struct scsi_transport_template t;
|
|
struct device_attribute private_port_attrs[3];
|
|
struct device_attribute private_link_attrs[3];
|
|
struct device_attribute private_dev_attrs[9];
|
|
struct transport_container link_attr_cont;
|
|
struct transport_container dev_attr_cont;
|
|
struct device_attribute *link_attrs[4];
|
|
struct device_attribute *port_attrs[4];
|
|
struct device_attribute *dev_attrs[10];
|
|
};
|
|
|
|
struct ata_show_ering_arg {
|
|
char *buf;
|
|
int written;
|
|
};
|
|
|
|
enum ifla_vxlan_df {
|
|
VXLAN_DF_UNSET = 0,
|
|
VXLAN_DF_SET = 1,
|
|
VXLAN_DF_INHERIT = 2,
|
|
__VXLAN_DF_END = 3,
|
|
VXLAN_DF_MAX = 2,
|
|
};
|
|
|
|
struct vxlan_sock {
|
|
struct hlist_node hlist;
|
|
struct socket *sock;
|
|
struct hlist_head vni_list[1024];
|
|
refcount_t refcnt;
|
|
u32 flags;
|
|
};
|
|
|
|
struct vxlan_dev;
|
|
|
|
struct vxlan_dev_node {
|
|
struct hlist_node hlist;
|
|
struct vxlan_dev *vxlan;
|
|
};
|
|
|
|
union vxlan_addr {
|
|
struct sockaddr_in sin;
|
|
struct sockaddr_in6 sin6;
|
|
struct sockaddr sa;
|
|
};
|
|
|
|
struct vxlan_rdst {
|
|
union vxlan_addr remote_ip;
|
|
__be16 remote_port;
|
|
u8 offloaded: 1;
|
|
__be32 remote_vni;
|
|
u32 remote_ifindex;
|
|
struct net_device *remote_dev;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
struct dst_cache dst_cache;
|
|
};
|
|
|
|
struct vxlan_config {
|
|
union vxlan_addr remote_ip;
|
|
union vxlan_addr saddr;
|
|
__be32 vni;
|
|
int remote_ifindex;
|
|
int mtu;
|
|
__be16 dst_port;
|
|
u16 port_min;
|
|
u16 port_max;
|
|
u8 tos;
|
|
u8 ttl;
|
|
__be32 label;
|
|
u32 flags;
|
|
unsigned long age_interval;
|
|
unsigned int addrmax;
|
|
bool no_share;
|
|
enum ifla_vxlan_df df;
|
|
};
|
|
|
|
struct vxlan_vni_group;
|
|
|
|
struct vxlan_dev {
|
|
struct vxlan_dev_node hlist4;
|
|
struct vxlan_dev_node hlist6;
|
|
struct list_head next;
|
|
struct vxlan_sock __attribute__((btf_type_tag("rcu"))) *vn4_sock;
|
|
struct vxlan_sock __attribute__((btf_type_tag("rcu"))) *vn6_sock;
|
|
struct net_device *dev;
|
|
struct net *net;
|
|
struct vxlan_rdst default_dst;
|
|
struct timer_list age_timer;
|
|
spinlock_t hash_lock[256];
|
|
unsigned int addrcnt;
|
|
struct gro_cells gro_cells;
|
|
struct vxlan_config cfg;
|
|
struct vxlan_vni_group __attribute__((btf_type_tag("rcu"))) *vnigrp;
|
|
struct hlist_head fdb_head[256];
|
|
};
|
|
|
|
struct vxlan_vni_group {
|
|
struct rhashtable vni_hash;
|
|
struct list_head vni_list;
|
|
u32 num_vnis;
|
|
};
|
|
|
|
struct vxlan_vni_stats_pcpu;
|
|
|
|
struct vxlan_vni_node {
|
|
struct rhash_head vnode;
|
|
struct vxlan_dev_node hlist4;
|
|
struct vxlan_dev_node hlist6;
|
|
struct list_head vlist;
|
|
__be32 vni;
|
|
union vxlan_addr remote_ip;
|
|
struct vxlan_vni_stats_pcpu __attribute__((btf_type_tag("percpu"))) *stats;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct vxlan_vni_stats {
|
|
u64 rx_packets;
|
|
u64 rx_bytes;
|
|
u64 rx_drops;
|
|
u64 rx_errors;
|
|
u64 tx_packets;
|
|
u64 tx_bytes;
|
|
u64 tx_drops;
|
|
u64 tx_errors;
|
|
};
|
|
|
|
struct vxlan_vni_stats_pcpu {
|
|
struct vxlan_vni_stats stats;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct vxlan_net {
|
|
struct list_head vxlan_list;
|
|
struct hlist_head sock_list[256];
|
|
spinlock_t sock_lock;
|
|
struct notifier_block nexthop_notifier_block;
|
|
};
|
|
|
|
enum udp_tunnel_nic_info_flags {
|
|
UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1,
|
|
UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2,
|
|
UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4,
|
|
UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8,
|
|
};
|
|
|
|
struct snap {
|
|
int slen;
|
|
char str[80];
|
|
};
|
|
|
|
struct mon_bus {
|
|
struct list_head bus_link;
|
|
spinlock_t lock;
|
|
struct usb_bus *u_bus;
|
|
int text_inited;
|
|
int bin_inited;
|
|
struct dentry *dent_s;
|
|
struct dentry *dent_t;
|
|
struct dentry *dent_u;
|
|
struct device *classdev;
|
|
int nreaders;
|
|
struct list_head r_list;
|
|
struct kref ref;
|
|
unsigned int cnt_events;
|
|
unsigned int cnt_text_lost;
|
|
};
|
|
|
|
enum {
|
|
US_FL_SINGLE_LUN = 1,
|
|
US_FL_NEED_OVERRIDE = 2,
|
|
US_FL_SCM_MULT_TARG = 4,
|
|
US_FL_FIX_INQUIRY = 8,
|
|
US_FL_FIX_CAPACITY = 16,
|
|
US_FL_IGNORE_RESIDUE = 32,
|
|
US_FL_BULK32 = 64,
|
|
US_FL_NOT_LOCKABLE = 128,
|
|
US_FL_GO_SLOW = 256,
|
|
US_FL_NO_WP_DETECT = 512,
|
|
US_FL_MAX_SECTORS_64 = 1024,
|
|
US_FL_IGNORE_DEVICE = 2048,
|
|
US_FL_CAPACITY_HEURISTICS = 4096,
|
|
US_FL_MAX_SECTORS_MIN = 8192,
|
|
US_FL_BULK_IGNORE_TAG = 16384,
|
|
US_FL_SANE_SENSE = 32768,
|
|
US_FL_CAPACITY_OK = 65536,
|
|
US_FL_BAD_SENSE = 131072,
|
|
US_FL_NO_READ_DISC_INFO = 262144,
|
|
US_FL_NO_READ_CAPACITY_16 = 524288,
|
|
US_FL_INITIAL_READ10 = 1048576,
|
|
US_FL_WRITE_CACHE = 2097152,
|
|
US_FL_NEEDS_CAP16 = 4194304,
|
|
US_FL_IGNORE_UAS = 8388608,
|
|
US_FL_BROKEN_FUA = 16777216,
|
|
US_FL_NO_ATA_1X = 33554432,
|
|
US_FL_NO_REPORT_OPCODES = 67108864,
|
|
US_FL_MAX_SECTORS_240 = 134217728,
|
|
US_FL_NO_REPORT_LUNS = 268435456,
|
|
US_FL_ALWAYS_SYNC = 536870912,
|
|
US_FL_NO_SAME = 1073741824,
|
|
US_FL_SENSE_AFTER_SYNC = 2147483648,
|
|
};
|
|
|
|
enum xfer_buf_dir {
|
|
TO_XFER_BUF = 0,
|
|
FROM_XFER_BUF = 1,
|
|
};
|
|
|
|
struct bulk_cb_wrap {
|
|
__le32 Signature;
|
|
__u32 Tag;
|
|
__le32 DataTransferLength;
|
|
__u8 Flags;
|
|
__u8 Lun;
|
|
__u8 Length;
|
|
__u8 CDB[16];
|
|
};
|
|
|
|
struct bulk_cs_wrap {
|
|
__le32 Signature;
|
|
__u32 Tag;
|
|
__le32 Residue;
|
|
__u8 Status;
|
|
};
|
|
|
|
struct us_data;
|
|
|
|
typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *);
|
|
|
|
typedef int (*trans_reset)(struct us_data *);
|
|
|
|
typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *);
|
|
|
|
struct usb_sg_request {
|
|
int status;
|
|
size_t bytes;
|
|
spinlock_t lock;
|
|
struct usb_device *dev;
|
|
int pipe;
|
|
int entries;
|
|
struct urb **urbs;
|
|
int count;
|
|
struct completion complete;
|
|
};
|
|
|
|
typedef void (*extra_data_destructor)(void *);
|
|
|
|
typedef void (*pm_hook)(struct us_data *, int);
|
|
|
|
struct us_unusual_dev;
|
|
|
|
struct us_data {
|
|
struct mutex dev_mutex;
|
|
struct usb_device *pusb_dev;
|
|
struct usb_interface *pusb_intf;
|
|
const struct us_unusual_dev *unusual_dev;
|
|
unsigned long fflags;
|
|
unsigned long dflags;
|
|
unsigned int send_bulk_pipe;
|
|
unsigned int recv_bulk_pipe;
|
|
unsigned int send_ctrl_pipe;
|
|
unsigned int recv_ctrl_pipe;
|
|
unsigned int recv_intr_pipe;
|
|
char *transport_name;
|
|
char *protocol_name;
|
|
__le32 bcs_signature;
|
|
u8 subclass;
|
|
u8 protocol;
|
|
u8 max_lun;
|
|
u8 ifnum;
|
|
u8 ep_bInterval;
|
|
trans_cmnd transport;
|
|
trans_reset transport_reset;
|
|
proto_cmnd proto_handler;
|
|
struct scsi_cmnd *srb;
|
|
unsigned int tag;
|
|
char scsi_name[32];
|
|
struct urb *current_urb;
|
|
struct usb_ctrlrequest *cr;
|
|
struct usb_sg_request current_sg;
|
|
unsigned char *iobuf;
|
|
dma_addr_t iobuf_dma;
|
|
struct task_struct *ctl_thread;
|
|
struct completion cmnd_ready;
|
|
struct completion notify;
|
|
wait_queue_head_t delay_wait;
|
|
struct delayed_work scan_dwork;
|
|
void *extra;
|
|
extra_data_destructor extra_destructor;
|
|
pm_hook suspend_resume_hook;
|
|
int use_last_sector_hacks;
|
|
int last_sector_retries;
|
|
};
|
|
|
|
struct us_unusual_dev {
|
|
const char *vendorName;
|
|
const char *productName;
|
|
__u8 useProtocol;
|
|
__u8 useTransport;
|
|
int (*initFunction)(struct us_data *);
|
|
};
|
|
|
|
struct opal_dev;
|
|
|
|
struct scsi_disk {
|
|
struct scsi_device *device;
|
|
struct device disk_dev;
|
|
struct gendisk *disk;
|
|
struct opal_dev *opal_dev;
|
|
atomic_t openers;
|
|
sector_t capacity;
|
|
int max_retries;
|
|
u32 min_xfer_blocks;
|
|
u32 max_xfer_blocks;
|
|
u32 opt_xfer_blocks;
|
|
u32 max_ws_blocks;
|
|
u32 max_unmap_blocks;
|
|
u32 unmap_granularity;
|
|
u32 unmap_alignment;
|
|
u32 index;
|
|
unsigned int physical_block_size;
|
|
unsigned int max_medium_access_timeouts;
|
|
unsigned int medium_access_timed_out;
|
|
u8 media_present;
|
|
u8 write_prot;
|
|
u8 protection_type;
|
|
u8 provisioning_mode;
|
|
u8 zeroing_mode;
|
|
u8 nr_actuators;
|
|
unsigned int ATO: 1;
|
|
unsigned int cache_override: 1;
|
|
unsigned int WCE: 1;
|
|
unsigned int RCD: 1;
|
|
unsigned int DPOFUA: 1;
|
|
unsigned int first_scan: 1;
|
|
unsigned int lbpme: 1;
|
|
unsigned int lbprz: 1;
|
|
unsigned int lbpu: 1;
|
|
unsigned int lbpws: 1;
|
|
unsigned int lbpws10: 1;
|
|
unsigned int lbpvpd: 1;
|
|
unsigned int ws10: 1;
|
|
unsigned int ws16: 1;
|
|
unsigned int rc_basis: 2;
|
|
unsigned int zoned: 2;
|
|
unsigned int urswrz: 1;
|
|
unsigned int security: 1;
|
|
unsigned int ignore_medium_access_errors: 1;
|
|
};
|
|
|
|
struct rtc_wkalrm {
|
|
unsigned char enabled;
|
|
unsigned char pending;
|
|
struct rtc_time time;
|
|
};
|
|
|
|
struct rtc_device;
|
|
|
|
struct cmos_rtc {
|
|
struct rtc_device *rtc;
|
|
struct device *dev;
|
|
int irq;
|
|
struct resource *iomem;
|
|
time64_t alarm_expires;
|
|
void (*wake_on)(struct device *);
|
|
void (*wake_off)(struct device *);
|
|
u8 enabled_wake;
|
|
u8 suspend_ctrl;
|
|
u8 day_alrm;
|
|
u8 mon_alrm;
|
|
u8 century;
|
|
struct rtc_wkalrm saved_wkalrm;
|
|
};
|
|
|
|
struct rtc_timer {
|
|
struct timerqueue_node node;
|
|
ktime_t period;
|
|
void (*func)(struct rtc_device *);
|
|
struct rtc_device *rtc;
|
|
int enabled;
|
|
};
|
|
|
|
typedef __u64 timeu64_t;
|
|
|
|
struct rtc_class_ops;
|
|
|
|
struct rtc_device {
|
|
struct device dev;
|
|
struct module *owner;
|
|
int id;
|
|
const struct rtc_class_ops *ops;
|
|
struct mutex ops_lock;
|
|
struct cdev char_dev;
|
|
unsigned long flags;
|
|
unsigned long irq_data;
|
|
spinlock_t irq_lock;
|
|
wait_queue_head_t irq_queue;
|
|
struct fasync_struct *async_queue;
|
|
int irq_freq;
|
|
int max_user_freq;
|
|
struct timerqueue_head timerqueue;
|
|
struct rtc_timer aie_timer;
|
|
struct rtc_timer uie_rtctimer;
|
|
struct hrtimer pie_timer;
|
|
int pie_enabled;
|
|
struct work_struct irqwork;
|
|
unsigned long set_offset_nsec;
|
|
unsigned long features[1];
|
|
time64_t range_min;
|
|
timeu64_t range_max;
|
|
time64_t start_secs;
|
|
time64_t offset_secs;
|
|
bool set_start_time;
|
|
};
|
|
|
|
struct rtc_param;
|
|
|
|
struct rtc_class_ops {
|
|
int (*ioctl)(struct device *, unsigned int, unsigned long);
|
|
int (*read_time)(struct device *, struct rtc_time *);
|
|
int (*set_time)(struct device *, struct rtc_time *);
|
|
int (*read_alarm)(struct device *, struct rtc_wkalrm *);
|
|
int (*set_alarm)(struct device *, struct rtc_wkalrm *);
|
|
int (*proc)(struct device *, struct seq_file *);
|
|
int (*alarm_irq_enable)(struct device *, unsigned int);
|
|
int (*read_offset)(struct device *, long *);
|
|
int (*set_offset)(struct device *, long);
|
|
int (*param_get)(struct device *, struct rtc_param *);
|
|
int (*param_set)(struct device *, struct rtc_param *);
|
|
};
|
|
|
|
struct rtc_param {
|
|
__u64 param;
|
|
union {
|
|
__u64 uvalue;
|
|
__s64 svalue;
|
|
__u64 ptr;
|
|
};
|
|
__u32 index;
|
|
__u32 __pad;
|
|
};
|
|
|
|
struct cmos_read_alarm_callback_param {
|
|
struct cmos_rtc *cmos;
|
|
struct rtc_time *time;
|
|
unsigned char rtc_control;
|
|
};
|
|
|
|
struct cmos_set_alarm_callback_param {
|
|
struct cmos_rtc *cmos;
|
|
unsigned char mon;
|
|
unsigned char mday;
|
|
unsigned char hrs;
|
|
unsigned char min;
|
|
unsigned char sec;
|
|
struct rtc_wkalrm *t;
|
|
};
|
|
|
|
typedef irqreturn_t (*rtc_irq_handler)(int, void *);
|
|
|
|
struct cmos_rtc_board_info {
|
|
void (*wake_on)(struct device *);
|
|
void (*wake_off)(struct device *);
|
|
u32 flags;
|
|
int address_space;
|
|
u8 rtc_day_alarm;
|
|
u8 rtc_mon_alarm;
|
|
u8 rtc_century;
|
|
};
|
|
|
|
struct md_cluster_operations {
|
|
int (*join)(struct mddev *, int);
|
|
int (*leave)(struct mddev *);
|
|
int (*slot_number)(struct mddev *);
|
|
int (*resync_info_update)(struct mddev *, sector_t, sector_t);
|
|
void (*resync_info_get)(struct mddev *, sector_t *, sector_t *);
|
|
int (*metadata_update_start)(struct mddev *);
|
|
int (*metadata_update_finish)(struct mddev *);
|
|
void (*metadata_update_cancel)(struct mddev *);
|
|
int (*resync_start)(struct mddev *);
|
|
int (*resync_finish)(struct mddev *);
|
|
int (*area_resyncing)(struct mddev *, int, sector_t, sector_t);
|
|
int (*add_new_disk)(struct mddev *, struct md_rdev *);
|
|
void (*add_new_disk_cancel)(struct mddev *);
|
|
int (*new_disk_ack)(struct mddev *, bool);
|
|
int (*remove_disk)(struct mddev *, struct md_rdev *);
|
|
void (*load_bitmaps)(struct mddev *, int);
|
|
int (*gather_bitmaps)(struct md_rdev *);
|
|
int (*resize_bitmaps)(struct mddev *, sector_t, sector_t);
|
|
int (*lock_all_bitmaps)(struct mddev *);
|
|
void (*unlock_all_bitmaps)(struct mddev *);
|
|
void (*update_size)(struct mddev *, sector_t);
|
|
};
|
|
|
|
struct rdev_sysfs_entry {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct md_rdev *, char *);
|
|
ssize_t (*store)(struct md_rdev *, const char *, size_t);
|
|
};
|
|
|
|
struct super_type {
|
|
char *name;
|
|
struct module *owner;
|
|
int (*load_super)(struct md_rdev *, struct md_rdev *, int);
|
|
int (*validate_super)(struct mddev *, struct md_rdev *);
|
|
void (*sync_super)(struct mddev *, struct md_rdev *);
|
|
unsigned long long (*rdev_size_change)(struct md_rdev *, sector_t);
|
|
int (*allow_new_offset)(struct md_rdev *, unsigned long long);
|
|
};
|
|
|
|
enum {
|
|
DISK_EVENT_MEDIA_CHANGE = 1,
|
|
DISK_EVENT_EJECT_REQUEST = 2,
|
|
};
|
|
|
|
enum md_ro_state {
|
|
MD_RDWR = 0,
|
|
MD_RDONLY = 1,
|
|
MD_AUTO_READ = 2,
|
|
MD_MAX_STATE = 3,
|
|
};
|
|
|
|
enum {
|
|
BIOSET_NEED_BVECS = 1,
|
|
BIOSET_NEED_RESCUER = 2,
|
|
BIOSET_PERCPU_CACHE = 4,
|
|
};
|
|
|
|
enum {
|
|
MD_RESYNC_NONE = 0,
|
|
MD_RESYNC_YIELDED = 1,
|
|
MD_RESYNC_DELAYED = 2,
|
|
MD_RESYNC_ACTIVE = 3,
|
|
};
|
|
|
|
enum array_state {
|
|
clear = 0,
|
|
inactive = 1,
|
|
suspended = 2,
|
|
readonly = 3,
|
|
read_auto = 4,
|
|
clean = 5,
|
|
active = 6,
|
|
write_pending = 7,
|
|
active_idle = 8,
|
|
broken = 9,
|
|
bad_word = 10,
|
|
};
|
|
|
|
struct md_io_acct {
|
|
struct mddev *mddev;
|
|
struct bio *orig_bio;
|
|
unsigned long start_time;
|
|
struct bio bio_clone;
|
|
};
|
|
|
|
struct detected_devices_node {
|
|
struct list_head list;
|
|
dev_t dev;
|
|
};
|
|
|
|
struct mdp_superblock_1 {
|
|
__le32 magic;
|
|
__le32 major_version;
|
|
__le32 feature_map;
|
|
__le32 pad0;
|
|
__u8 set_uuid[16];
|
|
char set_name[32];
|
|
__le64 ctime;
|
|
__le32 level;
|
|
__le32 layout;
|
|
__le64 size;
|
|
__le32 chunksize;
|
|
__le32 raid_disks;
|
|
union {
|
|
__le32 bitmap_offset;
|
|
struct {
|
|
__le16 offset;
|
|
__le16 size;
|
|
} ppl;
|
|
};
|
|
__le32 new_level;
|
|
__le64 reshape_position;
|
|
__le32 delta_disks;
|
|
__le32 new_layout;
|
|
__le32 new_chunk;
|
|
__le32 new_offset;
|
|
__le64 data_offset;
|
|
__le64 data_size;
|
|
__le64 super_offset;
|
|
union {
|
|
__le64 recovery_offset;
|
|
__le64 journal_tail;
|
|
};
|
|
__le32 dev_number;
|
|
__le32 cnt_corrected_read;
|
|
__u8 device_uuid[16];
|
|
__u8 devflags;
|
|
__u8 bblog_shift;
|
|
__le16 bblog_size;
|
|
__le32 bblog_offset;
|
|
__le64 utime;
|
|
__le64 events;
|
|
__le64 resync_offset;
|
|
__le32 sb_csum;
|
|
__le32 max_dev;
|
|
__u8 pad3[32];
|
|
__le16 dev_roles[0];
|
|
};
|
|
|
|
struct mdu_version_s {
|
|
int major;
|
|
int minor;
|
|
int patchlevel;
|
|
};
|
|
|
|
typedef struct mdu_version_s mdu_version_t;
|
|
|
|
struct mdu_bitmap_file_s {
|
|
char pathname[4096];
|
|
};
|
|
|
|
typedef struct mdu_bitmap_file_s mdu_bitmap_file_t;
|
|
|
|
struct mdu_disk_info_s {
|
|
int number;
|
|
int major;
|
|
int minor;
|
|
int raid_disk;
|
|
int state;
|
|
};
|
|
|
|
typedef struct mdu_disk_info_s mdu_disk_info_t;
|
|
|
|
struct mdu_array_info_s {
|
|
int major_version;
|
|
int minor_version;
|
|
int patch_version;
|
|
unsigned int ctime;
|
|
int level;
|
|
int size;
|
|
int nr_disks;
|
|
int raid_disks;
|
|
int md_minor;
|
|
int not_persistent;
|
|
unsigned int utime;
|
|
int state;
|
|
int active_disks;
|
|
int working_disks;
|
|
int failed_disks;
|
|
int spare_disks;
|
|
int layout;
|
|
int chunk_size;
|
|
};
|
|
|
|
typedef struct mdu_array_info_s mdu_array_info_t;
|
|
|
|
struct mdp_device_descriptor_s {
|
|
__u32 number;
|
|
__u32 major;
|
|
__u32 minor;
|
|
__u32 raid_disk;
|
|
__u32 state;
|
|
__u32 reserved[27];
|
|
};
|
|
|
|
typedef struct mdp_device_descriptor_s mdp_disk_t;
|
|
|
|
struct mdp_superblock_s {
|
|
__u32 md_magic;
|
|
__u32 major_version;
|
|
__u32 minor_version;
|
|
__u32 patch_version;
|
|
__u32 gvalid_words;
|
|
__u32 set_uuid0;
|
|
__u32 ctime;
|
|
__u32 level;
|
|
__u32 size;
|
|
__u32 nr_disks;
|
|
__u32 raid_disks;
|
|
__u32 md_minor;
|
|
__u32 not_persistent;
|
|
__u32 set_uuid1;
|
|
__u32 set_uuid2;
|
|
__u32 set_uuid3;
|
|
__u32 gstate_creserved[16];
|
|
__u32 utime;
|
|
__u32 state;
|
|
__u32 active_disks;
|
|
__u32 working_disks;
|
|
__u32 failed_disks;
|
|
__u32 spare_disks;
|
|
__u32 sb_csum;
|
|
__u32 events_lo;
|
|
__u32 events_hi;
|
|
__u32 cp_events_lo;
|
|
__u32 cp_events_hi;
|
|
__u32 recovery_cp;
|
|
__u64 reshape_position;
|
|
__u32 new_level;
|
|
__u32 delta_disks;
|
|
__u32 new_layout;
|
|
__u32 new_chunk;
|
|
__u32 gstate_sreserved[14];
|
|
__u32 layout;
|
|
__u32 chunk_size;
|
|
__u32 root_pv;
|
|
__u32 root_block;
|
|
__u32 pstate_reserved[60];
|
|
mdp_disk_t disks[27];
|
|
__u32 reserved[0];
|
|
mdp_disk_t this_disk;
|
|
};
|
|
|
|
typedef struct mdp_superblock_s mdp_super_t;
|
|
|
|
struct blk_integrity_profile;
|
|
|
|
struct blk_integrity {
|
|
const struct blk_integrity_profile *profile;
|
|
unsigned char flags;
|
|
unsigned char tuple_size;
|
|
unsigned char interval_exp;
|
|
unsigned char tag_size;
|
|
};
|
|
|
|
struct blk_integrity_iter;
|
|
|
|
typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *);
|
|
|
|
typedef void integrity_prepare_fn(struct request *);
|
|
|
|
typedef void integrity_complete_fn(struct request *, unsigned int);
|
|
|
|
struct blk_integrity_profile {
|
|
integrity_processing_fn *generate_fn;
|
|
integrity_processing_fn *verify_fn;
|
|
integrity_prepare_fn *prepare_fn;
|
|
integrity_complete_fn *complete_fn;
|
|
const char *name;
|
|
};
|
|
|
|
struct blk_integrity_iter {
|
|
void *prot_buf;
|
|
void *data_buf;
|
|
sector_t seed;
|
|
unsigned int data_size;
|
|
unsigned short interval;
|
|
unsigned char tuple_size;
|
|
const char *disk_name;
|
|
};
|
|
|
|
struct hid_class_descriptor {
|
|
__u8 bDescriptorType;
|
|
__le16 wDescriptorLength;
|
|
} __attribute__((packed));
|
|
|
|
struct hid_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__le16 bcdHID;
|
|
__u8 bCountryCode;
|
|
__u8 bNumDescriptors;
|
|
struct hid_class_descriptor desc[1];
|
|
} __attribute__((packed));
|
|
|
|
struct widget_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct hdac_device *, hda_nid_t, struct widget_attribute *, char *);
|
|
ssize_t (*store)(struct hdac_device *, hda_nid_t, struct widget_attribute *, const char *, size_t);
|
|
};
|
|
|
|
struct hdac_widget_tree {
|
|
struct kobject *root;
|
|
struct kobject *afg;
|
|
struct kobject **nodes;
|
|
};
|
|
|
|
struct bpf_scratchpad {
|
|
union {
|
|
__be32 diff[128];
|
|
u8 buff[512];
|
|
};
|
|
};
|
|
|
|
enum {
|
|
BPF_F_NEIGH = 2,
|
|
BPF_F_PEER = 4,
|
|
BPF_F_NEXTHOP = 8,
|
|
};
|
|
|
|
enum xdp_action {
|
|
XDP_ABORTED = 0,
|
|
XDP_DROP = 1,
|
|
XDP_PASS = 2,
|
|
XDP_TX = 3,
|
|
XDP_REDIRECT = 4,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_RECOMPUTE_CSUM = 1,
|
|
BPF_F_INVALIDATE_HASH = 2,
|
|
};
|
|
|
|
enum bpf_hdr_start_off {
|
|
BPF_HDR_START_MAC = 0,
|
|
BPF_HDR_START_NET = 1,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_HDR_FIELD_MASK = 15,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_PSEUDO_HDR = 16,
|
|
BPF_F_MARK_MANGLED_0 = 32,
|
|
BPF_F_MARK_ENFORCE = 64,
|
|
};
|
|
|
|
enum {
|
|
BPF_CSUM_LEVEL_QUERY = 0,
|
|
BPF_CSUM_LEVEL_INC = 1,
|
|
BPF_CSUM_LEVEL_DEC = 2,
|
|
BPF_CSUM_LEVEL_RESET = 3,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_INGRESS = 1,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_ADJ_ROOM_FIXED_GSO = 1,
|
|
BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 2,
|
|
BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 4,
|
|
BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8,
|
|
BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16,
|
|
BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32,
|
|
BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64,
|
|
BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 128,
|
|
BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 256,
|
|
};
|
|
|
|
enum {
|
|
BPF_ADJ_ROOM_ENCAP_L2_MASK = 255,
|
|
BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56,
|
|
};
|
|
|
|
enum bpf_adj_room_mode {
|
|
BPF_ADJ_ROOM_NET = 0,
|
|
BPF_ADJ_ROOM_MAC = 1,
|
|
};
|
|
|
|
struct xdp_sock {
|
|
struct sock sk;
|
|
struct xsk_queue *rx;
|
|
struct net_device *dev;
|
|
struct xdp_umem *umem;
|
|
struct list_head flush_node;
|
|
struct xsk_buff_pool *pool;
|
|
u16 queue_id;
|
|
bool zc;
|
|
enum {
|
|
XSK_READY = 0,
|
|
XSK_BOUND = 1,
|
|
XSK_UNBOUND = 2,
|
|
} state;
|
|
long: 64;
|
|
struct xsk_queue *tx;
|
|
struct list_head tx_list;
|
|
spinlock_t rx_lock;
|
|
u64 rx_dropped;
|
|
u64 rx_queue_full;
|
|
struct list_head map_list;
|
|
spinlock_t map_list_lock;
|
|
struct mutex mutex;
|
|
struct xsk_queue *fq_tmp;
|
|
struct xsk_queue *cq_tmp;
|
|
long: 64;
|
|
};
|
|
|
|
enum {
|
|
BPF_F_BROADCAST = 8,
|
|
BPF_F_EXCLUDE_INGRESS = 16,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_INDEX_MASK = 4294967295ULL,
|
|
BPF_F_CURRENT_CPU = 4294967295ULL,
|
|
BPF_F_CTXLEN_MASK = 4503595332403200ULL,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_TUNINFO_IPV6 = 1,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_TUNINFO_FLAGS = 16,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_ZERO_CSUM_TX = 2,
|
|
BPF_F_DONT_FRAGMENT = 4,
|
|
BPF_F_SEQ_NUMBER = 8,
|
|
BPF_F_NO_TUNNEL_KEY = 16,
|
|
};
|
|
|
|
enum {
|
|
TCP_BPF_IW = 1001,
|
|
TCP_BPF_SNDCWND_CLAMP = 1002,
|
|
TCP_BPF_DELACK_MAX = 1003,
|
|
TCP_BPF_RTO_MIN = 1004,
|
|
TCP_BPF_SYN = 1005,
|
|
TCP_BPF_SYN_IP = 1006,
|
|
TCP_BPF_SYN_MAC = 1007,
|
|
};
|
|
|
|
enum {
|
|
BPF_FIB_LOOKUP_DIRECT = 1,
|
|
BPF_FIB_LOOKUP_OUTPUT = 2,
|
|
BPF_FIB_LOOKUP_SKIP_NEIGH = 4,
|
|
};
|
|
|
|
enum {
|
|
BPF_FIB_LKUP_RET_SUCCESS = 0,
|
|
BPF_FIB_LKUP_RET_BLACKHOLE = 1,
|
|
BPF_FIB_LKUP_RET_UNREACHABLE = 2,
|
|
BPF_FIB_LKUP_RET_PROHIBIT = 3,
|
|
BPF_FIB_LKUP_RET_NOT_FWDED = 4,
|
|
BPF_FIB_LKUP_RET_FWD_DISABLED = 5,
|
|
BPF_FIB_LKUP_RET_UNSUPP_LWT = 6,
|
|
BPF_FIB_LKUP_RET_NO_NEIGH = 7,
|
|
BPF_FIB_LKUP_RET_FRAG_NEEDED = 8,
|
|
};
|
|
|
|
enum bpf_check_mtu_ret {
|
|
BPF_MTU_CHK_RET_SUCCESS = 0,
|
|
BPF_MTU_CHK_RET_FRAG_NEEDED = 1,
|
|
BPF_MTU_CHK_RET_SEGS_TOOBIG = 2,
|
|
};
|
|
|
|
enum bpf_check_mtu_flags {
|
|
BPF_MTU_CHK_SEGS = 1,
|
|
};
|
|
|
|
enum bpf_lwt_encap_mode {
|
|
BPF_LWT_ENCAP_SEG6 = 0,
|
|
BPF_LWT_ENCAP_SEG6_INLINE = 1,
|
|
BPF_LWT_ENCAP_IP = 2,
|
|
};
|
|
|
|
enum {
|
|
BPF_LOAD_HDR_OPT_TCP_SYN = 1,
|
|
};
|
|
|
|
enum {
|
|
BPF_SKB_TSTAMP_UNSPEC = 0,
|
|
BPF_SKB_TSTAMP_DELIVERY_MONO = 1,
|
|
};
|
|
|
|
enum {
|
|
BPF_SK_LOOKUP_F_REPLACE = 1,
|
|
BPF_SK_LOOKUP_F_NO_REUSEPORT = 2,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32);
|
|
|
|
struct bpf_flow_dissector;
|
|
|
|
typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32);
|
|
|
|
struct bpf_flow_dissector {
|
|
struct bpf_flow_keys *flow_keys;
|
|
const struct sk_buff *skb;
|
|
const void *data;
|
|
const void *data_end;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32);
|
|
|
|
typedef u64 (*btf_bpf_sk_fullsock)(struct sock *);
|
|
|
|
typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32);
|
|
|
|
typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum);
|
|
|
|
typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum);
|
|
|
|
typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64);
|
|
|
|
typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_redirect)(u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_redirect_peer)(u32, u64);
|
|
|
|
struct bpf_redir_neigh;
|
|
|
|
typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64);
|
|
|
|
struct bpf_redir_neigh {
|
|
__u32 nh_family;
|
|
union {
|
|
__be32 ipv4_nh;
|
|
__u32 ipv6_nh[4];
|
|
};
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32);
|
|
|
|
typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32);
|
|
|
|
typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_cgroup_classid_curr)();
|
|
|
|
typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16);
|
|
|
|
typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32);
|
|
|
|
typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64);
|
|
|
|
typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64);
|
|
|
|
typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *);
|
|
|
|
typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_xdp_redirect)(u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64);
|
|
|
|
struct bpf_tunnel_key;
|
|
|
|
typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64);
|
|
|
|
struct bpf_tunnel_key {
|
|
__u32 tunnel_id;
|
|
union {
|
|
__u32 remote_ipv4;
|
|
__u32 remote_ipv6[4];
|
|
};
|
|
__u8 tunnel_tos;
|
|
__u8 tunnel_ttl;
|
|
union {
|
|
__u16 tunnel_ext;
|
|
__be16 tunnel_flags;
|
|
};
|
|
__u32 tunnel_label;
|
|
union {
|
|
__u32 local_ipv4;
|
|
__u32 local_ipv6[4];
|
|
};
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int);
|
|
|
|
typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int);
|
|
|
|
typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *);
|
|
|
|
struct bpf_sock_addr_kern;
|
|
|
|
typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *);
|
|
|
|
struct bpf_sock_addr_kern {
|
|
struct sock *sk;
|
|
struct sockaddr *uaddr;
|
|
u64 tmp_reg;
|
|
void *t_ctx;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *);
|
|
|
|
typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *);
|
|
|
|
typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *);
|
|
|
|
typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *);
|
|
|
|
typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
|
|
|
|
typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int);
|
|
|
|
typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int);
|
|
|
|
struct bpf_xfrm_state;
|
|
|
|
typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64);
|
|
|
|
struct bpf_xfrm_state {
|
|
__u32 reqid;
|
|
__u32 spi;
|
|
__u16 family;
|
|
__u16 ext;
|
|
union {
|
|
__u32 remote_ipv4;
|
|
__u32 remote_ipv6[4];
|
|
};
|
|
};
|
|
|
|
struct bpf_fib_lookup;
|
|
|
|
typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32);
|
|
|
|
struct bpf_fib_lookup {
|
|
__u8 family;
|
|
__u8 l4_protocol;
|
|
__be16 sport;
|
|
__be16 dport;
|
|
union {
|
|
__u16 tot_len;
|
|
__u16 mtu_result;
|
|
};
|
|
__u32 ifindex;
|
|
union {
|
|
__u8 tos;
|
|
__be32 flowinfo;
|
|
__u32 rt_metric;
|
|
};
|
|
union {
|
|
__be32 ipv4_src;
|
|
__u32 ipv6_src[4];
|
|
};
|
|
union {
|
|
__be32 ipv4_dst;
|
|
__u32 ipv6_dst[4];
|
|
};
|
|
__be16 h_vlan_proto;
|
|
__be16 h_vlan_TCI;
|
|
__u8 smac[6];
|
|
__u8 dmac[6];
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32);
|
|
|
|
typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64);
|
|
|
|
typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64);
|
|
|
|
typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_sk_release)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_tcp_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_get_listener_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *);
|
|
|
|
typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
|
|
|
|
typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
|
|
|
|
typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32);
|
|
|
|
typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32);
|
|
|
|
typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32);
|
|
|
|
typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *);
|
|
|
|
typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *);
|
|
|
|
struct sk_reuseport_kern;
|
|
|
|
typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32);
|
|
|
|
struct sk_reuseport_kern {
|
|
struct sk_buff *skb;
|
|
struct sock *sk;
|
|
struct sock *selected_sk;
|
|
struct sock *migrating_sk;
|
|
void *data_end;
|
|
u32 hash;
|
|
u32 reuseport_id;
|
|
bool bind_inany;
|
|
};
|
|
|
|
typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32);
|
|
|
|
typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32);
|
|
|
|
typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *);
|
|
|
|
typedef u64 (*btf_bpf_sock_from_file)(struct file *);
|
|
|
|
struct tls_strparser {
|
|
struct sock *sk;
|
|
u32 mark: 8;
|
|
u32 stopped: 1;
|
|
u32 copy_mode: 1;
|
|
u32 msg_ready: 1;
|
|
struct strp_msg stm;
|
|
struct sk_buff *anchor;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct tls_sw_context_rx {
|
|
struct crypto_aead *aead_recv;
|
|
struct crypto_wait async_wait;
|
|
struct sk_buff_head rx_list;
|
|
void (*saved_data_ready)(struct sock *);
|
|
u8 reader_present;
|
|
u8 async_capable: 1;
|
|
u8 zc_capable: 1;
|
|
u8 reader_contended: 1;
|
|
struct tls_strparser strp;
|
|
atomic_t decrypt_pending;
|
|
spinlock_t decrypt_compl_lock;
|
|
struct sk_buff_head async_hold;
|
|
struct wait_queue_head wq;
|
|
};
|
|
|
|
struct tcp6_sock {
|
|
struct tcp_sock tcp;
|
|
struct ipv6_pinfo inet6;
|
|
};
|
|
|
|
struct udp6_sock {
|
|
struct udp_sock udp;
|
|
struct ipv6_pinfo inet6;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct unix_sock;
|
|
|
|
struct mptcp_sock;
|
|
|
|
struct tls_prot_info {
|
|
u16 version;
|
|
u16 cipher_type;
|
|
u16 prepend_size;
|
|
u16 tag_size;
|
|
u16 overhead_size;
|
|
u16 iv_size;
|
|
u16 salt_size;
|
|
u16 rec_seq_size;
|
|
u16 aad_size;
|
|
u16 tail_size;
|
|
};
|
|
|
|
struct cipher_context {
|
|
char *iv;
|
|
char *rec_seq;
|
|
};
|
|
|
|
struct tls_crypto_info {
|
|
__u16 version;
|
|
__u16 cipher_type;
|
|
};
|
|
|
|
struct tls12_crypto_info_aes_gcm_128 {
|
|
struct tls_crypto_info info;
|
|
unsigned char iv[8];
|
|
unsigned char key[16];
|
|
unsigned char salt[4];
|
|
unsigned char rec_seq[8];
|
|
};
|
|
|
|
struct tls12_crypto_info_aes_gcm_256 {
|
|
struct tls_crypto_info info;
|
|
unsigned char iv[8];
|
|
unsigned char key[32];
|
|
unsigned char salt[4];
|
|
unsigned char rec_seq[8];
|
|
};
|
|
|
|
struct tls12_crypto_info_chacha20_poly1305 {
|
|
struct tls_crypto_info info;
|
|
unsigned char iv[12];
|
|
unsigned char key[32];
|
|
unsigned char salt[0];
|
|
unsigned char rec_seq[8];
|
|
};
|
|
|
|
struct tls12_crypto_info_sm4_gcm {
|
|
struct tls_crypto_info info;
|
|
unsigned char iv[8];
|
|
unsigned char key[16];
|
|
unsigned char salt[4];
|
|
unsigned char rec_seq[8];
|
|
};
|
|
|
|
struct tls12_crypto_info_sm4_ccm {
|
|
struct tls_crypto_info info;
|
|
unsigned char iv[8];
|
|
unsigned char key[16];
|
|
unsigned char salt[4];
|
|
unsigned char rec_seq[8];
|
|
};
|
|
|
|
union tls_crypto_context {
|
|
struct tls_crypto_info info;
|
|
union {
|
|
struct tls12_crypto_info_aes_gcm_128 aes_gcm_128;
|
|
struct tls12_crypto_info_aes_gcm_256 aes_gcm_256;
|
|
struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305;
|
|
struct tls12_crypto_info_sm4_gcm sm4_gcm;
|
|
struct tls12_crypto_info_sm4_ccm sm4_ccm;
|
|
};
|
|
};
|
|
|
|
struct tls_context {
|
|
struct tls_prot_info prot_info;
|
|
u8 tx_conf: 3;
|
|
u8 rx_conf: 3;
|
|
u8 zerocopy_sendfile: 1;
|
|
u8 rx_no_pad: 1;
|
|
int (*push_pending_record)(struct sock *, int);
|
|
void (*sk_write_space)(struct sock *);
|
|
void *priv_ctx_tx;
|
|
void *priv_ctx_rx;
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *netdev;
|
|
struct cipher_context tx;
|
|
struct cipher_context rx;
|
|
struct scatterlist *partially_sent_record;
|
|
u16 partially_sent_offset;
|
|
bool in_tcp_sendpages;
|
|
bool pending_open_record_frags;
|
|
struct mutex tx_lock;
|
|
unsigned long flags;
|
|
struct proto *sk_proto;
|
|
struct sock *sk;
|
|
void (*sk_destruct)(struct sock *);
|
|
union tls_crypto_context crypto_send;
|
|
union tls_crypto_context crypto_recv;
|
|
struct list_head list;
|
|
refcount_t refcount;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct bpf_dtab_netdev;
|
|
|
|
struct bpf_cpu_map_entry;
|
|
|
|
typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long);
|
|
|
|
struct compat_sock_fprog {
|
|
u16 len;
|
|
compat_uptr_t filter;
|
|
};
|
|
|
|
struct nf_ct_timeout_hooks {
|
|
struct nf_ct_timeout * (*timeout_find_get)(struct net *, const char *);
|
|
void (*timeout_put)(struct nf_ct_timeout *);
|
|
};
|
|
|
|
struct nf_ct_iter_data {
|
|
struct net *net;
|
|
void *data;
|
|
u32 portid;
|
|
int report;
|
|
};
|
|
|
|
enum {
|
|
XT_CONNTRACK_STATE = 1,
|
|
XT_CONNTRACK_PROTO = 2,
|
|
XT_CONNTRACK_ORIGSRC = 4,
|
|
XT_CONNTRACK_ORIGDST = 8,
|
|
XT_CONNTRACK_REPLSRC = 16,
|
|
XT_CONNTRACK_REPLDST = 32,
|
|
XT_CONNTRACK_STATUS = 64,
|
|
XT_CONNTRACK_EXPIRES = 128,
|
|
XT_CONNTRACK_ORIGSRC_PORT = 256,
|
|
XT_CONNTRACK_ORIGDST_PORT = 512,
|
|
XT_CONNTRACK_REPLSRC_PORT = 1024,
|
|
XT_CONNTRACK_REPLDST_PORT = 2048,
|
|
XT_CONNTRACK_DIRECTION = 4096,
|
|
XT_CONNTRACK_STATE_ALIAS = 8192,
|
|
};
|
|
|
|
struct xt_conntrack_mtinfo2 {
|
|
union nf_inet_addr origsrc_addr;
|
|
union nf_inet_addr origsrc_mask;
|
|
union nf_inet_addr origdst_addr;
|
|
union nf_inet_addr origdst_mask;
|
|
union nf_inet_addr replsrc_addr;
|
|
union nf_inet_addr replsrc_mask;
|
|
union nf_inet_addr repldst_addr;
|
|
union nf_inet_addr repldst_mask;
|
|
__u32 expires_min;
|
|
__u32 expires_max;
|
|
__u16 l4proto;
|
|
__be16 origsrc_port;
|
|
__be16 origdst_port;
|
|
__be16 replsrc_port;
|
|
__be16 repldst_port;
|
|
__u16 match_flags;
|
|
__u16 invert_flags;
|
|
__u16 state_mask;
|
|
__u16 status_mask;
|
|
};
|
|
|
|
struct xt_conntrack_mtinfo3 {
|
|
union nf_inet_addr origsrc_addr;
|
|
union nf_inet_addr origsrc_mask;
|
|
union nf_inet_addr origdst_addr;
|
|
union nf_inet_addr origdst_mask;
|
|
union nf_inet_addr replsrc_addr;
|
|
union nf_inet_addr replsrc_mask;
|
|
union nf_inet_addr repldst_addr;
|
|
union nf_inet_addr repldst_mask;
|
|
__u32 expires_min;
|
|
__u32 expires_max;
|
|
__u16 l4proto;
|
|
__u16 origsrc_port;
|
|
__u16 origdst_port;
|
|
__u16 replsrc_port;
|
|
__u16 repldst_port;
|
|
__u16 match_flags;
|
|
__u16 invert_flags;
|
|
__u16 state_mask;
|
|
__u16 status_mask;
|
|
__u16 origsrc_port_high;
|
|
__u16 origdst_port_high;
|
|
__u16 replsrc_port_high;
|
|
__u16 repldst_port_high;
|
|
};
|
|
|
|
struct xt_conntrack_mtinfo1 {
|
|
union nf_inet_addr origsrc_addr;
|
|
union nf_inet_addr origsrc_mask;
|
|
union nf_inet_addr origdst_addr;
|
|
union nf_inet_addr origdst_mask;
|
|
union nf_inet_addr replsrc_addr;
|
|
union nf_inet_addr replsrc_mask;
|
|
union nf_inet_addr repldst_addr;
|
|
union nf_inet_addr repldst_mask;
|
|
__u32 expires_min;
|
|
__u32 expires_max;
|
|
__u16 l4proto;
|
|
__be16 origsrc_port;
|
|
__be16 origdst_port;
|
|
__be16 replsrc_port;
|
|
__be16 repldst_port;
|
|
__u16 match_flags;
|
|
__u16 invert_flags;
|
|
__u8 state_mask;
|
|
__u8 status_mask;
|
|
};
|
|
|
|
struct neighbour_cb {
|
|
unsigned long sched_next;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct arpreq {
|
|
struct sockaddr arp_pa;
|
|
struct sockaddr arp_ha;
|
|
int arp_flags;
|
|
struct sockaddr arp_netmask;
|
|
char arp_dev[16];
|
|
};
|
|
|
|
struct neigh_seq_state {
|
|
struct seq_net_private p;
|
|
struct neigh_table *tbl;
|
|
struct neigh_hash_table *nht;
|
|
void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *);
|
|
unsigned int bucket;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct xfrm6_protocol {
|
|
int (*handler)(struct sk_buff *);
|
|
int (*input_handler)(struct sk_buff *, int, __be32, int);
|
|
int (*cb_handler)(struct sk_buff *, int);
|
|
int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
|
|
struct xfrm6_protocol __attribute__((btf_type_tag("rcu"))) *next;
|
|
int priority;
|
|
};
|
|
|
|
struct offload_callbacks {
|
|
struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t);
|
|
struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *);
|
|
int (*gro_complete)(struct sk_buff *, int);
|
|
};
|
|
|
|
struct net_offload {
|
|
struct offload_callbacks callbacks;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct svc_xpt_user {
|
|
struct list_head list;
|
|
void (*callback)(struct svc_xpt_user *);
|
|
};
|
|
|
|
enum {
|
|
TKIP_DECRYPT_OK = 0,
|
|
TKIP_DECRYPT_NO_EXT_IV = -1,
|
|
TKIP_DECRYPT_INVALID_KEYIDX = -2,
|
|
TKIP_DECRYPT_REPLAY = -3,
|
|
};
|
|
|
|
typedef unsigned int ieee80211_rx_result;
|
|
|
|
struct ieee80211_mmie {
|
|
u8 element_id;
|
|
u8 length;
|
|
__le16 key_id;
|
|
u8 sequence_number[6];
|
|
u8 mic[8];
|
|
};
|
|
|
|
struct ieee80211_mmie_16 {
|
|
u8 element_id;
|
|
u8 length;
|
|
__le16 key_id;
|
|
u8 sequence_number[6];
|
|
u8 mic[16];
|
|
};
|
|
|
|
struct ieee80211_rx_data {
|
|
struct list_head *list;
|
|
struct sk_buff *skb;
|
|
struct ieee80211_local *local;
|
|
struct ieee80211_sub_if_data *sdata;
|
|
struct ieee80211_link_data *link;
|
|
struct sta_info *sta;
|
|
struct link_sta_info *link_sta;
|
|
struct ieee80211_key *key;
|
|
unsigned int flags;
|
|
int seqno_idx;
|
|
int security_idx;
|
|
int link_id;
|
|
union {
|
|
struct {
|
|
u32 iv32;
|
|
u16 iv16;
|
|
} tkip;
|
|
struct {
|
|
u8 pn[6];
|
|
} ccm_gcm;
|
|
};
|
|
};
|
|
|
|
struct vm_special_mapping {
|
|
const char *name;
|
|
struct page **pages;
|
|
vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *);
|
|
int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *);
|
|
};
|
|
|
|
struct alt_instr {
|
|
s32 instr_offset;
|
|
s32 repl_offset;
|
|
union {
|
|
struct {
|
|
u32 cpuid: 16;
|
|
u32 flags: 16;
|
|
};
|
|
u32 ft_flags;
|
|
};
|
|
u8 instrlen;
|
|
u8 replacementlen;
|
|
} __attribute__((packed));
|
|
|
|
struct zap_details {
|
|
struct folio *single_folio;
|
|
bool even_cows;
|
|
zap_flags_t zap_flags;
|
|
};
|
|
|
|
struct pvclock_vcpu_time_info {
|
|
u32 version;
|
|
u32 pad0;
|
|
u64 tsc_timestamp;
|
|
u64 system_time;
|
|
u32 tsc_to_system_mul;
|
|
s8 tsc_shift;
|
|
u8 flags;
|
|
u8 pad[2];
|
|
};
|
|
|
|
struct pvclock_vsyscall_time_info {
|
|
struct pvclock_vcpu_time_info pvti;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct tp_transition_snapshot {
|
|
unsigned long rcu;
|
|
unsigned long srcu;
|
|
bool ongoing;
|
|
};
|
|
|
|
enum tp_func_state {
|
|
TP_FUNC_0 = 0,
|
|
TP_FUNC_1 = 1,
|
|
TP_FUNC_2 = 2,
|
|
TP_FUNC_N = 3,
|
|
};
|
|
|
|
enum tp_transition_sync {
|
|
TP_TRANSITION_SYNC_1_0_1 = 0,
|
|
TP_TRANSITION_SYNC_N_2_1 = 1,
|
|
_NR_TP_TRANSITION_SYNC = 2,
|
|
};
|
|
|
|
struct tp_module {
|
|
struct list_head list;
|
|
struct module *mod;
|
|
};
|
|
|
|
struct tp_probes {
|
|
struct callback_head rcu;
|
|
struct tracepoint_func probes[0];
|
|
};
|
|
|
|
struct event_trigger_data;
|
|
|
|
struct event_trigger_ops;
|
|
|
|
struct event_command {
|
|
struct list_head list;
|
|
char *name;
|
|
enum event_trigger_type trigger_type;
|
|
int flags;
|
|
int (*parse)(struct event_command *, struct trace_event_file *, char *, char *, char *);
|
|
int (*reg)(char *, struct event_trigger_data *, struct trace_event_file *);
|
|
void (*unreg)(char *, struct event_trigger_data *, struct trace_event_file *);
|
|
void (*unreg_all)(struct trace_event_file *);
|
|
int (*set_filter)(char *, struct event_trigger_data *, struct trace_event_file *);
|
|
struct event_trigger_ops * (*get_trigger_ops)(char *, char *);
|
|
};
|
|
|
|
struct event_trigger_data {
|
|
unsigned long count;
|
|
int ref;
|
|
int flags;
|
|
struct event_trigger_ops *ops;
|
|
struct event_command *cmd_ops;
|
|
struct event_filter __attribute__((btf_type_tag("rcu"))) *filter;
|
|
char *filter_str;
|
|
void *private_data;
|
|
bool paused;
|
|
bool paused_tmp;
|
|
struct list_head list;
|
|
char *name;
|
|
struct list_head named_list;
|
|
struct event_trigger_data *named_data;
|
|
};
|
|
|
|
struct event_trigger_ops {
|
|
void (*trigger)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *);
|
|
int (*init)(struct event_trigger_data *);
|
|
void (*free)(struct event_trigger_data *);
|
|
int (*print)(struct seq_file *, struct event_trigger_data *);
|
|
};
|
|
|
|
enum event_command_flags {
|
|
EVENT_CMD_FL_POST_TRIGGER = 1,
|
|
EVENT_CMD_FL_NEEDS_REC = 2,
|
|
};
|
|
|
|
enum {
|
|
EVENT_TRIGGER_FL_PROBE = 1,
|
|
};
|
|
|
|
struct enable_trigger_data {
|
|
struct trace_event_file *file;
|
|
bool enable;
|
|
bool hist;
|
|
};
|
|
|
|
struct bpf_iter__bpf_prog {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct bpf_prog *prog;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_prog_info {
|
|
u32 prog_id;
|
|
};
|
|
|
|
struct obj_cgroup;
|
|
|
|
struct bpf_mem_cache {
|
|
struct llist_head free_llist;
|
|
local_t active;
|
|
struct llist_head free_llist_extra;
|
|
struct irq_work refill_work;
|
|
struct obj_cgroup *objcg;
|
|
int unit_size;
|
|
int free_cnt;
|
|
int low_watermark;
|
|
int high_watermark;
|
|
int batch;
|
|
int percpu_size;
|
|
struct callback_head rcu;
|
|
struct llist_head free_by_rcu;
|
|
struct llist_head waiting_for_gp;
|
|
atomic_t call_rcu_in_progress;
|
|
};
|
|
|
|
struct bpf_mem_caches {
|
|
struct bpf_mem_cache cache[11];
|
|
};
|
|
|
|
struct bpf_mem_alloc {
|
|
struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches;
|
|
struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache;
|
|
struct work_struct work;
|
|
};
|
|
|
|
enum kernel_load_data_id {
|
|
LOADING_UNKNOWN = 0,
|
|
LOADING_FIRMWARE = 1,
|
|
LOADING_MODULE = 2,
|
|
LOADING_KEXEC_IMAGE = 3,
|
|
LOADING_KEXEC_INITRAMFS = 4,
|
|
LOADING_POLICY = 5,
|
|
LOADING_X509_CERTIFICATE = 6,
|
|
LOADING_MAX_ID = 7,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_BPRM_SECUREEXEC = 1,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64);
|
|
|
|
typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_ima_file_hash)(struct file *, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_get_attach_cookie)(void *);
|
|
|
|
struct bpf_trace_run_ctx {
|
|
struct bpf_run_ctx run_ctx;
|
|
u64 bpf_cookie;
|
|
};
|
|
|
|
struct anon_vma_name {
|
|
struct kref kref;
|
|
char name[0];
|
|
};
|
|
|
|
struct madvise_walk_private {
|
|
struct mmu_gather *tlb;
|
|
bool pageout;
|
|
};
|
|
|
|
struct qt_disk_dqdbheader {
|
|
__le32 dqdh_next_free;
|
|
__le32 dqdh_prev_free;
|
|
__le16 dqdh_entries;
|
|
__le16 dqdh_pad1;
|
|
__le32 dqdh_pad2;
|
|
};
|
|
|
|
struct qtree_fmt_operations;
|
|
|
|
struct qtree_mem_dqinfo {
|
|
struct super_block *dqi_sb;
|
|
int dqi_type;
|
|
unsigned int dqi_blocks;
|
|
unsigned int dqi_free_blk;
|
|
unsigned int dqi_free_entry;
|
|
unsigned int dqi_blocksize_bits;
|
|
unsigned int dqi_entry_size;
|
|
unsigned int dqi_usable_bs;
|
|
unsigned int dqi_qtree_depth;
|
|
const struct qtree_fmt_operations *dqi_ops;
|
|
};
|
|
|
|
struct qtree_fmt_operations {
|
|
void (*mem2disk_dqblk)(void *, struct dquot *);
|
|
void (*disk2mem_dqblk)(struct dquot *, void *);
|
|
int (*is_id)(void *, struct dquot *);
|
|
};
|
|
|
|
struct kernel_stat {
|
|
unsigned long irqs_sum;
|
|
unsigned int softirqs[10];
|
|
};
|
|
|
|
struct ext4_io_submit {
|
|
struct writeback_control *io_wbc;
|
|
struct bio *io_bio;
|
|
ext4_io_end_t *io_end;
|
|
sector_t io_next_block;
|
|
};
|
|
|
|
enum {
|
|
PARSE_INVALID = 1,
|
|
PARSE_NOT_LONGNAME = 2,
|
|
PARSE_EOF = 3,
|
|
};
|
|
|
|
struct msdos_dir_slot {
|
|
__u8 id;
|
|
__u8 name0_4[10];
|
|
__u8 attr;
|
|
__u8 reserved;
|
|
__u8 alias_checksum;
|
|
__u8 name5_10[12];
|
|
__le16 start;
|
|
__u8 name11_12[4];
|
|
};
|
|
|
|
struct __fat_dirent {
|
|
long d_ino;
|
|
__kernel_off_t d_off;
|
|
unsigned short d_reclen;
|
|
char d_name[256];
|
|
};
|
|
|
|
struct fat_ioctl_filldir_callback {
|
|
struct dir_context ctx;
|
|
void __attribute__((btf_type_tag("user"))) *dirent;
|
|
int result;
|
|
const char *longname;
|
|
int long_len;
|
|
const char *shortname;
|
|
int short_len;
|
|
};
|
|
|
|
typedef s32 compat_off_t;
|
|
|
|
struct compat_dirent {
|
|
u32 d_ino;
|
|
compat_off_t d_off;
|
|
u16 d_reclen;
|
|
char d_name[256];
|
|
};
|
|
|
|
enum {
|
|
FILEID_HIGH_OFF = 0,
|
|
FILEID_LOW_OFF = 1,
|
|
FILE_I_TYPE_OFF = 2,
|
|
EMBED_FH_OFF = 3,
|
|
};
|
|
|
|
enum {
|
|
NLM_LCK_GRANTED = 0,
|
|
NLM_LCK_DENIED = 1,
|
|
NLM_LCK_DENIED_NOLOCKS = 2,
|
|
NLM_LCK_BLOCKED = 3,
|
|
NLM_LCK_DENIED_GRACE_PERIOD = 4,
|
|
NLM_DEADLCK = 5,
|
|
NLM_ROFS = 6,
|
|
NLM_STALE_FH = 7,
|
|
NLM_FBIG = 8,
|
|
NLM_FAILED = 9,
|
|
};
|
|
|
|
struct nlm_wait;
|
|
|
|
enum autofs_notify {
|
|
NFY_NONE = 0,
|
|
NFY_MOUNT = 1,
|
|
NFY_EXPIRE = 2,
|
|
};
|
|
|
|
enum {
|
|
AUTOFS_IOC_READY_CMD = 96,
|
|
AUTOFS_IOC_FAIL_CMD = 97,
|
|
AUTOFS_IOC_CATATONIC_CMD = 98,
|
|
AUTOFS_IOC_PROTOVER_CMD = 99,
|
|
AUTOFS_IOC_SETTIMEOUT_CMD = 100,
|
|
AUTOFS_IOC_EXPIRE_CMD = 101,
|
|
};
|
|
|
|
struct autofs_wait_queue;
|
|
|
|
struct autofs_sb_info {
|
|
u32 magic;
|
|
int pipefd;
|
|
struct file *pipe;
|
|
struct pid *oz_pgrp;
|
|
int version;
|
|
int sub_version;
|
|
int min_proto;
|
|
int max_proto;
|
|
unsigned int flags;
|
|
unsigned long exp_timeout;
|
|
unsigned int type;
|
|
struct super_block *sb;
|
|
struct mutex wq_mutex;
|
|
struct mutex pipe_mutex;
|
|
spinlock_t fs_lock;
|
|
struct autofs_wait_queue *queues;
|
|
spinlock_t lookup_lock;
|
|
struct list_head active_list;
|
|
struct list_head expiring_list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef unsigned int autofs_wqt_t;
|
|
|
|
struct autofs_wait_queue {
|
|
wait_queue_head_t queue;
|
|
struct autofs_wait_queue *next;
|
|
autofs_wqt_t wait_queue_token;
|
|
struct qstr name;
|
|
u32 offset;
|
|
u32 dev;
|
|
u64 ino;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
pid_t pid;
|
|
pid_t tgid;
|
|
int status;
|
|
unsigned int wait_ctr;
|
|
};
|
|
|
|
struct autofs_info {
|
|
struct dentry *dentry;
|
|
int flags;
|
|
struct completion expire_complete;
|
|
struct list_head active;
|
|
struct list_head expiring;
|
|
struct autofs_sb_info *sbi;
|
|
unsigned long last_used;
|
|
int count;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct autofs_packet_hdr {
|
|
int proto_version;
|
|
int type;
|
|
};
|
|
|
|
struct autofs_packet_expire {
|
|
struct autofs_packet_hdr hdr;
|
|
int len;
|
|
char name[256];
|
|
};
|
|
|
|
struct tracefs_dir_ops {
|
|
int (*mkdir)(const char *);
|
|
int (*rmdir)(const char *);
|
|
};
|
|
|
|
enum {
|
|
Opt_uid___3 = 0,
|
|
Opt_gid___3 = 1,
|
|
Opt_mode___3 = 2,
|
|
Opt_err___3 = 3,
|
|
};
|
|
|
|
struct tracefs_mount_opts {
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
unsigned int opts;
|
|
};
|
|
|
|
struct tracefs_fs_info {
|
|
struct tracefs_mount_opts mount_opts;
|
|
};
|
|
|
|
enum ima_fs_flags {
|
|
IMA_FS_BUSY = 0,
|
|
};
|
|
|
|
struct ima_queue_entry {
|
|
struct hlist_node hnext;
|
|
struct list_head later;
|
|
struct ima_template_entry *entry;
|
|
};
|
|
|
|
struct genradix_node {
|
|
union {
|
|
struct genradix_node *children[512];
|
|
u8 data[4096];
|
|
};
|
|
};
|
|
|
|
struct genradix_iter {
|
|
size_t offset;
|
|
size_t pos;
|
|
};
|
|
|
|
struct xxh32_state {
|
|
uint32_t total_len_32;
|
|
uint32_t large_len;
|
|
uint32_t v1;
|
|
uint32_t v2;
|
|
uint32_t v3;
|
|
uint32_t v4;
|
|
uint32_t mem32[4];
|
|
uint32_t memsize;
|
|
};
|
|
|
|
struct xxh64_state {
|
|
uint64_t total_len;
|
|
uint64_t v1;
|
|
uint64_t v2;
|
|
uint64_t v3;
|
|
uint64_t v4;
|
|
uint64_t mem64[4];
|
|
uint32_t memsize;
|
|
};
|
|
|
|
typedef unsigned short ush;
|
|
|
|
typedef enum {
|
|
need_more = 0,
|
|
block_done = 1,
|
|
finish_started = 2,
|
|
finish_done = 3,
|
|
} block_state;
|
|
|
|
struct deflate_state;
|
|
|
|
typedef struct deflate_state deflate_state;
|
|
|
|
typedef block_state (*compress_func)(deflate_state *, int);
|
|
|
|
struct config_s {
|
|
ush good_length;
|
|
ush max_lazy;
|
|
ush nice_length;
|
|
ush max_chain;
|
|
compress_func func;
|
|
};
|
|
|
|
typedef struct config_s config;
|
|
|
|
typedef unsigned long ulg;
|
|
|
|
typedef ush Pos;
|
|
|
|
typedef unsigned int IPos;
|
|
|
|
struct ct_data_s {
|
|
union {
|
|
ush freq;
|
|
ush code;
|
|
} fc;
|
|
union {
|
|
ush dad;
|
|
ush len;
|
|
} dl;
|
|
};
|
|
|
|
typedef struct ct_data_s ct_data;
|
|
|
|
struct static_tree_desc_s;
|
|
|
|
typedef struct static_tree_desc_s static_tree_desc;
|
|
|
|
struct tree_desc_s {
|
|
ct_data *dyn_tree;
|
|
int max_code;
|
|
static_tree_desc *stat_desc;
|
|
};
|
|
|
|
typedef unsigned char uch;
|
|
|
|
struct deflate_state {
|
|
z_streamp strm;
|
|
int status;
|
|
Byte *pending_buf;
|
|
ulg pending_buf_size;
|
|
Byte *pending_out;
|
|
int pending;
|
|
int noheader;
|
|
Byte data_type;
|
|
Byte method;
|
|
int last_flush;
|
|
uInt w_size;
|
|
uInt w_bits;
|
|
uInt w_mask;
|
|
Byte *window;
|
|
ulg window_size;
|
|
Pos *prev;
|
|
Pos *head;
|
|
uInt ins_h;
|
|
uInt hash_size;
|
|
uInt hash_bits;
|
|
uInt hash_mask;
|
|
uInt hash_shift;
|
|
long block_start;
|
|
uInt match_length;
|
|
IPos prev_match;
|
|
int match_available;
|
|
uInt strstart;
|
|
uInt match_start;
|
|
uInt lookahead;
|
|
uInt prev_length;
|
|
uInt max_chain_length;
|
|
uInt max_lazy_match;
|
|
int level;
|
|
int strategy;
|
|
uInt good_match;
|
|
int nice_match;
|
|
struct ct_data_s dyn_ltree[573];
|
|
struct ct_data_s dyn_dtree[61];
|
|
struct ct_data_s bl_tree[39];
|
|
struct tree_desc_s l_desc;
|
|
struct tree_desc_s d_desc;
|
|
struct tree_desc_s bl_desc;
|
|
ush bl_count[16];
|
|
int heap[573];
|
|
int heap_len;
|
|
int heap_max;
|
|
uch depth[573];
|
|
uch *l_buf;
|
|
uInt lit_bufsize;
|
|
uInt last_lit;
|
|
ush *d_buf;
|
|
ulg opt_len;
|
|
ulg static_len;
|
|
ulg compressed_len;
|
|
uInt matches;
|
|
int last_eob_len;
|
|
ush bi_buf;
|
|
int bi_valid;
|
|
};
|
|
|
|
struct static_tree_desc_s {
|
|
const ct_data *static_tree;
|
|
const int *extra_bits;
|
|
int extra_base;
|
|
int elems;
|
|
int max_length;
|
|
};
|
|
|
|
struct deflate_workspace {
|
|
deflate_state deflate_memory;
|
|
Byte *window_memory;
|
|
Pos *prev_memory;
|
|
Pos *head_memory;
|
|
char *overlay_memory;
|
|
};
|
|
|
|
typedef struct deflate_workspace deflate_workspace;
|
|
|
|
enum nla_policy_validation {
|
|
NLA_VALIDATE_NONE = 0,
|
|
NLA_VALIDATE_RANGE = 1,
|
|
NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2,
|
|
NLA_VALIDATE_MIN = 3,
|
|
NLA_VALIDATE_MAX = 4,
|
|
NLA_VALIDATE_MASK = 5,
|
|
NLA_VALIDATE_RANGE_PTR = 6,
|
|
NLA_VALIDATE_FUNCTION = 7,
|
|
};
|
|
|
|
enum {
|
|
NLA_UNSPEC = 0,
|
|
NLA_U8 = 1,
|
|
NLA_U16 = 2,
|
|
NLA_U32 = 3,
|
|
NLA_U64 = 4,
|
|
NLA_STRING = 5,
|
|
NLA_FLAG = 6,
|
|
NLA_MSECS = 7,
|
|
NLA_NESTED = 8,
|
|
NLA_NESTED_ARRAY = 9,
|
|
NLA_NUL_STRING = 10,
|
|
NLA_BINARY = 11,
|
|
NLA_S8 = 12,
|
|
NLA_S16 = 13,
|
|
NLA_S32 = 14,
|
|
NLA_S64 = 15,
|
|
NLA_BITFIELD32 = 16,
|
|
NLA_REJECT = 17,
|
|
NLA_BE16 = 18,
|
|
NLA_BE32 = 19,
|
|
__NLA_TYPE_MAX = 20,
|
|
};
|
|
|
|
struct nla_bitfield32 {
|
|
__u32 value;
|
|
__u32 selector;
|
|
};
|
|
|
|
struct hpx_type0 {
|
|
u32 revision;
|
|
u8 cache_line_size;
|
|
u8 latency_timer;
|
|
u8 enable_serr;
|
|
u8 enable_perr;
|
|
};
|
|
|
|
enum hpx_type3_cfg_loc {
|
|
HPX_CFG_PCICFG = 0,
|
|
HPX_CFG_PCIE_CAP = 1,
|
|
HPX_CFG_PCIE_CAP_EXT = 2,
|
|
HPX_CFG_VEND_CAP = 3,
|
|
HPX_CFG_DVSEC = 4,
|
|
HPX_CFG_MAX = 5,
|
|
};
|
|
|
|
enum hpx_type3_fn_type {
|
|
HPX_FN_NORMAL = 1,
|
|
HPX_FN_SRIOV_PHYS = 2,
|
|
HPX_FN_SRIOV_VIRT = 4,
|
|
};
|
|
|
|
struct hpx_type1 {
|
|
u32 revision;
|
|
u8 max_mem_read;
|
|
u8 avg_max_split;
|
|
u16 tot_max_split;
|
|
};
|
|
|
|
struct hpx_type2 {
|
|
u32 revision;
|
|
u32 unc_err_mask_and;
|
|
u32 unc_err_mask_or;
|
|
u32 unc_err_sever_and;
|
|
u32 unc_err_sever_or;
|
|
u32 cor_err_mask_and;
|
|
u32 cor_err_mask_or;
|
|
u32 adv_err_cap_and;
|
|
u32 adv_err_cap_or;
|
|
u16 pci_exp_devctl_and;
|
|
u16 pci_exp_devctl_or;
|
|
u16 pci_exp_lnkctl_and;
|
|
u16 pci_exp_lnkctl_or;
|
|
u32 sec_unc_err_sever_and;
|
|
u32 sec_unc_err_sever_or;
|
|
u32 sec_unc_err_mask_and;
|
|
u32 sec_unc_err_mask_or;
|
|
};
|
|
|
|
struct hpx_type3 {
|
|
u16 device_type;
|
|
u16 function_type;
|
|
u16 config_space_location;
|
|
u16 pci_exp_cap_id;
|
|
u16 pci_exp_cap_ver;
|
|
u16 pci_exp_vendor_id;
|
|
u16 dvsec_id;
|
|
u16 dvsec_rev;
|
|
u16 match_offset;
|
|
u32 match_mask_and;
|
|
u32 match_value;
|
|
u16 reg_offset;
|
|
u32 reg_mask_and;
|
|
u32 reg_mask_or;
|
|
};
|
|
|
|
struct acpi_gpio_params {
|
|
unsigned int crs_entry_index;
|
|
unsigned int line_index;
|
|
bool active_low;
|
|
};
|
|
|
|
struct cppc_pcc_data {
|
|
struct pcc_mbox_chan *pcc_channel;
|
|
void *pcc_comm_addr;
|
|
bool pcc_channel_acquired;
|
|
unsigned int deadline_us;
|
|
unsigned int pcc_mpar;
|
|
unsigned int pcc_mrtt;
|
|
unsigned int pcc_nominal;
|
|
bool pending_pcc_write_cmd;
|
|
bool platform_owns_pcc;
|
|
unsigned int pcc_write_cnt;
|
|
struct rw_semaphore pcc_lock;
|
|
wait_queue_head_t pcc_write_wait_q;
|
|
ktime_t last_cmd_cmpl_time;
|
|
ktime_t last_mpar_reset;
|
|
int mpar_count;
|
|
int refcount;
|
|
};
|
|
|
|
struct cpc_reg {
|
|
u8 descriptor;
|
|
u16 length;
|
|
u8 space_id;
|
|
u8 bit_width;
|
|
u8 bit_offset;
|
|
u8 access_width;
|
|
u64 address;
|
|
} __attribute__((packed));
|
|
|
|
struct cpc_register_resource {
|
|
acpi_object_type type;
|
|
u64 *sys_mem_vaddr;
|
|
union {
|
|
struct cpc_reg reg;
|
|
u64 int_value;
|
|
} cpc_entry;
|
|
};
|
|
|
|
struct cpc_desc {
|
|
int num_entries;
|
|
int version;
|
|
int cpu_id;
|
|
int write_cmd_status;
|
|
int write_cmd_id;
|
|
struct cpc_register_resource cpc_regs[21];
|
|
struct acpi_psd_package domain_info;
|
|
struct kobject kobj;
|
|
};
|
|
|
|
enum cppc_regs {
|
|
HIGHEST_PERF = 0,
|
|
NOMINAL_PERF = 1,
|
|
LOW_NON_LINEAR_PERF = 2,
|
|
LOWEST_PERF = 3,
|
|
GUARANTEED_PERF = 4,
|
|
DESIRED_PERF = 5,
|
|
MIN_PERF = 6,
|
|
MAX_PERF = 7,
|
|
PERF_REDUC_TOLERANCE = 8,
|
|
TIME_WINDOW = 9,
|
|
CTR_WRAP_TIME = 10,
|
|
REFERENCE_CTR = 11,
|
|
DELIVERED_CTR = 12,
|
|
PERF_LIMITED = 13,
|
|
ENABLE = 14,
|
|
AUTO_SEL_ENABLE = 15,
|
|
AUTO_ACT_WINDOW = 16,
|
|
ENERGY_PERF = 17,
|
|
REFERENCE_PERF = 18,
|
|
LOWEST_FREQ = 19,
|
|
NOMINAL_FREQ = 20,
|
|
};
|
|
|
|
struct cppc_perf_ctrls {
|
|
u32 max_perf;
|
|
u32 min_perf;
|
|
u32 desired_perf;
|
|
u32 energy_perf;
|
|
};
|
|
|
|
struct cppc_perf_fb_ctrs {
|
|
u64 reference;
|
|
u64 delivered;
|
|
u64 reference_perf;
|
|
u64 wraparound_time;
|
|
};
|
|
|
|
struct cppc_cpudata {
|
|
struct list_head node;
|
|
struct cppc_perf_caps perf_caps;
|
|
struct cppc_perf_ctrls perf_ctrls;
|
|
struct cppc_perf_fb_ctrs perf_fb_ctrs;
|
|
unsigned int shared_type;
|
|
cpumask_var_t shared_cpu_map;
|
|
};
|
|
|
|
struct acpi_pcct_shared_memory {
|
|
u32 signature;
|
|
u16 command;
|
|
u16 status;
|
|
};
|
|
|
|
struct virtio_pci_legacy_device {
|
|
struct pci_dev *pci_dev;
|
|
u8 *isr;
|
|
void *ioaddr;
|
|
struct virtio_device_id id;
|
|
};
|
|
|
|
struct dma_pte;
|
|
|
|
struct dmar_domain {
|
|
int nid;
|
|
struct xarray iommu_array;
|
|
u8 has_iotlb_device: 1;
|
|
u8 iommu_coherency: 1;
|
|
u8 force_snooping: 1;
|
|
u8 set_pte_snp: 1;
|
|
u8 use_first_level: 1;
|
|
spinlock_t lock;
|
|
struct list_head devices;
|
|
struct dma_pte *pgd;
|
|
int gaw;
|
|
int agaw;
|
|
int iommu_superpage;
|
|
u64 max_addr;
|
|
struct iommu_domain domain;
|
|
};
|
|
|
|
struct dma_pte {
|
|
u64 val;
|
|
};
|
|
|
|
enum cap_audit_type {
|
|
CAP_AUDIT_STATIC_DMAR = 0,
|
|
CAP_AUDIT_STATIC_IRQR = 1,
|
|
CAP_AUDIT_HOTPLUG_DMAR = 2,
|
|
CAP_AUDIT_HOTPLUG_IRQR = 3,
|
|
};
|
|
|
|
enum {
|
|
SR_DMAR_FECTL_REG = 0,
|
|
SR_DMAR_FEDATA_REG = 1,
|
|
SR_DMAR_FEADDR_REG = 2,
|
|
SR_DMAR_FEUADDR_REG = 3,
|
|
MAX_SR_DMAR_REGS = 4,
|
|
};
|
|
|
|
enum iommu_resv_type {
|
|
IOMMU_RESV_DIRECT = 0,
|
|
IOMMU_RESV_DIRECT_RELAXABLE = 1,
|
|
IOMMU_RESV_RESERVED = 2,
|
|
IOMMU_RESV_MSI = 3,
|
|
IOMMU_RESV_SW_MSI = 4,
|
|
};
|
|
|
|
struct dmar_rmrr_unit {
|
|
struct list_head list;
|
|
struct acpi_dmar_header *hdr;
|
|
u64 base_address;
|
|
u64 end_address;
|
|
struct dmar_dev_scope *devices;
|
|
int devices_cnt;
|
|
};
|
|
|
|
struct dmar_atsr_unit {
|
|
struct list_head list;
|
|
struct acpi_dmar_header *hdr;
|
|
struct dmar_dev_scope *devices;
|
|
int devices_cnt;
|
|
u8 include_all: 1;
|
|
};
|
|
|
|
struct dmar_satc_unit {
|
|
struct list_head list;
|
|
struct acpi_dmar_header *hdr;
|
|
struct dmar_dev_scope *devices;
|
|
struct intel_iommu *iommu;
|
|
int devices_cnt;
|
|
u8 atc_required: 1;
|
|
};
|
|
|
|
struct pasid_table;
|
|
|
|
struct device_domain_info {
|
|
struct list_head link;
|
|
u32 segment;
|
|
u8 bus;
|
|
u8 devfn;
|
|
u16 pfsid;
|
|
u8 pasid_supported: 3;
|
|
u8 pasid_enabled: 1;
|
|
u8 pri_supported: 1;
|
|
u8 pri_enabled: 1;
|
|
u8 ats_supported: 1;
|
|
u8 ats_enabled: 1;
|
|
u8 dtlb_extra_inval: 1;
|
|
u8 ats_qdep;
|
|
struct device *dev;
|
|
struct intel_iommu *iommu;
|
|
struct dmar_domain *domain;
|
|
struct pasid_table *pasid_table;
|
|
};
|
|
|
|
struct pasid_table {
|
|
void *table;
|
|
int order;
|
|
u32 max_pasid;
|
|
};
|
|
|
|
struct context_entry {
|
|
u64 lo;
|
|
u64 hi;
|
|
};
|
|
|
|
struct iommu_resv_region {
|
|
struct list_head list;
|
|
phys_addr_t start;
|
|
size_t length;
|
|
int prot;
|
|
enum iommu_resv_type type;
|
|
void (*free)(struct device *, struct iommu_resv_region *);
|
|
};
|
|
|
|
struct iommu_domain_info {
|
|
struct intel_iommu *iommu;
|
|
unsigned int refcnt;
|
|
u16 did;
|
|
};
|
|
|
|
struct domain_context_mapping_data {
|
|
struct dmar_domain *domain;
|
|
struct intel_iommu *iommu;
|
|
struct pasid_table *table;
|
|
};
|
|
|
|
struct drm_device___4;
|
|
|
|
struct drm_framebuffer_funcs___2;
|
|
|
|
struct drm_framebuffer___2 {
|
|
struct drm_device___4 *dev;
|
|
struct list_head head;
|
|
struct drm_mode_object base;
|
|
char comm[16];
|
|
const struct drm_format_info *format;
|
|
const struct drm_framebuffer_funcs___2 *funcs;
|
|
unsigned int pitches[4];
|
|
unsigned int offsets[4];
|
|
uint64_t modifier;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
int flags;
|
|
int hot_x;
|
|
int hot_y;
|
|
struct list_head filp_head;
|
|
struct drm_gem_object *obj[4];
|
|
};
|
|
|
|
struct drm_mode_config_funcs___4;
|
|
|
|
struct drm_mode_config___4 {
|
|
struct mutex mutex;
|
|
struct drm_modeset_lock connection_mutex;
|
|
struct drm_modeset_acquire_ctx *acquire_ctx;
|
|
struct mutex idr_mutex;
|
|
struct idr object_idr;
|
|
struct idr tile_idr;
|
|
struct mutex fb_lock;
|
|
int num_fb;
|
|
struct list_head fb_list;
|
|
spinlock_t connector_list_lock;
|
|
int num_connector;
|
|
struct ida connector_ida;
|
|
struct list_head connector_list;
|
|
struct llist_head connector_free_list;
|
|
struct work_struct connector_free_work;
|
|
int num_encoder;
|
|
struct list_head encoder_list;
|
|
int num_total_plane;
|
|
struct list_head plane_list;
|
|
int num_crtc;
|
|
struct list_head crtc_list;
|
|
struct list_head property_list;
|
|
struct list_head privobj_list;
|
|
int min_width;
|
|
int min_height;
|
|
int max_width;
|
|
int max_height;
|
|
const struct drm_mode_config_funcs___4 *funcs;
|
|
bool poll_enabled;
|
|
bool poll_running;
|
|
bool delayed_event;
|
|
struct delayed_work output_poll_work;
|
|
struct mutex blob_lock;
|
|
struct list_head property_blob_list;
|
|
struct drm_property *edid_property;
|
|
struct drm_property *dpms_property;
|
|
struct drm_property *path_property;
|
|
struct drm_property *tile_property;
|
|
struct drm_property *link_status_property;
|
|
struct drm_property *plane_type_property;
|
|
struct drm_property *prop_src_x;
|
|
struct drm_property *prop_src_y;
|
|
struct drm_property *prop_src_w;
|
|
struct drm_property *prop_src_h;
|
|
struct drm_property *prop_crtc_x;
|
|
struct drm_property *prop_crtc_y;
|
|
struct drm_property *prop_crtc_w;
|
|
struct drm_property *prop_crtc_h;
|
|
struct drm_property *prop_fb_id;
|
|
struct drm_property *prop_in_fence_fd;
|
|
struct drm_property *prop_out_fence_ptr;
|
|
struct drm_property *prop_crtc_id;
|
|
struct drm_property *prop_fb_damage_clips;
|
|
struct drm_property *prop_active;
|
|
struct drm_property *prop_mode_id;
|
|
struct drm_property *prop_vrr_enabled;
|
|
struct drm_property *dvi_i_subconnector_property;
|
|
struct drm_property *dvi_i_select_subconnector_property;
|
|
struct drm_property *dp_subconnector_property;
|
|
struct drm_property *tv_subconnector_property;
|
|
struct drm_property *tv_select_subconnector_property;
|
|
struct drm_property *legacy_tv_mode_property;
|
|
struct drm_property *tv_mode_property;
|
|
struct drm_property *tv_left_margin_property;
|
|
struct drm_property *tv_right_margin_property;
|
|
struct drm_property *tv_top_margin_property;
|
|
struct drm_property *tv_bottom_margin_property;
|
|
struct drm_property *tv_brightness_property;
|
|
struct drm_property *tv_contrast_property;
|
|
struct drm_property *tv_flicker_reduction_property;
|
|
struct drm_property *tv_overscan_property;
|
|
struct drm_property *tv_saturation_property;
|
|
struct drm_property *tv_hue_property;
|
|
struct drm_property *scaling_mode_property;
|
|
struct drm_property *aspect_ratio_property;
|
|
struct drm_property *content_type_property;
|
|
struct drm_property *degamma_lut_property;
|
|
struct drm_property *degamma_lut_size_property;
|
|
struct drm_property *ctm_property;
|
|
struct drm_property *gamma_lut_property;
|
|
struct drm_property *gamma_lut_size_property;
|
|
struct drm_property *suggested_x_property;
|
|
struct drm_property *suggested_y_property;
|
|
struct drm_property *non_desktop_property;
|
|
struct drm_property *panel_orientation_property;
|
|
struct drm_property *writeback_fb_id_property;
|
|
struct drm_property *writeback_pixel_formats_property;
|
|
struct drm_property *writeback_out_fence_ptr_property;
|
|
struct drm_property *hdr_output_metadata_property;
|
|
struct drm_property *content_protection_property;
|
|
struct drm_property *hdcp_content_type_property;
|
|
uint32_t preferred_depth;
|
|
uint32_t prefer_shadow;
|
|
bool prefer_shadow_fbdev;
|
|
bool quirk_addfb_prefer_xbgr_30bpp;
|
|
bool quirk_addfb_prefer_host_byte_order;
|
|
bool async_page_flip;
|
|
bool fb_modifiers_not_supported;
|
|
bool normalize_zpos;
|
|
struct drm_property *modifiers_property;
|
|
uint32_t cursor_width;
|
|
uint32_t cursor_height;
|
|
struct drm_atomic_state *suspend_state;
|
|
const struct drm_mode_config_helper_funcs *helper_private;
|
|
};
|
|
|
|
struct drm_master___4;
|
|
|
|
struct drm_device___4 {
|
|
int if_version;
|
|
struct kref ref;
|
|
struct device *dev;
|
|
struct {
|
|
struct list_head resources;
|
|
void *final_kfree;
|
|
spinlock_t lock;
|
|
} managed;
|
|
const struct drm_driver *driver;
|
|
void *dev_private;
|
|
struct drm_minor *primary;
|
|
struct drm_minor *render;
|
|
struct drm_minor *accel;
|
|
bool registered;
|
|
struct drm_master___4 *master;
|
|
u32 driver_features;
|
|
bool unplugged;
|
|
struct inode *anon_inode;
|
|
char *unique;
|
|
struct mutex struct_mutex;
|
|
struct mutex master_mutex;
|
|
atomic_t open_count;
|
|
struct mutex filelist_mutex;
|
|
struct list_head filelist;
|
|
struct list_head filelist_internal;
|
|
struct mutex clientlist_mutex;
|
|
struct list_head clientlist;
|
|
bool vblank_disable_immediate;
|
|
struct drm_vblank_crtc *vblank;
|
|
spinlock_t vblank_time_lock;
|
|
spinlock_t vbl_lock;
|
|
u32 max_vblank_count;
|
|
struct list_head vblank_event_list;
|
|
spinlock_t event_lock;
|
|
unsigned int num_crtcs;
|
|
struct drm_mode_config___4 mode_config;
|
|
struct mutex object_name_lock;
|
|
struct idr object_name_idr;
|
|
struct drm_vma_offset_manager *vma_offset_manager;
|
|
struct drm_vram_mm *vram_mm;
|
|
enum switch_power_state switch_power_state;
|
|
struct drm_fb_helper *fb_helper;
|
|
struct mutex debugfs_mutex;
|
|
struct list_head debugfs_list;
|
|
};
|
|
|
|
struct drm_master___4 {
|
|
struct kref refcount;
|
|
struct drm_device___4 *dev;
|
|
char *unique;
|
|
int unique_len;
|
|
struct idr magic_map;
|
|
void *driver_priv;
|
|
struct drm_master___4 *lessor;
|
|
int lessee_id;
|
|
struct list_head lessee_list;
|
|
struct list_head lessees;
|
|
struct idr leases;
|
|
struct idr lessee_idr;
|
|
};
|
|
|
|
struct drm_mode_config_funcs___4 {
|
|
struct drm_framebuffer___2 * (*fb_create)(struct drm_device___4 *, struct drm_file *, const struct drm_mode_fb_cmd2 *);
|
|
const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *);
|
|
void (*output_poll_changed)(struct drm_device___4 *);
|
|
enum drm_mode_status (*mode_valid)(struct drm_device___4 *, const struct drm_display_mode *);
|
|
int (*atomic_check)(struct drm_device___4 *, struct drm_atomic_state *);
|
|
int (*atomic_commit)(struct drm_device___4 *, struct drm_atomic_state *, bool);
|
|
struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___4 *);
|
|
void (*atomic_state_clear)(struct drm_atomic_state *);
|
|
void (*atomic_state_free)(struct drm_atomic_state *);
|
|
};
|
|
|
|
struct drm_framebuffer_funcs___2 {
|
|
void (*destroy)(struct drm_framebuffer___2 *);
|
|
int (*create_handle)(struct drm_framebuffer___2 *, struct drm_file *, unsigned int *);
|
|
int (*dirty)(struct drm_framebuffer___2 *, struct drm_file *, unsigned int, unsigned int, struct drm_clip_rect *, unsigned int);
|
|
};
|
|
|
|
struct i915_address_space___3;
|
|
|
|
struct intel_memory_region___3;
|
|
|
|
struct i915_vma_ops___3;
|
|
|
|
struct i915_vma_resource___3 {
|
|
struct dma_fence unbind_fence;
|
|
spinlock_t lock;
|
|
refcount_t hold_count;
|
|
struct work_struct work;
|
|
struct i915_sw_fence chain;
|
|
struct rb_node rb;
|
|
u64 __subtree_last;
|
|
struct i915_address_space___3 *vm;
|
|
intel_wakeref_t wakeref;
|
|
struct i915_vma_bindinfo bi;
|
|
struct intel_memory_region___3 *mr;
|
|
const struct i915_vma_ops___3 *ops;
|
|
void *private;
|
|
u64 start;
|
|
u64 node_size;
|
|
u64 vma_size;
|
|
u32 guard;
|
|
u32 page_sizes_gtt;
|
|
u32 bound_flags;
|
|
bool allocated: 1;
|
|
bool immediate_unbind: 1;
|
|
bool needs_wakeref: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u32 *tlb;
|
|
};
|
|
|
|
struct drm_i915_gem_object___3;
|
|
|
|
struct i915_vma___3;
|
|
|
|
struct intel_uc_fw___3 {
|
|
enum intel_uc_fw_type type;
|
|
union {
|
|
const enum intel_uc_fw_status status;
|
|
enum intel_uc_fw_status __status;
|
|
};
|
|
struct intel_uc_fw_file file_wanted;
|
|
struct intel_uc_fw_file file_selected;
|
|
bool user_overridden;
|
|
size_t size;
|
|
struct drm_i915_gem_object___3 *obj;
|
|
struct i915_vma_resource___3 dummy;
|
|
struct i915_vma___3 *rsa_data;
|
|
u32 rsa_size;
|
|
u32 ucode_size;
|
|
u32 private_data_size;
|
|
bool loaded_via_gsc;
|
|
};
|
|
|
|
struct intel_guc_log___3 {
|
|
u32 level;
|
|
struct {
|
|
s32 bytes;
|
|
s32 units;
|
|
s32 count;
|
|
u32 flag;
|
|
} sizes[3];
|
|
bool sizes_initialised;
|
|
struct i915_vma___3 *vma;
|
|
void *buf_addr;
|
|
struct {
|
|
bool buf_in_use;
|
|
bool started;
|
|
struct work_struct flush_work;
|
|
struct rchan *channel;
|
|
struct mutex lock;
|
|
u32 full_count;
|
|
} relay;
|
|
struct {
|
|
u32 sampled_overflow;
|
|
u32 overflow;
|
|
u32 flush;
|
|
} stats[3];
|
|
};
|
|
|
|
struct intel_guc_ct___3 {
|
|
struct i915_vma___3 *vma;
|
|
bool enabled;
|
|
struct {
|
|
struct intel_guc_ct_buffer send;
|
|
struct intel_guc_ct_buffer recv;
|
|
} ctbs;
|
|
struct tasklet_struct receive_tasklet;
|
|
wait_queue_head_t wq;
|
|
struct {
|
|
u16 last_fence;
|
|
spinlock_t lock;
|
|
struct list_head pending;
|
|
struct list_head incoming;
|
|
struct work_struct worker;
|
|
} requests;
|
|
ktime_t stall_time;
|
|
};
|
|
|
|
struct intel_guc_slpc___3 {
|
|
struct i915_vma___3 *vma;
|
|
struct slpc_shared_data *vaddr;
|
|
bool supported;
|
|
bool selected;
|
|
bool min_is_rpmax;
|
|
u32 min_freq;
|
|
u32 rp0_freq;
|
|
u32 rp1_freq;
|
|
u32 boost_freq;
|
|
u32 min_freq_softlimit;
|
|
u32 max_freq_softlimit;
|
|
u32 media_ratio_mode;
|
|
struct mutex lock;
|
|
struct work_struct boost_work;
|
|
atomic_t num_waiters;
|
|
u32 num_boosts;
|
|
};
|
|
|
|
struct i915_sched_engine___3;
|
|
|
|
struct i915_request___3;
|
|
|
|
struct intel_guc___3 {
|
|
struct intel_uc_fw___3 fw;
|
|
struct intel_guc_log___3 log;
|
|
struct intel_guc_ct___3 ct;
|
|
struct intel_guc_slpc___3 slpc;
|
|
struct intel_guc_state_capture *capture;
|
|
struct i915_sched_engine___3 *sched_engine;
|
|
struct i915_request___3 *stalled_request;
|
|
enum {
|
|
STALL_NONE___3 = 0,
|
|
STALL_REGISTER_CONTEXT___3 = 1,
|
|
STALL_MOVE_LRC_TAIL___3 = 2,
|
|
STALL_ADD_REQUEST___3 = 3,
|
|
} submission_stall_reason;
|
|
spinlock_t irq_lock;
|
|
unsigned int msg_enabled_mask;
|
|
atomic_t outstanding_submission_g2h;
|
|
struct {
|
|
bool enabled;
|
|
void (*reset)(struct intel_guc___3 *);
|
|
void (*enable)(struct intel_guc___3 *);
|
|
void (*disable)(struct intel_guc___3 *);
|
|
} interrupts;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct ida guc_ids;
|
|
int num_guc_ids;
|
|
unsigned long *guc_ids_bitmap;
|
|
struct list_head guc_id_list;
|
|
unsigned int guc_ids_in_use;
|
|
struct list_head destroyed_contexts;
|
|
struct work_struct destroyed_worker;
|
|
struct work_struct reset_fail_worker;
|
|
intel_engine_mask_t reset_fail_mask;
|
|
unsigned int sched_disable_delay_ms;
|
|
unsigned int sched_disable_gucid_threshold;
|
|
} submission_state;
|
|
bool submission_supported;
|
|
bool submission_selected;
|
|
bool submission_initialized;
|
|
struct intel_uc_fw_ver submission_version;
|
|
bool rc_supported;
|
|
bool rc_selected;
|
|
struct i915_vma___3 *ads_vma;
|
|
struct iosys_map ads_map;
|
|
u32 ads_regset_size;
|
|
u32 ads_regset_count[27];
|
|
struct guc_mmio_reg *ads_regset;
|
|
u32 ads_golden_ctxt_size;
|
|
u32 ads_capture_size;
|
|
u32 ads_engine_usage_size;
|
|
struct i915_vma___3 *lrc_desc_pool_v69;
|
|
void *lrc_desc_pool_vaddr_v69;
|
|
struct xarray context_lookup;
|
|
u32 params[14];
|
|
struct {
|
|
u32 base;
|
|
unsigned int count;
|
|
enum forcewake_domains fw_domains;
|
|
} send_regs;
|
|
i915_reg_t notify_reg;
|
|
u32 mmio_msg;
|
|
struct mutex send_mutex;
|
|
struct {
|
|
spinlock_t lock;
|
|
u64 gt_stamp;
|
|
unsigned long ping_delay;
|
|
struct delayed_work work;
|
|
u32 shift;
|
|
unsigned long last_stat_jiffies;
|
|
} timestamp;
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops___3;
|
|
|
|
struct intel_frontbuffer___3;
|
|
|
|
struct drm_i915_gem_object___3 {
|
|
union {
|
|
struct drm_gem_object base;
|
|
struct ttm_buffer_object___2 __do_not_access;
|
|
};
|
|
const struct drm_i915_gem_object_ops___3 *ops;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
struct rb_root tree;
|
|
} vma;
|
|
struct list_head lut_list;
|
|
spinlock_t lut_lock;
|
|
struct list_head obj_link;
|
|
struct i915_address_space___3 *shares_resv_from;
|
|
union {
|
|
struct callback_head rcu;
|
|
struct llist_node freed;
|
|
};
|
|
unsigned int userfault_count;
|
|
struct list_head userfault_link;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct rb_root offsets;
|
|
} mmo;
|
|
unsigned long flags;
|
|
unsigned int mem_flags;
|
|
unsigned int cache_level: 3;
|
|
unsigned int cache_coherent: 2;
|
|
unsigned int cache_dirty: 1;
|
|
u16 read_domains;
|
|
u16 write_domain;
|
|
struct intel_frontbuffer___3 __attribute__((btf_type_tag("rcu"))) *frontbuffer;
|
|
unsigned int tiling_and_stride;
|
|
struct {
|
|
atomic_t pages_pin_count;
|
|
atomic_t shrink_pin;
|
|
bool ttm_shrinkable;
|
|
bool unknown_state;
|
|
struct intel_memory_region___3 **placements;
|
|
int n_placements;
|
|
struct intel_memory_region___3 *region;
|
|
struct ttm_resource___2 *res;
|
|
struct list_head region_link;
|
|
struct i915_refct_sgt *rsgt;
|
|
struct sg_table *pages;
|
|
void *mapping;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_gem_object_page_iter get_page;
|
|
struct i915_gem_object_page_iter get_dma_page;
|
|
struct list_head link;
|
|
unsigned int madv: 2;
|
|
bool dirty: 1;
|
|
u32 tlb;
|
|
} mm;
|
|
struct {
|
|
struct i915_refct_sgt *cached_io_rsgt;
|
|
struct i915_gem_object_page_iter get_io_page;
|
|
struct drm_i915_gem_object___3 *backup;
|
|
bool created: 1;
|
|
} ttm;
|
|
u32 pxp_key_instance;
|
|
unsigned long *bit_17;
|
|
union {
|
|
struct i915_gem_userptr userptr;
|
|
struct drm_mm_node *stolen;
|
|
resource_size_t bo_offset;
|
|
unsigned long scratch;
|
|
u64 encode;
|
|
void *gvt_info;
|
|
};
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops___3 {
|
|
unsigned int flags;
|
|
int (*get_pages)(struct drm_i915_gem_object___3 *);
|
|
void (*put_pages)(struct drm_i915_gem_object___3 *, struct sg_table *);
|
|
int (*truncate)(struct drm_i915_gem_object___3 *);
|
|
int (*shrink)(struct drm_i915_gem_object___3 *, unsigned int);
|
|
int (*pread)(struct drm_i915_gem_object___3 *, const struct drm_i915_gem_pread *);
|
|
int (*pwrite)(struct drm_i915_gem_object___3 *, const struct drm_i915_gem_pwrite *);
|
|
u64 (*mmap_offset)(struct drm_i915_gem_object___3 *);
|
|
void (*unmap_virtual)(struct drm_i915_gem_object___3 *);
|
|
int (*dmabuf_export)(struct drm_i915_gem_object___3 *);
|
|
void (*adjust_lru)(struct drm_i915_gem_object___3 *);
|
|
void (*delayed_free)(struct drm_i915_gem_object___3 *);
|
|
int (*migrate)(struct drm_i915_gem_object___3 *, struct intel_memory_region___3 *, unsigned int);
|
|
void (*release)(struct drm_i915_gem_object___3 *);
|
|
const struct vm_operations_struct *mmap_ops;
|
|
const char *name;
|
|
};
|
|
|
|
struct drm_i915_private___4;
|
|
|
|
struct intel_memory_region_ops___3;
|
|
|
|
struct intel_memory_region___3 {
|
|
struct drm_i915_private___4 *i915;
|
|
const struct intel_memory_region_ops___3 *ops;
|
|
struct io_mapping iomap;
|
|
struct resource region;
|
|
resource_size_t io_start;
|
|
resource_size_t io_size;
|
|
resource_size_t min_page_size;
|
|
resource_size_t total;
|
|
u16 type;
|
|
u16 instance;
|
|
enum intel_region_id id;
|
|
char name[16];
|
|
bool private;
|
|
struct {
|
|
struct mutex lock;
|
|
struct list_head list;
|
|
} objects;
|
|
bool is_range_manager;
|
|
void *region_private;
|
|
};
|
|
|
|
struct intel_display_funcs___2;
|
|
|
|
struct intel_wm_funcs___3;
|
|
|
|
struct intel_display___3 {
|
|
struct {
|
|
const struct intel_display_funcs___2 *display;
|
|
const struct intel_cdclk_funcs *cdclk;
|
|
const struct intel_dpll_funcs *dpll;
|
|
const struct intel_hotplug_funcs *hotplug;
|
|
const struct intel_wm_funcs___3 *wm;
|
|
const struct intel_fdi_funcs *fdi;
|
|
const struct intel_color_funcs *color;
|
|
const struct intel_audio_funcs *audio;
|
|
} funcs;
|
|
struct intel_atomic_helper atomic_helper;
|
|
struct {
|
|
struct mutex lock;
|
|
} backlight;
|
|
struct {
|
|
struct intel_global_obj obj;
|
|
struct intel_bw_info max[6];
|
|
} bw;
|
|
struct {
|
|
struct intel_cdclk_config hw;
|
|
const struct intel_cdclk_vals *table;
|
|
struct intel_global_obj obj;
|
|
unsigned int max_cdclk_freq;
|
|
} cdclk;
|
|
struct {
|
|
struct drm_property_blob *glk_linear_degamma_lut;
|
|
} color;
|
|
struct {
|
|
u8 enabled_slices;
|
|
struct intel_global_obj obj;
|
|
} dbuf;
|
|
struct {
|
|
spinlock_t phy_lock;
|
|
} dkl;
|
|
struct {
|
|
u32 mmio_base;
|
|
} dsi;
|
|
struct {
|
|
struct intel_fbdev *fbdev;
|
|
struct work_struct suspend_work;
|
|
} fbdev;
|
|
struct {
|
|
unsigned int pll_freq;
|
|
u32 rx_config;
|
|
} fdi;
|
|
struct {
|
|
struct list_head obj_list;
|
|
} global;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
struct intel_gmbus *bus[15];
|
|
wait_queue_head_t wait_queue;
|
|
} gmbus;
|
|
struct {
|
|
struct i915_hdcp_comp_master *master;
|
|
bool comp_added;
|
|
struct mutex comp_mutex;
|
|
} hdcp;
|
|
struct {
|
|
u32 state;
|
|
} hti;
|
|
struct {
|
|
struct i915_power_domains domains;
|
|
u32 chv_phy_control;
|
|
bool chv_phy_assert[2];
|
|
} power;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
} pps;
|
|
struct {
|
|
struct drm_property *broadcast_rgb;
|
|
struct drm_property *force_audio;
|
|
} properties;
|
|
struct {
|
|
unsigned long mask;
|
|
} quirks;
|
|
struct {
|
|
struct drm_atomic_state *modeset_state;
|
|
struct drm_modeset_acquire_ctx reset_ctx;
|
|
} restore;
|
|
struct {
|
|
enum {
|
|
I915_SAGV_UNKNOWN___3 = 0,
|
|
I915_SAGV_DISABLED___3 = 1,
|
|
I915_SAGV_ENABLED___3 = 2,
|
|
I915_SAGV_NOT_CONTROLLED___3 = 3,
|
|
} status;
|
|
u32 block_time_us;
|
|
} sagv;
|
|
struct {
|
|
u8 phy_failed_calibration;
|
|
} snps;
|
|
struct {
|
|
u32 chv_dpll_md[4];
|
|
u32 bxt_phy_grc;
|
|
} state;
|
|
struct {
|
|
struct workqueue_struct *modeset;
|
|
struct workqueue_struct *flip;
|
|
} wq;
|
|
struct intel_audio audio;
|
|
struct intel_dmc dmc;
|
|
struct intel_dpll dpll;
|
|
struct intel_fbc *fbc[2];
|
|
struct intel_frontbuffer_tracking fb_tracking;
|
|
struct intel_hotplug hotplug;
|
|
struct intel_opregion opregion;
|
|
struct intel_overlay *overlay;
|
|
struct intel_vbt_data vbt;
|
|
struct intel_wm wm;
|
|
};
|
|
|
|
struct intel_uncore___3;
|
|
|
|
struct intel_uncore_funcs___3 {
|
|
enum forcewake_domains (*read_fw_domains)(struct intel_uncore___3 *, i915_reg_t);
|
|
enum forcewake_domains (*write_fw_domains)(struct intel_uncore___3 *, i915_reg_t);
|
|
u8 (*mmio_readb)(struct intel_uncore___3 *, i915_reg_t, bool);
|
|
u16 (*mmio_readw)(struct intel_uncore___3 *, i915_reg_t, bool);
|
|
u32 (*mmio_readl)(struct intel_uncore___3 *, i915_reg_t, bool);
|
|
u64 (*mmio_readq)(struct intel_uncore___3 *, i915_reg_t, bool);
|
|
void (*mmio_writeb)(struct intel_uncore___3 *, i915_reg_t, u8, bool);
|
|
void (*mmio_writew)(struct intel_uncore___3 *, i915_reg_t, u16, bool);
|
|
void (*mmio_writel)(struct intel_uncore___3 *, i915_reg_t, u32, bool);
|
|
};
|
|
|
|
struct intel_gt___3;
|
|
|
|
struct intel_uncore_fw_get___3;
|
|
|
|
struct intel_uncore_forcewake_domain___3;
|
|
|
|
struct intel_uncore___3 {
|
|
void *regs;
|
|
struct drm_i915_private___4 *i915;
|
|
struct intel_gt___3 *gt;
|
|
struct intel_runtime_pm *rpm;
|
|
spinlock_t lock;
|
|
u32 gsi_offset;
|
|
unsigned int flags;
|
|
const struct intel_forcewake_range *fw_domains_table;
|
|
unsigned int fw_domains_table_entries;
|
|
const struct i915_range *shadowed_reg_table;
|
|
unsigned int shadowed_reg_table_entries;
|
|
struct notifier_block pmic_bus_access_nb;
|
|
const struct intel_uncore_fw_get___3 *fw_get_funcs;
|
|
struct intel_uncore_funcs___3 funcs;
|
|
unsigned int fifo_count;
|
|
enum forcewake_domains fw_domains;
|
|
enum forcewake_domains fw_domains_active;
|
|
enum forcewake_domains fw_domains_timer;
|
|
enum forcewake_domains fw_domains_saved;
|
|
struct intel_uncore_forcewake_domain___3 *fw_domain[16];
|
|
unsigned int user_forcewake_count;
|
|
struct intel_uncore_mmio_debug *debug;
|
|
};
|
|
|
|
struct i915_gem_mm___3 {
|
|
struct intel_memory_region___3 *stolen_region;
|
|
struct drm_mm stolen;
|
|
struct mutex stolen_lock;
|
|
spinlock_t obj_lock;
|
|
struct list_head purge_list;
|
|
struct list_head shrink_list;
|
|
struct llist_head free_list;
|
|
struct work_struct free_work;
|
|
atomic_t free_count;
|
|
struct vfsmount *gemfs;
|
|
struct intel_memory_region___3 *regions[7];
|
|
struct notifier_block oom_notifier;
|
|
struct notifier_block vmap_notifier;
|
|
struct shrinker shrinker;
|
|
rwlock_t notifier_lock;
|
|
u64 shrink_memory;
|
|
u32 shrink_count;
|
|
};
|
|
|
|
struct i915_gpu_coredump___3;
|
|
|
|
struct i915_gpu_error___3 {
|
|
spinlock_t lock;
|
|
struct i915_gpu_coredump___3 *first_error;
|
|
atomic_t pending_fb_pin;
|
|
atomic_t reset_count;
|
|
atomic_t reset_engine_count[27];
|
|
};
|
|
|
|
struct i915_perf___3;
|
|
|
|
struct i915_perf_stream___3;
|
|
|
|
struct i915_oa_ops___3 {
|
|
bool (*is_valid_b_counter_reg)(struct i915_perf___3 *, u32);
|
|
bool (*is_valid_mux_reg)(struct i915_perf___3 *, u32);
|
|
bool (*is_valid_flex_reg)(struct i915_perf___3 *, u32);
|
|
int (*enable_metric_set)(struct i915_perf_stream___3 *, struct i915_active *);
|
|
void (*disable_metric_set)(struct i915_perf_stream___3 *);
|
|
void (*oa_enable)(struct i915_perf_stream___3 *);
|
|
void (*oa_disable)(struct i915_perf_stream___3 *);
|
|
int (*read)(struct i915_perf_stream___3 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
u32 (*oa_hw_tail_read)(struct i915_perf_stream___3 *);
|
|
};
|
|
|
|
struct i915_perf___3 {
|
|
struct drm_i915_private___4 *i915;
|
|
struct kobject *metrics_kobj;
|
|
struct mutex metrics_lock;
|
|
struct idr metrics_idr;
|
|
struct ratelimit_state spurious_report_rs;
|
|
struct ratelimit_state tail_pointer_race;
|
|
u32 gen7_latched_oastatus1;
|
|
u32 ctx_oactxctrl_offset;
|
|
u32 ctx_flexeu0_offset;
|
|
u32 gen8_valid_ctx_bit;
|
|
struct i915_oa_ops___3 ops;
|
|
const struct i915_oa_format *oa_formats;
|
|
unsigned long format_mask[1];
|
|
atomic64_t noa_programming_delay;
|
|
};
|
|
|
|
struct intel_context___3;
|
|
|
|
struct intel_gsc_uc___3 {
|
|
struct intel_uc_fw___3 fw;
|
|
struct i915_vma___3 *local;
|
|
struct intel_context___3 *ce;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct intel_huc___3 {
|
|
struct intel_uc_fw___3 fw;
|
|
struct {
|
|
i915_reg_t reg;
|
|
u32 mask;
|
|
u32 value;
|
|
} status;
|
|
struct {
|
|
struct i915_sw_fence fence;
|
|
struct hrtimer timer;
|
|
struct notifier_block nb;
|
|
enum intel_huc_delayed_load_status status;
|
|
} delayed_load;
|
|
};
|
|
|
|
struct intel_uc_ops___3;
|
|
|
|
struct intel_uc___3 {
|
|
const struct intel_uc_ops___3 *ops;
|
|
struct intel_gsc_uc___3 gsc;
|
|
struct intel_guc___3 guc;
|
|
struct intel_huc___3 huc;
|
|
struct drm_i915_gem_object___3 *load_err_log;
|
|
bool reset_in_progress;
|
|
};
|
|
|
|
struct intel_gsc_intf___3 {
|
|
struct mei_aux_device *adev;
|
|
struct drm_i915_gem_object___3 *gem_obj;
|
|
int irq;
|
|
unsigned int id;
|
|
};
|
|
|
|
struct intel_gsc___3 {
|
|
struct intel_gsc_intf___3 intf[2];
|
|
};
|
|
|
|
struct i915_wa_list___3 {
|
|
struct intel_gt___3 *gt;
|
|
const char *name;
|
|
const char *engine_name;
|
|
struct i915_wa *list;
|
|
unsigned int count;
|
|
unsigned int wa_count;
|
|
};
|
|
|
|
struct intel_rc6___3 {
|
|
i915_reg_t res_reg[4];
|
|
u64 prev_hw_residency[4];
|
|
u64 cur_residency[4];
|
|
u32 ctl_enable;
|
|
struct drm_i915_gem_object___3 *pctx;
|
|
bool supported: 1;
|
|
bool enabled: 1;
|
|
bool manual: 1;
|
|
bool wakeref: 1;
|
|
};
|
|
|
|
struct intel_migrate___3 {
|
|
struct intel_context___3 *context;
|
|
};
|
|
|
|
struct i915_perf_gt___3 {
|
|
struct mutex lock;
|
|
struct intel_sseu sseu;
|
|
struct i915_perf_stream___3 *exclusive_stream;
|
|
};
|
|
|
|
struct i915_ggtt___3;
|
|
|
|
struct intel_engine_cs___3;
|
|
|
|
struct intel_gt___3 {
|
|
struct drm_i915_private___4 *i915;
|
|
const char *name;
|
|
enum intel_gt_type type;
|
|
struct intel_uncore___3 *uncore;
|
|
struct i915_ggtt___3 *ggtt;
|
|
struct intel_uc___3 uc;
|
|
struct intel_gsc___3 gsc;
|
|
struct intel_wopcm wopcm;
|
|
struct {
|
|
struct mutex invalidate_lock;
|
|
seqcount_mutex_t seqno;
|
|
} tlb;
|
|
struct i915_wa_list___3 wa_list;
|
|
struct intel_gt_timelines timelines;
|
|
struct intel_gt_requests requests;
|
|
struct {
|
|
struct llist_head list;
|
|
struct work_struct work;
|
|
} watchdog;
|
|
struct intel_wakeref wakeref;
|
|
atomic_t user_wakeref;
|
|
struct list_head closed_vma;
|
|
spinlock_t closed_lock;
|
|
ktime_t last_init_time;
|
|
struct intel_reset reset;
|
|
intel_wakeref_t awake;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
struct intel_llc llc;
|
|
struct intel_rc6___3 rc6;
|
|
struct intel_rps rps;
|
|
spinlock_t *irq_lock;
|
|
u32 gt_imr;
|
|
u32 pm_ier;
|
|
u32 pm_imr;
|
|
u32 pm_guc_events;
|
|
struct {
|
|
bool active;
|
|
seqcount_mutex_t lock;
|
|
ktime_t total;
|
|
ktime_t start;
|
|
} stats;
|
|
struct intel_engine_cs___3 *engine[27];
|
|
struct intel_engine_cs___3 *engine_class[54];
|
|
enum intel_submission_method submission_method;
|
|
struct i915_address_space___3 *vm;
|
|
struct intel_gt_buffer_pool buffer_pool;
|
|
struct i915_vma___3 *scratch;
|
|
struct intel_migrate___3 migrate;
|
|
const struct intel_mmio_range *steering_table[7];
|
|
struct {
|
|
u8 groupid;
|
|
u8 instanceid;
|
|
} default_steering;
|
|
spinlock_t mcr_lock;
|
|
phys_addr_t phys_addr;
|
|
struct intel_gt_info info;
|
|
struct {
|
|
u8 uc_index;
|
|
u8 wb_index;
|
|
} mocs;
|
|
struct kobject sysfs_gt;
|
|
struct gt_defaults defaults;
|
|
struct kobject *sysfs_defaults;
|
|
struct i915_perf_gt___3 perf;
|
|
struct list_head ggtt_link;
|
|
};
|
|
|
|
struct i915_drm_clients___3 {
|
|
struct drm_i915_private___4 *i915;
|
|
struct xarray xarray;
|
|
u32 next_id;
|
|
};
|
|
|
|
struct drm_i915_private___4 {
|
|
struct drm_device drm;
|
|
struct intel_display___3 display;
|
|
bool do_release;
|
|
struct i915_params params;
|
|
const struct intel_device_info __info;
|
|
struct intel_runtime_info __runtime;
|
|
struct intel_driver_caps caps;
|
|
struct i915_dsm dsm;
|
|
struct intel_uncore___3 uncore;
|
|
struct intel_uncore_mmio_debug mmio_debug;
|
|
struct i915_virtual_gpu vgpu;
|
|
struct intel_gvt *gvt;
|
|
struct {
|
|
struct pci_dev *pdev;
|
|
struct resource mch_res;
|
|
bool mchbar_need_disable;
|
|
} gmch;
|
|
struct rb_root uabi_engines;
|
|
unsigned int engine_uabi_class_count[5];
|
|
spinlock_t irq_lock;
|
|
bool display_irqs_enabled;
|
|
struct mutex sb_lock;
|
|
struct pm_qos_request sb_qos;
|
|
union {
|
|
u32 irq_mask;
|
|
u32 de_irq_mask[4];
|
|
};
|
|
u32 pipestat_irq_mask[4];
|
|
bool preserve_bios_swizzle;
|
|
unsigned int fsb_freq;
|
|
unsigned int mem_freq;
|
|
unsigned int is_ddr3;
|
|
unsigned int skl_preferred_vco_freq;
|
|
unsigned int max_dotclk_freq;
|
|
unsigned int hpll_freq;
|
|
unsigned int czclk_freq;
|
|
struct workqueue_struct *wq;
|
|
const struct drm_i915_clock_gating_funcs *clock_gating_funcs;
|
|
enum intel_pch pch_type;
|
|
unsigned short pch_id;
|
|
unsigned long gem_quirks;
|
|
struct i915_gem_mm___3 mm;
|
|
struct intel_l3_parity l3_parity;
|
|
u32 edram_size_mb;
|
|
struct i915_gpu_error___3 gpu_error;
|
|
u32 suspend_count;
|
|
struct i915_suspend_saved_registers regfile;
|
|
struct vlv_s0ix_state *vlv_s0ix_state;
|
|
struct dram_info dram_info;
|
|
struct intel_runtime_pm runtime_pm;
|
|
struct i915_perf___3 perf;
|
|
struct i915_hwmon *hwmon;
|
|
struct intel_gt___3 gt0;
|
|
struct intel_gt___3 *gt[4];
|
|
struct kobject *sysfs_gt;
|
|
struct intel_gt___3 *media_gt;
|
|
struct {
|
|
struct i915_gem_contexts contexts;
|
|
struct file *mmap_singleton;
|
|
} gem;
|
|
struct intel_pxp *pxp;
|
|
u8 vblank_enabled;
|
|
bool irq_enabled;
|
|
struct i915_pmu pmu;
|
|
struct i915_drm_clients___3 clients;
|
|
struct ttm_device___2 bdev;
|
|
};
|
|
|
|
struct intel_initial_plane_config___2;
|
|
|
|
struct intel_display_funcs___2 {
|
|
bool (*get_pipe_config)(struct intel_crtc *, struct intel_crtc_state *);
|
|
void (*get_initial_plane_config)(struct intel_crtc *, struct intel_initial_plane_config___2 *);
|
|
void (*crtc_enable)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*crtc_disable)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*commit_modeset_enables)(struct intel_atomic_state *);
|
|
};
|
|
|
|
struct intel_framebuffer___2;
|
|
|
|
struct intel_initial_plane_config___2 {
|
|
struct intel_framebuffer___2 *fb;
|
|
struct i915_vma___3 *vma;
|
|
unsigned int tiling;
|
|
int size;
|
|
u32 base;
|
|
u8 rotation;
|
|
};
|
|
|
|
struct intel_framebuffer___2 {
|
|
struct drm_framebuffer base;
|
|
struct intel_frontbuffer___3 *frontbuffer;
|
|
struct intel_fb_view normal_view;
|
|
union {
|
|
struct intel_fb_view rotated_view;
|
|
struct intel_fb_view remapped_view;
|
|
};
|
|
struct i915_address_space___3 *dpt_vm;
|
|
};
|
|
|
|
struct intel_frontbuffer___3 {
|
|
struct kref ref;
|
|
atomic_t bits;
|
|
struct i915_active write;
|
|
struct drm_i915_gem_object___3 *obj;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_vm_pt_stash___3;
|
|
|
|
struct i915_vma_ops___3 {
|
|
void (*bind_vma)(struct i915_address_space___3 *, struct i915_vm_pt_stash___3 *, struct i915_vma_resource___3 *, enum i915_cache_level, u32);
|
|
void (*unbind_vma)(struct i915_address_space___3 *, struct i915_vma_resource___3 *);
|
|
};
|
|
|
|
struct i915_page_table___3;
|
|
|
|
struct i915_address_space___3 {
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct drm_mm mm;
|
|
struct intel_gt___3 *gt;
|
|
struct drm_i915_private___4 *i915;
|
|
struct device *dma;
|
|
u64 total;
|
|
u64 reserved;
|
|
u64 min_alignment[4];
|
|
unsigned int bind_async_flags;
|
|
struct mutex mutex;
|
|
struct kref resv_ref;
|
|
struct dma_resv _resv;
|
|
struct drm_i915_gem_object___3 *scratch[4];
|
|
struct list_head bound_list;
|
|
struct list_head unbound_list;
|
|
bool is_ggtt: 1;
|
|
bool is_dpt: 1;
|
|
bool has_read_only: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u8 top;
|
|
u8 pd_shift;
|
|
u8 scratch_order;
|
|
unsigned long lmem_pt_obj_flags;
|
|
struct rb_root_cached pending_unbind;
|
|
struct drm_i915_gem_object___3 * (*alloc_pt_dma)(struct i915_address_space___3 *, int);
|
|
struct drm_i915_gem_object___3 * (*alloc_scratch_dma)(struct i915_address_space___3 *, int);
|
|
u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32);
|
|
void (*allocate_va_range)(struct i915_address_space___3 *, struct i915_vm_pt_stash___3 *, u64, u64);
|
|
void (*clear_range)(struct i915_address_space___3 *, u64, u64);
|
|
void (*insert_page)(struct i915_address_space___3 *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*insert_entries)(struct i915_address_space___3 *, struct i915_vma_resource___3 *, enum i915_cache_level, u32);
|
|
void (*raw_insert_page)(struct i915_address_space___3 *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*raw_insert_entries)(struct i915_address_space___3 *, struct i915_vma_resource___3 *, enum i915_cache_level, u32);
|
|
void (*cleanup)(struct i915_address_space___3 *);
|
|
void (*foreach)(struct i915_address_space___3 *, u64, u64, void (*)(struct i915_address_space___3 *, struct i915_page_table___3 *, void *), void *);
|
|
struct i915_vma_ops___3 vma_ops;
|
|
};
|
|
|
|
struct intel_uncore_fw_get___3 {
|
|
void (*force_wake_get)(struct intel_uncore___3 *, enum forcewake_domains);
|
|
};
|
|
|
|
struct intel_uncore_forcewake_domain___3 {
|
|
struct intel_uncore___3 *uncore;
|
|
enum forcewake_domain_id id;
|
|
enum forcewake_domains mask;
|
|
unsigned int wake_count;
|
|
bool active;
|
|
struct hrtimer timer;
|
|
u32 *reg_set;
|
|
u32 *reg_ack;
|
|
};
|
|
|
|
struct i915_ppgtt___3;
|
|
|
|
struct i915_fence_reg___3;
|
|
|
|
struct i915_ggtt___3 {
|
|
struct i915_address_space___3 vm;
|
|
struct io_mapping iomap;
|
|
struct resource gmadr;
|
|
resource_size_t mappable_end;
|
|
void *gsm;
|
|
void (*invalidate)(struct i915_ggtt___3 *);
|
|
struct i915_ppgtt___3 *alias;
|
|
bool do_idle_maps;
|
|
int mtrr;
|
|
u32 bit_6_swizzle_x;
|
|
u32 bit_6_swizzle_y;
|
|
u32 pin_bias;
|
|
unsigned int num_fences;
|
|
struct i915_fence_reg___3 *fence_regs;
|
|
struct list_head fence_list;
|
|
struct list_head userfault_list;
|
|
struct mutex error_mutex;
|
|
struct drm_mm_node error_capture;
|
|
struct drm_mm_node uc_fw;
|
|
struct list_head gt_list;
|
|
};
|
|
|
|
struct i915_page_directory___3;
|
|
|
|
struct i915_ppgtt___3 {
|
|
struct i915_address_space___3 vm;
|
|
struct i915_page_directory___3 *pd;
|
|
};
|
|
|
|
struct i915_page_table___3 {
|
|
struct drm_i915_gem_object___3 *base;
|
|
union {
|
|
atomic_t used;
|
|
struct i915_page_table___3 *stash;
|
|
};
|
|
bool is_compact;
|
|
};
|
|
|
|
struct i915_page_directory___3 {
|
|
struct i915_page_table___3 pt;
|
|
spinlock_t lock;
|
|
void **entry;
|
|
};
|
|
|
|
struct i915_fence_reg___3 {
|
|
struct list_head link;
|
|
struct i915_ggtt___3 *ggtt;
|
|
struct i915_vma___3 *vma;
|
|
atomic_t pin_count;
|
|
struct i915_active active;
|
|
int id;
|
|
bool dirty;
|
|
u32 start;
|
|
u32 size;
|
|
u32 tiling;
|
|
u32 stride;
|
|
};
|
|
|
|
struct i915_mmap_offset___3;
|
|
|
|
struct i915_vma___3 {
|
|
struct drm_mm_node node;
|
|
struct i915_address_space___3 *vm;
|
|
const struct i915_vma_ops___3 *ops;
|
|
struct drm_i915_gem_object___3 *obj;
|
|
struct sg_table *pages;
|
|
void *iomap;
|
|
void *private;
|
|
struct i915_fence_reg___3 *fence;
|
|
u64 size;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_mmap_offset___3 *mmo;
|
|
u32 guard;
|
|
u32 fence_size;
|
|
u32 fence_alignment;
|
|
u32 display_alignment;
|
|
atomic_t open_count;
|
|
atomic_t flags;
|
|
struct i915_active active;
|
|
atomic_t pages_count;
|
|
bool vm_ddestroy;
|
|
struct i915_gtt_view gtt_view;
|
|
struct list_head vm_link;
|
|
struct list_head obj_link;
|
|
struct rb_node obj_node;
|
|
struct hlist_node obj_hash;
|
|
struct list_head evict_link;
|
|
struct list_head closed_link;
|
|
struct i915_vma_resource___3 *resource;
|
|
};
|
|
|
|
struct i915_vm_pt_stash___3 {
|
|
struct i915_page_table___3 *pt[2];
|
|
int pt_sz;
|
|
};
|
|
|
|
struct i915_mmap_offset___3 {
|
|
struct drm_vma_offset_node vma_node;
|
|
struct drm_i915_gem_object___3 *obj;
|
|
enum i915_mmap_type mmap_type;
|
|
struct rb_node offset;
|
|
};
|
|
|
|
struct intel_uc_ops___3 {
|
|
int (*sanitize)(struct intel_uc___3 *);
|
|
void (*init_fw)(struct intel_uc___3 *);
|
|
void (*fini_fw)(struct intel_uc___3 *);
|
|
int (*init)(struct intel_uc___3 *);
|
|
void (*fini)(struct intel_uc___3 *);
|
|
int (*init_hw)(struct intel_uc___3 *);
|
|
void (*fini_hw)(struct intel_uc___3 *);
|
|
};
|
|
|
|
struct i915_gem_context___3;
|
|
|
|
struct intel_ring___2;
|
|
|
|
struct intel_timeline___3;
|
|
|
|
struct intel_context_ops___3;
|
|
|
|
struct intel_context___3 {
|
|
union {
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
struct intel_engine_cs___3 *engine;
|
|
struct intel_engine_cs___3 *inflight;
|
|
struct i915_address_space___3 *vm;
|
|
struct i915_gem_context___3 __attribute__((btf_type_tag("rcu"))) *gem_context;
|
|
struct list_head signal_link;
|
|
struct list_head signals;
|
|
spinlock_t signal_lock;
|
|
struct i915_vma___3 *state;
|
|
u32 ring_size;
|
|
struct intel_ring___2 *ring;
|
|
struct intel_timeline___3 *timeline;
|
|
unsigned long flags;
|
|
struct {
|
|
u64 timeout_us;
|
|
} watchdog;
|
|
u32 *lrc_reg_state;
|
|
union {
|
|
struct {
|
|
u32 lrca;
|
|
u32 ccid;
|
|
};
|
|
u64 desc;
|
|
} lrc;
|
|
u32 tag;
|
|
struct intel_context_stats stats;
|
|
unsigned int active_count;
|
|
atomic_t pin_count;
|
|
struct mutex pin_mutex;
|
|
struct i915_active active;
|
|
const struct intel_context_ops___3 *ops;
|
|
struct intel_sseu sseu;
|
|
struct list_head pinned_contexts_link;
|
|
u8 wa_bb_page;
|
|
struct {
|
|
spinlock_t lock;
|
|
u32 sched_state;
|
|
struct list_head fences;
|
|
struct i915_sw_fence blocked;
|
|
struct list_head requests;
|
|
u8 prio;
|
|
u32 prio_count[4];
|
|
struct delayed_work sched_disable_delay_work;
|
|
} guc_state;
|
|
struct {
|
|
u16 id;
|
|
atomic_t ref;
|
|
struct list_head link;
|
|
} guc_id;
|
|
struct list_head destroyed_link;
|
|
struct {
|
|
union {
|
|
struct list_head child_list;
|
|
struct list_head child_link;
|
|
};
|
|
struct intel_context___3 *parent;
|
|
struct i915_request___3 *last_rq;
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
u8 number_children;
|
|
u8 child_index;
|
|
struct {
|
|
u16 wqi_head;
|
|
u16 wqi_tail;
|
|
u32 *wq_head;
|
|
u32 *wq_tail;
|
|
u32 *wq_status;
|
|
u8 parent_page;
|
|
} guc;
|
|
} parallel;
|
|
};
|
|
|
|
struct intel_hw_status_page___3 {
|
|
struct list_head timelines;
|
|
struct i915_vma___3 *vma;
|
|
u32 *addr;
|
|
};
|
|
|
|
struct i915_ctx_workarounds___3 {
|
|
struct i915_wa_ctx_bb indirect_ctx;
|
|
struct i915_wa_ctx_bb per_ctx;
|
|
struct i915_vma___3 *vma;
|
|
};
|
|
|
|
struct intel_engine_execlists___3 {
|
|
struct timer_list timer;
|
|
struct timer_list preempt;
|
|
const struct i915_request___3 *preempt_target;
|
|
u32 ccid;
|
|
u32 yield;
|
|
u32 error_interrupt;
|
|
u32 reset_ccid;
|
|
u32 *submit_reg;
|
|
u32 *ctrl_reg;
|
|
struct i915_request___3 * const *active;
|
|
struct i915_request___3 *inflight[3];
|
|
struct i915_request___3 *pending[3];
|
|
unsigned int port_mask;
|
|
struct rb_root_cached virtual;
|
|
u32 *csb_write;
|
|
u64 *csb_status;
|
|
u8 csb_size;
|
|
u8 csb_head;
|
|
};
|
|
|
|
struct intel_engine_cs___3 {
|
|
struct drm_i915_private___4 *i915;
|
|
struct intel_gt___3 *gt;
|
|
struct intel_uncore___3 *uncore;
|
|
char name[8];
|
|
enum intel_engine_id id;
|
|
enum intel_engine_id legacy_idx;
|
|
unsigned int guc_id;
|
|
intel_engine_mask_t mask;
|
|
u32 reset_domain;
|
|
intel_engine_mask_t logical_mask;
|
|
u8 class;
|
|
u8 instance;
|
|
u16 uabi_class;
|
|
u16 uabi_instance;
|
|
u32 uabi_capabilities;
|
|
u32 context_size;
|
|
u32 mmio_base;
|
|
enum forcewake_domains fw_domain;
|
|
unsigned int fw_active;
|
|
unsigned long context_tag;
|
|
struct rb_node uabi_node;
|
|
struct intel_sseu sseu;
|
|
struct i915_sched_engine___3 *sched_engine;
|
|
struct i915_request___3 *request_pool;
|
|
struct intel_context___3 *hung_ce;
|
|
struct llist_head barrier_tasks;
|
|
struct intel_context___3 *kernel_context;
|
|
struct list_head pinned_contexts_list;
|
|
intel_engine_mask_t saturated;
|
|
struct {
|
|
struct delayed_work work;
|
|
struct i915_request___3 *systole;
|
|
unsigned long blocked;
|
|
} heartbeat;
|
|
unsigned long serial;
|
|
unsigned long wakeref_serial;
|
|
struct intel_wakeref wakeref;
|
|
struct file *default_state;
|
|
struct {
|
|
struct intel_ring___2 *ring;
|
|
struct intel_timeline___3 *timeline;
|
|
} legacy;
|
|
struct ewma__engine_latency latency;
|
|
struct intel_breadcrumbs *breadcrumbs;
|
|
struct intel_engine_pmu pmu;
|
|
struct intel_hw_status_page___3 status_page;
|
|
struct i915_ctx_workarounds___3 wa_ctx;
|
|
struct i915_wa_list___3 ctx_wa_list;
|
|
struct i915_wa_list___3 wa_list;
|
|
struct i915_wa_list___3 whitelist;
|
|
u32 irq_keep_mask;
|
|
u32 irq_enable_mask;
|
|
void (*irq_enable)(struct intel_engine_cs___3 *);
|
|
void (*irq_disable)(struct intel_engine_cs___3 *);
|
|
void (*irq_handler)(struct intel_engine_cs___3 *, u16);
|
|
void (*sanitize)(struct intel_engine_cs___3 *);
|
|
int (*resume)(struct intel_engine_cs___3 *);
|
|
struct {
|
|
void (*prepare)(struct intel_engine_cs___3 *);
|
|
void (*rewind)(struct intel_engine_cs___3 *, bool);
|
|
void (*cancel)(struct intel_engine_cs___3 *);
|
|
void (*finish)(struct intel_engine_cs___3 *);
|
|
} reset;
|
|
void (*park)(struct intel_engine_cs___3 *);
|
|
void (*unpark)(struct intel_engine_cs___3 *);
|
|
void (*bump_serial)(struct intel_engine_cs___3 *);
|
|
void (*set_default_submission)(struct intel_engine_cs___3 *);
|
|
const struct intel_context_ops___3 *cops;
|
|
int (*request_alloc)(struct i915_request___3 *);
|
|
int (*emit_flush)(struct i915_request___3 *, u32);
|
|
int (*emit_bb_start)(struct i915_request___3 *, u64, u32, unsigned int);
|
|
int (*emit_init_breadcrumb)(struct i915_request___3 *);
|
|
u32 * (*emit_fini_breadcrumb)(struct i915_request___3 *, u32 *);
|
|
unsigned int emit_fini_breadcrumb_dw;
|
|
void (*submit_request)(struct i915_request___3 *);
|
|
void (*release)(struct intel_engine_cs___3 *);
|
|
void (*add_active_request)(struct i915_request___3 *);
|
|
void (*remove_active_request)(struct i915_request___3 *);
|
|
ktime_t (*busyness)(struct intel_engine_cs___3 *, ktime_t *);
|
|
struct intel_engine_execlists___3 execlists;
|
|
struct intel_timeline___3 *retire;
|
|
struct work_struct retire_work;
|
|
struct atomic_notifier_head context_status_notifier;
|
|
unsigned int flags;
|
|
struct hlist_head cmd_hash[512];
|
|
const struct drm_i915_reg_table *reg_tables;
|
|
int reg_table_count;
|
|
u32 (*get_cmd_length_mask)(u32);
|
|
struct {
|
|
union {
|
|
struct intel_engine_execlists_stats execlists;
|
|
struct intel_engine_guc_stats guc;
|
|
};
|
|
ktime_t rps;
|
|
} stats;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} props;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} defaults;
|
|
};
|
|
|
|
struct i915_sched_engine___3 {
|
|
struct kref ref;
|
|
spinlock_t lock;
|
|
struct list_head requests;
|
|
struct list_head hold;
|
|
struct tasklet_struct tasklet;
|
|
struct i915_priolist default_priolist;
|
|
int queue_priority_hint;
|
|
struct rb_root_cached queue;
|
|
bool no_priolist;
|
|
void *private_data;
|
|
void (*destroy)(struct kref *);
|
|
bool (*disabled)(struct i915_sched_engine___3 *);
|
|
void (*kick_backend)(const struct i915_request___3 *, int);
|
|
void (*bump_inflight_request_prio)(struct i915_request___3 *, int);
|
|
void (*retire_inflight_request_prio)(struct i915_request___3 *);
|
|
void (*schedule)(struct i915_request___3 *, const struct i915_sched_attr *);
|
|
};
|
|
|
|
struct i915_capture_list___3;
|
|
|
|
struct i915_request___3 {
|
|
struct dma_fence fence;
|
|
spinlock_t lock;
|
|
struct drm_i915_private___4 *i915;
|
|
struct intel_engine_cs___3 *engine;
|
|
struct intel_context___3 *context;
|
|
struct intel_ring___2 *ring;
|
|
struct intel_timeline___3 __attribute__((btf_type_tag("rcu"))) *timeline;
|
|
struct list_head signal_link;
|
|
struct llist_node signal_node;
|
|
unsigned long rcustate;
|
|
struct pin_cookie cookie;
|
|
struct i915_sw_fence submit;
|
|
union {
|
|
wait_queue_entry_t submitq;
|
|
struct i915_sw_dma_fence_cb dmaq;
|
|
struct i915_request_duration_cb duration;
|
|
};
|
|
struct llist_head execute_cb;
|
|
struct i915_sw_fence semaphore;
|
|
struct irq_work submit_work;
|
|
struct i915_sched_node sched;
|
|
struct i915_dependency dep;
|
|
intel_engine_mask_t execution_mask;
|
|
const u32 *hwsp_seqno;
|
|
u32 head;
|
|
u32 infix;
|
|
u32 postfix;
|
|
u32 tail;
|
|
u32 wa_tail;
|
|
u32 reserved_space;
|
|
struct i915_vma_resource___3 *batch_res;
|
|
struct i915_capture_list___3 *capture_list;
|
|
unsigned long emitted_jiffies;
|
|
struct list_head link;
|
|
struct i915_request_watchdog watchdog;
|
|
struct list_head guc_fence_link;
|
|
u8 guc_prio;
|
|
wait_queue_entry_t hucq;
|
|
};
|
|
|
|
struct intel_ring___2 {
|
|
struct kref ref;
|
|
struct i915_vma___3 *vma;
|
|
void *vaddr;
|
|
atomic_t pin_count;
|
|
u32 head;
|
|
u32 tail;
|
|
u32 emit;
|
|
u32 space;
|
|
u32 size;
|
|
u32 wrap;
|
|
u32 effective_size;
|
|
};
|
|
|
|
struct intel_timeline___3 {
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
struct mutex mutex;
|
|
atomic_t pin_count;
|
|
atomic_t active_count;
|
|
void *hwsp_map;
|
|
const u32 *hwsp_seqno;
|
|
struct i915_vma___3 *hwsp_ggtt;
|
|
u32 hwsp_offset;
|
|
bool has_initial_breadcrumb;
|
|
struct list_head requests;
|
|
struct i915_active_fence last_request;
|
|
struct i915_active active;
|
|
struct intel_timeline___3 *retire;
|
|
struct i915_syncmap *sync;
|
|
struct list_head link;
|
|
struct intel_gt___3 *gt;
|
|
struct list_head engine_link;
|
|
struct kref kref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_capture_list___3 {
|
|
struct i915_vma_resource___3 *vma_res;
|
|
struct i915_capture_list___3 *next;
|
|
};
|
|
|
|
struct i915_gem_ww_ctx___3;
|
|
|
|
struct intel_context_ops___3 {
|
|
unsigned long flags;
|
|
int (*alloc)(struct intel_context___3 *);
|
|
void (*revoke)(struct intel_context___3 *, struct i915_request___3 *, unsigned int);
|
|
void (*close)(struct intel_context___3 *);
|
|
int (*pre_pin)(struct intel_context___3 *, struct i915_gem_ww_ctx___3 *, void **);
|
|
int (*pin)(struct intel_context___3 *, void *);
|
|
void (*unpin)(struct intel_context___3 *);
|
|
void (*post_unpin)(struct intel_context___3 *);
|
|
void (*cancel_request)(struct intel_context___3 *, struct i915_request___3 *);
|
|
void (*enter)(struct intel_context___3 *);
|
|
void (*exit)(struct intel_context___3 *);
|
|
void (*sched_disable)(struct intel_context___3 *);
|
|
void (*reset)(struct intel_context___3 *);
|
|
void (*destroy)(struct kref *);
|
|
struct intel_context___3 * (*create_virtual)(struct intel_engine_cs___3 **, unsigned int, unsigned long);
|
|
struct intel_context___3 * (*create_parallel)(struct intel_engine_cs___3 **, unsigned int, unsigned int);
|
|
struct intel_engine_cs___3 * (*get_sibling)(struct intel_engine_cs___3 *, unsigned int);
|
|
};
|
|
|
|
struct i915_gem_ww_ctx___3 {
|
|
struct ww_acquire_ctx ctx;
|
|
struct list_head obj_list;
|
|
struct drm_i915_gem_object___3 *contended;
|
|
bool intr;
|
|
};
|
|
|
|
struct drm_i915_file_private___2;
|
|
|
|
struct i915_gem_engines___3;
|
|
|
|
struct i915_drm_client___3;
|
|
|
|
struct i915_gem_context___3 {
|
|
struct drm_i915_private___4 *i915;
|
|
struct drm_i915_file_private___2 *file_priv;
|
|
struct i915_gem_engines___3 __attribute__((btf_type_tag("rcu"))) *engines;
|
|
struct mutex engines_mutex;
|
|
struct drm_syncobj *syncobj;
|
|
struct i915_address_space___3 *vm;
|
|
struct pid *pid;
|
|
struct list_head link;
|
|
struct i915_drm_client___3 *client;
|
|
struct list_head client_link;
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct callback_head rcu;
|
|
unsigned long user_flags;
|
|
unsigned long flags;
|
|
bool uses_protected_content;
|
|
intel_wakeref_t pxp_wakeref;
|
|
struct mutex mutex;
|
|
struct i915_sched_attr sched;
|
|
atomic_t guilty_count;
|
|
atomic_t active_count;
|
|
unsigned long hang_timestamp[2];
|
|
u8 remap_slice;
|
|
struct xarray handles_vma;
|
|
struct mutex lut_mutex;
|
|
char name[24];
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head engines;
|
|
} stale;
|
|
};
|
|
|
|
struct drm_i915_file_private___2 {
|
|
struct drm_i915_private___4 *dev_priv;
|
|
union {
|
|
struct drm_file *file;
|
|
struct callback_head rcu;
|
|
};
|
|
struct mutex proto_context_lock;
|
|
struct xarray proto_context_xa;
|
|
struct xarray context_xa;
|
|
struct xarray vm_xa;
|
|
unsigned int bsd_engine;
|
|
atomic_t ban_score;
|
|
unsigned long hang_timestamp;
|
|
struct i915_drm_client___3 *client;
|
|
};
|
|
|
|
struct i915_drm_client___3 {
|
|
struct kref kref;
|
|
unsigned int id;
|
|
spinlock_t ctx_lock;
|
|
struct list_head ctx_list;
|
|
struct i915_drm_clients___3 *clients;
|
|
atomic64_t past_runtime[5];
|
|
};
|
|
|
|
struct i915_gem_engines___3 {
|
|
union {
|
|
struct list_head link;
|
|
struct callback_head rcu;
|
|
};
|
|
struct i915_sw_fence fence;
|
|
struct i915_gem_context___3 *ctx;
|
|
unsigned int num_engines;
|
|
struct intel_context___3 *engines[0];
|
|
};
|
|
|
|
struct i915_perf_stream_ops___3;
|
|
|
|
struct i915_oa_config___3;
|
|
|
|
struct i915_perf_stream___3 {
|
|
struct i915_perf___3 *perf;
|
|
struct intel_uncore___3 *uncore;
|
|
struct intel_engine_cs___3 *engine;
|
|
struct mutex lock;
|
|
u32 sample_flags;
|
|
int sample_size;
|
|
struct i915_gem_context___3 *ctx;
|
|
bool enabled;
|
|
bool hold_preemption;
|
|
const struct i915_perf_stream_ops___3 *ops;
|
|
struct i915_oa_config___3 *oa_config;
|
|
struct llist_head oa_config_bos;
|
|
struct intel_context___3 *pinned_ctx;
|
|
u32 specific_ctx_id;
|
|
u32 specific_ctx_id_mask;
|
|
struct hrtimer poll_check_timer;
|
|
wait_queue_head_t poll_wq;
|
|
bool pollin;
|
|
bool periodic;
|
|
int period_exponent;
|
|
struct {
|
|
const struct i915_oa_format *format;
|
|
struct i915_vma___3 *vma;
|
|
u8 *vaddr;
|
|
u32 last_ctx_id;
|
|
int size_exponent;
|
|
spinlock_t ptr_lock;
|
|
u32 aging_tail;
|
|
u64 aging_timestamp;
|
|
u32 head;
|
|
u32 tail;
|
|
} oa_buffer;
|
|
struct i915_vma___3 *noa_wait;
|
|
u64 poll_oa_period;
|
|
};
|
|
|
|
struct i915_perf_stream_ops___3 {
|
|
void (*enable)(struct i915_perf_stream___3 *);
|
|
void (*disable)(struct i915_perf_stream___3 *);
|
|
void (*poll_wait)(struct i915_perf_stream___3 *, struct file *, poll_table *);
|
|
int (*wait_unlocked)(struct i915_perf_stream___3 *);
|
|
int (*read)(struct i915_perf_stream___3 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
void (*destroy)(struct i915_perf_stream___3 *);
|
|
};
|
|
|
|
struct i915_oa_config___3 {
|
|
struct i915_perf___3 *perf;
|
|
char uuid[37];
|
|
int id;
|
|
const struct i915_oa_reg *mux_regs;
|
|
u32 mux_regs_len;
|
|
const struct i915_oa_reg *b_counter_regs;
|
|
u32 b_counter_regs_len;
|
|
const struct i915_oa_reg *flex_regs;
|
|
u32 flex_regs_len;
|
|
struct attribute_group sysfs_metric;
|
|
struct attribute *attrs[2];
|
|
struct kobj_attribute sysfs_metric_id;
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct intel_wm_funcs___3 {
|
|
void (*update_wm)(struct drm_i915_private___4 *);
|
|
int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_global_watermarks)(struct intel_atomic_state *);
|
|
};
|
|
|
|
struct intel_gt_coredump___3;
|
|
|
|
struct i915_gpu_coredump___3 {
|
|
struct kref ref;
|
|
ktime_t time;
|
|
ktime_t boottime;
|
|
ktime_t uptime;
|
|
unsigned long capture;
|
|
struct drm_i915_private___4 *i915;
|
|
struct intel_gt_coredump___3 *gt;
|
|
char error_msg[128];
|
|
bool simulated;
|
|
bool wakelock;
|
|
bool suspended;
|
|
int iommu;
|
|
u32 reset_count;
|
|
u32 suspend_count;
|
|
struct intel_device_info device_info;
|
|
struct intel_runtime_info runtime_info;
|
|
struct intel_driver_caps driver_caps;
|
|
struct i915_params params;
|
|
struct intel_overlay_error_state *overlay;
|
|
struct scatterlist *sgl;
|
|
struct scatterlist *fit;
|
|
};
|
|
|
|
struct intel_engine_coredump___3;
|
|
|
|
struct intel_uc_coredump___3;
|
|
|
|
struct intel_gt_coredump___3 {
|
|
const struct intel_gt___3 *_gt;
|
|
bool awake;
|
|
bool simulated;
|
|
struct intel_gt_info info;
|
|
u32 eir;
|
|
u32 pgtbl_er;
|
|
u32 ier;
|
|
u32 gtier[6];
|
|
u32 ngtier;
|
|
u32 forcewake;
|
|
u32 error;
|
|
u32 err_int;
|
|
u32 fault_data0;
|
|
u32 fault_data1;
|
|
u32 done_reg;
|
|
u32 gac_eco;
|
|
u32 gam_ecochk;
|
|
u32 gab_ctl;
|
|
u32 gfx_mode;
|
|
u32 gtt_cache;
|
|
u32 aux_err;
|
|
u32 gam_done;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
u32 derrmr;
|
|
u32 sfc_done[4];
|
|
u32 nfence;
|
|
u64 fence[32];
|
|
struct intel_engine_coredump___3 *engine;
|
|
struct intel_uc_coredump___3 *uc;
|
|
struct intel_gt_coredump___3 *next;
|
|
};
|
|
|
|
struct intel_engine_coredump___3 {
|
|
const struct intel_engine_cs___3 *engine;
|
|
bool hung;
|
|
bool simulated;
|
|
u32 reset_count;
|
|
u32 rq_head;
|
|
u32 rq_post;
|
|
u32 rq_tail;
|
|
u32 ccid;
|
|
u32 start;
|
|
u32 tail;
|
|
u32 head;
|
|
u32 ctl;
|
|
u32 mode;
|
|
u32 hws;
|
|
u32 ipeir;
|
|
u32 ipehr;
|
|
u32 esr;
|
|
u32 bbstate;
|
|
u32 instpm;
|
|
u32 instps;
|
|
u64 bbaddr;
|
|
u64 acthd;
|
|
u32 fault_reg;
|
|
u64 faddr;
|
|
u32 rc_psmi;
|
|
u32 nopid;
|
|
u32 excc;
|
|
u32 cmd_cctl;
|
|
u32 cscmdop;
|
|
u32 ctx_sr_ctl;
|
|
u32 dma_faddr_hi;
|
|
u32 dma_faddr_lo;
|
|
struct intel_instdone instdone;
|
|
struct intel_guc_state_capture *guc_capture;
|
|
struct __guc_capture_parsed_output *guc_capture_node;
|
|
struct i915_gem_context_coredump context;
|
|
struct i915_vma_coredump *vma;
|
|
struct i915_request_coredump execlist[2];
|
|
unsigned int num_ports;
|
|
struct {
|
|
u32 gfx_mode;
|
|
union {
|
|
u64 pdp[4];
|
|
u32 pp_dir_base;
|
|
};
|
|
} vm_info;
|
|
struct intel_engine_coredump___3 *next;
|
|
};
|
|
|
|
struct intel_uc_coredump___3 {
|
|
struct intel_uc_fw___3 guc_fw;
|
|
struct intel_uc_fw___3 huc_fw;
|
|
struct guc_info guc;
|
|
};
|
|
|
|
struct intel_memory_region_ops___3 {
|
|
unsigned int flags;
|
|
int (*init)(struct intel_memory_region___3 *);
|
|
int (*release)(struct intel_memory_region___3 *);
|
|
int (*init_object)(struct intel_memory_region___3 *, struct drm_i915_gem_object___3 *, resource_size_t, resource_size_t, resource_size_t, unsigned int);
|
|
};
|
|
|
|
struct ivch_priv {
|
|
bool quiet;
|
|
u16 width;
|
|
u16 height;
|
|
u16 reg_backup[24];
|
|
};
|
|
|
|
struct i915_pxp_component_ops;
|
|
|
|
struct i915_pxp_component {
|
|
struct device *tee_dev;
|
|
const struct i915_pxp_component_ops *ops;
|
|
struct mutex mutex;
|
|
};
|
|
|
|
struct i915_pxp_component_ops {
|
|
struct module *owner;
|
|
int (*send)(struct device *, const void *, size_t);
|
|
int (*recv)(struct device *, void *, size_t);
|
|
ssize_t (*gsc_command)(struct device *, u8, u32, struct scatterlist *, size_t, struct scatterlist *);
|
|
};
|
|
|
|
struct i915_audio_component {
|
|
struct drm_audio_component base;
|
|
int aud_sample_rate[9];
|
|
};
|
|
|
|
enum i915_component_type {
|
|
I915_COMPONENT_AUDIO = 1,
|
|
I915_COMPONENT_HDCP = 2,
|
|
I915_COMPONENT_PXP = 3,
|
|
};
|
|
|
|
enum pxp_status {
|
|
PXP_STATUS_SUCCESS = 0,
|
|
PXP_STATUS_ERROR_API_VERSION = 4098,
|
|
PXP_STATUS_OP_NOT_PERMITTED = 16403,
|
|
};
|
|
|
|
struct pxp_cmd_header {
|
|
u32 api_version;
|
|
u32 command_id;
|
|
union {
|
|
u32 status;
|
|
u32 stream_id;
|
|
};
|
|
u32 buffer_len;
|
|
};
|
|
|
|
struct pxp42_create_arb_in {
|
|
struct pxp_cmd_header header;
|
|
u32 protection_mode;
|
|
u32 session_id;
|
|
};
|
|
|
|
struct pxp42_create_arb_out {
|
|
struct pxp_cmd_header header;
|
|
};
|
|
|
|
struct mdiobus_devres {
|
|
struct mii_bus *mii;
|
|
};
|
|
|
|
enum ifla_geneve_df {
|
|
GENEVE_DF_UNSET = 0,
|
|
GENEVE_DF_SET = 1,
|
|
GENEVE_DF_INHERIT = 2,
|
|
__GENEVE_DF_END = 3,
|
|
GENEVE_DF_MAX = 2,
|
|
};
|
|
|
|
enum udp_parsable_tunnel_type {
|
|
UDP_TUNNEL_TYPE_VXLAN = 1,
|
|
UDP_TUNNEL_TYPE_GENEVE = 2,
|
|
UDP_TUNNEL_TYPE_VXLAN_GPE = 4,
|
|
};
|
|
|
|
enum {
|
|
IFLA_GENEVE_UNSPEC = 0,
|
|
IFLA_GENEVE_ID = 1,
|
|
IFLA_GENEVE_REMOTE = 2,
|
|
IFLA_GENEVE_TTL = 3,
|
|
IFLA_GENEVE_TOS = 4,
|
|
IFLA_GENEVE_PORT = 5,
|
|
IFLA_GENEVE_COLLECT_METADATA = 6,
|
|
IFLA_GENEVE_REMOTE6 = 7,
|
|
IFLA_GENEVE_UDP_CSUM = 8,
|
|
IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 9,
|
|
IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 10,
|
|
IFLA_GENEVE_LABEL = 11,
|
|
IFLA_GENEVE_TTL_INHERIT = 12,
|
|
IFLA_GENEVE_DF = 13,
|
|
IFLA_GENEVE_INNER_PROTO_INHERIT = 14,
|
|
__IFLA_GENEVE_MAX = 15,
|
|
};
|
|
|
|
struct geneve_sock {
|
|
bool collect_md;
|
|
struct list_head list;
|
|
struct socket *sock;
|
|
struct callback_head rcu;
|
|
int refcnt;
|
|
struct hlist_head vni_list[1024];
|
|
};
|
|
|
|
struct napi_gro_cb {
|
|
void *frag0;
|
|
unsigned int frag0_len;
|
|
int data_offset;
|
|
u16 flush;
|
|
u16 flush_id;
|
|
u16 count;
|
|
u16 proto;
|
|
unsigned long age;
|
|
union {
|
|
struct {
|
|
u16 gro_remcsum_start;
|
|
u8 same_flow: 1;
|
|
u8 encap_mark: 1;
|
|
u8 csum_valid: 1;
|
|
u8 csum_cnt: 3;
|
|
u8 free: 2;
|
|
u8 is_ipv6: 1;
|
|
u8 is_fou: 1;
|
|
u8 is_atomic: 1;
|
|
u8 recursion_counter: 4;
|
|
u8 is_flist: 1;
|
|
};
|
|
struct {
|
|
u16 gro_remcsum_start;
|
|
u8 same_flow: 1;
|
|
u8 encap_mark: 1;
|
|
u8 csum_valid: 1;
|
|
u8 csum_cnt: 3;
|
|
u8 free: 2;
|
|
u8 is_ipv6: 1;
|
|
u8 is_fou: 1;
|
|
u8 is_atomic: 1;
|
|
u8 recursion_counter: 4;
|
|
u8 is_flist: 1;
|
|
} zeroed;
|
|
};
|
|
__wsum csum;
|
|
struct sk_buff *last;
|
|
};
|
|
|
|
struct genevehdr {
|
|
u8 opt_len: 6;
|
|
u8 ver: 2;
|
|
u8 rsvd1: 6;
|
|
u8 critical: 1;
|
|
u8 oam: 1;
|
|
__be16 proto_type;
|
|
u8 vni[3];
|
|
u8 rsvd2;
|
|
u8 options[0];
|
|
};
|
|
|
|
struct geneve_dev;
|
|
|
|
struct geneve_dev_node {
|
|
struct hlist_node hlist;
|
|
struct geneve_dev *geneve;
|
|
};
|
|
|
|
struct geneve_config {
|
|
struct ip_tunnel_info info;
|
|
bool collect_md;
|
|
bool use_udp6_rx_checksums;
|
|
bool ttl_inherit;
|
|
enum ifla_geneve_df df;
|
|
bool inner_proto_inherit;
|
|
};
|
|
|
|
struct geneve_dev {
|
|
struct geneve_dev_node hlist4;
|
|
struct geneve_dev_node hlist6;
|
|
struct net *net;
|
|
struct net_device *dev;
|
|
struct geneve_sock __attribute__((btf_type_tag("rcu"))) *sock4;
|
|
struct geneve_sock __attribute__((btf_type_tag("rcu"))) *sock6;
|
|
struct list_head next;
|
|
struct gro_cells gro_cells;
|
|
struct geneve_config cfg;
|
|
};
|
|
|
|
struct geneve_net {
|
|
struct list_head geneve_list;
|
|
struct list_head sock_list;
|
|
};
|
|
|
|
typedef int (*udp_tunnel_encap_rcv_t)(struct sock *, struct sk_buff *);
|
|
|
|
typedef int (*udp_tunnel_encap_err_lookup_t)(struct sock *, struct sk_buff *);
|
|
|
|
typedef void (*udp_tunnel_encap_err_rcv_t)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
|
|
|
|
typedef void (*udp_tunnel_encap_destroy_t)(struct sock *);
|
|
|
|
typedef struct sk_buff * (*udp_tunnel_gro_receive_t)(struct sock *, struct list_head *, struct sk_buff *);
|
|
|
|
typedef int (*udp_tunnel_gro_complete_t)(struct sock *, struct sk_buff *, int);
|
|
|
|
struct udp_tunnel_sock_cfg {
|
|
void *sk_user_data;
|
|
__u8 encap_type;
|
|
udp_tunnel_encap_rcv_t encap_rcv;
|
|
udp_tunnel_encap_err_lookup_t encap_err_lookup;
|
|
udp_tunnel_encap_err_rcv_t encap_err_rcv;
|
|
udp_tunnel_encap_destroy_t encap_destroy;
|
|
udp_tunnel_gro_receive_t gro_receive;
|
|
udp_tunnel_gro_complete_t gro_complete;
|
|
};
|
|
|
|
typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *);
|
|
|
|
struct packet_offload {
|
|
__be16 type;
|
|
u16 priority;
|
|
struct offload_callbacks callbacks;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum usb_dr_mode {
|
|
USB_DR_MODE_UNKNOWN = 0,
|
|
USB_DR_MODE_HOST = 1,
|
|
USB_DR_MODE_PERIPHERAL = 2,
|
|
USB_DR_MODE_OTG = 3,
|
|
};
|
|
|
|
struct acpi_bus_type {
|
|
struct list_head list;
|
|
const char *name;
|
|
bool (*match)(struct device *);
|
|
struct acpi_device * (*find_companion)(struct device *);
|
|
void (*setup)(struct device *);
|
|
};
|
|
|
|
struct acpi_pld_info {
|
|
u8 revision;
|
|
u8 ignore_color;
|
|
u8 red;
|
|
u8 green;
|
|
u8 blue;
|
|
u16 width;
|
|
u16 height;
|
|
u8 user_visible;
|
|
u8 dock;
|
|
u8 lid;
|
|
u8 panel;
|
|
u8 vertical_position;
|
|
u8 horizontal_position;
|
|
u8 shape;
|
|
u8 group_orientation;
|
|
u8 group_token;
|
|
u8 group_position;
|
|
u8 bay;
|
|
u8 ejectable;
|
|
u8 ospm_eject_required;
|
|
u8 cabinet_number;
|
|
u8 card_cage_number;
|
|
u8 reference;
|
|
u8 rotation;
|
|
u8 order;
|
|
u8 reserved;
|
|
u16 vertical_offset;
|
|
u16 horizontal_offset;
|
|
};
|
|
|
|
enum serio_event_type {
|
|
SERIO_RESCAN_PORT = 0,
|
|
SERIO_RECONNECT_PORT = 1,
|
|
SERIO_RECONNECT_SUBTREE = 2,
|
|
SERIO_REGISTER_PORT = 3,
|
|
SERIO_ATTACH_DRIVER = 4,
|
|
};
|
|
|
|
struct serio_event {
|
|
enum serio_event_type type;
|
|
void *object;
|
|
struct module *owner;
|
|
struct list_head node;
|
|
};
|
|
|
|
typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
|
|
|
|
typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
|
|
|
|
typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
|
|
|
|
typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int);
|
|
|
|
struct class_compat;
|
|
|
|
struct trace_event_raw_i2c_write {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 msg_nr;
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u16 len;
|
|
u32 __data_loc_buf;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i2c_read {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 msg_nr;
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u16 len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i2c_reply {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 msg_nr;
|
|
__u16 addr;
|
|
__u16 flags;
|
|
__u16 len;
|
|
u32 __data_loc_buf;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i2c_result {
|
|
struct trace_entry ent;
|
|
int adapter_nr;
|
|
__u16 nr_msgs;
|
|
__s16 ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct i2c_devinfo {
|
|
struct list_head list;
|
|
int busnum;
|
|
struct i2c_board_info board_info;
|
|
};
|
|
|
|
struct trace_event_data_offsets_i2c_write {
|
|
u32 buf;
|
|
};
|
|
|
|
struct trace_event_data_offsets_i2c_reply {
|
|
u32 buf;
|
|
};
|
|
|
|
struct trace_event_data_offsets_i2c_read {};
|
|
|
|
struct trace_event_data_offsets_i2c_result {};
|
|
|
|
struct i2c_timings {
|
|
u32 bus_freq_hz;
|
|
u32 scl_rise_ns;
|
|
u32 scl_fall_ns;
|
|
u32 scl_int_delay_ns;
|
|
u32 sda_fall_ns;
|
|
u32 sda_hold_ns;
|
|
u32 digital_filter_width_ns;
|
|
u32 analog_filter_cutoff_freq_hz;
|
|
};
|
|
|
|
struct i2c_cmd_arg {
|
|
unsigned int cmd;
|
|
void *arg;
|
|
};
|
|
|
|
struct i2c_device_identity {
|
|
u16 manufacturer_id;
|
|
u16 part_id;
|
|
u8 die_revision;
|
|
};
|
|
|
|
struct od_ops {
|
|
unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int);
|
|
};
|
|
|
|
struct dbs_data;
|
|
|
|
struct policy_dbs_info;
|
|
|
|
struct dbs_governor {
|
|
struct cpufreq_governor gov;
|
|
struct kobj_type kobj_type;
|
|
struct dbs_data *gdbs_data;
|
|
unsigned int (*gov_dbs_update)(struct cpufreq_policy *);
|
|
struct policy_dbs_info * (*alloc)();
|
|
void (*free)(struct policy_dbs_info *);
|
|
int (*init)(struct dbs_data *);
|
|
void (*exit)(struct dbs_data *);
|
|
void (*start)(struct cpufreq_policy *);
|
|
};
|
|
|
|
struct gov_attr_set {
|
|
struct kobject kobj;
|
|
struct list_head policy_list;
|
|
struct mutex update_lock;
|
|
int usage_count;
|
|
};
|
|
|
|
struct dbs_data {
|
|
struct gov_attr_set attr_set;
|
|
struct dbs_governor *gov;
|
|
void *tuners;
|
|
unsigned int ignore_nice_load;
|
|
unsigned int sampling_rate;
|
|
unsigned int sampling_down_factor;
|
|
unsigned int up_threshold;
|
|
unsigned int io_is_busy;
|
|
};
|
|
|
|
struct policy_dbs_info {
|
|
struct cpufreq_policy *policy;
|
|
struct mutex update_mutex;
|
|
u64 last_sample_time;
|
|
s64 sample_delay_ns;
|
|
atomic_t work_count;
|
|
struct irq_work irq_work;
|
|
struct work_struct work;
|
|
struct dbs_data *dbs_data;
|
|
struct list_head list;
|
|
unsigned int rate_mult;
|
|
unsigned int idle_periods;
|
|
bool is_shared;
|
|
bool work_in_progress;
|
|
};
|
|
|
|
struct governor_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct gov_attr_set *, char *);
|
|
ssize_t (*store)(struct gov_attr_set *, const char *, size_t);
|
|
};
|
|
|
|
enum {
|
|
OD_NORMAL_SAMPLE = 0,
|
|
OD_SUB_SAMPLE = 1,
|
|
};
|
|
|
|
struct od_policy_dbs_info {
|
|
struct policy_dbs_info policy_dbs;
|
|
unsigned int freq_lo;
|
|
unsigned int freq_lo_delay_us;
|
|
unsigned int freq_hi_delay_us;
|
|
unsigned int sample_type: 1;
|
|
};
|
|
|
|
struct od_dbs_tuners {
|
|
unsigned int powersave_bias;
|
|
};
|
|
|
|
struct firmware_map_entry;
|
|
|
|
struct memmap_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct firmware_map_entry *, char *);
|
|
};
|
|
|
|
struct firmware_map_entry {
|
|
u64 start;
|
|
u64 end;
|
|
const char *type;
|
|
struct list_head list;
|
|
struct kobject kobj;
|
|
};
|
|
|
|
enum lg_g15_model {
|
|
LG_G15 = 0,
|
|
LG_G15_V2 = 1,
|
|
LG_G510 = 2,
|
|
LG_G510_USB_AUDIO = 3,
|
|
LG_Z10 = 4,
|
|
};
|
|
|
|
enum lg_g15_led_type {
|
|
LG_G15_KBD_BRIGHTNESS = 0,
|
|
LG_G15_LCD_BRIGHTNESS = 1,
|
|
LG_G15_BRIGHTNESS_MAX = 2,
|
|
LG_G15_MACRO_PRESET1 = 2,
|
|
LG_G15_MACRO_PRESET2 = 3,
|
|
LG_G15_MACRO_PRESET3 = 4,
|
|
LG_G15_MACRO_RECORD = 5,
|
|
LG_G15_LED_MAX = 6,
|
|
};
|
|
|
|
struct lg_g15_led {
|
|
struct led_classdev cdev;
|
|
enum led_brightness brightness;
|
|
enum lg_g15_led_type led;
|
|
u8 red;
|
|
u8 green;
|
|
u8 blue;
|
|
};
|
|
|
|
struct lg_g15_data {
|
|
u8 transfer_buf[20];
|
|
struct mutex mutex;
|
|
struct work_struct work;
|
|
struct input_dev *input;
|
|
struct hid_device *hdev;
|
|
enum lg_g15_model model;
|
|
struct lg_g15_led leds[6];
|
|
bool game_mode_enabled;
|
|
};
|
|
|
|
struct pcm_format_data {
|
|
unsigned char width;
|
|
unsigned char phys;
|
|
signed char le;
|
|
signed char signd;
|
|
unsigned char silence[8];
|
|
};
|
|
|
|
typedef void (*btf_trace_hda_send_cmd)(void *, struct hdac_bus *, unsigned int);
|
|
|
|
typedef void (*btf_trace_hda_get_response)(void *, struct hdac_bus *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_hda_unsol_event)(void *, struct hdac_bus *, u32, u32);
|
|
|
|
typedef void (*btf_trace_snd_hdac_stream_start)(void *, struct hdac_bus *, struct hdac_stream *);
|
|
|
|
typedef void (*btf_trace_snd_hdac_stream_stop)(void *, struct hdac_bus *, struct hdac_stream *);
|
|
|
|
struct trace_event_raw_hda_send_cmd {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u32 cmd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hda_get_response {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u32 addr;
|
|
u32 res;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hda_unsol_event {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u32 res;
|
|
u32 res_ex;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hdac_stream {
|
|
struct trace_entry ent;
|
|
unsigned char stream_tag;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_hda_send_cmd {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_hda_get_response {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_hda_unsol_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_hdac_stream {};
|
|
|
|
struct rx_queue_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct netdev_rx_queue *, char *);
|
|
ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t);
|
|
};
|
|
|
|
struct netdev_queue_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct netdev_queue *, char *);
|
|
ssize_t (*store)(struct netdev_queue *, const char *, size_t);
|
|
};
|
|
|
|
enum xps_map_type {
|
|
XPS_CPUS = 0,
|
|
XPS_RXQS = 1,
|
|
XPS_MAPS_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
TCA_CGROUP_UNSPEC = 0,
|
|
TCA_CGROUP_ACT = 1,
|
|
TCA_CGROUP_POLICE = 2,
|
|
TCA_CGROUP_EMATCHES = 3,
|
|
__TCA_CGROUP_MAX = 4,
|
|
};
|
|
|
|
struct tcf_ematch_tree_hdr {
|
|
__u16 nmatches;
|
|
__u16 progid;
|
|
};
|
|
|
|
struct tcf_ematch;
|
|
|
|
struct tcf_ematch_tree {
|
|
struct tcf_ematch_tree_hdr hdr;
|
|
struct tcf_ematch *matches;
|
|
};
|
|
|
|
struct cls_cgroup_head {
|
|
u32 handle;
|
|
struct tcf_exts exts;
|
|
struct tcf_ematch_tree ematches;
|
|
struct tcf_proto *tp;
|
|
struct rcu_work rwork;
|
|
};
|
|
|
|
struct tcf_ematch_ops;
|
|
|
|
struct tcf_ematch {
|
|
struct tcf_ematch_ops *ops;
|
|
unsigned long data;
|
|
unsigned int datalen;
|
|
u16 matchid;
|
|
u16 flags;
|
|
struct net *net;
|
|
};
|
|
|
|
struct tcf_pkt_info;
|
|
|
|
struct tcf_ematch_ops {
|
|
int kind;
|
|
int datalen;
|
|
int (*change)(struct net *, void *, int, struct tcf_ematch *);
|
|
int (*match)(struct sk_buff *, struct tcf_ematch *, struct tcf_pkt_info *);
|
|
void (*destroy)(struct tcf_ematch *);
|
|
int (*dump)(struct sk_buff *, struct tcf_ematch *);
|
|
struct module *owner;
|
|
struct list_head link;
|
|
};
|
|
|
|
struct tcf_pkt_info {
|
|
unsigned char *ptr;
|
|
int nexthdr;
|
|
};
|
|
|
|
enum ethtool_fec_config_bits {
|
|
ETHTOOL_FEC_NONE_BIT = 0,
|
|
ETHTOOL_FEC_AUTO_BIT = 1,
|
|
ETHTOOL_FEC_OFF_BIT = 2,
|
|
ETHTOOL_FEC_RS_BIT = 3,
|
|
ETHTOOL_FEC_BASER_BIT = 4,
|
|
ETHTOOL_FEC_LLRS_BIT = 5,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_FEC_UNSPEC = 0,
|
|
ETHTOOL_A_FEC_HEADER = 1,
|
|
ETHTOOL_A_FEC_MODES = 2,
|
|
ETHTOOL_A_FEC_AUTO = 3,
|
|
ETHTOOL_A_FEC_ACTIVE = 4,
|
|
ETHTOOL_A_FEC_STATS = 5,
|
|
__ETHTOOL_A_FEC_CNT = 6,
|
|
ETHTOOL_A_FEC_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_FEC_STAT_UNSPEC = 0,
|
|
ETHTOOL_A_FEC_STAT_PAD = 1,
|
|
ETHTOOL_A_FEC_STAT_CORRECTED = 2,
|
|
ETHTOOL_A_FEC_STAT_UNCORR = 3,
|
|
ETHTOOL_A_FEC_STAT_CORR_BITS = 4,
|
|
__ETHTOOL_A_FEC_STAT_CNT = 5,
|
|
ETHTOOL_A_FEC_STAT_MAX = 4,
|
|
};
|
|
|
|
struct fec_stat_grp {
|
|
u64 stats[9];
|
|
u8 cnt;
|
|
};
|
|
|
|
struct fec_reply_data {
|
|
struct ethnl_reply_data base;
|
|
unsigned long fec_link_modes[2];
|
|
u32 active_fec;
|
|
u8 fec_auto;
|
|
struct fec_stat_grp corr;
|
|
struct fec_stat_grp uncorr;
|
|
struct fec_stat_grp corr_bits;
|
|
};
|
|
|
|
enum xt_policy_flags {
|
|
XT_POLICY_MATCH_IN = 1,
|
|
XT_POLICY_MATCH_OUT = 2,
|
|
XT_POLICY_MATCH_NONE = 4,
|
|
XT_POLICY_MATCH_STRICT = 8,
|
|
};
|
|
|
|
struct xt_policy_spec {
|
|
__u8 saddr: 1;
|
|
__u8 daddr: 1;
|
|
__u8 proto: 1;
|
|
__u8 mode: 1;
|
|
__u8 spi: 1;
|
|
__u8 reqid: 1;
|
|
};
|
|
|
|
struct xt_policy_elem {
|
|
union {
|
|
struct {
|
|
union nf_inet_addr saddr;
|
|
union nf_inet_addr smask;
|
|
union nf_inet_addr daddr;
|
|
union nf_inet_addr dmask;
|
|
};
|
|
};
|
|
__be32 spi;
|
|
__u32 reqid;
|
|
__u8 proto;
|
|
__u8 mode;
|
|
struct xt_policy_spec match;
|
|
struct xt_policy_spec invert;
|
|
};
|
|
|
|
struct xt_policy_info {
|
|
struct xt_policy_elem pol[4];
|
|
__u16 flags;
|
|
__u16 len;
|
|
};
|
|
|
|
struct udp_seq_afinfo {
|
|
sa_family_t family;
|
|
struct udp_table *udp_table;
|
|
};
|
|
|
|
struct skb_gso_cb {
|
|
union {
|
|
int mac_offset;
|
|
int data_offset;
|
|
};
|
|
int encap_level;
|
|
__wsum csum;
|
|
__u16 csum_start;
|
|
};
|
|
|
|
enum {
|
|
SEG6_ATTR_UNSPEC = 0,
|
|
SEG6_ATTR_DST = 1,
|
|
SEG6_ATTR_DSTLEN = 2,
|
|
SEG6_ATTR_HMACKEYID = 3,
|
|
SEG6_ATTR_SECRET = 4,
|
|
SEG6_ATTR_SECRETLEN = 5,
|
|
SEG6_ATTR_ALGID = 6,
|
|
SEG6_ATTR_HMACINFO = 7,
|
|
__SEG6_ATTR_MAX = 8,
|
|
};
|
|
|
|
enum {
|
|
SEG6_CMD_UNSPEC = 0,
|
|
SEG6_CMD_SETHMAC = 1,
|
|
SEG6_CMD_DUMPHMAC = 2,
|
|
SEG6_CMD_SET_TUNSRC = 3,
|
|
SEG6_CMD_GET_TUNSRC = 4,
|
|
__SEG6_CMD_MAX = 5,
|
|
};
|
|
|
|
struct sr6_tlv {
|
|
__u8 type;
|
|
__u8 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct frag_queue {
|
|
struct inet_frag_queue q;
|
|
int iif;
|
|
__u16 nhoffset;
|
|
u8 ecn;
|
|
};
|
|
|
|
struct nft_ct_frag6_pernet {
|
|
struct ctl_table_header *nf_frag_frags_hdr;
|
|
struct fqdir *fqdir;
|
|
};
|
|
|
|
struct rpc_iostats {
|
|
spinlock_t om_lock;
|
|
unsigned long om_ops;
|
|
unsigned long om_ntrans;
|
|
unsigned long om_timeouts;
|
|
unsigned long long om_bytes_sent;
|
|
unsigned long long om_bytes_recv;
|
|
ktime_t om_queue;
|
|
ktime_t om_rtt;
|
|
ktime_t om_execute;
|
|
unsigned long om_error_status;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
enum {
|
|
RPC_PIPEFS_MOUNT = 0,
|
|
RPC_PIPEFS_UMOUNT = 1,
|
|
};
|
|
|
|
struct rpc_cb_add_xprt_calldata {
|
|
struct rpc_xprt_switch *xps;
|
|
struct rpc_xprt *xprt;
|
|
};
|
|
|
|
struct rpc_add_xprt_test {
|
|
void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *);
|
|
void *data;
|
|
};
|
|
|
|
struct connect_timeout_data {
|
|
unsigned long connect_timeout;
|
|
unsigned long reconnect_timeout;
|
|
};
|
|
|
|
enum wiphy_wowlan_support_flags {
|
|
WIPHY_WOWLAN_ANY = 1,
|
|
WIPHY_WOWLAN_MAGIC_PKT = 2,
|
|
WIPHY_WOWLAN_DISCONNECT = 4,
|
|
WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = 8,
|
|
WIPHY_WOWLAN_GTK_REKEY_FAILURE = 16,
|
|
WIPHY_WOWLAN_EAP_IDENTITY_REQ = 32,
|
|
WIPHY_WOWLAN_4WAY_HANDSHAKE = 64,
|
|
WIPHY_WOWLAN_RFKILL_RELEASE = 128,
|
|
WIPHY_WOWLAN_NET_DETECT = 256,
|
|
};
|
|
|
|
enum ieee80211_regulatory_flags {
|
|
REGULATORY_CUSTOM_REG = 1,
|
|
REGULATORY_STRICT_REG = 2,
|
|
REGULATORY_DISABLE_BEACON_HINTS = 4,
|
|
REGULATORY_COUNTRY_IE_FOLLOW_POWER = 8,
|
|
REGULATORY_COUNTRY_IE_IGNORE = 16,
|
|
REGULATORY_ENABLE_RELAX_NO_IR = 32,
|
|
REGULATORY_IGNORE_STALE_KICKOFF = 64,
|
|
REGULATORY_WIPHY_SELF_MANAGED = 128,
|
|
};
|
|
|
|
enum rfkill_hard_block_reasons {
|
|
RFKILL_HARD_BLOCK_SIGNAL = 1,
|
|
RFKILL_HARD_BLOCK_NOT_OWNER = 2,
|
|
};
|
|
|
|
struct cfg80211_beacon_registration {
|
|
struct list_head list;
|
|
u32 nlportid;
|
|
};
|
|
|
|
struct mcs_group {
|
|
u8 shift;
|
|
u16 duration[12];
|
|
};
|
|
|
|
enum mac80211_rx_encoding {
|
|
RX_ENC_LEGACY = 0,
|
|
RX_ENC_HT = 1,
|
|
RX_ENC_VHT = 2,
|
|
RX_ENC_HE = 3,
|
|
RX_ENC_EHT = 4,
|
|
};
|
|
|
|
enum mac80211_rx_encoding_flags {
|
|
RX_ENC_FLAG_SHORTPRE = 1,
|
|
RX_ENC_FLAG_SHORT_GI = 4,
|
|
RX_ENC_FLAG_HT_GF = 8,
|
|
RX_ENC_FLAG_STBC_MASK = 48,
|
|
RX_ENC_FLAG_LDPC = 64,
|
|
RX_ENC_FLAG_BF = 128,
|
|
};
|
|
|
|
struct compress_format {
|
|
unsigned char magic[2];
|
|
const char *name;
|
|
decompress_fn decompressor;
|
|
};
|
|
|
|
struct in6_addr;
|
|
|
|
struct vdso_exception_table_entry {
|
|
int insn;
|
|
int fixup;
|
|
};
|
|
|
|
struct aperfmperf {
|
|
seqcount_t seq;
|
|
unsigned long last_update;
|
|
u64 acnt;
|
|
u64 mcnt;
|
|
u64 aperf;
|
|
u64 mperf;
|
|
};
|
|
|
|
struct pv_info {
|
|
const char *name;
|
|
};
|
|
|
|
struct pv_cpu_ops {
|
|
void (*io_delay)();
|
|
};
|
|
|
|
struct pv_irq_ops {};
|
|
|
|
struct pv_mmu_ops {
|
|
void (*flush_tlb_user)();
|
|
void (*flush_tlb_kernel)();
|
|
void (*flush_tlb_one_user)(unsigned long);
|
|
void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *);
|
|
void (*tlb_remove_table)(struct mmu_gather *, void *);
|
|
void (*exit_mmap)(struct mm_struct *);
|
|
void (*notify_page_enc_status_changed)(unsigned long, int, bool);
|
|
};
|
|
|
|
struct paravirt_callee_save {
|
|
void *func;
|
|
};
|
|
|
|
struct pv_lock_ops {
|
|
void (*queued_spin_lock_slowpath)(struct qspinlock *, u32);
|
|
struct paravirt_callee_save queued_spin_unlock;
|
|
void (*wait)(u8 *, u8);
|
|
void (*kick)(int);
|
|
struct paravirt_callee_save vcpu_is_preempted;
|
|
};
|
|
|
|
struct paravirt_patch_template {
|
|
struct pv_cpu_ops cpu;
|
|
struct pv_irq_ops irq;
|
|
struct pv_mmu_ops mmu;
|
|
struct pv_lock_ops lock;
|
|
};
|
|
|
|
enum paravirt_lazy_mode {
|
|
PARAVIRT_LAZY_NONE = 0,
|
|
PARAVIRT_LAZY_MMU = 1,
|
|
PARAVIRT_LAZY_CPU = 2,
|
|
};
|
|
|
|
union text_poke_insn {
|
|
u8 text[5];
|
|
struct {
|
|
u8 opcode;
|
|
s32 disp;
|
|
} __attribute__((packed));
|
|
};
|
|
|
|
enum sysctl_writes_mode {
|
|
SYSCTL_WRITES_LEGACY = -1,
|
|
SYSCTL_WRITES_WARN = 0,
|
|
SYSCTL_WRITES_STRICT = 1,
|
|
};
|
|
|
|
struct do_proc_dointvec_minmax_conv_param {
|
|
int *min;
|
|
int *max;
|
|
};
|
|
|
|
struct do_proc_douintvec_minmax_conv_param {
|
|
unsigned int *min;
|
|
unsigned int *max;
|
|
};
|
|
|
|
struct dev_printk_info;
|
|
|
|
enum {
|
|
IRQ_SET_MASK_OK = 0,
|
|
IRQ_SET_MASK_OK_NOCOPY = 1,
|
|
IRQ_SET_MASK_OK_DONE = 2,
|
|
};
|
|
|
|
enum {
|
|
IRQC_IS_HARDIRQ = 0,
|
|
IRQC_IS_NESTED = 1,
|
|
};
|
|
|
|
typedef __kernel_long_t __kernel_suseconds_t;
|
|
|
|
typedef __kernel_suseconds_t suseconds_t;
|
|
|
|
enum freezer_state_flags {
|
|
CGROUP_FREEZER_ONLINE = 1,
|
|
CGROUP_FREEZING_SELF = 2,
|
|
CGROUP_FREEZING_PARENT = 4,
|
|
CGROUP_FROZEN = 8,
|
|
CGROUP_FREEZING = 6,
|
|
};
|
|
|
|
struct freezer {
|
|
struct cgroup_subsys_state css;
|
|
unsigned int state;
|
|
};
|
|
|
|
struct trace_mark {
|
|
unsigned long long val;
|
|
char sym;
|
|
};
|
|
|
|
struct ctx_switch_entry {
|
|
struct trace_entry ent;
|
|
unsigned int prev_pid;
|
|
unsigned int next_pid;
|
|
unsigned int next_cpu;
|
|
unsigned char prev_prio;
|
|
unsigned char prev_state;
|
|
unsigned char next_prio;
|
|
unsigned char next_state;
|
|
};
|
|
|
|
struct hwlat_entry {
|
|
struct trace_entry ent;
|
|
u64 duration;
|
|
u64 outer_duration;
|
|
u64 nmi_total_ts;
|
|
struct timespec64 timestamp;
|
|
unsigned int nmi_count;
|
|
unsigned int seqnum;
|
|
unsigned int count;
|
|
};
|
|
|
|
struct osnoise_entry {
|
|
struct trace_entry ent;
|
|
u64 noise;
|
|
u64 runtime;
|
|
u64 max_sample;
|
|
unsigned int hw_count;
|
|
unsigned int nmi_count;
|
|
unsigned int irq_count;
|
|
unsigned int softirq_count;
|
|
unsigned int thread_count;
|
|
};
|
|
|
|
struct timerlat_entry {
|
|
struct trace_entry ent;
|
|
unsigned int seqnum;
|
|
int context;
|
|
u64 timer_latency;
|
|
};
|
|
|
|
enum bpf_cmd {
|
|
BPF_MAP_CREATE = 0,
|
|
BPF_MAP_LOOKUP_ELEM = 1,
|
|
BPF_MAP_UPDATE_ELEM = 2,
|
|
BPF_MAP_DELETE_ELEM = 3,
|
|
BPF_MAP_GET_NEXT_KEY = 4,
|
|
BPF_PROG_LOAD = 5,
|
|
BPF_OBJ_PIN = 6,
|
|
BPF_OBJ_GET = 7,
|
|
BPF_PROG_ATTACH = 8,
|
|
BPF_PROG_DETACH = 9,
|
|
BPF_PROG_TEST_RUN = 10,
|
|
BPF_PROG_RUN = 10,
|
|
BPF_PROG_GET_NEXT_ID = 11,
|
|
BPF_MAP_GET_NEXT_ID = 12,
|
|
BPF_PROG_GET_FD_BY_ID = 13,
|
|
BPF_MAP_GET_FD_BY_ID = 14,
|
|
BPF_OBJ_GET_INFO_BY_FD = 15,
|
|
BPF_PROG_QUERY = 16,
|
|
BPF_RAW_TRACEPOINT_OPEN = 17,
|
|
BPF_BTF_LOAD = 18,
|
|
BPF_BTF_GET_FD_BY_ID = 19,
|
|
BPF_TASK_FD_QUERY = 20,
|
|
BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21,
|
|
BPF_MAP_FREEZE = 22,
|
|
BPF_BTF_GET_NEXT_ID = 23,
|
|
BPF_MAP_LOOKUP_BATCH = 24,
|
|
BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25,
|
|
BPF_MAP_UPDATE_BATCH = 26,
|
|
BPF_MAP_DELETE_BATCH = 27,
|
|
BPF_LINK_CREATE = 28,
|
|
BPF_LINK_UPDATE = 29,
|
|
BPF_LINK_GET_FD_BY_ID = 30,
|
|
BPF_LINK_GET_NEXT_ID = 31,
|
|
BPF_ENABLE_STATS = 32,
|
|
BPF_ITER_CREATE = 33,
|
|
BPF_LINK_DETACH = 34,
|
|
BPF_PROG_BIND_MAP = 35,
|
|
};
|
|
|
|
enum perf_bpf_event_type {
|
|
PERF_BPF_EVENT_UNKNOWN = 0,
|
|
PERF_BPF_EVENT_PROG_LOAD = 1,
|
|
PERF_BPF_EVENT_PROG_UNLOAD = 2,
|
|
PERF_BPF_EVENT_MAX = 3,
|
|
};
|
|
|
|
enum bpf_audit {
|
|
BPF_AUDIT_LOAD = 0,
|
|
BPF_AUDIT_UNLOAD = 1,
|
|
BPF_AUDIT_MAX = 2,
|
|
};
|
|
|
|
enum bpf_stats_type {
|
|
BPF_STATS_RUN_TIME = 0,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32);
|
|
|
|
typedef u64 (*btf_bpf_sys_close)(u32);
|
|
|
|
typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *);
|
|
|
|
struct bpf_tracing_link {
|
|
struct bpf_tramp_link link;
|
|
enum bpf_attach_type attach_type;
|
|
struct bpf_trampoline *trampoline;
|
|
struct bpf_prog *tgt_prog;
|
|
};
|
|
|
|
struct bpf_raw_tp_link {
|
|
struct bpf_link link;
|
|
struct bpf_raw_event_map *btp;
|
|
};
|
|
|
|
struct bpf_perf_link {
|
|
struct bpf_link link;
|
|
struct file *perf_file;
|
|
};
|
|
|
|
struct bpf_spin_lock {
|
|
__u32 val;
|
|
};
|
|
|
|
struct bpf_prog_kstats {
|
|
u64 nsecs;
|
|
u64 cnt;
|
|
u64 misses;
|
|
};
|
|
|
|
struct bpf_btf_info {
|
|
__u64 btf;
|
|
__u32 btf_size;
|
|
__u32 id;
|
|
__u64 name;
|
|
__u32 name_len;
|
|
__u32 kernel_btf;
|
|
};
|
|
|
|
struct if_dqblk {
|
|
__u64 dqb_bhardlimit;
|
|
__u64 dqb_bsoftlimit;
|
|
__u64 dqb_curspace;
|
|
__u64 dqb_ihardlimit;
|
|
__u64 dqb_isoftlimit;
|
|
__u64 dqb_curinodes;
|
|
__u64 dqb_btime;
|
|
__u64 dqb_itime;
|
|
__u32 dqb_valid;
|
|
};
|
|
|
|
struct fs_qfilestat {
|
|
__u64 qfs_ino;
|
|
__u64 qfs_nblks;
|
|
__u32 qfs_nextents;
|
|
};
|
|
|
|
typedef struct fs_qfilestat fs_qfilestat_t;
|
|
|
|
struct fs_quota_stat {
|
|
__s8 qs_version;
|
|
__u16 qs_flags;
|
|
__s8 qs_pad;
|
|
fs_qfilestat_t qs_uquota;
|
|
fs_qfilestat_t qs_gquota;
|
|
__u32 qs_incoredqs;
|
|
__s32 qs_btimelimit;
|
|
__s32 qs_itimelimit;
|
|
__s32 qs_rtbtimelimit;
|
|
__u16 qs_bwarnlimit;
|
|
__u16 qs_iwarnlimit;
|
|
};
|
|
|
|
struct compat_fs_qfilestat {
|
|
compat_u64 dqb_bhardlimit;
|
|
compat_u64 qfs_nblks;
|
|
compat_uint_t qfs_nextents;
|
|
} __attribute__((packed));
|
|
|
|
struct compat_fs_quota_stat {
|
|
__s8 qs_version;
|
|
char: 8;
|
|
__u16 qs_flags;
|
|
__s8 qs_pad;
|
|
int: 24;
|
|
struct compat_fs_qfilestat qs_uquota;
|
|
struct compat_fs_qfilestat qs_gquota;
|
|
compat_uint_t qs_incoredqs;
|
|
compat_int_t qs_btimelimit;
|
|
compat_int_t qs_itimelimit;
|
|
compat_int_t qs_rtbtimelimit;
|
|
__u16 qs_bwarnlimit;
|
|
__u16 qs_iwarnlimit;
|
|
} __attribute__((packed));
|
|
|
|
struct fs_qfilestatv {
|
|
__u64 qfs_ino;
|
|
__u64 qfs_nblks;
|
|
__u32 qfs_nextents;
|
|
__u32 qfs_pad;
|
|
};
|
|
|
|
struct fs_quota_statv {
|
|
__s8 qs_version;
|
|
__u8 qs_pad1;
|
|
__u16 qs_flags;
|
|
__u32 qs_incoredqs;
|
|
struct fs_qfilestatv qs_uquota;
|
|
struct fs_qfilestatv qs_gquota;
|
|
struct fs_qfilestatv qs_pquota;
|
|
__s32 qs_btimelimit;
|
|
__s32 qs_itimelimit;
|
|
__s32 qs_rtbtimelimit;
|
|
__u16 qs_bwarnlimit;
|
|
__u16 qs_iwarnlimit;
|
|
__u16 qs_rtbwarnlimit;
|
|
__u16 qs_pad3;
|
|
__u32 qs_pad4;
|
|
__u64 qs_pad2[7];
|
|
};
|
|
|
|
struct fs_disk_quota {
|
|
__s8 d_version;
|
|
__s8 d_flags;
|
|
__u16 d_fieldmask;
|
|
__u32 d_id;
|
|
__u64 d_blk_hardlimit;
|
|
__u64 d_blk_softlimit;
|
|
__u64 d_ino_hardlimit;
|
|
__u64 d_ino_softlimit;
|
|
__u64 d_bcount;
|
|
__u64 d_icount;
|
|
__s32 d_itimer;
|
|
__s32 d_btimer;
|
|
__u16 d_iwarns;
|
|
__u16 d_bwarns;
|
|
__s8 d_itimer_hi;
|
|
__s8 d_btimer_hi;
|
|
__s8 d_rtbtimer_hi;
|
|
__s8 d_padding2;
|
|
__u64 d_rtb_hardlimit;
|
|
__u64 d_rtb_softlimit;
|
|
__u64 d_rtbcount;
|
|
__s32 d_rtbtimer;
|
|
__u16 d_rtbwarns;
|
|
__s16 d_padding3;
|
|
char d_padding4[8];
|
|
};
|
|
|
|
struct if_dqinfo {
|
|
__u64 dqi_bgrace;
|
|
__u64 dqi_igrace;
|
|
__u32 dqi_flags;
|
|
__u32 dqi_valid;
|
|
};
|
|
|
|
struct compat_if_dqblk {
|
|
compat_u64 dqb_bhardlimit;
|
|
compat_u64 dqb_bsoftlimit;
|
|
compat_u64 dqb_curspace;
|
|
compat_u64 dqb_ihardlimit;
|
|
compat_u64 dqb_isoftlimit;
|
|
compat_u64 dqb_curinodes;
|
|
compat_u64 dqb_btime;
|
|
compat_u64 dqb_itime;
|
|
compat_uint_t dqb_valid;
|
|
} __attribute__((packed));
|
|
|
|
struct if_nextdqblk {
|
|
__u64 dqb_bhardlimit;
|
|
__u64 dqb_bsoftlimit;
|
|
__u64 dqb_curspace;
|
|
__u64 dqb_ihardlimit;
|
|
__u64 dqb_isoftlimit;
|
|
__u64 dqb_curinodes;
|
|
__u64 dqb_btime;
|
|
__u64 dqb_itime;
|
|
__u32 dqb_valid;
|
|
__u32 dqb_id;
|
|
};
|
|
|
|
enum {
|
|
EXT4_MF_MNTDIR_SAMPLED = 0,
|
|
EXT4_MF_FS_ABORTED = 1,
|
|
EXT4_MF_FC_INELIGIBLE = 2,
|
|
};
|
|
|
|
typedef unsigned short __kernel_uid16_t;
|
|
|
|
typedef __kernel_uid16_t uid16_t;
|
|
|
|
typedef unsigned short __kernel_gid16_t;
|
|
|
|
typedef __kernel_gid16_t gid16_t;
|
|
|
|
struct ext4_xattr_ibody_header {
|
|
__le32 h_magic;
|
|
};
|
|
|
|
struct ext4_xattr_inode_array {
|
|
unsigned int count;
|
|
struct inode *inodes[0];
|
|
};
|
|
|
|
struct mpage_da_data {
|
|
struct inode *inode;
|
|
struct writeback_control *wbc;
|
|
unsigned int can_map: 1;
|
|
unsigned long first_page;
|
|
unsigned long next_page;
|
|
unsigned long last_page;
|
|
struct ext4_map_blocks map;
|
|
struct ext4_io_submit io_submit;
|
|
unsigned int do_map: 1;
|
|
unsigned int scanned_until_end: 1;
|
|
};
|
|
|
|
struct autofs_packet_missing {
|
|
struct autofs_packet_hdr hdr;
|
|
autofs_wqt_t wait_queue_token;
|
|
int len;
|
|
char name[256];
|
|
};
|
|
|
|
struct autofs_packet_expire_multi {
|
|
struct autofs_packet_hdr hdr;
|
|
autofs_wqt_t wait_queue_token;
|
|
int len;
|
|
char name[256];
|
|
};
|
|
|
|
union autofs_packet_union {
|
|
struct autofs_packet_hdr hdr;
|
|
struct autofs_packet_missing missing;
|
|
struct autofs_packet_expire expire;
|
|
struct autofs_packet_expire_multi expire_multi;
|
|
};
|
|
|
|
struct autofs_v5_packet {
|
|
struct autofs_packet_hdr hdr;
|
|
autofs_wqt_t wait_queue_token;
|
|
__u32 dev;
|
|
__u64 ino;
|
|
__u32 uid;
|
|
__u32 gid;
|
|
__u32 pid;
|
|
__u32 tgid;
|
|
__u32 len;
|
|
char name[256];
|
|
};
|
|
|
|
typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
|
|
|
|
typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
|
|
|
|
typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
|
|
|
|
typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
|
|
|
|
union autofs_v5_packet_union {
|
|
struct autofs_packet_hdr hdr;
|
|
struct autofs_v5_packet v5_packet;
|
|
autofs_packet_missing_indirect_t missing_indirect;
|
|
autofs_packet_expire_indirect_t expire_indirect;
|
|
autofs_packet_missing_direct_t missing_direct;
|
|
autofs_packet_expire_direct_t expire_direct;
|
|
};
|
|
|
|
struct ipc_proc_iface {
|
|
const char *path;
|
|
const char *header;
|
|
int ids;
|
|
int (*show)(struct seq_file *, void *);
|
|
};
|
|
|
|
struct ipc_proc_iter {
|
|
struct ipc_namespace *ns;
|
|
struct pid_namespace *pid_ns;
|
|
struct ipc_proc_iface *iface;
|
|
};
|
|
|
|
struct hashtab_info {
|
|
u32 slots_used;
|
|
u32 max_chain_len;
|
|
};
|
|
|
|
struct netlbl_lsm_cache;
|
|
|
|
struct netlbl_lsm_secattr {
|
|
u32 flags;
|
|
u32 type;
|
|
char *domain;
|
|
struct netlbl_lsm_cache *cache;
|
|
struct {
|
|
struct {
|
|
struct netlbl_lsm_catmap *cat;
|
|
u32 lvl;
|
|
} mls;
|
|
u32 secid;
|
|
} attr;
|
|
};
|
|
|
|
struct netlbl_lsm_cache {
|
|
refcount_t refcount;
|
|
void (*free)(const void *);
|
|
void *data;
|
|
};
|
|
|
|
struct sha1_state;
|
|
|
|
typedef void sha1_block_fn(struct sha1_state *, const u8 *, int);
|
|
|
|
struct sha1_state {
|
|
u32 state[5];
|
|
u64 count;
|
|
u8 buffer[64];
|
|
};
|
|
|
|
struct asymmetric_key_subtype {
|
|
struct module *owner;
|
|
const char *name;
|
|
unsigned short name_len;
|
|
void (*describe)(const struct key *, struct seq_file *);
|
|
void (*destroy)(void *, void *);
|
|
int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
|
|
int (*eds_op)(struct kernel_pkey_params *, const void *, void *);
|
|
int (*verify_signature)(const struct key *, const struct public_key_signature *);
|
|
};
|
|
|
|
enum asymmetric_payload_bits {
|
|
asym_crypto = 0,
|
|
asym_subtype = 1,
|
|
asym_key_ids = 2,
|
|
asym_auth = 3,
|
|
};
|
|
|
|
struct parsed_partitions {
|
|
struct gendisk *disk;
|
|
char name[32];
|
|
struct {
|
|
sector_t from;
|
|
sector_t size;
|
|
int flags;
|
|
bool has_info;
|
|
struct partition_meta_info info;
|
|
} *parts;
|
|
int next;
|
|
int limit;
|
|
bool access_beyond_eod;
|
|
char *pp_buf;
|
|
};
|
|
|
|
enum msdos_sys_ind {
|
|
DOS_EXTENDED_PARTITION = 5,
|
|
LINUX_EXTENDED_PARTITION = 133,
|
|
WIN98_EXTENDED_PARTITION = 15,
|
|
LINUX_DATA_PARTITION = 131,
|
|
LINUX_LVM_PARTITION = 142,
|
|
LINUX_RAID_PARTITION = 253,
|
|
SOLARIS_X86_PARTITION = 130,
|
|
NEW_SOLARIS_X86_PARTITION = 191,
|
|
DM6_AUX1PARTITION = 81,
|
|
DM6_AUX3PARTITION = 83,
|
|
DM6_PARTITION = 84,
|
|
EZD_PARTITION = 85,
|
|
FREEBSD_PARTITION = 165,
|
|
OPENBSD_PARTITION = 166,
|
|
NETBSD_PARTITION = 169,
|
|
BSDI_PARTITION = 183,
|
|
MINIX_PARTITION = 129,
|
|
UNIXWARE_PARTITION = 99,
|
|
};
|
|
|
|
struct fat_boot_sector {
|
|
__u8 ignored[3];
|
|
__u8 system_id[8];
|
|
__u8 sector_size[2];
|
|
__u8 sec_per_clus;
|
|
__le16 reserved;
|
|
__u8 fats;
|
|
__u8 dir_entries[2];
|
|
__u8 sectors[2];
|
|
__u8 media;
|
|
__le16 fat_length;
|
|
__le16 secs_track;
|
|
__le16 heads;
|
|
__le32 hidden;
|
|
__le32 total_sect;
|
|
union {
|
|
struct {
|
|
__u8 drive_number;
|
|
__u8 state;
|
|
__u8 signature;
|
|
__u8 vol_id[4];
|
|
__u8 vol_label[11];
|
|
__u8 fs_type[8];
|
|
} fat16;
|
|
struct {
|
|
__le32 length;
|
|
__le16 flags;
|
|
__u8 version[2];
|
|
__le32 root_cluster;
|
|
__le16 info_sector;
|
|
__le16 backup_boot;
|
|
__le16 reserved2[6];
|
|
__u8 drive_number;
|
|
__u8 state;
|
|
__u8 signature;
|
|
__u8 vol_id[4];
|
|
__u8 vol_label[11];
|
|
__u8 fs_type[8];
|
|
} fat32;
|
|
};
|
|
};
|
|
|
|
typedef struct {
|
|
struct folio *v;
|
|
} Sector;
|
|
|
|
struct io_madvise {
|
|
struct file *file;
|
|
u64 addr;
|
|
u32 len;
|
|
u32 advice;
|
|
};
|
|
|
|
struct io_fadvise {
|
|
struct file *file;
|
|
u64 offset;
|
|
u32 len;
|
|
u32 advice;
|
|
};
|
|
|
|
enum assoc_array_walk_status {
|
|
assoc_array_walk_tree_empty = 0,
|
|
assoc_array_walk_found_terminal_node = 1,
|
|
assoc_array_walk_found_wrong_shortcut = 2,
|
|
};
|
|
|
|
struct assoc_array_shortcut {
|
|
struct assoc_array_ptr *back_pointer;
|
|
int parent_slot;
|
|
int skip_to_level;
|
|
struct assoc_array_ptr *next_node;
|
|
unsigned long index_key[0];
|
|
};
|
|
|
|
struct assoc_array_node {
|
|
struct assoc_array_ptr *back_pointer;
|
|
u8 parent_slot;
|
|
struct assoc_array_ptr *slots[16];
|
|
unsigned long nr_leaves_on_branch;
|
|
};
|
|
|
|
struct assoc_array_ops;
|
|
|
|
struct assoc_array_edit {
|
|
struct callback_head rcu;
|
|
struct assoc_array *array;
|
|
const struct assoc_array_ops *ops;
|
|
const struct assoc_array_ops *ops_for_excised_subtree;
|
|
struct assoc_array_ptr *leaf;
|
|
struct assoc_array_ptr **leaf_p;
|
|
struct assoc_array_ptr *dead_leaf;
|
|
struct assoc_array_ptr *new_meta[3];
|
|
struct assoc_array_ptr *excised_meta[1];
|
|
struct assoc_array_ptr *excised_subtree;
|
|
struct assoc_array_ptr **set_backpointers[16];
|
|
struct assoc_array_ptr *set_backpointers_to;
|
|
struct assoc_array_node *adjust_count_on;
|
|
long adjust_count_by;
|
|
struct {
|
|
struct assoc_array_ptr **ptr;
|
|
struct assoc_array_ptr *to;
|
|
} set[2];
|
|
struct {
|
|
u8 *p;
|
|
u8 to;
|
|
} set_parent_slot[1];
|
|
u8 segment_cache[17];
|
|
};
|
|
|
|
struct assoc_array_ops {
|
|
unsigned long (*get_key_chunk)(const void *, int);
|
|
unsigned long (*get_object_key_chunk)(const void *, int);
|
|
bool (*compare_object)(const void *, const void *);
|
|
int (*diff_objects)(const void *, const void *);
|
|
void (*free_object)(void *);
|
|
};
|
|
|
|
struct assoc_array_walk_result {
|
|
struct {
|
|
struct assoc_array_node *node;
|
|
int level;
|
|
int slot;
|
|
} terminal_node;
|
|
struct {
|
|
struct assoc_array_shortcut *shortcut;
|
|
int level;
|
|
int sc_level;
|
|
unsigned long sc_segments;
|
|
unsigned long dissimilarity;
|
|
} wrong_shortcut;
|
|
};
|
|
|
|
struct assoc_array_delete_collapse_context {
|
|
struct assoc_array_node *node;
|
|
const void *skip_leaf;
|
|
int slot;
|
|
};
|
|
|
|
struct gen_pool_chunk {
|
|
struct list_head next_chunk;
|
|
atomic_long_t avail;
|
|
phys_addr_t phys_addr;
|
|
void *owner;
|
|
unsigned long start_addr;
|
|
unsigned long end_addr;
|
|
unsigned long bits[0];
|
|
};
|
|
|
|
struct genpool_data_align {
|
|
int align;
|
|
};
|
|
|
|
struct genpool_data_fixed {
|
|
unsigned long offset;
|
|
};
|
|
|
|
struct mpi_ec_ctx;
|
|
|
|
struct field_table {
|
|
const char *p;
|
|
void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
|
|
};
|
|
|
|
struct barrett_ctx_s;
|
|
|
|
typedef struct barrett_ctx_s *mpi_barrett_t;
|
|
|
|
enum gcry_mpi_ec_models {
|
|
MPI_EC_WEIERSTRASS = 0,
|
|
MPI_EC_MONTGOMERY = 1,
|
|
MPI_EC_EDWARDS = 2,
|
|
};
|
|
|
|
enum ecc_dialects {
|
|
ECC_DIALECT_STANDARD = 0,
|
|
ECC_DIALECT_ED25519 = 1,
|
|
ECC_DIALECT_SAFECURVE = 2,
|
|
};
|
|
|
|
struct gcry_mpi_point;
|
|
|
|
typedef struct gcry_mpi_point *MPI_POINT;
|
|
|
|
struct mpi_ec_ctx {
|
|
enum gcry_mpi_ec_models model;
|
|
enum ecc_dialects dialect;
|
|
int flags;
|
|
unsigned int nbits;
|
|
MPI p;
|
|
MPI a;
|
|
MPI b;
|
|
MPI_POINT G;
|
|
MPI n;
|
|
unsigned int h;
|
|
MPI_POINT Q;
|
|
MPI d;
|
|
const char *name;
|
|
struct {
|
|
struct {
|
|
unsigned int a_is_pminus3: 1;
|
|
unsigned int two_inv_p: 1;
|
|
} valid;
|
|
int a_is_pminus3;
|
|
MPI two_inv_p;
|
|
mpi_barrett_t p_barrett;
|
|
MPI scratch[11];
|
|
} t;
|
|
void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
|
|
void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
|
|
void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
|
|
};
|
|
|
|
struct gcry_mpi_point {
|
|
MPI x;
|
|
MPI y;
|
|
MPI z;
|
|
};
|
|
|
|
enum gcry_mpi_constants {
|
|
MPI_C_ZERO = 0,
|
|
MPI_C_ONE = 1,
|
|
MPI_C_TWO = 2,
|
|
MPI_C_THREE = 3,
|
|
MPI_C_FOUR = 4,
|
|
MPI_C_EIGHT = 5,
|
|
};
|
|
|
|
enum {
|
|
ACPI_GENL_CMD_UNSPEC = 0,
|
|
ACPI_GENL_CMD_EVENT = 1,
|
|
__ACPI_GENL_CMD_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ACPI_GENL_ATTR_UNSPEC = 0,
|
|
ACPI_GENL_ATTR_EVENT = 1,
|
|
__ACPI_GENL_ATTR_MAX = 2,
|
|
};
|
|
|
|
struct acpi_genl_event {
|
|
acpi_device_class device_class;
|
|
char bus_id[15];
|
|
u32 type;
|
|
u32 data;
|
|
};
|
|
|
|
struct acpi_interface_info {
|
|
char *name;
|
|
struct acpi_interface_info *next;
|
|
u8 flags;
|
|
u8 value;
|
|
};
|
|
|
|
typedef u32 (*acpi_interface_handler)(acpi_string, u32);
|
|
|
|
struct pnp_port {
|
|
resource_size_t min;
|
|
resource_size_t max;
|
|
resource_size_t align;
|
|
resource_size_t size;
|
|
unsigned char flags;
|
|
};
|
|
|
|
struct pnp_irq {
|
|
pnp_irq_mask_t map;
|
|
unsigned char flags;
|
|
};
|
|
|
|
struct pnp_dma {
|
|
unsigned char map;
|
|
unsigned char flags;
|
|
};
|
|
|
|
struct pnp_mem {
|
|
resource_size_t min;
|
|
resource_size_t max;
|
|
resource_size_t align;
|
|
resource_size_t size;
|
|
unsigned char flags;
|
|
};
|
|
|
|
struct pnp_option {
|
|
struct list_head list;
|
|
unsigned int flags;
|
|
unsigned long type;
|
|
union {
|
|
struct pnp_port port;
|
|
struct pnp_irq irq;
|
|
struct pnp_dma dma;
|
|
struct pnp_mem mem;
|
|
} u;
|
|
};
|
|
|
|
struct pnp_info_buffer {
|
|
char *buffer;
|
|
char *curr;
|
|
unsigned long size;
|
|
unsigned long len;
|
|
int stop;
|
|
int error;
|
|
};
|
|
|
|
typedef struct pnp_info_buffer pnp_info_buffer_t;
|
|
|
|
struct tty_audit_buf {
|
|
struct mutex mutex;
|
|
dev_t dev;
|
|
unsigned int icanon: 1;
|
|
size_t valid;
|
|
unsigned char *data;
|
|
};
|
|
|
|
enum perf_event_task_context {
|
|
perf_invalid_context = -1,
|
|
perf_hw_context = 0,
|
|
perf_sw_context = 1,
|
|
perf_nr_task_contexts = 2,
|
|
};
|
|
|
|
enum ack_type {
|
|
ACK_CLEAR = 0,
|
|
ACK_SET = 1,
|
|
};
|
|
|
|
typedef void (*drmres_release_t___2)(struct drm_device___2 *, void *);
|
|
|
|
struct cpu_attr {
|
|
struct device_attribute attr;
|
|
const struct cpumask * const map;
|
|
};
|
|
|
|
typedef u32 note_buf_t[92];
|
|
|
|
typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *);
|
|
|
|
typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int);
|
|
|
|
typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *);
|
|
|
|
typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *);
|
|
|
|
typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *);
|
|
|
|
enum scsi_vpd_parameters {
|
|
SCSI_VPD_HEADER_SIZE = 4,
|
|
};
|
|
|
|
struct trace_event_raw_scsi_dispatch_cmd_start {
|
|
struct trace_entry ent;
|
|
unsigned int host_no;
|
|
unsigned int channel;
|
|
unsigned int id;
|
|
unsigned int lun;
|
|
unsigned int opcode;
|
|
unsigned int cmd_len;
|
|
int driver_tag;
|
|
int scheduler_tag;
|
|
unsigned int data_sglen;
|
|
unsigned int prot_sglen;
|
|
unsigned char prot_op;
|
|
u32 __data_loc_cmnd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_scsi_dispatch_cmd_error {
|
|
struct trace_entry ent;
|
|
unsigned int host_no;
|
|
unsigned int channel;
|
|
unsigned int id;
|
|
unsigned int lun;
|
|
int rtn;
|
|
unsigned int opcode;
|
|
unsigned int cmd_len;
|
|
int driver_tag;
|
|
int scheduler_tag;
|
|
unsigned int data_sglen;
|
|
unsigned int prot_sglen;
|
|
unsigned char prot_op;
|
|
u32 __data_loc_cmnd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_scsi_cmd_done_timeout_template {
|
|
struct trace_entry ent;
|
|
unsigned int host_no;
|
|
unsigned int channel;
|
|
unsigned int id;
|
|
unsigned int lun;
|
|
int result;
|
|
unsigned int opcode;
|
|
unsigned int cmd_len;
|
|
int driver_tag;
|
|
int scheduler_tag;
|
|
unsigned int data_sglen;
|
|
unsigned int prot_sglen;
|
|
unsigned char prot_op;
|
|
u32 __data_loc_cmnd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_scsi_eh_wakeup {
|
|
struct trace_entry ent;
|
|
unsigned int host_no;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_scsi_dispatch_cmd_start {
|
|
u32 cmnd;
|
|
};
|
|
|
|
struct trace_event_data_offsets_scsi_dispatch_cmd_error {
|
|
u32 cmnd;
|
|
};
|
|
|
|
struct trace_event_data_offsets_scsi_cmd_done_timeout_template {
|
|
u32 cmnd;
|
|
};
|
|
|
|
struct trace_event_data_offsets_scsi_eh_wakeup {};
|
|
|
|
struct phy_fixup {
|
|
struct list_head list;
|
|
char bus_id[64];
|
|
u32 phy_uid;
|
|
u32 phy_uid_mask;
|
|
int (*run)(struct phy_device *);
|
|
};
|
|
|
|
struct sfp_eeprom_id;
|
|
|
|
struct sfp_upstream_ops {
|
|
void (*attach)(void *, struct sfp_bus *);
|
|
void (*detach)(void *, struct sfp_bus *);
|
|
int (*module_insert)(void *, const struct sfp_eeprom_id *);
|
|
void (*module_remove)(void *);
|
|
int (*module_start)(void *);
|
|
void (*module_stop)(void *);
|
|
void (*link_down)(void *);
|
|
void (*link_up)(void *);
|
|
int (*connect_phy)(void *, struct phy_device *);
|
|
void (*disconnect_phy)(void *);
|
|
};
|
|
|
|
struct sfp_eeprom_base {
|
|
u8 phys_id;
|
|
u8 phys_ext_id;
|
|
u8 connector;
|
|
u8 if_1x_copper_passive: 1;
|
|
u8 if_1x_copper_active: 1;
|
|
u8 if_1x_lx: 1;
|
|
u8 if_1x_sx: 1;
|
|
u8 e10g_base_sr: 1;
|
|
u8 e10g_base_lr: 1;
|
|
u8 e10g_base_lrm: 1;
|
|
u8 e10g_base_er: 1;
|
|
u8 sonet_oc3_short_reach: 1;
|
|
u8 sonet_oc3_smf_intermediate_reach: 1;
|
|
u8 sonet_oc3_smf_long_reach: 1;
|
|
u8 unallocated_5_3: 1;
|
|
u8 sonet_oc12_short_reach: 1;
|
|
u8 sonet_oc12_smf_intermediate_reach: 1;
|
|
u8 sonet_oc12_smf_long_reach: 1;
|
|
u8 unallocated_5_7: 1;
|
|
u8 sonet_oc48_short_reach: 1;
|
|
u8 sonet_oc48_intermediate_reach: 1;
|
|
u8 sonet_oc48_long_reach: 1;
|
|
u8 sonet_reach_bit2: 1;
|
|
u8 sonet_reach_bit1: 1;
|
|
u8 sonet_oc192_short_reach: 1;
|
|
u8 escon_smf_1310_laser: 1;
|
|
u8 escon_mmf_1310_led: 1;
|
|
u8 e1000_base_sx: 1;
|
|
u8 e1000_base_lx: 1;
|
|
u8 e1000_base_cx: 1;
|
|
u8 e1000_base_t: 1;
|
|
u8 e100_base_lx: 1;
|
|
u8 e100_base_fx: 1;
|
|
u8 e_base_bx10: 1;
|
|
u8 e_base_px: 1;
|
|
u8 fc_tech_electrical_inter_enclosure: 1;
|
|
u8 fc_tech_lc: 1;
|
|
u8 fc_tech_sa: 1;
|
|
u8 fc_ll_m: 1;
|
|
u8 fc_ll_l: 1;
|
|
u8 fc_ll_i: 1;
|
|
u8 fc_ll_s: 1;
|
|
u8 fc_ll_v: 1;
|
|
u8 unallocated_8_0: 1;
|
|
u8 unallocated_8_1: 1;
|
|
u8 sfp_ct_passive: 1;
|
|
u8 sfp_ct_active: 1;
|
|
u8 fc_tech_ll: 1;
|
|
u8 fc_tech_sl: 1;
|
|
u8 fc_tech_sn: 1;
|
|
u8 fc_tech_electrical_intra_enclosure: 1;
|
|
u8 fc_media_sm: 1;
|
|
u8 unallocated_9_1: 1;
|
|
u8 fc_media_m5: 1;
|
|
u8 fc_media_m6: 1;
|
|
u8 fc_media_tv: 1;
|
|
u8 fc_media_mi: 1;
|
|
u8 fc_media_tp: 1;
|
|
u8 fc_media_tw: 1;
|
|
u8 fc_speed_100: 1;
|
|
u8 unallocated_10_1: 1;
|
|
u8 fc_speed_200: 1;
|
|
u8 fc_speed_3200: 1;
|
|
u8 fc_speed_400: 1;
|
|
u8 fc_speed_1600: 1;
|
|
u8 fc_speed_800: 1;
|
|
u8 fc_speed_1200: 1;
|
|
u8 encoding;
|
|
u8 br_nominal;
|
|
u8 rate_id;
|
|
u8 link_len[6];
|
|
char vendor_name[16];
|
|
u8 extended_cc;
|
|
char vendor_oui[3];
|
|
char vendor_pn[16];
|
|
char vendor_rev[4];
|
|
union {
|
|
__be16 optical_wavelength;
|
|
__be16 cable_compliance;
|
|
struct {
|
|
u8 sff8431_app_e: 1;
|
|
u8 fc_pi_4_app_h: 1;
|
|
u8 reserved60_2: 6;
|
|
u8 reserved61: 8;
|
|
} passive;
|
|
struct {
|
|
u8 sff8431_app_e: 1;
|
|
u8 fc_pi_4_app_h: 1;
|
|
u8 sff8431_lim: 1;
|
|
u8 fc_pi_4_lim: 1;
|
|
u8 reserved60_4: 4;
|
|
u8 reserved61: 8;
|
|
} active;
|
|
};
|
|
u8 reserved62;
|
|
u8 cc_base;
|
|
};
|
|
|
|
struct sfp_eeprom_ext {
|
|
__be16 options;
|
|
u8 br_max;
|
|
u8 br_min;
|
|
char vendor_sn[16];
|
|
char datecode[8];
|
|
u8 diagmon;
|
|
u8 enhopts;
|
|
u8 sff8472_compliance;
|
|
u8 cc_ext;
|
|
};
|
|
|
|
struct sfp_eeprom_id {
|
|
struct sfp_eeprom_base base;
|
|
struct sfp_eeprom_ext ext;
|
|
};
|
|
|
|
enum nsim_dev_hwstats_do {
|
|
NSIM_DEV_HWSTATS_DO_DISABLE = 0,
|
|
NSIM_DEV_HWSTATS_DO_ENABLE = 1,
|
|
NSIM_DEV_HWSTATS_DO_FAIL = 2,
|
|
};
|
|
|
|
enum netdev_offload_xstats_type {
|
|
NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1,
|
|
};
|
|
|
|
struct nsim_dev_hwstats_fops {
|
|
const struct file_operations fops;
|
|
enum nsim_dev_hwstats_do action;
|
|
enum netdev_offload_xstats_type type;
|
|
};
|
|
|
|
struct nsim_dev_hwstats_netdev {
|
|
struct list_head list;
|
|
struct net_device *netdev;
|
|
struct rtnl_hw_stats64 stats;
|
|
bool enabled;
|
|
bool fail_enable;
|
|
};
|
|
|
|
struct netdev_notifier_offload_xstats_rd;
|
|
|
|
struct netdev_notifier_offload_xstats_ru;
|
|
|
|
struct netdev_notifier_offload_xstats_info {
|
|
struct netdev_notifier_info info;
|
|
enum netdev_offload_xstats_type type;
|
|
union {
|
|
struct netdev_notifier_offload_xstats_rd *report_delta;
|
|
struct netdev_notifier_offload_xstats_ru *report_used;
|
|
};
|
|
};
|
|
|
|
struct quirk_entry {
|
|
u16 vid;
|
|
u16 pid;
|
|
u32 flags;
|
|
};
|
|
|
|
struct kvm_clock_pairing {
|
|
__s64 sec;
|
|
__s64 nsec;
|
|
__u64 tsc;
|
|
__u32 flags;
|
|
__u32 pad[9];
|
|
};
|
|
|
|
struct _thermal_state {
|
|
u64 next_check;
|
|
u64 last_interrupt_time;
|
|
struct delayed_work therm_work;
|
|
unsigned long count;
|
|
unsigned long last_count;
|
|
unsigned long max_time_ms;
|
|
unsigned long total_time_ms;
|
|
bool rate_control_active;
|
|
bool new_event;
|
|
u8 level;
|
|
u8 sample_index;
|
|
u8 sample_count;
|
|
u8 average;
|
|
u8 baseline_temp;
|
|
u8 temp_samples[3];
|
|
};
|
|
|
|
struct thermal_state {
|
|
struct _thermal_state core_throttle;
|
|
struct _thermal_state core_power_limit;
|
|
struct _thermal_state package_throttle;
|
|
struct _thermal_state package_power_limit;
|
|
struct _thermal_state core_thresh0;
|
|
struct _thermal_state core_thresh1;
|
|
struct _thermal_state pkg_thresh0;
|
|
struct _thermal_state pkg_thresh1;
|
|
};
|
|
|
|
struct snd_monitor_file {
|
|
struct file *file;
|
|
const struct file_operations *disconnected_f_op;
|
|
struct list_head shutdown_list;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum {
|
|
AC_JACK_PORT_COMPLEX = 0,
|
|
AC_JACK_PORT_NONE = 1,
|
|
AC_JACK_PORT_FIXED = 2,
|
|
AC_JACK_PORT_BOTH = 3,
|
|
};
|
|
|
|
enum {
|
|
AC_JACK_LINE_OUT = 0,
|
|
AC_JACK_SPEAKER = 1,
|
|
AC_JACK_HP_OUT = 2,
|
|
AC_JACK_CD = 3,
|
|
AC_JACK_SPDIF_OUT = 4,
|
|
AC_JACK_DIG_OTHER_OUT = 5,
|
|
AC_JACK_MODEM_LINE_SIDE = 6,
|
|
AC_JACK_MODEM_HAND_SIDE = 7,
|
|
AC_JACK_LINE_IN = 8,
|
|
AC_JACK_AUX = 9,
|
|
AC_JACK_MIC_IN = 10,
|
|
AC_JACK_TELEPHONY = 11,
|
|
AC_JACK_SPDIF_IN = 12,
|
|
AC_JACK_DIG_OTHER_IN = 13,
|
|
AC_JACK_OTHER = 15,
|
|
};
|
|
|
|
enum {
|
|
AUTO_PIN_MIC = 0,
|
|
AUTO_PIN_LINE_IN = 1,
|
|
AUTO_PIN_CD = 2,
|
|
AUTO_PIN_AUX = 3,
|
|
AUTO_PIN_LAST = 4,
|
|
};
|
|
|
|
enum {
|
|
AC_JACK_LOC_REAR_PANEL = 7,
|
|
AC_JACK_LOC_DRIVE_BAY = 8,
|
|
AC_JACK_LOC_RISER = 23,
|
|
AC_JACK_LOC_HDMI = 24,
|
|
AC_JACK_LOC_ATAPI = 25,
|
|
AC_JACK_LOC_MOBILE_IN = 55,
|
|
AC_JACK_LOC_MOBILE_OUT = 56,
|
|
};
|
|
|
|
enum {
|
|
AUTO_PIN_LINE_OUT = 0,
|
|
AUTO_PIN_SPEAKER_OUT = 1,
|
|
AUTO_PIN_HP_OUT = 2,
|
|
};
|
|
|
|
enum {
|
|
INPUT_PIN_ATTR_UNUSED = 0,
|
|
INPUT_PIN_ATTR_INT = 1,
|
|
INPUT_PIN_ATTR_DOCK = 2,
|
|
INPUT_PIN_ATTR_NORMAL = 3,
|
|
INPUT_PIN_ATTR_REAR = 4,
|
|
INPUT_PIN_ATTR_FRONT = 5,
|
|
INPUT_PIN_ATTR_LAST = 5,
|
|
};
|
|
|
|
enum {
|
|
AC_JACK_LOC_EXTERNAL = 0,
|
|
AC_JACK_LOC_INTERNAL = 16,
|
|
AC_JACK_LOC_SEPARATE = 32,
|
|
AC_JACK_LOC_OTHER = 48,
|
|
};
|
|
|
|
enum {
|
|
AC_JACK_LOC_NONE = 0,
|
|
AC_JACK_LOC_REAR = 1,
|
|
AC_JACK_LOC_FRONT = 2,
|
|
AC_JACK_LOC_LEFT = 3,
|
|
AC_JACK_LOC_RIGHT = 4,
|
|
AC_JACK_LOC_TOP = 5,
|
|
AC_JACK_LOC_BOTTOM = 6,
|
|
};
|
|
|
|
enum {
|
|
HDA_FIXUP_INVALID = 0,
|
|
HDA_FIXUP_PINS = 1,
|
|
HDA_FIXUP_VERBS = 2,
|
|
HDA_FIXUP_FUNC = 3,
|
|
HDA_FIXUP_PINCTLS = 4,
|
|
};
|
|
|
|
enum {
|
|
HDA_FIXUP_ACT_PRE_PROBE = 0,
|
|
HDA_FIXUP_ACT_PROBE = 1,
|
|
HDA_FIXUP_ACT_INIT = 2,
|
|
HDA_FIXUP_ACT_BUILD = 3,
|
|
HDA_FIXUP_ACT_FREE = 4,
|
|
};
|
|
|
|
enum {
|
|
HDA_INPUT = 0,
|
|
HDA_OUTPUT = 1,
|
|
};
|
|
|
|
struct auto_pin_cfg_item {
|
|
hda_nid_t pin;
|
|
int type;
|
|
unsigned int is_headset_mic: 1;
|
|
unsigned int is_headphone_mic: 1;
|
|
unsigned int has_boost_on_pin: 1;
|
|
};
|
|
|
|
struct auto_pin_cfg {
|
|
int line_outs;
|
|
hda_nid_t line_out_pins[5];
|
|
int speaker_outs;
|
|
hda_nid_t speaker_pins[5];
|
|
int hp_outs;
|
|
int line_out_type;
|
|
hda_nid_t hp_pins[5];
|
|
int num_inputs;
|
|
struct auto_pin_cfg_item inputs[18];
|
|
int dig_outs;
|
|
hda_nid_t dig_out_pins[2];
|
|
hda_nid_t dig_in_pin;
|
|
hda_nid_t mono_out_pin;
|
|
int dig_out_type[2];
|
|
int dig_in_type;
|
|
};
|
|
|
|
struct auto_out_pin {
|
|
hda_nid_t pin;
|
|
short seq;
|
|
};
|
|
|
|
struct hda_pincfg {
|
|
hda_nid_t nid;
|
|
unsigned char ctrl;
|
|
unsigned char target;
|
|
unsigned int cfg;
|
|
};
|
|
|
|
struct snd_pci_quirk {
|
|
unsigned short subvendor;
|
|
unsigned short subdevice;
|
|
unsigned short subdevice_mask;
|
|
int value;
|
|
};
|
|
|
|
struct snd_hda_pin_quirk {
|
|
unsigned int codec;
|
|
unsigned short subvendor;
|
|
const struct hda_pintbl *pins;
|
|
int value;
|
|
};
|
|
|
|
struct hda_model_fixup {
|
|
const int id;
|
|
const char *name;
|
|
};
|
|
|
|
struct percpu_free_defer {
|
|
struct callback_head rcu;
|
|
void __attribute__((btf_type_tag("percpu"))) *ptr;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_LINKSTATE_UNSPEC = 0,
|
|
ETHTOOL_A_LINKSTATE_HEADER = 1,
|
|
ETHTOOL_A_LINKSTATE_LINK = 2,
|
|
ETHTOOL_A_LINKSTATE_SQI = 3,
|
|
ETHTOOL_A_LINKSTATE_SQI_MAX = 4,
|
|
ETHTOOL_A_LINKSTATE_EXT_STATE = 5,
|
|
ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 6,
|
|
ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 7,
|
|
__ETHTOOL_A_LINKSTATE_CNT = 8,
|
|
ETHTOOL_A_LINKSTATE_MAX = 7,
|
|
};
|
|
|
|
struct linkstate_reply_data {
|
|
struct ethnl_reply_data base;
|
|
int link;
|
|
int sqi;
|
|
int sqi_max;
|
|
struct ethtool_link_ext_stats link_stats;
|
|
bool link_ext_state_provided;
|
|
struct ethtool_link_ext_state_info ethtool_link_ext_state_info;
|
|
};
|
|
|
|
struct compat_rtentry {
|
|
u32 rt_pad1;
|
|
struct sockaddr rt_dst;
|
|
struct sockaddr rt_gateway;
|
|
struct sockaddr rt_genmask;
|
|
unsigned short rt_flags;
|
|
short rt_pad2;
|
|
u32 rt_pad3;
|
|
unsigned char rt_tos;
|
|
unsigned char rt_class;
|
|
short rt_pad4;
|
|
short rt_metric;
|
|
compat_uptr_t rt_dev;
|
|
u32 rt_mtu;
|
|
u32 rt_window;
|
|
unsigned short rt_irtt;
|
|
};
|
|
|
|
struct ipt_error {
|
|
struct ipt_entry entry;
|
|
struct xt_error_target target;
|
|
};
|
|
|
|
struct compat_ipt_entry {
|
|
struct ipt_ip ip;
|
|
compat_uint_t nfcache;
|
|
__u16 target_offset;
|
|
__u16 next_offset;
|
|
compat_uint_t comefrom;
|
|
struct compat_xt_counters counters;
|
|
unsigned char elems[0];
|
|
};
|
|
|
|
struct compat_ipt_replace {
|
|
char name[32];
|
|
u32 valid_hooks;
|
|
u32 num_entries;
|
|
u32 size;
|
|
u32 hook_entry[5];
|
|
u32 underflow[5];
|
|
u32 num_counters;
|
|
compat_uptr_t counters;
|
|
struct compat_ipt_entry entries[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ipt_getinfo {
|
|
char name[32];
|
|
unsigned int valid_hooks;
|
|
unsigned int hook_entry[5];
|
|
unsigned int underflow[5];
|
|
unsigned int num_entries;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct ipt_get_entries {
|
|
char name[32];
|
|
unsigned int size;
|
|
struct ipt_entry entrytable[0];
|
|
};
|
|
|
|
struct compat_ipt_get_entries {
|
|
char name[32];
|
|
compat_uint_t size;
|
|
struct compat_ipt_entry entrytable[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ipt_icmp {
|
|
__u8 type;
|
|
__u8 code[2];
|
|
__u8 invflags;
|
|
};
|
|
|
|
struct cfg80211_conn {
|
|
struct cfg80211_connect_params params;
|
|
enum {
|
|
CFG80211_CONN_SCANNING = 0,
|
|
CFG80211_CONN_SCAN_AGAIN = 1,
|
|
CFG80211_CONN_AUTHENTICATE_NEXT = 2,
|
|
CFG80211_CONN_AUTHENTICATING = 3,
|
|
CFG80211_CONN_AUTH_FAILED_TIMEOUT = 4,
|
|
CFG80211_CONN_ASSOCIATE_NEXT = 5,
|
|
CFG80211_CONN_ASSOCIATING = 6,
|
|
CFG80211_CONN_ASSOC_FAILED = 7,
|
|
CFG80211_CONN_ASSOC_FAILED_TIMEOUT = 8,
|
|
CFG80211_CONN_DEAUTH = 9,
|
|
CFG80211_CONN_ABANDON = 10,
|
|
CFG80211_CONN_CONNECTED = 11,
|
|
} state;
|
|
u8 bssid[6];
|
|
u8 prev_bssid[6];
|
|
const u8 *ie;
|
|
size_t ie_len;
|
|
bool auto_auth;
|
|
bool prev_bssid_valid;
|
|
};
|
|
|
|
enum ieee80211_interface_iteration_flags {
|
|
IEEE80211_IFACE_ITER_NORMAL = 0,
|
|
IEEE80211_IFACE_ITER_RESUME_ALL = 1,
|
|
IEEE80211_IFACE_ITER_ACTIVE = 2,
|
|
IEEE80211_IFACE_SKIP_SDATA_NOT_IN_DRIVER = 4,
|
|
};
|
|
|
|
enum ieee80211_tpt_led_trigger_flags {
|
|
IEEE80211_TPT_LEDTRIG_FL_RADIO = 1,
|
|
IEEE80211_TPT_LEDTRIG_FL_WORK = 2,
|
|
IEEE80211_TPT_LEDTRIG_FL_CONNECTED = 4,
|
|
};
|
|
|
|
enum ieee80211_s1g_chanwidth {
|
|
IEEE80211_S1G_CHANWIDTH_1MHZ = 0,
|
|
IEEE80211_S1G_CHANWIDTH_2MHZ = 1,
|
|
IEEE80211_S1G_CHANWIDTH_4MHZ = 3,
|
|
IEEE80211_S1G_CHANWIDTH_8MHZ = 7,
|
|
IEEE80211_S1G_CHANWIDTH_16MHZ = 15,
|
|
};
|
|
|
|
enum nl80211_nan_func_term_reason {
|
|
NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0,
|
|
NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 1,
|
|
NL80211_NAN_FUNC_TERM_REASON_ERROR = 2,
|
|
};
|
|
|
|
struct ieee80211_noa_data {
|
|
u32 next_tsf;
|
|
bool has_next_tsf;
|
|
u8 absent;
|
|
u8 count[4];
|
|
struct {
|
|
u32 start;
|
|
u32 duration;
|
|
u32 interval;
|
|
} desc[4];
|
|
};
|
|
|
|
struct pci_mmcfg_hostbridge_probe {
|
|
u32 bus;
|
|
u32 devfn;
|
|
u32 vendor;
|
|
u32 device;
|
|
const char * (*probe)();
|
|
};
|
|
|
|
struct acpi_table_mcfg {
|
|
struct acpi_table_header header;
|
|
u8 reserved[8];
|
|
};
|
|
|
|
struct acpi_mcfg_allocation {
|
|
u64 address;
|
|
u16 pci_segment;
|
|
u8 start_bus_number;
|
|
u8 end_bus_number;
|
|
u32 reserved;
|
|
};
|
|
|
|
typedef bool (*check_reserved_t)(u64, u64, enum e820_type);
|
|
|
|
enum {
|
|
LOGIC_PIO_INDIRECT = 0,
|
|
LOGIC_PIO_CPU_MMIO = 1,
|
|
};
|
|
|
|
struct logic_pio_host_ops;
|
|
|
|
struct logic_pio_hwaddr {
|
|
struct list_head list;
|
|
struct fwnode_handle *fwnode;
|
|
resource_size_t hw_start;
|
|
resource_size_t io_start;
|
|
resource_size_t size;
|
|
unsigned long flags;
|
|
void *hostdata;
|
|
const struct logic_pio_host_ops *ops;
|
|
};
|
|
|
|
struct logic_pio_host_ops {
|
|
u32 (*in)(void *, unsigned long, size_t);
|
|
void (*out)(void *, unsigned long, u32, size_t);
|
|
u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int);
|
|
void (*outs)(void *, unsigned long, const void *, size_t, unsigned int);
|
|
};
|
|
|
|
enum extra_reg_type {
|
|
EXTRA_REG_NONE = -1,
|
|
EXTRA_REG_RSP_0 = 0,
|
|
EXTRA_REG_RSP_1 = 1,
|
|
EXTRA_REG_LBR = 2,
|
|
EXTRA_REG_LDLAT = 3,
|
|
EXTRA_REG_FE = 4,
|
|
EXTRA_REG_SNOOP_0 = 5,
|
|
EXTRA_REG_SNOOP_1 = 6,
|
|
EXTRA_REG_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
SNBEP_PCI_QPI_PORT0_FILTER = 0,
|
|
SNBEP_PCI_QPI_PORT1_FILTER = 1,
|
|
BDX_PCI_QPI_PORT2_FILTER = 2,
|
|
};
|
|
|
|
enum {
|
|
IIO_TOPOLOGY_TYPE = 0,
|
|
UPI_TOPOLOGY_TYPE = 1,
|
|
TOPOLOGY_MAX = 2,
|
|
};
|
|
|
|
struct pci2phy_map {
|
|
struct list_head list;
|
|
int segment;
|
|
int pbus_to_dieid[256];
|
|
};
|
|
|
|
typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *);
|
|
|
|
typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *);
|
|
|
|
struct fpu_state_config {
|
|
unsigned int max_size;
|
|
unsigned int default_size;
|
|
u64 max_features;
|
|
u64 default_features;
|
|
u64 legacy_features;
|
|
};
|
|
|
|
struct trace_event_raw_x86_fpu {
|
|
struct trace_entry ent;
|
|
struct fpu *fpu;
|
|
bool load_fpu;
|
|
u64 xfeatures;
|
|
u64 xcomp_bv;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_x86_fpu {};
|
|
|
|
enum {
|
|
IRQCHIP_FWNODE_REAL = 0,
|
|
IRQCHIP_FWNODE_NAMED = 1,
|
|
IRQCHIP_FWNODE_NAMED_ID = 2,
|
|
};
|
|
|
|
struct irq_cfg {
|
|
unsigned int dest_apicid;
|
|
unsigned int vector;
|
|
};
|
|
|
|
struct efi_memory_map {
|
|
phys_addr_t phys_map;
|
|
void *map;
|
|
void *map_end;
|
|
int nr_map;
|
|
unsigned long desc_version;
|
|
unsigned long desc_size;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct efi_mem_range {
|
|
struct range range;
|
|
u64 attribute;
|
|
};
|
|
|
|
enum rlimit_type {
|
|
UCOUNT_RLIMIT_NPROC = 0,
|
|
UCOUNT_RLIMIT_MSGQUEUE = 1,
|
|
UCOUNT_RLIMIT_SIGPENDING = 2,
|
|
UCOUNT_RLIMIT_MEMLOCK = 3,
|
|
UCOUNT_RLIMIT_COUNTS = 4,
|
|
};
|
|
|
|
enum what {
|
|
PROC_EVENT_NONE = 0,
|
|
PROC_EVENT_FORK = 1,
|
|
PROC_EVENT_EXEC = 2,
|
|
PROC_EVENT_UID = 4,
|
|
PROC_EVENT_GID = 64,
|
|
PROC_EVENT_SID = 128,
|
|
PROC_EVENT_PTRACE = 256,
|
|
PROC_EVENT_COMM = 512,
|
|
PROC_EVENT_COREDUMP = 1073741824,
|
|
PROC_EVENT_EXIT = 2147483648,
|
|
};
|
|
|
|
struct irq_devres {
|
|
unsigned int irq;
|
|
void *dev_id;
|
|
};
|
|
|
|
struct irq_desc_devres {
|
|
unsigned int from;
|
|
unsigned int cnt;
|
|
};
|
|
|
|
struct irq_matrix;
|
|
|
|
typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix *);
|
|
|
|
struct cpumap;
|
|
|
|
struct irq_matrix {
|
|
unsigned int matrix_bits;
|
|
unsigned int alloc_start;
|
|
unsigned int alloc_end;
|
|
unsigned int alloc_size;
|
|
unsigned int global_available;
|
|
unsigned int global_reserved;
|
|
unsigned int systembits_inalloc;
|
|
unsigned int total_allocated;
|
|
unsigned int online_maps;
|
|
struct cpumap __attribute__((btf_type_tag("percpu"))) *maps;
|
|
unsigned long scratch_map[4];
|
|
unsigned long system_map[4];
|
|
};
|
|
|
|
struct cpumap {
|
|
unsigned int available;
|
|
unsigned int allocated;
|
|
unsigned int managed;
|
|
unsigned int managed_allocated;
|
|
bool initialized;
|
|
bool online;
|
|
unsigned long alloc_map[4];
|
|
unsigned long managed_map[4];
|
|
};
|
|
|
|
typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_remove_reserved)(void *, struct irq_matrix *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_assign_system)(void *, int, struct irq_matrix *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_alloc_reserved)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_reserve_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_remove_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_alloc_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_assign)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_alloc)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
|
|
|
|
struct trace_event_raw_irq_matrix_global {
|
|
struct trace_entry ent;
|
|
unsigned int online_maps;
|
|
unsigned int global_available;
|
|
unsigned int global_reserved;
|
|
unsigned int total_allocated;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_irq_matrix_global_update {
|
|
struct trace_entry ent;
|
|
int bit;
|
|
unsigned int online_maps;
|
|
unsigned int global_available;
|
|
unsigned int global_reserved;
|
|
unsigned int total_allocated;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_irq_matrix_cpu {
|
|
struct trace_entry ent;
|
|
int bit;
|
|
unsigned int cpu;
|
|
bool online;
|
|
unsigned int available;
|
|
unsigned int allocated;
|
|
unsigned int managed;
|
|
unsigned int online_maps;
|
|
unsigned int global_available;
|
|
unsigned int global_reserved;
|
|
unsigned int total_allocated;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_irq_matrix_global {};
|
|
|
|
struct trace_event_data_offsets_irq_matrix_global_update {};
|
|
|
|
struct trace_event_data_offsets_irq_matrix_cpu {};
|
|
|
|
struct posix_clock_desc {
|
|
struct file *fp;
|
|
struct posix_clock *clk;
|
|
};
|
|
|
|
enum rdmacg_resource_type {
|
|
RDMACG_RESOURCE_HCA_HANDLE = 0,
|
|
RDMACG_RESOURCE_HCA_OBJECT = 1,
|
|
RDMACG_RESOURCE_MAX = 2,
|
|
};
|
|
|
|
enum rdmacg_file_type {
|
|
RDMACG_RESOURCE_TYPE_MAX = 0,
|
|
RDMACG_RESOURCE_TYPE_STAT = 1,
|
|
};
|
|
|
|
struct rdmacg_resource {
|
|
int max;
|
|
int usage;
|
|
};
|
|
|
|
struct rdmacg_device;
|
|
|
|
struct rdmacg_resource_pool {
|
|
struct rdmacg_device *device;
|
|
struct rdmacg_resource resources[2];
|
|
struct list_head cg_node;
|
|
struct list_head dev_node;
|
|
u64 usage_sum;
|
|
int num_max_cnt;
|
|
};
|
|
|
|
struct rdmacg_device {
|
|
struct list_head dev_node;
|
|
struct list_head rpools;
|
|
char *name;
|
|
};
|
|
|
|
struct rdma_cgroup {
|
|
struct cgroup_subsys_state css;
|
|
struct list_head rpools;
|
|
};
|
|
|
|
struct action_cache {
|
|
unsigned long allow_native[8];
|
|
unsigned long allow_compat[8];
|
|
};
|
|
|
|
struct notification;
|
|
|
|
struct seccomp_filter {
|
|
refcount_t refs;
|
|
refcount_t users;
|
|
bool log;
|
|
bool wait_killable_recv;
|
|
struct action_cache cache;
|
|
struct seccomp_filter *prev;
|
|
struct bpf_prog *prog;
|
|
struct notification *notif;
|
|
struct mutex notify_lock;
|
|
wait_queue_head_t wqh;
|
|
};
|
|
|
|
struct notification {
|
|
struct semaphore request;
|
|
u64 next_id;
|
|
struct list_head notifications;
|
|
};
|
|
|
|
struct seccomp_log_name {
|
|
u32 log;
|
|
const char *name;
|
|
};
|
|
|
|
enum notify_state {
|
|
SECCOMP_NOTIFY_INIT = 0,
|
|
SECCOMP_NOTIFY_SENT = 1,
|
|
SECCOMP_NOTIFY_REPLIED = 2,
|
|
};
|
|
|
|
struct seccomp_kaddfd {
|
|
struct file *file;
|
|
int fd;
|
|
unsigned int flags;
|
|
__u32 ioctl_flags;
|
|
union {
|
|
bool setfd;
|
|
int ret;
|
|
};
|
|
struct completion completion;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct seccomp_knotif {
|
|
struct task_struct *task;
|
|
u64 id;
|
|
const struct seccomp_data *data;
|
|
enum notify_state state;
|
|
int error;
|
|
long val;
|
|
u32 flags;
|
|
struct completion ready;
|
|
struct list_head list;
|
|
struct list_head addfd;
|
|
};
|
|
|
|
struct seccomp_notif_sizes {
|
|
__u16 seccomp_notif;
|
|
__u16 seccomp_notif_resp;
|
|
__u16 seccomp_data;
|
|
};
|
|
|
|
struct seccomp_notif_resp {
|
|
__u64 id;
|
|
__s64 val;
|
|
__s32 error;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct seccomp_notif {
|
|
__u64 id;
|
|
__u32 pid;
|
|
__u32 flags;
|
|
struct seccomp_data data;
|
|
};
|
|
|
|
struct seccomp_notif_addfd {
|
|
__u64 id;
|
|
__u32 flags;
|
|
__u32 srcfd;
|
|
__u32 newfd;
|
|
__u32 newfd_flags;
|
|
};
|
|
|
|
enum wb_state {
|
|
WB_registered = 0,
|
|
WB_writeback_running = 1,
|
|
WB_has_dirty_io = 2,
|
|
WB_start_all = 3,
|
|
};
|
|
|
|
typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int);
|
|
|
|
typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int);
|
|
|
|
typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long);
|
|
|
|
struct vfree_deferred {
|
|
struct llist_head list;
|
|
struct work_struct wq;
|
|
};
|
|
|
|
struct vmap_block_queue {
|
|
spinlock_t lock;
|
|
struct list_head free;
|
|
};
|
|
|
|
struct vmap_area {
|
|
unsigned long va_start;
|
|
unsigned long va_end;
|
|
struct rb_node rb_node;
|
|
struct list_head list;
|
|
union {
|
|
unsigned long subtree_max_size;
|
|
struct vm_struct *vm;
|
|
};
|
|
unsigned long flags;
|
|
};
|
|
|
|
enum memcg_stat_item {
|
|
MEMCG_SWAP = 41,
|
|
MEMCG_SOCK = 42,
|
|
MEMCG_PERCPU_B = 43,
|
|
MEMCG_VMALLOC = 44,
|
|
MEMCG_KMEM = 45,
|
|
MEMCG_ZSWAP_B = 46,
|
|
MEMCG_ZSWAPPED = 47,
|
|
MEMCG_NR_STAT = 48,
|
|
};
|
|
|
|
enum fit_type {
|
|
NOTHING_FIT = 0,
|
|
FL_FIT_TYPE = 1,
|
|
LE_FIT_TYPE = 2,
|
|
RE_FIT_TYPE = 3,
|
|
NE_FIT_TYPE = 4,
|
|
};
|
|
|
|
typedef unsigned int kasan_vmalloc_flags_t;
|
|
|
|
struct trace_event_raw_alloc_vmap_area {
|
|
struct trace_entry ent;
|
|
unsigned long addr;
|
|
unsigned long size;
|
|
unsigned long align;
|
|
unsigned long vstart;
|
|
unsigned long vend;
|
|
int failed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_purge_vmap_area_lazy {
|
|
struct trace_entry ent;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
unsigned int npurged;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_free_vmap_area_noflush {
|
|
struct trace_entry ent;
|
|
unsigned long va_start;
|
|
unsigned long nr_lazy;
|
|
unsigned long nr_lazy_max;
|
|
char __data[0];
|
|
};
|
|
|
|
struct vmap_block {
|
|
spinlock_t lock;
|
|
struct vmap_area *va;
|
|
unsigned long free;
|
|
unsigned long dirty;
|
|
unsigned long used_map[16];
|
|
unsigned long dirty_min;
|
|
unsigned long dirty_max;
|
|
struct list_head free_list;
|
|
struct callback_head callback_head;
|
|
struct list_head purge;
|
|
};
|
|
|
|
typedef unsigned int pgtbl_mod_mask;
|
|
|
|
typedef int (*pte_fn_t)(pte_t *, unsigned long, void *);
|
|
|
|
struct trace_event_data_offsets_alloc_vmap_area {};
|
|
|
|
struct trace_event_data_offsets_purge_vmap_area_lazy {};
|
|
|
|
struct trace_event_data_offsets_free_vmap_area_noflush {};
|
|
|
|
struct vmap_pfn_data {
|
|
unsigned long *pfns;
|
|
pgprot_t prot;
|
|
unsigned int idx;
|
|
};
|
|
|
|
struct fs_error_report {
|
|
int error;
|
|
struct inode *inode;
|
|
struct super_block *sb;
|
|
};
|
|
|
|
enum {
|
|
MB_INODE_PA = 0,
|
|
MB_GROUP_PA = 1,
|
|
};
|
|
|
|
enum blk_default_limits {
|
|
BLK_MAX_SEGMENTS = 128,
|
|
BLK_SAFE_MAX_SECTORS = 255,
|
|
BLK_MAX_SEGMENT_SIZE = 65536,
|
|
BLK_SEG_BOUNDARY_MASK = 4294967295,
|
|
};
|
|
|
|
struct ext4_free_data {
|
|
struct list_head efd_list;
|
|
struct rb_node efd_node;
|
|
ext4_group_t efd_group;
|
|
ext4_grpblk_t efd_start_cluster;
|
|
ext4_grpblk_t efd_count;
|
|
tid_t efd_tid;
|
|
};
|
|
|
|
struct ext4_prealloc_space {
|
|
struct list_head pa_inode_list;
|
|
struct list_head pa_group_list;
|
|
union {
|
|
struct list_head pa_tmp_list;
|
|
struct callback_head pa_rcu;
|
|
} u;
|
|
spinlock_t pa_lock;
|
|
atomic_t pa_count;
|
|
unsigned int pa_deleted;
|
|
ext4_fsblk_t pa_pstart;
|
|
ext4_lblk_t pa_lstart;
|
|
ext4_grpblk_t pa_len;
|
|
ext4_grpblk_t pa_free;
|
|
unsigned short pa_type;
|
|
spinlock_t *pa_obj_lock;
|
|
struct inode *pa_inode;
|
|
};
|
|
|
|
struct ext4_buddy {
|
|
struct page *bd_buddy_page;
|
|
void *bd_buddy;
|
|
struct page *bd_bitmap_page;
|
|
void *bd_bitmap;
|
|
struct ext4_group_info *bd_info;
|
|
struct super_block *bd_sb;
|
|
__u16 bd_blkbits;
|
|
ext4_group_t bd_group;
|
|
};
|
|
|
|
struct sg {
|
|
struct ext4_group_info info;
|
|
ext4_grpblk_t counters[18];
|
|
};
|
|
|
|
struct ext4_free_extent {
|
|
ext4_lblk_t fe_logical;
|
|
ext4_grpblk_t fe_start;
|
|
ext4_group_t fe_group;
|
|
ext4_grpblk_t fe_len;
|
|
};
|
|
|
|
struct ext4_allocation_context {
|
|
struct inode *ac_inode;
|
|
struct super_block *ac_sb;
|
|
struct ext4_free_extent ac_o_ex;
|
|
struct ext4_free_extent ac_g_ex;
|
|
struct ext4_free_extent ac_b_ex;
|
|
struct ext4_free_extent ac_f_ex;
|
|
__u32 ac_groups_considered;
|
|
__u32 ac_flags;
|
|
__u16 ac_groups_scanned;
|
|
__u16 ac_groups_linear_remaining;
|
|
__u16 ac_found;
|
|
__u16 ac_tail;
|
|
__u16 ac_buddy;
|
|
__u8 ac_status;
|
|
__u8 ac_criteria;
|
|
__u8 ac_2order;
|
|
__u8 ac_op;
|
|
struct page *ac_bitmap_page;
|
|
struct page *ac_buddy_page;
|
|
struct ext4_prealloc_space *ac_pa;
|
|
struct ext4_locality_group *ac_lg;
|
|
};
|
|
|
|
typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *);
|
|
|
|
enum {
|
|
NSMPROC_NULL = 0,
|
|
NSMPROC_STAT = 1,
|
|
NSMPROC_MON = 2,
|
|
NSMPROC_UNMON = 3,
|
|
NSMPROC_UNMON_ALL = 4,
|
|
NSMPROC_SIMU_CRASH = 5,
|
|
NSMPROC_NOTIFY = 6,
|
|
};
|
|
|
|
enum xprt_transports {
|
|
XPRT_TRANSPORT_UDP = 17,
|
|
XPRT_TRANSPORT_TCP = 6,
|
|
XPRT_TRANSPORT_BC_TCP = -2147483642,
|
|
XPRT_TRANSPORT_RDMA = 256,
|
|
XPRT_TRANSPORT_BC_RDMA = -2147483392,
|
|
XPRT_TRANSPORT_LOCAL = 257,
|
|
};
|
|
|
|
struct nsm_args {
|
|
struct nsm_private *priv;
|
|
u32 prog;
|
|
u32 vers;
|
|
u32 proc;
|
|
char *mon_name;
|
|
const char *nodename;
|
|
};
|
|
|
|
struct nsm_res {
|
|
u32 status;
|
|
u32 state;
|
|
};
|
|
|
|
enum key_notification_subtype {
|
|
NOTIFY_KEY_INSTANTIATED = 0,
|
|
NOTIFY_KEY_UPDATED = 1,
|
|
NOTIFY_KEY_LINKED = 2,
|
|
NOTIFY_KEY_UNLINKED = 3,
|
|
NOTIFY_KEY_CLEARED = 4,
|
|
NOTIFY_KEY_REVOKED = 5,
|
|
NOTIFY_KEY_INVALIDATED = 6,
|
|
NOTIFY_KEY_SETATTR = 7,
|
|
};
|
|
|
|
struct keyctl_dh_params {
|
|
union {
|
|
__s32 private;
|
|
__s32 priv;
|
|
};
|
|
__s32 prime;
|
|
__s32 base;
|
|
};
|
|
|
|
struct keyctl_kdf_params {
|
|
char __attribute__((btf_type_tag("user"))) *hashname;
|
|
char __attribute__((btf_type_tag("user"))) *otherinfo;
|
|
__u32 otherinfolen;
|
|
__u32 __spare[8];
|
|
};
|
|
|
|
struct keyctl_pkey_query {
|
|
__u32 supported_ops;
|
|
__u32 key_size;
|
|
__u16 max_data_size;
|
|
__u16 max_sig_size;
|
|
__u16 max_enc_size;
|
|
__u16 max_dec_size;
|
|
__u32 __spare[10];
|
|
};
|
|
|
|
struct keyctl_pkey_params {
|
|
__s32 key_id;
|
|
__u32 in_len;
|
|
union {
|
|
__u32 out_len;
|
|
__u32 in2_len;
|
|
};
|
|
__u32 __spare[7];
|
|
};
|
|
|
|
enum evm_ima_xattr_type {
|
|
IMA_XATTR_DIGEST = 1,
|
|
EVM_XATTR_HMAC = 2,
|
|
EVM_IMA_XATTR_DIGSIG = 3,
|
|
IMA_XATTR_DIGEST_NG = 4,
|
|
EVM_XATTR_PORTABLE_DIGSIG = 5,
|
|
IMA_VERITY_DIGSIG = 6,
|
|
IMA_XATTR_LAST = 7,
|
|
};
|
|
|
|
struct asymmetric_key_parser {
|
|
struct list_head link;
|
|
struct module *owner;
|
|
const char *name;
|
|
int (*parse)(struct key_preparsed_payload *);
|
|
};
|
|
|
|
enum blacklist_hash_type {
|
|
BLACKLIST_HASH_X509_TBS = 1,
|
|
BLACKLIST_HASH_BINARY = 2,
|
|
};
|
|
|
|
struct asymmetric_key_ids {
|
|
void *id[3];
|
|
};
|
|
|
|
struct io_uring_file_index_range {
|
|
__u32 off;
|
|
__u32 len;
|
|
__u64 resv;
|
|
};
|
|
|
|
union handle_parts {
|
|
depot_stack_handle_t handle;
|
|
struct {
|
|
u32 pool_index: 16;
|
|
u32 offset: 10;
|
|
u32 valid: 1;
|
|
u32 extra: 5;
|
|
};
|
|
};
|
|
|
|
struct stack_record {
|
|
struct stack_record *next;
|
|
u32 hash;
|
|
u32 size;
|
|
union handle_parts handle;
|
|
unsigned long entries[0];
|
|
};
|
|
|
|
struct pci_filp_private {
|
|
enum pci_mmap_state mmap_state;
|
|
int write_combine;
|
|
};
|
|
|
|
struct acpi_table_madt {
|
|
struct acpi_table_header header;
|
|
u32 address;
|
|
u32 flags;
|
|
};
|
|
|
|
struct acpi_pci_link_irq {
|
|
u32 active;
|
|
u8 triggering;
|
|
u8 polarity;
|
|
u8 resource_type;
|
|
u8 possible_count;
|
|
u32 possible[16];
|
|
u8 initialized: 1;
|
|
u8 reserved: 7;
|
|
};
|
|
|
|
struct acpi_pci_link {
|
|
struct list_head list;
|
|
struct acpi_device *device;
|
|
struct acpi_pci_link_irq irq;
|
|
int refcnt;
|
|
};
|
|
|
|
struct acpi_namestring_info {
|
|
const char *external_name;
|
|
const char *next_external_char;
|
|
char *internal_name;
|
|
u32 length;
|
|
u32 num_segments;
|
|
u32 num_carats;
|
|
u8 fully_qualified;
|
|
};
|
|
|
|
struct pnp_fixup {
|
|
char id[7];
|
|
void (*quirk_function)(struct pnp_dev *);
|
|
};
|
|
|
|
struct mid8250;
|
|
|
|
struct mid8250_board {
|
|
unsigned int flags;
|
|
unsigned long freq;
|
|
unsigned int base_baud;
|
|
int (*setup)(struct mid8250 *, struct uart_port *);
|
|
void (*exit)(struct mid8250 *);
|
|
};
|
|
|
|
struct hsu_dma;
|
|
|
|
struct hsu_dma_chip {
|
|
struct device *dev;
|
|
int irq;
|
|
void *regs;
|
|
unsigned int length;
|
|
unsigned int offset;
|
|
struct hsu_dma *hsu;
|
|
};
|
|
|
|
struct mid8250 {
|
|
int line;
|
|
int dma_index;
|
|
struct pci_dev *dma_dev;
|
|
struct uart_8250_dma dma;
|
|
struct mid8250_board *board;
|
|
struct hsu_dma_chip dma_chip;
|
|
};
|
|
|
|
struct hsu_dma_slave {
|
|
struct device *dma_dev;
|
|
int chan_id;
|
|
};
|
|
|
|
struct drm_client_funcs;
|
|
|
|
struct drm_client_dev {
|
|
struct drm_device *dev;
|
|
const char *name;
|
|
struct list_head list;
|
|
const struct drm_client_funcs *funcs;
|
|
struct drm_file *file;
|
|
struct mutex modeset_mutex;
|
|
struct drm_mode_set *modesets;
|
|
bool hotplug_failed;
|
|
};
|
|
|
|
struct drm_client_funcs {
|
|
struct module *owner;
|
|
void (*unregister)(struct drm_client_dev *);
|
|
int (*restore)(struct drm_client_dev *);
|
|
int (*hotplug)(struct drm_client_dev *);
|
|
};
|
|
|
|
struct drm_client_buffer {
|
|
struct drm_client_dev *client;
|
|
u32 pitch;
|
|
struct drm_gem_object *gem;
|
|
struct iosys_map map;
|
|
struct drm_framebuffer *fb;
|
|
};
|
|
|
|
struct ttm_validate_buffer {
|
|
struct list_head head;
|
|
struct ttm_buffer_object *bo;
|
|
unsigned int num_shared;
|
|
};
|
|
|
|
struct ttm_range_mgr_node {
|
|
struct ttm_resource base;
|
|
struct drm_mm_node mm_nodes[0];
|
|
};
|
|
|
|
struct legacy_ring {
|
|
struct intel_gt *gt;
|
|
u8 class;
|
|
u8 instance;
|
|
};
|
|
|
|
struct cparams {
|
|
u16 i;
|
|
u16 t;
|
|
u16 m;
|
|
u16 c;
|
|
};
|
|
|
|
struct intel_rps_freq_caps {
|
|
u8 rp0_freq;
|
|
u8 rp1_freq;
|
|
u8 min_freq;
|
|
};
|
|
|
|
struct i915_dpt {
|
|
struct i915_address_space___3 vm;
|
|
struct drm_i915_gem_object___3 *obj;
|
|
struct i915_vma___3 *vma;
|
|
void *iomem;
|
|
};
|
|
|
|
struct dma_buf_list {
|
|
struct list_head head;
|
|
struct mutex lock;
|
|
};
|
|
|
|
struct dma_buf_import_sync_file {
|
|
__u32 flags;
|
|
__s32 fd;
|
|
};
|
|
|
|
struct dma_buf_export_sync_file {
|
|
__u32 flags;
|
|
__s32 fd;
|
|
};
|
|
|
|
struct dma_buf_sync {
|
|
__u64 flags;
|
|
};
|
|
|
|
enum ata_link_iter_mode {
|
|
ATA_LITER_EDGE = 0,
|
|
ATA_LITER_HOST_FIRST = 1,
|
|
ATA_LITER_PMP_FIRST = 2,
|
|
};
|
|
|
|
enum {
|
|
VXLAN_VNI_STATS_RX = 0,
|
|
VXLAN_VNI_STATS_RX_DROPS = 1,
|
|
VXLAN_VNI_STATS_RX_ERRORS = 2,
|
|
VXLAN_VNI_STATS_TX = 3,
|
|
VXLAN_VNI_STATS_TX_DROPS = 4,
|
|
VXLAN_VNI_STATS_TX_ERRORS = 5,
|
|
};
|
|
|
|
enum {
|
|
VXLAN_VNIFILTER_UNSPEC = 0,
|
|
VXLAN_VNIFILTER_ENTRY = 1,
|
|
__VXLAN_VNIFILTER_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
VXLAN_VNIFILTER_ENTRY_UNSPEC = 0,
|
|
VXLAN_VNIFILTER_ENTRY_START = 1,
|
|
VXLAN_VNIFILTER_ENTRY_END = 2,
|
|
VXLAN_VNIFILTER_ENTRY_GROUP = 3,
|
|
VXLAN_VNIFILTER_ENTRY_GROUP6 = 4,
|
|
VXLAN_VNIFILTER_ENTRY_STATS = 5,
|
|
__VXLAN_VNIFILTER_ENTRY_MAX = 6,
|
|
};
|
|
|
|
enum {
|
|
VNIFILTER_ENTRY_STATS_UNSPEC = 0,
|
|
VNIFILTER_ENTRY_STATS_RX_BYTES = 1,
|
|
VNIFILTER_ENTRY_STATS_RX_PKTS = 2,
|
|
VNIFILTER_ENTRY_STATS_RX_DROPS = 3,
|
|
VNIFILTER_ENTRY_STATS_RX_ERRORS = 4,
|
|
VNIFILTER_ENTRY_STATS_TX_BYTES = 5,
|
|
VNIFILTER_ENTRY_STATS_TX_PKTS = 6,
|
|
VNIFILTER_ENTRY_STATS_TX_DROPS = 7,
|
|
VNIFILTER_ENTRY_STATS_TX_ERRORS = 8,
|
|
VNIFILTER_ENTRY_STATS_PAD = 9,
|
|
__VNIFILTER_ENTRY_STATS_MAX = 10,
|
|
};
|
|
|
|
struct tunnel_msg {
|
|
__u8 family;
|
|
__u8 flags;
|
|
__u16 reserved2;
|
|
__u32 ifindex;
|
|
};
|
|
|
|
enum {
|
|
SNDRV_TIMER_CLASS_NONE = -1,
|
|
SNDRV_TIMER_CLASS_SLAVE = 0,
|
|
SNDRV_TIMER_CLASS_GLOBAL = 1,
|
|
SNDRV_TIMER_CLASS_CARD = 2,
|
|
SNDRV_TIMER_CLASS_PCM = 3,
|
|
SNDRV_TIMER_CLASS_LAST = 3,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_TIMER_SCLASS_NONE = 0,
|
|
SNDRV_TIMER_SCLASS_APPLICATION = 1,
|
|
SNDRV_TIMER_SCLASS_SEQUENCER = 2,
|
|
SNDRV_TIMER_SCLASS_OSS_SEQUENCER = 3,
|
|
SNDRV_TIMER_SCLASS_LAST = 3,
|
|
};
|
|
|
|
enum timer_tread_format {
|
|
TREAD_FORMAT_NONE = 0,
|
|
TREAD_FORMAT_TIME64 = 1,
|
|
TREAD_FORMAT_TIME32 = 2,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_TIMER_IOCTL_GPARAMS32 = 1077695492,
|
|
SNDRV_TIMER_IOCTL_INFO32 = 2162185233,
|
|
SNDRV_TIMER_IOCTL_STATUS_COMPAT32 = 1079530516,
|
|
SNDRV_TIMER_IOCTL_STATUS_COMPAT64 = 1080054804,
|
|
};
|
|
|
|
struct snd_timer_system_private {
|
|
struct timer_list tlist;
|
|
struct snd_timer *snd_timer;
|
|
unsigned long last_expires;
|
|
unsigned long last_jiffies;
|
|
unsigned long correction;
|
|
};
|
|
|
|
struct snd_timer_gparams32 {
|
|
struct snd_timer_id tid;
|
|
u32 period_num;
|
|
u32 period_den;
|
|
unsigned char reserved[32];
|
|
};
|
|
|
|
struct snd_timer_gparams {
|
|
struct snd_timer_id tid;
|
|
unsigned long period_num;
|
|
unsigned long period_den;
|
|
unsigned char reserved[32];
|
|
};
|
|
|
|
struct snd_timer_info32 {
|
|
u32 flags;
|
|
s32 card;
|
|
unsigned char id[64];
|
|
unsigned char name[80];
|
|
u32 reserved0;
|
|
u32 resolution;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_timer_read;
|
|
|
|
struct snd_timer_tread64;
|
|
|
|
struct snd_timer_user {
|
|
struct snd_timer_instance *timeri;
|
|
int tread;
|
|
unsigned long ticks;
|
|
unsigned long overrun;
|
|
int qhead;
|
|
int qtail;
|
|
int qused;
|
|
int queue_size;
|
|
bool disconnected;
|
|
struct snd_timer_read *queue;
|
|
struct snd_timer_tread64 *tqueue;
|
|
spinlock_t qlock;
|
|
unsigned long last_resolution;
|
|
unsigned int filter;
|
|
struct timespec64 tstamp;
|
|
wait_queue_head_t qchange_sleep;
|
|
struct snd_fasync *fasync;
|
|
struct mutex ioctl_lock;
|
|
};
|
|
|
|
struct snd_timer_read {
|
|
unsigned int resolution;
|
|
unsigned int ticks;
|
|
};
|
|
|
|
struct snd_timer_tread64 {
|
|
int event;
|
|
u8 pad1[4];
|
|
s64 tstamp_sec;
|
|
s64 tstamp_nsec;
|
|
unsigned int val;
|
|
u8 pad2[4];
|
|
};
|
|
|
|
struct snd_timer_params {
|
|
unsigned int flags;
|
|
unsigned int ticks;
|
|
unsigned int queue_size;
|
|
unsigned int reserved0;
|
|
unsigned int filter;
|
|
unsigned char reserved[60];
|
|
};
|
|
|
|
struct snd_timer_ginfo {
|
|
struct snd_timer_id tid;
|
|
unsigned int flags;
|
|
int card;
|
|
unsigned char id[64];
|
|
unsigned char name[80];
|
|
unsigned long reserved0;
|
|
unsigned long resolution;
|
|
unsigned long resolution_min;
|
|
unsigned long resolution_max;
|
|
unsigned int clients;
|
|
unsigned char reserved[32];
|
|
};
|
|
|
|
struct snd_timer_info {
|
|
unsigned int flags;
|
|
int card;
|
|
unsigned char id[64];
|
|
unsigned char name[80];
|
|
unsigned long reserved0;
|
|
unsigned long resolution;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_timer_select {
|
|
struct snd_timer_id id;
|
|
unsigned char reserved[32];
|
|
};
|
|
|
|
struct snd_timer_gstatus {
|
|
struct snd_timer_id tid;
|
|
unsigned long resolution;
|
|
unsigned long resolution_num;
|
|
unsigned long resolution_den;
|
|
unsigned char reserved[32];
|
|
};
|
|
|
|
struct snd_timer_tread32 {
|
|
int event;
|
|
s32 tstamp_sec;
|
|
s32 tstamp_nsec;
|
|
unsigned int val;
|
|
};
|
|
|
|
struct snd_timer_status32 {
|
|
s32 tstamp_sec;
|
|
s32 tstamp_nsec;
|
|
unsigned int resolution;
|
|
unsigned int lost;
|
|
unsigned int overrun;
|
|
unsigned int queue;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_timer_status64 {
|
|
s64 tstamp_sec;
|
|
s64 tstamp_nsec;
|
|
unsigned int resolution;
|
|
unsigned int lost;
|
|
unsigned int overrun;
|
|
unsigned int queue;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
enum {
|
|
TCA_STATS_UNSPEC = 0,
|
|
TCA_STATS_BASIC = 1,
|
|
TCA_STATS_RATE_EST = 2,
|
|
TCA_STATS_QUEUE = 3,
|
|
TCA_STATS_APP = 4,
|
|
TCA_STATS_RATE_EST64 = 5,
|
|
TCA_STATS_PAD = 6,
|
|
TCA_STATS_BASIC_HW = 7,
|
|
TCA_STATS_PKT64 = 8,
|
|
__TCA_STATS_MAX = 9,
|
|
};
|
|
|
|
struct gnet_stats_rate_est64 {
|
|
__u64 bps;
|
|
__u64 pps;
|
|
};
|
|
|
|
struct gnet_stats_basic {
|
|
__u64 bytes;
|
|
__u32 packets;
|
|
};
|
|
|
|
struct gnet_stats_rate_est {
|
|
__u32 bps;
|
|
__u32 pps;
|
|
};
|
|
|
|
struct ethtool_cmd {
|
|
__u32 cmd;
|
|
__u32 supported;
|
|
__u32 advertising;
|
|
__u16 speed;
|
|
__u8 duplex;
|
|
__u8 port;
|
|
__u8 phy_address;
|
|
__u8 transceiver;
|
|
__u8 autoneg;
|
|
__u8 mdio_support;
|
|
__u32 maxtxpkt;
|
|
__u32 maxrxpkt;
|
|
__u16 speed_hi;
|
|
__u8 eth_tp_mdix;
|
|
__u8 eth_tp_mdix_ctrl;
|
|
__u32 lp_advertising;
|
|
__u32 reserved[2];
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_MODULE_UNSPEC = 0,
|
|
ETHTOOL_A_MODULE_HEADER = 1,
|
|
ETHTOOL_A_MODULE_POWER_MODE_POLICY = 2,
|
|
ETHTOOL_A_MODULE_POWER_MODE = 3,
|
|
__ETHTOOL_A_MODULE_CNT = 4,
|
|
ETHTOOL_A_MODULE_MAX = 3,
|
|
};
|
|
|
|
struct module_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_module_power_mode_params power;
|
|
};
|
|
|
|
enum sdp_header_types {
|
|
SDP_HDR_UNSPEC = 0,
|
|
SDP_HDR_VERSION = 1,
|
|
SDP_HDR_OWNER = 2,
|
|
SDP_HDR_CONNECTION = 3,
|
|
SDP_HDR_MEDIA = 4,
|
|
};
|
|
|
|
struct nf_nat_sip_hooks {
|
|
unsigned int (*msg)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *);
|
|
void (*seq_adjust)(struct sk_buff *, unsigned int, s16);
|
|
unsigned int (*expect)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, struct nf_conntrack_expect *, unsigned int, unsigned int);
|
|
unsigned int (*sdp_addr)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, enum sdp_header_types, enum sdp_header_types, const union nf_inet_addr *);
|
|
unsigned int (*sdp_port)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, unsigned int, u_int16_t);
|
|
unsigned int (*sdp_session)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, const union nf_inet_addr *);
|
|
unsigned int (*sdp_media)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, struct nf_conntrack_expect *, struct nf_conntrack_expect *, unsigned int, unsigned int, union nf_inet_addr *);
|
|
};
|
|
|
|
struct sip_header {
|
|
const char *name;
|
|
const char *cname;
|
|
const char *search;
|
|
unsigned int len;
|
|
unsigned int clen;
|
|
unsigned int slen;
|
|
int (*match_len)(const struct nf_conn *, const char *, const char *, int *);
|
|
};
|
|
|
|
struct sip_handler {
|
|
const char *method;
|
|
unsigned int len;
|
|
int (*request)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int);
|
|
int (*response)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, unsigned int);
|
|
};
|
|
|
|
enum sip_expectation_classes {
|
|
SIP_EXPECT_SIGNALLING = 0,
|
|
SIP_EXPECT_AUDIO = 1,
|
|
SIP_EXPECT_VIDEO = 2,
|
|
SIP_EXPECT_IMAGE = 3,
|
|
__SIP_EXPECT_MAX = 4,
|
|
};
|
|
|
|
struct sdp_media_type {
|
|
const char *name;
|
|
unsigned int len;
|
|
enum sip_expectation_classes class;
|
|
};
|
|
|
|
enum sip_header_types {
|
|
SIP_HDR_CSEQ = 0,
|
|
SIP_HDR_FROM = 1,
|
|
SIP_HDR_TO = 2,
|
|
SIP_HDR_CONTACT = 3,
|
|
SIP_HDR_VIA_UDP = 4,
|
|
SIP_HDR_VIA_TCP = 5,
|
|
SIP_HDR_EXPIRES = 6,
|
|
SIP_HDR_CONTENT_LENGTH = 7,
|
|
SIP_HDR_CALL_ID = 8,
|
|
};
|
|
|
|
struct nf_ct_sip_master {
|
|
unsigned int register_cseq;
|
|
unsigned int invite_cseq;
|
|
__be16 forced_dport;
|
|
};
|
|
|
|
enum {
|
|
FOU_CMD_UNSPEC = 0,
|
|
FOU_CMD_ADD = 1,
|
|
FOU_CMD_DEL = 2,
|
|
FOU_CMD_GET = 3,
|
|
__FOU_CMD_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
FOU_ATTR_UNSPEC = 0,
|
|
FOU_ATTR_PORT = 1,
|
|
FOU_ATTR_AF = 2,
|
|
FOU_ATTR_IPPROTO = 3,
|
|
FOU_ATTR_TYPE = 4,
|
|
FOU_ATTR_REMCSUM_NOPARTIAL = 5,
|
|
FOU_ATTR_LOCAL_V4 = 6,
|
|
FOU_ATTR_LOCAL_V6 = 7,
|
|
FOU_ATTR_PEER_V4 = 8,
|
|
FOU_ATTR_PEER_V6 = 9,
|
|
FOU_ATTR_PEER_PORT = 10,
|
|
FOU_ATTR_IFINDEX = 11,
|
|
__FOU_ATTR_MAX = 12,
|
|
};
|
|
|
|
enum {
|
|
FOU_ENCAP_UNSPEC = 0,
|
|
FOU_ENCAP_DIRECT = 1,
|
|
FOU_ENCAP_GUE = 2,
|
|
};
|
|
|
|
struct fou {
|
|
struct socket *sock;
|
|
u8 protocol;
|
|
u8 flags;
|
|
__be16 port;
|
|
u8 family;
|
|
u16 type;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct fou_cfg {
|
|
u16 type;
|
|
u8 protocol;
|
|
u8 flags;
|
|
struct udp_port_cfg udp_config;
|
|
};
|
|
|
|
struct fou_net {
|
|
struct list_head fou_list;
|
|
struct mutex fou_lock;
|
|
};
|
|
|
|
struct gro_remcsum {
|
|
int offset;
|
|
__wsum delta;
|
|
};
|
|
|
|
enum xfrm_ae_ftype_t {
|
|
XFRM_AE_UNSPEC = 0,
|
|
XFRM_AE_RTHR = 1,
|
|
XFRM_AE_RVAL = 2,
|
|
XFRM_AE_LVAL = 4,
|
|
XFRM_AE_ETHR = 8,
|
|
XFRM_AE_CR = 16,
|
|
XFRM_AE_CE = 32,
|
|
XFRM_AE_CU = 64,
|
|
__XFRM_AE_MAX = 65,
|
|
};
|
|
|
|
enum {
|
|
XFRM_MSG_BASE = 16,
|
|
XFRM_MSG_NEWSA = 16,
|
|
XFRM_MSG_DELSA = 17,
|
|
XFRM_MSG_GETSA = 18,
|
|
XFRM_MSG_NEWPOLICY = 19,
|
|
XFRM_MSG_DELPOLICY = 20,
|
|
XFRM_MSG_GETPOLICY = 21,
|
|
XFRM_MSG_ALLOCSPI = 22,
|
|
XFRM_MSG_ACQUIRE = 23,
|
|
XFRM_MSG_EXPIRE = 24,
|
|
XFRM_MSG_UPDPOLICY = 25,
|
|
XFRM_MSG_UPDSA = 26,
|
|
XFRM_MSG_POLEXPIRE = 27,
|
|
XFRM_MSG_FLUSHSA = 28,
|
|
XFRM_MSG_FLUSHPOLICY = 29,
|
|
XFRM_MSG_NEWAE = 30,
|
|
XFRM_MSG_GETAE = 31,
|
|
XFRM_MSG_REPORT = 32,
|
|
XFRM_MSG_MIGRATE = 33,
|
|
XFRM_MSG_NEWSADINFO = 34,
|
|
XFRM_MSG_GETSADINFO = 35,
|
|
XFRM_MSG_NEWSPDINFO = 36,
|
|
XFRM_MSG_GETSPDINFO = 37,
|
|
XFRM_MSG_MAPPING = 38,
|
|
XFRM_MSG_SETDEFAULT = 39,
|
|
XFRM_MSG_GETDEFAULT = 40,
|
|
__XFRM_MSG_MAX = 41,
|
|
};
|
|
|
|
enum xfrm_nlgroups {
|
|
XFRMNLGRP_NONE = 0,
|
|
XFRMNLGRP_ACQUIRE = 1,
|
|
XFRMNLGRP_EXPIRE = 2,
|
|
XFRMNLGRP_SA = 3,
|
|
XFRMNLGRP_POLICY = 4,
|
|
XFRMNLGRP_AEVENTS = 5,
|
|
XFRMNLGRP_REPORT = 6,
|
|
XFRMNLGRP_MIGRATE = 7,
|
|
XFRMNLGRP_MAPPING = 8,
|
|
__XFRMNLGRP_MAX = 9,
|
|
};
|
|
|
|
struct km_event {
|
|
union {
|
|
u32 hard;
|
|
u32 proto;
|
|
u32 byid;
|
|
u32 aevent;
|
|
u32 type;
|
|
} data;
|
|
u32 seq;
|
|
u32 portid;
|
|
u32 event;
|
|
struct net *net;
|
|
};
|
|
|
|
struct ping_iter_state {
|
|
struct seq_net_private p;
|
|
int bucket;
|
|
sa_family_t family;
|
|
};
|
|
|
|
struct pingfakehdr {
|
|
struct icmphdr icmph;
|
|
struct msghdr *msg;
|
|
sa_family_t family;
|
|
__wsum wcheck;
|
|
};
|
|
|
|
struct ip_auth_hdr {
|
|
__u8 nexthdr;
|
|
__u8 hdrlen;
|
|
__be16 reserved;
|
|
__be32 spi;
|
|
__be32 seq_no;
|
|
__u8 auth_data[0];
|
|
};
|
|
|
|
struct hash_alg_common {
|
|
unsigned int digestsize;
|
|
unsigned int statesize;
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct ah_skb_cb {
|
|
struct xfrm_skb_cb xfrm;
|
|
void *tmp;
|
|
};
|
|
|
|
struct rt0_hdr {
|
|
struct ipv6_rt_hdr rt_hdr;
|
|
__u32 reserved;
|
|
struct in6_addr addr[0];
|
|
};
|
|
|
|
struct tmp_ext {
|
|
struct in6_addr daddr;
|
|
char hdrs[0];
|
|
};
|
|
|
|
struct ah_data {
|
|
int icv_full_len;
|
|
int icv_trunc_len;
|
|
struct crypto_ahash *ahash;
|
|
};
|
|
|
|
enum devlink_command {
|
|
DEVLINK_CMD_UNSPEC = 0,
|
|
DEVLINK_CMD_GET = 1,
|
|
DEVLINK_CMD_SET = 2,
|
|
DEVLINK_CMD_NEW = 3,
|
|
DEVLINK_CMD_DEL = 4,
|
|
DEVLINK_CMD_PORT_GET = 5,
|
|
DEVLINK_CMD_PORT_SET = 6,
|
|
DEVLINK_CMD_PORT_NEW = 7,
|
|
DEVLINK_CMD_PORT_DEL = 8,
|
|
DEVLINK_CMD_PORT_SPLIT = 9,
|
|
DEVLINK_CMD_PORT_UNSPLIT = 10,
|
|
DEVLINK_CMD_SB_GET = 11,
|
|
DEVLINK_CMD_SB_SET = 12,
|
|
DEVLINK_CMD_SB_NEW = 13,
|
|
DEVLINK_CMD_SB_DEL = 14,
|
|
DEVLINK_CMD_SB_POOL_GET = 15,
|
|
DEVLINK_CMD_SB_POOL_SET = 16,
|
|
DEVLINK_CMD_SB_POOL_NEW = 17,
|
|
DEVLINK_CMD_SB_POOL_DEL = 18,
|
|
DEVLINK_CMD_SB_PORT_POOL_GET = 19,
|
|
DEVLINK_CMD_SB_PORT_POOL_SET = 20,
|
|
DEVLINK_CMD_SB_PORT_POOL_NEW = 21,
|
|
DEVLINK_CMD_SB_PORT_POOL_DEL = 22,
|
|
DEVLINK_CMD_SB_TC_POOL_BIND_GET = 23,
|
|
DEVLINK_CMD_SB_TC_POOL_BIND_SET = 24,
|
|
DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 25,
|
|
DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 26,
|
|
DEVLINK_CMD_SB_OCC_SNAPSHOT = 27,
|
|
DEVLINK_CMD_SB_OCC_MAX_CLEAR = 28,
|
|
DEVLINK_CMD_ESWITCH_GET = 29,
|
|
DEVLINK_CMD_ESWITCH_SET = 30,
|
|
DEVLINK_CMD_DPIPE_TABLE_GET = 31,
|
|
DEVLINK_CMD_DPIPE_ENTRIES_GET = 32,
|
|
DEVLINK_CMD_DPIPE_HEADERS_GET = 33,
|
|
DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 34,
|
|
DEVLINK_CMD_RESOURCE_SET = 35,
|
|
DEVLINK_CMD_RESOURCE_DUMP = 36,
|
|
DEVLINK_CMD_RELOAD = 37,
|
|
DEVLINK_CMD_PARAM_GET = 38,
|
|
DEVLINK_CMD_PARAM_SET = 39,
|
|
DEVLINK_CMD_PARAM_NEW = 40,
|
|
DEVLINK_CMD_PARAM_DEL = 41,
|
|
DEVLINK_CMD_REGION_GET = 42,
|
|
DEVLINK_CMD_REGION_SET = 43,
|
|
DEVLINK_CMD_REGION_NEW = 44,
|
|
DEVLINK_CMD_REGION_DEL = 45,
|
|
DEVLINK_CMD_REGION_READ = 46,
|
|
DEVLINK_CMD_PORT_PARAM_GET = 47,
|
|
DEVLINK_CMD_PORT_PARAM_SET = 48,
|
|
DEVLINK_CMD_PORT_PARAM_NEW = 49,
|
|
DEVLINK_CMD_PORT_PARAM_DEL = 50,
|
|
DEVLINK_CMD_INFO_GET = 51,
|
|
DEVLINK_CMD_HEALTH_REPORTER_GET = 52,
|
|
DEVLINK_CMD_HEALTH_REPORTER_SET = 53,
|
|
DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 54,
|
|
DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 55,
|
|
DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 56,
|
|
DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 57,
|
|
DEVLINK_CMD_FLASH_UPDATE = 58,
|
|
DEVLINK_CMD_FLASH_UPDATE_END = 59,
|
|
DEVLINK_CMD_FLASH_UPDATE_STATUS = 60,
|
|
DEVLINK_CMD_TRAP_GET = 61,
|
|
DEVLINK_CMD_TRAP_SET = 62,
|
|
DEVLINK_CMD_TRAP_NEW = 63,
|
|
DEVLINK_CMD_TRAP_DEL = 64,
|
|
DEVLINK_CMD_TRAP_GROUP_GET = 65,
|
|
DEVLINK_CMD_TRAP_GROUP_SET = 66,
|
|
DEVLINK_CMD_TRAP_GROUP_NEW = 67,
|
|
DEVLINK_CMD_TRAP_GROUP_DEL = 68,
|
|
DEVLINK_CMD_TRAP_POLICER_GET = 69,
|
|
DEVLINK_CMD_TRAP_POLICER_SET = 70,
|
|
DEVLINK_CMD_TRAP_POLICER_NEW = 71,
|
|
DEVLINK_CMD_TRAP_POLICER_DEL = 72,
|
|
DEVLINK_CMD_HEALTH_REPORTER_TEST = 73,
|
|
DEVLINK_CMD_RATE_GET = 74,
|
|
DEVLINK_CMD_RATE_SET = 75,
|
|
DEVLINK_CMD_RATE_NEW = 76,
|
|
DEVLINK_CMD_RATE_DEL = 77,
|
|
DEVLINK_CMD_LINECARD_GET = 78,
|
|
DEVLINK_CMD_LINECARD_SET = 79,
|
|
DEVLINK_CMD_LINECARD_NEW = 80,
|
|
DEVLINK_CMD_LINECARD_DEL = 81,
|
|
DEVLINK_CMD_SELFTESTS_GET = 82,
|
|
DEVLINK_CMD_SELFTESTS_RUN = 83,
|
|
__DEVLINK_CMD_MAX = 84,
|
|
DEVLINK_CMD_MAX = 83,
|
|
};
|
|
|
|
enum devlink_health_reporter_state {
|
|
DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0,
|
|
DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1,
|
|
};
|
|
|
|
enum devlink_multicast_groups {
|
|
DEVLINK_MCGRP_CONFIG = 0,
|
|
};
|
|
|
|
struct devlink_health_reporter {
|
|
struct list_head list;
|
|
void *priv;
|
|
const struct devlink_health_reporter_ops *ops;
|
|
struct devlink *devlink;
|
|
struct devlink_port *devlink_port;
|
|
struct devlink_fmsg *dump_fmsg;
|
|
struct mutex dump_lock;
|
|
u64 graceful_period;
|
|
bool auto_recover;
|
|
bool auto_dump;
|
|
u8 health_state;
|
|
u64 dump_ts;
|
|
u64 dump_real_ts;
|
|
u64 error_count;
|
|
u64 recovery_count;
|
|
u64 last_recovery_ts;
|
|
};
|
|
|
|
struct devlink_fmsg {
|
|
struct list_head item_list;
|
|
bool putting_binary;
|
|
};
|
|
|
|
struct devlink_fmsg_item {
|
|
struct list_head list;
|
|
int attrtype;
|
|
u8 nla_type;
|
|
u16 len;
|
|
int value[0];
|
|
};
|
|
|
|
enum mac80211_tx_status_flags {
|
|
IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1,
|
|
};
|
|
|
|
enum ieee80211_radiotap_he_bits {
|
|
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MASK = 3,
|
|
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU = 0,
|
|
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_EXT_SU = 1,
|
|
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU = 2,
|
|
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG = 3,
|
|
IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN = 4,
|
|
IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN = 8,
|
|
IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN = 16,
|
|
IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN = 32,
|
|
IEEE80211_RADIOTAP_HE_DATA1_DATA_DCM_KNOWN = 64,
|
|
IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN = 128,
|
|
IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN = 256,
|
|
IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN = 512,
|
|
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN = 1024,
|
|
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN = 2048,
|
|
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN = 4096,
|
|
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN = 8192,
|
|
IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN = 16384,
|
|
IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN = 32768,
|
|
IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN = 1,
|
|
IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN = 2,
|
|
IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN = 4,
|
|
IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN = 8,
|
|
IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN = 16,
|
|
IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN = 32,
|
|
IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN = 64,
|
|
IEEE80211_RADIOTAP_HE_DATA2_MIDAMBLE_KNOWN = 128,
|
|
IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET = 16128,
|
|
IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN = 16384,
|
|
IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC = 32768,
|
|
IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR = 63,
|
|
IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE = 64,
|
|
IEEE80211_RADIOTAP_HE_DATA3_UL_DL = 128,
|
|
IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS = 3840,
|
|
IEEE80211_RADIOTAP_HE_DATA3_DATA_DCM = 4096,
|
|
IEEE80211_RADIOTAP_HE_DATA3_CODING = 8192,
|
|
IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG = 16384,
|
|
IEEE80211_RADIOTAP_HE_DATA3_STBC = 32768,
|
|
IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE = 15,
|
|
IEEE80211_RADIOTAP_HE_DATA4_MU_STA_ID = 32752,
|
|
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 = 15,
|
|
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 = 240,
|
|
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 = 3840,
|
|
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4 = 61440,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC = 15,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_20MHZ = 0,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_40MHZ = 1,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_80MHZ = 2,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_160MHZ = 3,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_26T = 4,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_52T = 5,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_106T = 6,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_242T = 7,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_484T = 8,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_996T = 9,
|
|
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_2x996T = 10,
|
|
IEEE80211_RADIOTAP_HE_DATA5_GI = 48,
|
|
IEEE80211_RADIOTAP_HE_DATA5_GI_0_8 = 0,
|
|
IEEE80211_RADIOTAP_HE_DATA5_GI_1_6 = 1,
|
|
IEEE80211_RADIOTAP_HE_DATA5_GI_3_2 = 2,
|
|
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE = 192,
|
|
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_UNKNOWN = 0,
|
|
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_1X = 1,
|
|
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_2X = 2,
|
|
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_4X = 3,
|
|
IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS = 1792,
|
|
IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD = 12288,
|
|
IEEE80211_RADIOTAP_HE_DATA5_TXBF = 16384,
|
|
IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG = 32768,
|
|
IEEE80211_RADIOTAP_HE_DATA6_NSTS = 15,
|
|
IEEE80211_RADIOTAP_HE_DATA6_DOPPLER = 16,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN = 32,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW = 192,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_20MHZ = 0,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_40MHZ = 1,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_80MHZ = 2,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_160MHZ = 3,
|
|
IEEE80211_RADIOTAP_HE_DATA6_TXOP = 32512,
|
|
IEEE80211_RADIOTAP_HE_DATA6_MIDAMBLE_PDCTY = 32768,
|
|
};
|
|
|
|
enum ieee80211_ht_actioncode {
|
|
WLAN_HT_ACTION_NOTIFY_CHANWIDTH = 0,
|
|
WLAN_HT_ACTION_SMPS = 1,
|
|
WLAN_HT_ACTION_PSMP = 2,
|
|
WLAN_HT_ACTION_PCO_PHASE = 3,
|
|
WLAN_HT_ACTION_CSI = 4,
|
|
WLAN_HT_ACTION_NONCOMPRESSED_BF = 5,
|
|
WLAN_HT_ACTION_COMPRESSED_BF = 6,
|
|
WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7,
|
|
};
|
|
|
|
enum ieee80211_unprotected_wnm_actioncode {
|
|
WLAN_UNPROTECTED_WNM_ACTION_TIM = 0,
|
|
WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1,
|
|
};
|
|
|
|
enum ieee80211_public_actioncode {
|
|
WLAN_PUBLIC_ACTION_FTM_RESPONSE = 33,
|
|
};
|
|
|
|
struct ieee80211_radiotap_he {
|
|
__le16 data1;
|
|
__le16 data2;
|
|
__le16 data3;
|
|
__le16 data4;
|
|
__le16 data5;
|
|
__le16 data6;
|
|
};
|
|
|
|
struct ieee80211_bar {
|
|
__le16 frame_control;
|
|
__le16 duration;
|
|
__u8 ra[6];
|
|
__u8 ta[6];
|
|
__le16 control;
|
|
__le16 start_seq_num;
|
|
};
|
|
|
|
struct cfg80211_tx_status {
|
|
u64 cookie;
|
|
u64 tx_tstamp;
|
|
u64 ack_tstamp;
|
|
const u8 *buf;
|
|
size_t len;
|
|
bool ack;
|
|
};
|
|
|
|
struct xdp_umem_reg {
|
|
__u64 addr;
|
|
__u64 len;
|
|
__u32 chunk_size;
|
|
__u32 headroom;
|
|
__u32 flags;
|
|
};
|
|
|
|
enum perf_hw_id {
|
|
PERF_COUNT_HW_CPU_CYCLES = 0,
|
|
PERF_COUNT_HW_INSTRUCTIONS = 1,
|
|
PERF_COUNT_HW_CACHE_REFERENCES = 2,
|
|
PERF_COUNT_HW_CACHE_MISSES = 3,
|
|
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
|
|
PERF_COUNT_HW_BRANCH_MISSES = 5,
|
|
PERF_COUNT_HW_BUS_CYCLES = 6,
|
|
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7,
|
|
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8,
|
|
PERF_COUNT_HW_REF_CPU_CYCLES = 9,
|
|
PERF_COUNT_HW_MAX = 10,
|
|
};
|
|
|
|
enum {
|
|
PERF_X86_EVENT_PEBS_LDLAT = 1,
|
|
PERF_X86_EVENT_PEBS_ST = 2,
|
|
PERF_X86_EVENT_PEBS_ST_HSW = 4,
|
|
PERF_X86_EVENT_PEBS_LD_HSW = 8,
|
|
PERF_X86_EVENT_PEBS_NA_HSW = 16,
|
|
PERF_X86_EVENT_EXCL = 32,
|
|
PERF_X86_EVENT_DYNAMIC = 64,
|
|
PERF_X86_EVENT_EXCL_ACCT = 256,
|
|
PERF_X86_EVENT_AUTO_RELOAD = 512,
|
|
PERF_X86_EVENT_LARGE_PEBS = 1024,
|
|
PERF_X86_EVENT_PEBS_VIA_PT = 2048,
|
|
PERF_X86_EVENT_PAIR = 4096,
|
|
PERF_X86_EVENT_LBR_SELECT = 8192,
|
|
PERF_X86_EVENT_TOPDOWN = 16384,
|
|
PERF_X86_EVENT_PEBS_STLAT = 32768,
|
|
PERF_X86_EVENT_AMD_BRS = 65536,
|
|
PERF_X86_EVENT_PEBS_LAT_HYBRID = 131072,
|
|
};
|
|
|
|
union cpuid10_edx {
|
|
struct {
|
|
unsigned int num_counters_fixed: 5;
|
|
unsigned int bit_width_fixed: 8;
|
|
unsigned int reserved1: 2;
|
|
unsigned int anythread_deprecated: 1;
|
|
unsigned int reserved2: 16;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
union cpuid10_eax {
|
|
struct {
|
|
unsigned int version_id: 8;
|
|
unsigned int num_counters: 8;
|
|
unsigned int bit_width: 8;
|
|
unsigned int mask_length: 8;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
union cpuid10_ebx {
|
|
struct {
|
|
unsigned int no_unhalted_core_cycles: 1;
|
|
unsigned int no_instructions_retired: 1;
|
|
unsigned int no_unhalted_reference_cycles: 1;
|
|
unsigned int no_llc_reference: 1;
|
|
unsigned int no_llc_misses: 1;
|
|
unsigned int no_branch_instruction_retired: 1;
|
|
unsigned int no_branch_misses_retired: 1;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
struct text_poke_loc {
|
|
s32 rel_addr;
|
|
s32 disp;
|
|
u8 len;
|
|
u8 opcode;
|
|
const u8 text[5];
|
|
u8 old;
|
|
};
|
|
|
|
struct bp_patching_desc {
|
|
struct text_poke_loc *vec;
|
|
int nr_entries;
|
|
atomic_t refs;
|
|
};
|
|
|
|
struct smp_alt_module {
|
|
struct module *mod;
|
|
char *name;
|
|
const s32 *locks;
|
|
const s32 *locks_end;
|
|
u8 *text;
|
|
u8 *text_end;
|
|
struct list_head next;
|
|
};
|
|
|
|
typedef u8 retpoline_thunk_t[32];
|
|
|
|
typedef struct {
|
|
struct mm_struct *mm;
|
|
} temp_mm_state_t;
|
|
|
|
struct paravirt_patch_site {
|
|
u8 *instr;
|
|
u8 type;
|
|
u8 len;
|
|
};
|
|
|
|
typedef void text_poke_f(void *, const void *, size_t);
|
|
|
|
struct die_args {
|
|
struct pt_regs *regs;
|
|
const char *str;
|
|
long err;
|
|
int trapnr;
|
|
int signr;
|
|
};
|
|
|
|
typedef const struct cpumask * (*sched_domain_mask_f)(int);
|
|
|
|
typedef int (*sched_domain_flags_f)();
|
|
|
|
struct sched_domain;
|
|
|
|
struct sched_domain_shared;
|
|
|
|
struct sched_group;
|
|
|
|
struct sched_group_capacity;
|
|
|
|
struct sd_data {
|
|
struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd;
|
|
struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds;
|
|
struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg;
|
|
struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc;
|
|
};
|
|
|
|
struct sched_domain_topology_level {
|
|
sched_domain_mask_f mask;
|
|
sched_domain_flags_f sd_flags;
|
|
int flags;
|
|
int numa_level;
|
|
struct sd_data data;
|
|
};
|
|
|
|
struct sched_domain {
|
|
struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent;
|
|
struct sched_domain __attribute__((btf_type_tag("rcu"))) *child;
|
|
struct sched_group *groups;
|
|
unsigned long min_interval;
|
|
unsigned long max_interval;
|
|
unsigned int busy_factor;
|
|
unsigned int imbalance_pct;
|
|
unsigned int cache_nice_tries;
|
|
unsigned int imb_numa_nr;
|
|
int nohz_idle;
|
|
int flags;
|
|
int level;
|
|
unsigned long last_balance;
|
|
unsigned int balance_interval;
|
|
unsigned int nr_balance_failed;
|
|
u64 max_newidle_lb_cost;
|
|
unsigned long last_decay_max_lb_cost;
|
|
u64 avg_scan_cost;
|
|
unsigned int lb_count[3];
|
|
unsigned int lb_failed[3];
|
|
unsigned int lb_balanced[3];
|
|
unsigned int lb_imbalance[3];
|
|
unsigned int lb_gained[3];
|
|
unsigned int lb_hot_gained[3];
|
|
unsigned int lb_nobusyg[3];
|
|
unsigned int lb_nobusyq[3];
|
|
unsigned int alb_count;
|
|
unsigned int alb_failed;
|
|
unsigned int alb_pushed;
|
|
unsigned int sbe_count;
|
|
unsigned int sbe_balanced;
|
|
unsigned int sbe_pushed;
|
|
unsigned int sbf_count;
|
|
unsigned int sbf_balanced;
|
|
unsigned int sbf_pushed;
|
|
unsigned int ttwu_wake_remote;
|
|
unsigned int ttwu_move_affine;
|
|
unsigned int ttwu_move_balance;
|
|
union {
|
|
void *private;
|
|
struct callback_head rcu;
|
|
};
|
|
struct sched_domain_shared *shared;
|
|
unsigned int span_weight;
|
|
unsigned long span[0];
|
|
};
|
|
|
|
struct sched_domain_shared {
|
|
atomic_t ref;
|
|
atomic_t nr_busy_cpus;
|
|
int has_idle_cores;
|
|
int nr_idle_scan;
|
|
};
|
|
|
|
enum apic_intr_mode_id {
|
|
APIC_PIC = 0,
|
|
APIC_VIRTUAL_WIRE = 1,
|
|
APIC_VIRTUAL_WIRE_NO_CONFIG = 2,
|
|
APIC_SYMMETRIC_IO = 3,
|
|
APIC_SYMMETRIC_IO_NO_ROUTING = 4,
|
|
};
|
|
|
|
enum {
|
|
SD_BALANCE_NEWIDLE = 1,
|
|
SD_BALANCE_EXEC = 2,
|
|
SD_BALANCE_FORK = 4,
|
|
SD_BALANCE_WAKE = 8,
|
|
SD_WAKE_AFFINE = 16,
|
|
SD_ASYM_CPUCAPACITY = 32,
|
|
SD_ASYM_CPUCAPACITY_FULL = 64,
|
|
SD_SHARE_CPUCAPACITY = 128,
|
|
SD_SHARE_PKG_RESOURCES = 256,
|
|
SD_SERIALIZE = 512,
|
|
SD_ASYM_PACKING = 1024,
|
|
SD_PREFER_SIBLING = 2048,
|
|
SD_OVERLAP = 4096,
|
|
SD_NUMA = 8192,
|
|
};
|
|
|
|
enum {
|
|
PAT_UC = 0,
|
|
PAT_WC = 1,
|
|
PAT_WT = 4,
|
|
PAT_WP = 5,
|
|
PAT_WB = 6,
|
|
PAT_UC_MINUS = 7,
|
|
};
|
|
|
|
struct memtype {
|
|
u64 start;
|
|
u64 end;
|
|
u64 subtree_max_end;
|
|
enum page_cache_mode type;
|
|
struct rb_node rb;
|
|
};
|
|
|
|
struct pagerange_state {
|
|
unsigned long cur_pfn;
|
|
int ram;
|
|
int not_ram;
|
|
};
|
|
|
|
struct __user_cap_header_struct;
|
|
|
|
typedef struct __user_cap_header_struct *cap_user_header_t;
|
|
|
|
struct __user_cap_header_struct {
|
|
__u32 version;
|
|
int pid;
|
|
};
|
|
|
|
struct __user_cap_data_struct;
|
|
|
|
typedef struct __user_cap_data_struct *cap_user_data_t;
|
|
|
|
struct __user_cap_data_struct {
|
|
__u32 effective;
|
|
__u32 permitted;
|
|
__u32 inheritable;
|
|
};
|
|
|
|
struct swsusp_header {
|
|
char reserved[4056];
|
|
u32 hw_sig;
|
|
u32 crc32;
|
|
sector_t image;
|
|
unsigned int flags;
|
|
char orig_sig[10];
|
|
char sig[10];
|
|
};
|
|
|
|
struct swsusp_extent {
|
|
struct rb_node node;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
};
|
|
|
|
struct swsusp_info {
|
|
struct new_utsname uts;
|
|
u32 version_code;
|
|
unsigned long num_physpages;
|
|
int cpus;
|
|
unsigned long image_pages;
|
|
unsigned long pages;
|
|
unsigned long size;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct swap_map_page {
|
|
sector_t entries[511];
|
|
sector_t next_swap;
|
|
};
|
|
|
|
struct swap_map_page_list;
|
|
|
|
struct swap_map_handle {
|
|
struct swap_map_page *cur;
|
|
struct swap_map_page_list *maps;
|
|
sector_t cur_swap;
|
|
sector_t first_sector;
|
|
unsigned int k;
|
|
unsigned long reqd_free_pages;
|
|
u32 crc32;
|
|
};
|
|
|
|
struct swap_map_page_list {
|
|
struct swap_map_page *map;
|
|
struct swap_map_page_list *next;
|
|
};
|
|
|
|
struct hib_bio_batch {
|
|
atomic_t count;
|
|
wait_queue_head_t wait;
|
|
blk_status_t error;
|
|
struct blk_plug plug;
|
|
};
|
|
|
|
struct cmp_data {
|
|
struct task_struct *thr;
|
|
atomic_t ready;
|
|
atomic_t stop;
|
|
int ret;
|
|
wait_queue_head_t go;
|
|
wait_queue_head_t done;
|
|
size_t unc_len;
|
|
size_t cmp_len;
|
|
unsigned char unc[131072];
|
|
unsigned char cmp[143360];
|
|
unsigned char wrk[16384];
|
|
};
|
|
|
|
struct crc_data {
|
|
struct task_struct *thr;
|
|
atomic_t ready;
|
|
atomic_t stop;
|
|
unsigned int run_threads;
|
|
wait_queue_head_t go;
|
|
wait_queue_head_t done;
|
|
u32 *crc32;
|
|
size_t *unc_len[3];
|
|
unsigned char *unc[3];
|
|
};
|
|
|
|
struct dec_data {
|
|
struct task_struct *thr;
|
|
atomic_t ready;
|
|
atomic_t stop;
|
|
int ret;
|
|
wait_queue_head_t go;
|
|
wait_queue_head_t done;
|
|
size_t unc_len;
|
|
size_t cmp_len;
|
|
unsigned char unc[131072];
|
|
unsigned char cmp[143360];
|
|
};
|
|
|
|
struct cpu_stop_done;
|
|
|
|
struct cpu_stop_work {
|
|
struct list_head list;
|
|
cpu_stop_fn_t fn;
|
|
unsigned long caller;
|
|
void *arg;
|
|
struct cpu_stop_done *done;
|
|
};
|
|
|
|
struct cpu_stopper {
|
|
struct task_struct *thread;
|
|
raw_spinlock_t lock;
|
|
bool enabled;
|
|
struct list_head works;
|
|
struct cpu_stop_work stop_work;
|
|
unsigned long caller;
|
|
cpu_stop_fn_t fn;
|
|
};
|
|
|
|
struct cpu_stop_done {
|
|
atomic_t nr_todo;
|
|
int ret;
|
|
struct completion completion;
|
|
};
|
|
|
|
enum multi_stop_state {
|
|
MULTI_STOP_NONE = 0,
|
|
MULTI_STOP_PREPARE = 1,
|
|
MULTI_STOP_DISABLE_IRQ = 2,
|
|
MULTI_STOP_RUN = 3,
|
|
MULTI_STOP_EXIT = 4,
|
|
};
|
|
|
|
struct multi_stop_data {
|
|
cpu_stop_fn_t fn;
|
|
void *data;
|
|
unsigned int num_threads;
|
|
const struct cpumask *active_cpus;
|
|
enum multi_stop_state state;
|
|
atomic_t thread_ack;
|
|
};
|
|
|
|
enum {
|
|
CSD_FLAG_LOCK = 1,
|
|
IRQ_WORK_PENDING = 1,
|
|
IRQ_WORK_BUSY = 2,
|
|
IRQ_WORK_LAZY = 4,
|
|
IRQ_WORK_HARD_IRQ = 8,
|
|
IRQ_WORK_CLAIMED = 3,
|
|
CSD_TYPE_ASYNC = 0,
|
|
CSD_TYPE_SYNC = 16,
|
|
CSD_TYPE_IRQ_WORK = 32,
|
|
CSD_TYPE_TTWU = 48,
|
|
CSD_FLAG_TYPE_MASK = 240,
|
|
};
|
|
|
|
struct bpf_iter__bpf_link {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct bpf_link *link;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_link_info {
|
|
u32 link_id;
|
|
};
|
|
|
|
struct slub_flush_work {
|
|
struct work_struct work;
|
|
struct kmem_cache *s;
|
|
bool skip;
|
|
};
|
|
|
|
struct slab_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct kmem_cache *, char *);
|
|
ssize_t (*store)(struct kmem_cache *, const char *, size_t);
|
|
};
|
|
|
|
struct saved_alias {
|
|
struct kmem_cache *s;
|
|
const char *name;
|
|
struct saved_alias *next;
|
|
};
|
|
|
|
enum track_item {
|
|
TRACK_ALLOC = 0,
|
|
TRACK_FREE = 1,
|
|
};
|
|
|
|
enum stat_item {
|
|
ALLOC_FASTPATH = 0,
|
|
ALLOC_SLOWPATH = 1,
|
|
FREE_FASTPATH = 2,
|
|
FREE_SLOWPATH = 3,
|
|
FREE_FROZEN = 4,
|
|
FREE_ADD_PARTIAL = 5,
|
|
FREE_REMOVE_PARTIAL = 6,
|
|
ALLOC_FROM_PARTIAL = 7,
|
|
ALLOC_SLAB = 8,
|
|
ALLOC_REFILL = 9,
|
|
ALLOC_NODE_MISMATCH = 10,
|
|
FREE_SLAB = 11,
|
|
CPUSLAB_FLUSH = 12,
|
|
DEACTIVATE_FULL = 13,
|
|
DEACTIVATE_EMPTY = 14,
|
|
DEACTIVATE_TO_HEAD = 15,
|
|
DEACTIVATE_TO_TAIL = 16,
|
|
DEACTIVATE_REMOTE_FREES = 17,
|
|
DEACTIVATE_BYPASS = 18,
|
|
ORDER_FALLBACK = 19,
|
|
CMPXCHG_DOUBLE_CPU_FAIL = 20,
|
|
CMPXCHG_DOUBLE_FAIL = 21,
|
|
CPU_PARTIAL_ALLOC = 22,
|
|
CPU_PARTIAL_FREE = 23,
|
|
CPU_PARTIAL_NODE = 24,
|
|
CPU_PARTIAL_DRAIN = 25,
|
|
NR_SLUB_STAT_ITEMS = 26,
|
|
};
|
|
|
|
enum slab_modes {
|
|
M_NONE = 0,
|
|
M_PARTIAL = 1,
|
|
M_FREE = 2,
|
|
M_FULL_NOLIST = 3,
|
|
};
|
|
|
|
enum slab_stat_type {
|
|
SL_ALL = 0,
|
|
SL_PARTIAL = 1,
|
|
SL_CPU = 2,
|
|
SL_OBJECTS = 3,
|
|
SL_TOTAL = 4,
|
|
};
|
|
|
|
struct location {
|
|
depot_stack_handle_t handle;
|
|
unsigned long count;
|
|
unsigned long addr;
|
|
unsigned long waste;
|
|
long long sum_time;
|
|
long min_time;
|
|
long max_time;
|
|
long min_pid;
|
|
long max_pid;
|
|
unsigned long cpus[1];
|
|
nodemask_t nodes;
|
|
};
|
|
|
|
struct track {
|
|
unsigned long addr;
|
|
depot_stack_handle_t handle;
|
|
int cpu;
|
|
int pid;
|
|
unsigned long when;
|
|
};
|
|
|
|
struct detached_freelist {
|
|
struct slab *slab;
|
|
void *tail;
|
|
void *freelist;
|
|
int cnt;
|
|
struct kmem_cache *s;
|
|
};
|
|
|
|
struct partial_context {
|
|
struct slab **slab;
|
|
gfp_t flags;
|
|
unsigned int orig_size;
|
|
};
|
|
|
|
struct loc_track {
|
|
unsigned long max;
|
|
unsigned long count;
|
|
struct location *loc;
|
|
loff_t idx;
|
|
};
|
|
|
|
struct ns_get_path_task_args {
|
|
const struct proc_ns_operations *ns_ops;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
struct posix_acl_xattr_header {
|
|
__le32 a_version;
|
|
};
|
|
|
|
struct posix_acl_xattr_entry {
|
|
__le16 e_tag;
|
|
__le16 e_perm;
|
|
__le32 e_id;
|
|
};
|
|
|
|
struct dx_hash_info {
|
|
u32 hash;
|
|
u32 minor_hash;
|
|
int hash_version;
|
|
u32 *seed;
|
|
};
|
|
|
|
struct cb_process_state;
|
|
|
|
struct callback_op {
|
|
__be32 (*process_op)(void *, void *, struct cb_process_state *);
|
|
__be32 (*decode_args)(struct svc_rqst *, struct xdr_stream *, void *);
|
|
__be32 (*encode_res)(struct svc_rqst *, struct xdr_stream *, const void *);
|
|
long res_maxsize;
|
|
};
|
|
|
|
struct cb_process_state {
|
|
__be32 drc_status;
|
|
struct nfs_client *clp;
|
|
struct nfs4_slot *slot;
|
|
u32 minorversion;
|
|
struct net *net;
|
|
};
|
|
|
|
enum nfs4_callback_opnum {
|
|
OP_CB_GETATTR = 3,
|
|
OP_CB_RECALL = 4,
|
|
OP_CB_LAYOUTRECALL = 5,
|
|
OP_CB_NOTIFY = 6,
|
|
OP_CB_PUSH_DELEG = 7,
|
|
OP_CB_RECALL_ANY = 8,
|
|
OP_CB_RECALLABLE_OBJ_AVAIL = 9,
|
|
OP_CB_RECALL_SLOT = 10,
|
|
OP_CB_SEQUENCE = 11,
|
|
OP_CB_WANTS_CANCELLED = 12,
|
|
OP_CB_NOTIFY_LOCK = 13,
|
|
OP_CB_NOTIFY_DEVICEID = 14,
|
|
OP_CB_OFFLOAD = 15,
|
|
OP_CB_ILLEGAL = 10044,
|
|
};
|
|
|
|
struct cb_compound_hdr_arg {
|
|
unsigned int taglen;
|
|
const char *tag;
|
|
unsigned int minorversion;
|
|
unsigned int cb_ident;
|
|
unsigned int nops;
|
|
};
|
|
|
|
struct cb_compound_hdr_res {
|
|
__be32 *status;
|
|
unsigned int taglen;
|
|
const char *tag;
|
|
__be32 *nops;
|
|
};
|
|
|
|
struct cb_getattrargs {
|
|
struct nfs_fh fh;
|
|
uint32_t bitmap[2];
|
|
};
|
|
|
|
struct cb_getattrres {
|
|
__be32 status;
|
|
uint32_t bitmap[2];
|
|
uint64_t size;
|
|
uint64_t change_attr;
|
|
struct timespec64 ctime;
|
|
struct timespec64 mtime;
|
|
};
|
|
|
|
struct cb_recallargs {
|
|
struct nfs_fh fh;
|
|
nfs4_stateid stateid;
|
|
uint32_t truncate;
|
|
};
|
|
|
|
struct selinux_audit_rule {
|
|
u32 au_seqno;
|
|
struct context au_ctxt;
|
|
};
|
|
|
|
struct extended_perms_decision {
|
|
u8 used;
|
|
u8 driver;
|
|
struct extended_perms_data *allowed;
|
|
struct extended_perms_data *auditallow;
|
|
struct extended_perms_data *dontaudit;
|
|
};
|
|
|
|
struct extended_perms {
|
|
u16 len;
|
|
struct extended_perms_data drivers;
|
|
};
|
|
|
|
struct security_class_mapping {
|
|
const char *name;
|
|
const char *perms[33];
|
|
};
|
|
|
|
struct superblock_security_struct {
|
|
u32 sid;
|
|
u32 def_sid;
|
|
u32 mntpoint_sid;
|
|
unsigned short behavior;
|
|
unsigned short flags;
|
|
struct mutex lock;
|
|
struct list_head isec_head;
|
|
spinlock_t isec_lock;
|
|
};
|
|
|
|
struct selinux_policy_convert_data {
|
|
struct convert_context_args args;
|
|
struct sidtab_convert_params sidtab_params;
|
|
};
|
|
|
|
struct crypto_ahash_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct authenc_instance_ctx {
|
|
struct crypto_ahash_spawn auth;
|
|
struct crypto_skcipher_spawn enc;
|
|
unsigned int reqoff;
|
|
};
|
|
|
|
struct crypto_authenc_keys {
|
|
const u8 *authkey;
|
|
const u8 *enckey;
|
|
unsigned int authkeylen;
|
|
unsigned int enckeylen;
|
|
};
|
|
|
|
struct crypto_authenc_ctx {
|
|
struct crypto_ahash *auth;
|
|
struct crypto_skcipher *enc;
|
|
struct crypto_sync_skcipher *null;
|
|
};
|
|
|
|
struct authenc_request_ctx {
|
|
struct scatterlist src[2];
|
|
struct scatterlist dst[2];
|
|
char tail[0];
|
|
};
|
|
|
|
struct disk_events {
|
|
struct list_head node;
|
|
struct gendisk *disk;
|
|
spinlock_t lock;
|
|
struct mutex block_mutex;
|
|
int block;
|
|
unsigned int pending;
|
|
unsigned int clearing;
|
|
long poll_msecs;
|
|
struct delayed_work dwork;
|
|
};
|
|
|
|
enum {
|
|
DISK_EVENT_FLAG_POLL = 1,
|
|
DISK_EVENT_FLAG_UEVENT = 2,
|
|
DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4,
|
|
};
|
|
|
|
struct io_statx {
|
|
struct file *file;
|
|
int dfd;
|
|
unsigned int mask;
|
|
unsigned int flags;
|
|
struct filename *filename;
|
|
struct statx __attribute__((btf_type_tag("user"))) *buffer;
|
|
};
|
|
|
|
typedef unsigned int FSE_DTable;
|
|
|
|
typedef uint16_t U16;
|
|
|
|
typedef struct {
|
|
U16 tableLog;
|
|
U16 fastMode;
|
|
} FSE_DTableHeader;
|
|
|
|
typedef struct {
|
|
unsigned short newState;
|
|
unsigned char symbol;
|
|
unsigned char nbBits;
|
|
} FSE_decode_t;
|
|
|
|
typedef int16_t S16;
|
|
|
|
typedef struct {
|
|
short ncount[256];
|
|
FSE_DTable dtable[1];
|
|
} FSE_DecompressWksp;
|
|
|
|
typedef struct {
|
|
size_t bitContainer;
|
|
unsigned int bitsConsumed;
|
|
const char *ptr;
|
|
const char *start;
|
|
const char *limitPtr;
|
|
} BIT_DStream_t;
|
|
|
|
typedef struct {
|
|
size_t state;
|
|
const void *table;
|
|
} FSE_DState_t;
|
|
|
|
typedef enum {
|
|
BIT_DStream_unfinished = 0,
|
|
BIT_DStream_endOfBuffer = 1,
|
|
BIT_DStream_completed = 2,
|
|
BIT_DStream_overflow = 3,
|
|
} BIT_DStream_status;
|
|
|
|
struct barrett_ctx_s;
|
|
|
|
typedef struct barrett_ctx_s *mpi_barrett_t___2;
|
|
|
|
struct barrett_ctx_s {
|
|
MPI m;
|
|
int m_copied;
|
|
int k;
|
|
MPI y;
|
|
MPI r1;
|
|
MPI r2;
|
|
MPI r3;
|
|
};
|
|
|
|
struct sg_pool {
|
|
size_t size;
|
|
char *name;
|
|
struct kmem_cache *slab;
|
|
mempool_t *pool;
|
|
};
|
|
|
|
typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int);
|
|
|
|
typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int);
|
|
|
|
typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int);
|
|
|
|
struct trace_event_raw_msr_trace_class {
|
|
struct trace_entry ent;
|
|
unsigned int msr;
|
|
u64 val;
|
|
int failed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_msr_trace_class {};
|
|
|
|
struct acpi_osi_config {
|
|
u8 default_disabling;
|
|
unsigned int linux_enable: 1;
|
|
unsigned int linux_dmi: 1;
|
|
unsigned int linux_cmdline: 1;
|
|
unsigned int darwin_enable: 1;
|
|
unsigned int darwin_dmi: 1;
|
|
unsigned int darwin_cmdline: 1;
|
|
};
|
|
|
|
struct acpi_osi_entry {
|
|
char string[64];
|
|
bool enable;
|
|
};
|
|
|
|
struct acpi_device_bus_id {
|
|
const char *bus_id;
|
|
struct ida instance_ida;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct acpi_dev_match_info {
|
|
struct acpi_device_id hid[2];
|
|
const char *uid;
|
|
s64 hrv;
|
|
};
|
|
|
|
struct acpi_handle_list {
|
|
u32 count;
|
|
acpi_handle handles[10];
|
|
};
|
|
|
|
struct pci_osc_bit_struct {
|
|
u32 bit;
|
|
char *desc;
|
|
};
|
|
|
|
enum acpi_bridge_type {
|
|
ACPI_BRIDGE_TYPE_PCIE = 1,
|
|
ACPI_BRIDGE_TYPE_CXL = 2,
|
|
};
|
|
|
|
struct acpi_bit_register_info {
|
|
u8 parent_register;
|
|
u8 bit_position;
|
|
u16 access_bit_mask;
|
|
};
|
|
|
|
struct acpi_pci_ioapic {
|
|
acpi_handle root_handle;
|
|
acpi_handle handle;
|
|
u32 gsi_base;
|
|
struct resource res;
|
|
struct pci_dev *pdev;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct acpi_device_info {
|
|
u32 info_size;
|
|
u32 name;
|
|
acpi_object_type type;
|
|
u8 param_count;
|
|
u16 valid;
|
|
u8 flags;
|
|
u8 highest_dstates[4];
|
|
u8 lowest_dstates[5];
|
|
u64 address;
|
|
struct acpi_pnp_device_id hardware_id;
|
|
struct acpi_pnp_device_id unique_id;
|
|
struct acpi_pnp_device_id class_code;
|
|
struct acpi_pnp_device_id_list compatible_id_list;
|
|
};
|
|
|
|
struct pericom8250 {
|
|
void *virt;
|
|
unsigned int nr;
|
|
int line[0];
|
|
};
|
|
|
|
struct amd_iommu_pci_seg;
|
|
|
|
struct amd_iommu {
|
|
struct list_head list;
|
|
int index;
|
|
raw_spinlock_t lock;
|
|
struct pci_dev *dev;
|
|
struct pci_dev *root_pdev;
|
|
u64 mmio_phys;
|
|
u64 mmio_phys_end;
|
|
u8 *mmio_base;
|
|
u32 cap;
|
|
u8 acpi_flags;
|
|
u64 features;
|
|
u64 features2;
|
|
bool is_iommu_v2;
|
|
u16 devid;
|
|
u16 cap_ptr;
|
|
struct amd_iommu_pci_seg *pci_seg;
|
|
u64 exclusion_start;
|
|
u64 exclusion_length;
|
|
u8 *cmd_buf;
|
|
u32 cmd_buf_head;
|
|
u32 cmd_buf_tail;
|
|
u8 *evt_buf;
|
|
u8 *ppr_log;
|
|
u8 *ga_log;
|
|
u8 *ga_log_tail;
|
|
bool int_enabled;
|
|
bool need_sync;
|
|
struct iommu_device iommu;
|
|
u32 stored_addr_lo;
|
|
u32 stored_addr_hi;
|
|
u32 stored_l1[108];
|
|
u32 stored_l2[131];
|
|
u8 max_banks;
|
|
u8 max_counters;
|
|
u32 flags;
|
|
volatile u64 *cmd_sem;
|
|
u64 cmd_sem_val;
|
|
};
|
|
|
|
struct dev_table_entry;
|
|
|
|
struct irq_remap_table;
|
|
|
|
struct amd_iommu_pci_seg {
|
|
struct list_head list;
|
|
struct llist_head dev_data_list;
|
|
u16 id;
|
|
u16 last_bdf;
|
|
u32 dev_table_size;
|
|
u32 alias_table_size;
|
|
u32 rlookup_table_size;
|
|
struct dev_table_entry *dev_table;
|
|
struct amd_iommu **rlookup_table;
|
|
struct irq_remap_table **irq_lookup_table;
|
|
struct dev_table_entry *old_dev_tbl_cpy;
|
|
u16 *alias_table;
|
|
struct list_head unity_map;
|
|
};
|
|
|
|
struct dev_table_entry {
|
|
u64 data[4];
|
|
};
|
|
|
|
struct irq_remap_table {
|
|
raw_spinlock_t lock;
|
|
unsigned int min_index;
|
|
u32 *table;
|
|
};
|
|
|
|
struct iommu_dev_data {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
struct llist_node dev_data_list;
|
|
struct protection_domain *domain;
|
|
struct device *dev;
|
|
u16 devid;
|
|
bool iommu_v2;
|
|
struct {
|
|
bool enabled;
|
|
int qdep;
|
|
} ats;
|
|
bool pri_tlp;
|
|
bool use_vapic;
|
|
bool defer_attach;
|
|
struct ratelimit_state rs;
|
|
};
|
|
|
|
struct acpihid_map_entry {
|
|
struct list_head list;
|
|
u8 uid[256];
|
|
u8 hid[9];
|
|
u32 devid;
|
|
u32 root_devid;
|
|
bool cmd_line;
|
|
struct iommu_group *group;
|
|
};
|
|
|
|
struct unity_map_entry {
|
|
struct list_head list;
|
|
u16 devid_start;
|
|
u16 devid_end;
|
|
u64 address_start;
|
|
u64 address_end;
|
|
int prot;
|
|
};
|
|
|
|
struct iommu_cmd {
|
|
u32 data[4];
|
|
};
|
|
|
|
struct amd_iommu_fault {
|
|
u64 address;
|
|
u32 pasid;
|
|
u32 sbdf;
|
|
u16 tag;
|
|
u16 flags;
|
|
};
|
|
|
|
struct amd_iommu_device_info {
|
|
int max_pasids;
|
|
u32 flags;
|
|
};
|
|
|
|
struct drm_format_modifier {
|
|
__u64 formats;
|
|
__u32 offset;
|
|
__u32 pad;
|
|
__u64 modifier;
|
|
};
|
|
|
|
struct drm_format_modifier_blob {
|
|
__u32 version;
|
|
__u32 flags;
|
|
__u32 count_formats;
|
|
__u32 formats_offset;
|
|
__u32 count_modifiers;
|
|
__u32 modifiers_offset;
|
|
};
|
|
|
|
struct drm_mode_cursor2 {
|
|
__u32 flags;
|
|
__u32 crtc_id;
|
|
__s32 x;
|
|
__s32 y;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 handle;
|
|
__s32 hot_x;
|
|
__s32 hot_y;
|
|
};
|
|
|
|
struct drm_mode_get_plane_res {
|
|
__u64 plane_id_ptr;
|
|
__u32 count_planes;
|
|
};
|
|
|
|
struct drm_mode_get_plane {
|
|
__u32 plane_id;
|
|
__u32 crtc_id;
|
|
__u32 fb_id;
|
|
__u32 possible_crtcs;
|
|
__u32 gamma_size;
|
|
__u32 count_format_types;
|
|
__u64 format_type_ptr;
|
|
};
|
|
|
|
struct drm_mode_set_plane {
|
|
__u32 plane_id;
|
|
__u32 crtc_id;
|
|
__u32 fb_id;
|
|
__u32 flags;
|
|
__s32 crtc_x;
|
|
__s32 crtc_y;
|
|
__u32 crtc_w;
|
|
__u32 crtc_h;
|
|
__u32 src_x;
|
|
__u32 src_y;
|
|
__u32 src_h;
|
|
__u32 src_w;
|
|
};
|
|
|
|
struct drm_mode_cursor {
|
|
__u32 flags;
|
|
__u32 crtc_id;
|
|
__s32 x;
|
|
__s32 y;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 handle;
|
|
};
|
|
|
|
struct drm_mode_crtc_page_flip_target {
|
|
__u32 crtc_id;
|
|
__u32 fb_id;
|
|
__u32 flags;
|
|
__u32 sequence;
|
|
__u64 user_data;
|
|
};
|
|
|
|
struct intel_wakeref_lockclass {
|
|
struct lock_class_key mutex;
|
|
struct lock_class_key work;
|
|
};
|
|
|
|
struct intel_wedge_me {
|
|
struct delayed_work work;
|
|
struct intel_gt *gt;
|
|
const char *name;
|
|
};
|
|
|
|
typedef int (*reset_func)(struct intel_gt *, intel_engine_mask_t, unsigned int);
|
|
|
|
struct sfc_lock_data {
|
|
i915_reg_t lock_reg;
|
|
i915_reg_t ack_reg;
|
|
i915_reg_t usage_reg;
|
|
u32 lock_bit;
|
|
u32 ack_bit;
|
|
u32 usage_bit;
|
|
u32 reset_bit;
|
|
};
|
|
|
|
enum dsb_id {
|
|
INVALID_DSB = -1,
|
|
DSB1 = 0,
|
|
DSB2 = 1,
|
|
DSB3 = 2,
|
|
MAX_DSB_PER_PIPE = 3,
|
|
};
|
|
|
|
struct intel_dsb {
|
|
enum dsb_id id;
|
|
u32 *cmd_buf;
|
|
struct i915_vma___3 *vma;
|
|
struct intel_crtc *crtc;
|
|
unsigned int size;
|
|
unsigned int free_pos;
|
|
unsigned int ins_start_offset;
|
|
};
|
|
|
|
struct internal_container {
|
|
struct klist_node node;
|
|
struct attribute_container *cont;
|
|
struct device classdev;
|
|
};
|
|
|
|
struct builtin_fw {
|
|
char *name;
|
|
void *data;
|
|
unsigned long size;
|
|
};
|
|
|
|
typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *);
|
|
|
|
typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *);
|
|
|
|
typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *);
|
|
|
|
typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *);
|
|
|
|
typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *);
|
|
|
|
typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *);
|
|
|
|
typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *);
|
|
|
|
struct trace_event_raw_dma_fence {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_driver;
|
|
u32 __data_loc_timeline;
|
|
unsigned int context;
|
|
unsigned int seqno;
|
|
char __data[0];
|
|
};
|
|
|
|
struct default_wait_cb {
|
|
struct dma_fence_cb base;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
struct trace_event_data_offsets_dma_fence {
|
|
u32 driver;
|
|
u32 timeline;
|
|
};
|
|
|
|
enum ru_state {
|
|
RU_SUSPENDED = 0,
|
|
RU_RUNNING = 1,
|
|
RU_UNINITIALIZED = -1,
|
|
};
|
|
|
|
enum scb_cmd_lo {
|
|
cuc_nop = 0,
|
|
ruc_start = 1,
|
|
ruc_load_base = 6,
|
|
cuc_start = 16,
|
|
cuc_resume = 32,
|
|
cuc_dump_addr = 64,
|
|
cuc_dump_stats = 80,
|
|
cuc_load_base = 96,
|
|
cuc_dump_reset = 112,
|
|
};
|
|
|
|
struct rfd {
|
|
__le16 status;
|
|
__le16 command;
|
|
__le32 link;
|
|
__le32 rbd;
|
|
__le16 actual_size;
|
|
__le16 size;
|
|
};
|
|
|
|
enum mac {
|
|
mac_82557_D100_A = 0,
|
|
mac_82557_D100_B = 1,
|
|
mac_82557_D100_C = 2,
|
|
mac_82558_D101_A4 = 4,
|
|
mac_82558_D101_B0 = 5,
|
|
mac_82559_D101M = 8,
|
|
mac_82559_D101S = 9,
|
|
mac_82550_D102 = 12,
|
|
mac_82550_D102_C = 13,
|
|
mac_82551_E = 14,
|
|
mac_82551_F = 15,
|
|
mac_82551_10 = 16,
|
|
mac_unknown = 255,
|
|
};
|
|
|
|
enum phy___3 {
|
|
phy_100a = 992,
|
|
phy_100c = 55575208,
|
|
phy_82555_tx = 22020776,
|
|
phy_nsc_tx = 1543512064,
|
|
phy_82562_et = 53478056,
|
|
phy_82562_em = 52429480,
|
|
phy_82562_ek = 51380904,
|
|
phy_82562_eh = 24117928,
|
|
phy_82552_v = 3496017997,
|
|
phy_unknown = 4294967295,
|
|
};
|
|
|
|
struct param_range {
|
|
u32 min;
|
|
u32 max;
|
|
u32 count;
|
|
};
|
|
|
|
struct params {
|
|
struct param_range rfds;
|
|
struct param_range cbs;
|
|
};
|
|
|
|
enum loopback {
|
|
lb_none = 0,
|
|
lb_mac = 1,
|
|
lb_phy = 3,
|
|
};
|
|
|
|
struct rx;
|
|
|
|
struct csr;
|
|
|
|
struct cb;
|
|
|
|
struct mem;
|
|
|
|
struct nic {
|
|
u32 msg_enable;
|
|
struct net_device *netdev;
|
|
struct pci_dev *pdev;
|
|
u16 (*mdio_ctrl)(struct nic *, u32, u32, u32, u16);
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct rx *rxs;
|
|
struct rx *rx_to_use;
|
|
struct rx *rx_to_clean;
|
|
struct rfd blank_rfd;
|
|
enum ru_state ru_running;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t cb_lock;
|
|
spinlock_t cmd_lock;
|
|
struct csr *csr;
|
|
enum scb_cmd_lo cuc_cmd;
|
|
unsigned int cbs_avail;
|
|
struct napi_struct napi;
|
|
struct cb *cbs;
|
|
struct cb *cb_to_use;
|
|
struct cb *cb_to_send;
|
|
struct cb *cb_to_clean;
|
|
__le16 tx_command;
|
|
long: 48;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
enum {
|
|
ich = 1,
|
|
promiscuous = 2,
|
|
multicast_all = 4,
|
|
wol_magic = 8,
|
|
ich_10h_workaround = 16,
|
|
} flags;
|
|
enum mac mac;
|
|
enum phy___3 phy;
|
|
struct params params;
|
|
struct timer_list watchdog;
|
|
struct mii_if_info mii;
|
|
struct work_struct tx_timeout_task;
|
|
enum loopback loopback;
|
|
struct mem *mem;
|
|
dma_addr_t dma_addr;
|
|
struct dma_pool *cbs_pool;
|
|
dma_addr_t cbs_dma_addr;
|
|
u8 adaptive_ifs;
|
|
u8 tx_threshold;
|
|
u32 tx_frames;
|
|
u32 tx_collisions;
|
|
u32 tx_deferred;
|
|
u32 tx_single_collisions;
|
|
u32 tx_multiple_collisions;
|
|
u32 tx_fc_pause;
|
|
u32 tx_tco_frames;
|
|
u32 rx_fc_pause;
|
|
u32 rx_fc_unsupported;
|
|
u32 rx_tco_frames;
|
|
u32 rx_short_frame_errors;
|
|
u32 rx_over_length_errors;
|
|
u16 eeprom_wc;
|
|
__le16 eeprom[256];
|
|
spinlock_t mdio_lock;
|
|
const struct firmware *fw;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct rx {
|
|
struct rx *next;
|
|
struct rx *prev;
|
|
struct sk_buff *skb;
|
|
dma_addr_t dma_addr;
|
|
};
|
|
|
|
struct csr {
|
|
struct {
|
|
u8 status;
|
|
u8 stat_ack;
|
|
u8 cmd_lo;
|
|
u8 cmd_hi;
|
|
u32 gen_ptr;
|
|
} scb;
|
|
u32 port;
|
|
u16 flash_ctrl;
|
|
u8 eeprom_ctrl_lo;
|
|
u8 eeprom_ctrl_hi;
|
|
u32 mdi_ctrl;
|
|
u32 rx_dma_count;
|
|
};
|
|
|
|
struct config {
|
|
u8 byte_count: 6;
|
|
u8 pad0: 2;
|
|
u8 rx_fifo_limit: 4;
|
|
u8 tx_fifo_limit: 3;
|
|
u8 pad1: 1;
|
|
u8 adaptive_ifs;
|
|
u8 mwi_enable: 1;
|
|
u8 type_enable: 1;
|
|
u8 read_align_enable: 1;
|
|
u8 term_write_cache_line: 1;
|
|
u8 pad3: 4;
|
|
u8 rx_dma_max_count: 7;
|
|
u8 pad4: 1;
|
|
u8 tx_dma_max_count: 7;
|
|
u8 dma_max_count_enable: 1;
|
|
u8 late_scb_update: 1;
|
|
u8 direct_rx_dma: 1;
|
|
u8 tno_intr: 1;
|
|
u8 cna_intr: 1;
|
|
u8 standard_tcb: 1;
|
|
u8 standard_stat_counter: 1;
|
|
u8 rx_save_overruns: 1;
|
|
u8 rx_save_bad_frames: 1;
|
|
u8 rx_discard_short_frames: 1;
|
|
u8 tx_underrun_retry: 2;
|
|
u8 pad7: 2;
|
|
u8 rx_extended_rfd: 1;
|
|
u8 tx_two_frames_in_fifo: 1;
|
|
u8 tx_dynamic_tbd: 1;
|
|
u8 mii_mode: 1;
|
|
u8 pad8: 6;
|
|
u8 csma_disabled: 1;
|
|
u8 rx_tcpudp_checksum: 1;
|
|
u8 pad9: 3;
|
|
u8 vlan_arp_tco: 1;
|
|
u8 link_status_wake: 1;
|
|
u8 arp_wake: 1;
|
|
u8 mcmatch_wake: 1;
|
|
u8 pad10: 3;
|
|
u8 no_source_addr_insertion: 1;
|
|
u8 preamble_length: 2;
|
|
u8 loopback: 2;
|
|
u8 linear_priority: 3;
|
|
u8 pad11: 5;
|
|
u8 linear_priority_mode: 1;
|
|
u8 pad12: 3;
|
|
u8 ifs: 4;
|
|
u8 ip_addr_lo;
|
|
u8 ip_addr_hi;
|
|
u8 promiscuous_mode: 1;
|
|
u8 broadcast_disabled: 1;
|
|
u8 wait_after_win: 1;
|
|
u8 pad15_1: 1;
|
|
u8 ignore_ul_bit: 1;
|
|
u8 crc_16_bit: 1;
|
|
u8 pad15_2: 1;
|
|
u8 crs_or_cdt: 1;
|
|
u8 fc_delay_lo;
|
|
u8 fc_delay_hi;
|
|
u8 rx_stripping: 1;
|
|
u8 tx_padding: 1;
|
|
u8 rx_crc_transfer: 1;
|
|
u8 rx_long_ok: 1;
|
|
u8 fc_priority_threshold: 3;
|
|
u8 pad18: 1;
|
|
u8 addr_wake: 1;
|
|
u8 magic_packet_disable: 1;
|
|
u8 fc_disable: 1;
|
|
u8 fc_restop: 1;
|
|
u8 fc_restart: 1;
|
|
u8 fc_reject: 1;
|
|
u8 full_duplex_force: 1;
|
|
u8 full_duplex_pin: 1;
|
|
u8 pad20_1: 5;
|
|
u8 fc_priority_location: 1;
|
|
u8 multi_ia: 1;
|
|
u8 pad20_2: 1;
|
|
u8 pad21_1: 3;
|
|
u8 multicast_all: 1;
|
|
u8 pad21_2: 4;
|
|
u8 rx_d102_mode: 1;
|
|
u8 rx_vlan_drop: 1;
|
|
u8 pad22: 6;
|
|
u8 pad_d102[9];
|
|
};
|
|
|
|
struct multi {
|
|
__le16 count;
|
|
u8 addr[386];
|
|
};
|
|
|
|
struct cb {
|
|
__le16 status;
|
|
__le16 command;
|
|
__le32 link;
|
|
union {
|
|
u8 iaaddr[6];
|
|
__le32 ucode[134];
|
|
struct config config;
|
|
struct multi multi;
|
|
struct {
|
|
u32 tbd_array;
|
|
u16 tcb_byte_count;
|
|
u8 threshold;
|
|
u8 tbd_count;
|
|
struct {
|
|
__le32 buf_addr;
|
|
__le16 size;
|
|
u16 eol;
|
|
} tbd;
|
|
} tcb;
|
|
__le32 dump_buffer_addr;
|
|
} u;
|
|
struct cb *next;
|
|
struct cb *prev;
|
|
dma_addr_t dma_addr;
|
|
struct sk_buff *skb;
|
|
};
|
|
|
|
struct stats {
|
|
__le32 tx_good_frames;
|
|
__le32 tx_max_collisions;
|
|
__le32 tx_late_collisions;
|
|
__le32 tx_underruns;
|
|
__le32 tx_lost_crs;
|
|
__le32 tx_deferred;
|
|
__le32 tx_single_collisions;
|
|
__le32 tx_multiple_collisions;
|
|
__le32 tx_total_collisions;
|
|
__le32 rx_good_frames;
|
|
__le32 rx_crc_errors;
|
|
__le32 rx_alignment_errors;
|
|
__le32 rx_resource_errors;
|
|
__le32 rx_overrun_errors;
|
|
__le32 rx_cdt_errors;
|
|
__le32 rx_short_frame_errors;
|
|
__le32 fc_xmt_pause;
|
|
__le32 fc_rcv_pause;
|
|
__le32 fc_rcv_unsupported;
|
|
__le16 xmt_tco_frames;
|
|
__le16 rcv_tco_frames;
|
|
__le32 complete;
|
|
};
|
|
|
|
struct mem {
|
|
struct {
|
|
u32 signature;
|
|
u32 result;
|
|
} selftest;
|
|
struct stats stats;
|
|
u8 dump_buf[596];
|
|
};
|
|
|
|
enum eeprom_offsets {
|
|
eeprom_cnfg_mdix = 3,
|
|
eeprom_phy_iface = 6,
|
|
eeprom_id = 10,
|
|
eeprom_config_asf = 13,
|
|
eeprom_smbus_addr = 144,
|
|
};
|
|
|
|
enum eeprom_id {
|
|
eeprom_id_wol = 32,
|
|
};
|
|
|
|
enum cb_command {
|
|
cb_nop = 0,
|
|
cb_iaaddr = 1,
|
|
cb_config = 2,
|
|
cb_multi = 3,
|
|
cb_tx = 4,
|
|
cb_ucode = 5,
|
|
cb_dump = 6,
|
|
cb_tx_sf = 8,
|
|
cb_tx_nc = 16,
|
|
cb_cid = 7936,
|
|
cb_i = 8192,
|
|
cb_s = 16384,
|
|
cb_el = 32768,
|
|
};
|
|
|
|
enum port___2 {
|
|
software_reset = 0,
|
|
selftest = 1,
|
|
selective_reset = 2,
|
|
};
|
|
|
|
enum cb_status {
|
|
cb_complete = 32768,
|
|
cb_ok = 8192,
|
|
};
|
|
|
|
enum mdi_ctrl {
|
|
mdi_write = 67108864,
|
|
mdi_read = 134217728,
|
|
mdi_ready = 268435456,
|
|
};
|
|
|
|
enum scb_cmd_hi {
|
|
irq_mask_none = 0,
|
|
irq_mask_all = 1,
|
|
irq_sw_gen = 2,
|
|
};
|
|
|
|
enum scb_stat_ack {
|
|
stat_ack_not_ours = 0,
|
|
stat_ack_sw_gen = 4,
|
|
stat_ack_rnr = 16,
|
|
stat_ack_cu_idle = 32,
|
|
stat_ack_frame_rx = 64,
|
|
stat_ack_cu_cmd_done = 128,
|
|
stat_ack_not_present = 255,
|
|
stat_ack_rx = 84,
|
|
stat_ack_tx = 160,
|
|
};
|
|
|
|
enum eeprom_op {
|
|
op_write = 5,
|
|
op_read = 6,
|
|
op_ewds = 16,
|
|
op_ewen = 19,
|
|
};
|
|
|
|
enum eeprom_ctrl_lo {
|
|
eesk = 1,
|
|
eecs = 2,
|
|
eedi = 4,
|
|
eedo = 8,
|
|
};
|
|
|
|
enum ethtool_test_flags {
|
|
ETH_TEST_FL_OFFLINE = 1,
|
|
ETH_TEST_FL_FAILED = 2,
|
|
ETH_TEST_FL_EXTERNAL_LB = 4,
|
|
ETH_TEST_FL_EXTERNAL_LB_DONE = 8,
|
|
};
|
|
|
|
enum led_state {
|
|
led_on = 1,
|
|
led_off = 4,
|
|
led_on_559 = 5,
|
|
led_on_557 = 7,
|
|
};
|
|
|
|
enum scb_status {
|
|
rus_no_res = 8,
|
|
rus_ready = 16,
|
|
rus_mask = 60,
|
|
};
|
|
|
|
enum cuc_dump {
|
|
cuc_dump_complete = 40965,
|
|
cuc_dump_reset_complete = 40967,
|
|
};
|
|
|
|
enum eeprom_cnfg_mdix {
|
|
eeprom_mdix_enabled = 128,
|
|
};
|
|
|
|
enum eeprom_phy_iface {
|
|
NoSuchPhy = 0,
|
|
I82553AB = 1,
|
|
I82553C = 2,
|
|
I82503 = 3,
|
|
DP83840 = 4,
|
|
S80C240 = 5,
|
|
S80C24 = 6,
|
|
I82555 = 7,
|
|
DP83840A = 10,
|
|
};
|
|
|
|
enum eeprom_config_asf {
|
|
eeprom_asf = 32768,
|
|
eeprom_gcl = 16384,
|
|
};
|
|
|
|
enum tc_clsbpf_command {
|
|
TC_CLSBPF_OFFLOAD = 0,
|
|
TC_CLSBPF_STATS = 1,
|
|
};
|
|
|
|
struct flow_cls_common_offload {
|
|
u32 chain_index;
|
|
__be16 protocol;
|
|
u32 prio;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
struct nsim_bpf_bound_prog {
|
|
struct nsim_dev *nsim_dev;
|
|
struct bpf_prog *prog;
|
|
struct dentry *ddir;
|
|
const char *state;
|
|
bool is_loaded;
|
|
struct list_head l;
|
|
};
|
|
|
|
struct nsim_map_entry {
|
|
void *key;
|
|
void *value;
|
|
};
|
|
|
|
struct nsim_bpf_bound_map {
|
|
struct netdevsim *ns;
|
|
struct bpf_offloaded_map *map;
|
|
struct mutex mutex;
|
|
struct nsim_map_entry entry[2];
|
|
struct list_head l;
|
|
};
|
|
|
|
struct tc_cls_bpf_offload {
|
|
struct flow_cls_common_offload common;
|
|
enum tc_clsbpf_command command;
|
|
struct tcf_exts *exts;
|
|
struct bpf_prog *prog;
|
|
struct bpf_prog *oldprog;
|
|
const char *name;
|
|
bool exts_integrated;
|
|
};
|
|
|
|
struct serport {
|
|
struct tty_struct *tty;
|
|
wait_queue_head_t wait;
|
|
struct serio *serio;
|
|
struct serio_device_id id;
|
|
spinlock_t lock;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct nvmem_device;
|
|
|
|
struct kvm_ptp_clock {
|
|
struct ptp_clock *ptp_clock;
|
|
struct ptp_clock_info caps;
|
|
};
|
|
|
|
typedef struct {
|
|
u32 version;
|
|
u32 num_entries;
|
|
u32 desc_size;
|
|
u32 flags;
|
|
efi_memory_desc_t entry[0];
|
|
} efi_memory_attributes_table_t;
|
|
|
|
typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool);
|
|
|
|
enum {
|
|
MAGNITUDE_STRONG = 2,
|
|
MAGNITUDE_WEAK = 3,
|
|
MAGNITUDE_NUM = 4,
|
|
};
|
|
|
|
struct ms_data {
|
|
unsigned long quirks;
|
|
struct hid_device *hdev;
|
|
struct work_struct ff_worker;
|
|
__u8 strong;
|
|
__u8 weak;
|
|
void *output_report_dmabuf;
|
|
};
|
|
|
|
struct xb1s_ff_report {
|
|
__u8 report_id;
|
|
__u8 enable;
|
|
__u8 magnitude[4];
|
|
__u8 duration_10ms;
|
|
__u8 start_delay_10ms;
|
|
__u8 loop_count;
|
|
};
|
|
|
|
struct snd_malloc_ops {
|
|
void * (*alloc)(struct snd_dma_buffer *, size_t);
|
|
void (*free)(struct snd_dma_buffer *);
|
|
dma_addr_t (*get_addr)(struct snd_dma_buffer *, size_t);
|
|
struct page * (*get_page)(struct snd_dma_buffer *, size_t);
|
|
unsigned int (*get_chunk_size)(struct snd_dma_buffer *, unsigned int, unsigned int);
|
|
int (*mmap)(struct snd_dma_buffer *, struct vm_area_struct *);
|
|
void (*sync)(struct snd_dma_buffer *, enum snd_dma_sync_mode);
|
|
};
|
|
|
|
struct snd_dma_sg_fallback {
|
|
bool use_dma_alloc_coherent;
|
|
size_t count;
|
|
struct page **pages;
|
|
dma_addr_t *addrs;
|
|
};
|
|
|
|
struct sd_flow_limit;
|
|
|
|
struct softnet_data {
|
|
struct list_head poll_list;
|
|
struct sk_buff_head process_queue;
|
|
unsigned int processed;
|
|
unsigned int time_squeeze;
|
|
struct softnet_data *rps_ipi_list;
|
|
struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit;
|
|
struct Qdisc *output_queue;
|
|
struct Qdisc **output_queue_tailp;
|
|
struct sk_buff *completion_queue;
|
|
struct {
|
|
u16 recursion;
|
|
u8 more;
|
|
u8 skip_txqueue;
|
|
} xmit;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned int input_queue_head;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
call_single_data_t csd;
|
|
struct softnet_data *rps_ipi_next;
|
|
unsigned int cpu;
|
|
unsigned int input_queue_tail;
|
|
unsigned int received_rps;
|
|
unsigned int dropped;
|
|
struct sk_buff_head input_pkt_queue;
|
|
struct napi_struct backlog;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t defer_lock;
|
|
int defer_count;
|
|
int defer_ipi_scheduled;
|
|
struct sk_buff *defer_list;
|
|
long: 64;
|
|
call_single_data_t defer_csd;
|
|
};
|
|
|
|
struct sd_flow_limit {
|
|
u64 count;
|
|
unsigned int num_buckets;
|
|
unsigned int history_head;
|
|
u16 history[128];
|
|
u8 buckets[0];
|
|
};
|
|
|
|
struct nf_queue_handler {
|
|
int (*outfn)(struct nf_queue_entry *, unsigned int);
|
|
void (*nf_hook_drop)(struct net *);
|
|
};
|
|
|
|
struct ip6_rt_info {
|
|
struct in6_addr daddr;
|
|
struct in6_addr saddr;
|
|
u_int32_t mark;
|
|
};
|
|
|
|
struct xt_tcp {
|
|
__u16 spts[2];
|
|
__u16 dpts[2];
|
|
__u8 option;
|
|
__u8 flg_mask;
|
|
__u8 flg_cmp;
|
|
__u8 invflags;
|
|
};
|
|
|
|
struct xt_udp {
|
|
__u16 spts[2];
|
|
__u16 dpts[2];
|
|
__u8 invflags;
|
|
};
|
|
|
|
enum {
|
|
UDP_BPF_IPV4 = 0,
|
|
UDP_BPF_IPV6 = 1,
|
|
UDP_BPF_NUM_PROTS = 2,
|
|
};
|
|
|
|
enum ip6_defrag_users {
|
|
IP6_DEFRAG_LOCAL_DELIVER = 0,
|
|
IP6_DEFRAG_CONNTRACK_IN = 1,
|
|
__IP6_DEFRAG_CONNTRACK_IN = 65536,
|
|
IP6_DEFRAG_CONNTRACK_OUT = 65537,
|
|
__IP6_DEFRAG_CONNTRACK_OUT = 131072,
|
|
IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073,
|
|
__IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608,
|
|
};
|
|
|
|
typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *);
|
|
|
|
typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *);
|
|
|
|
typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const char *, const char *);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int);
|
|
|
|
typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int);
|
|
|
|
typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *);
|
|
|
|
typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *);
|
|
|
|
typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *);
|
|
|
|
typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int);
|
|
|
|
typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int);
|
|
|
|
typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t);
|
|
|
|
typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t);
|
|
|
|
typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *);
|
|
|
|
typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int);
|
|
|
|
typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int);
|
|
|
|
typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int);
|
|
|
|
typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *);
|
|
|
|
typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *);
|
|
|
|
typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int);
|
|
|
|
typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int);
|
|
|
|
typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int);
|
|
|
|
typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *);
|
|
|
|
typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int);
|
|
|
|
typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *);
|
|
|
|
typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *);
|
|
|
|
typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *);
|
|
|
|
typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t);
|
|
|
|
typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *);
|
|
|
|
typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int);
|
|
|
|
typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short);
|
|
|
|
typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short);
|
|
|
|
typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *);
|
|
|
|
typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *);
|
|
|
|
typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *);
|
|
|
|
typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *);
|
|
|
|
typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, int);
|
|
|
|
typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *);
|
|
|
|
typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int);
|
|
|
|
typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *);
|
|
|
|
typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *);
|
|
|
|
typedef void (*btf_trace_svc_wake_up)(void *, int);
|
|
|
|
typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *);
|
|
|
|
typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *);
|
|
|
|
typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *);
|
|
|
|
typedef void (*btf_trace_svcsock_new_socket)(void *, const struct socket *);
|
|
|
|
typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32);
|
|
|
|
typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t);
|
|
|
|
typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32);
|
|
|
|
typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *);
|
|
|
|
typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long);
|
|
|
|
typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long);
|
|
|
|
typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *);
|
|
|
|
typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *);
|
|
|
|
typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *);
|
|
|
|
typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *);
|
|
|
|
typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *);
|
|
|
|
typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int);
|
|
|
|
typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int);
|
|
|
|
typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int);
|
|
|
|
struct trace_event_raw_rpc_xdr_buf_class {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
const void *head_base;
|
|
size_t head_len;
|
|
const void *tail_base;
|
|
size_t tail_len;
|
|
unsigned int page_base;
|
|
unsigned int page_len;
|
|
unsigned int msg_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_clnt_class {
|
|
struct trace_entry ent;
|
|
unsigned int client_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_clnt_new {
|
|
struct trace_entry ent;
|
|
unsigned int client_id;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
u32 __data_loc_program;
|
|
u32 __data_loc_server;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_clnt_new_err {
|
|
struct trace_entry ent;
|
|
int error;
|
|
u32 __data_loc_program;
|
|
u32 __data_loc_server;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_clnt_clone_err {
|
|
struct trace_entry ent;
|
|
unsigned int client_id;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_task_status {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
int status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_request {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
int version;
|
|
bool async;
|
|
u32 __data_loc_progname;
|
|
u32 __data_loc_procname;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_task_running {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
const void *action;
|
|
unsigned long runstate;
|
|
int status;
|
|
unsigned short flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_task_queued {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
unsigned long timeout;
|
|
unsigned long runstate;
|
|
int status;
|
|
unsigned short flags;
|
|
u32 __data_loc_q_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_failure {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_reply_event {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
u32 __data_loc_progname;
|
|
u32 version;
|
|
u32 __data_loc_procname;
|
|
u32 __data_loc_servername;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_buf_alloc {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
size_t callsize;
|
|
size_t recvsize;
|
|
int status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_call_rpcerror {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
int tk_status;
|
|
int rpc_status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_stats_latency {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
int version;
|
|
u32 __data_loc_progname;
|
|
u32 __data_loc_procname;
|
|
unsigned long backlog;
|
|
unsigned long rtt;
|
|
unsigned long execute;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_xdr_overflow {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
int version;
|
|
size_t requested;
|
|
const void *end;
|
|
const void *p;
|
|
const void *head_base;
|
|
size_t head_len;
|
|
const void *tail_base;
|
|
size_t tail_len;
|
|
unsigned int page_len;
|
|
unsigned int len;
|
|
u32 __data_loc_progname;
|
|
u32 __data_loc_procedure;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_xdr_alignment {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
int version;
|
|
size_t offset;
|
|
unsigned int copied;
|
|
const void *head_base;
|
|
size_t head_len;
|
|
const void *tail_base;
|
|
size_t tail_len;
|
|
unsigned int page_len;
|
|
unsigned int len;
|
|
u32 __data_loc_progname;
|
|
u32 __data_loc_procedure;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xs_socket_event {
|
|
struct trace_entry ent;
|
|
unsigned int socket_state;
|
|
unsigned int sock_state;
|
|
unsigned long long ino;
|
|
__u8 saddr[28];
|
|
__u8 daddr[28];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xs_socket_event_done {
|
|
struct trace_entry ent;
|
|
int error;
|
|
unsigned int socket_state;
|
|
unsigned int sock_state;
|
|
unsigned long long ino;
|
|
__u8 saddr[28];
|
|
__u8 daddr[28];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_socket_nospace {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
unsigned int total;
|
|
unsigned int remaining;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_xprt_lifetime_class {
|
|
struct trace_entry ent;
|
|
unsigned long state;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpc_xprt_event {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
int status;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xprt_transmit {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
u32 seqno;
|
|
int status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xprt_retransmit {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
int ntrans;
|
|
int version;
|
|
unsigned long timeout;
|
|
u32 __data_loc_progname;
|
|
u32 __data_loc_procname;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xprt_ping {
|
|
struct trace_entry ent;
|
|
int status;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xprt_writelock_event {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
unsigned int snd_task_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xprt_cong_event {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
unsigned int snd_task_id;
|
|
unsigned long cong;
|
|
unsigned long cwnd;
|
|
bool wait;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xprt_reserve {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xs_data_ready {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xs_stream_read_data {
|
|
struct trace_entry ent;
|
|
ssize_t err;
|
|
size_t total;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xs_stream_read_request {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_port;
|
|
u32 xid;
|
|
unsigned long copied;
|
|
unsigned int reclen;
|
|
unsigned int offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcb_getport {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
unsigned int program;
|
|
unsigned int version;
|
|
int protocol;
|
|
unsigned int bind_version;
|
|
u32 __data_loc_servername;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcb_setport {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
int status;
|
|
unsigned short port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_pmap_register {
|
|
struct trace_entry ent;
|
|
unsigned int program;
|
|
unsigned int version;
|
|
int protocol;
|
|
unsigned int port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcb_register {
|
|
struct trace_entry ent;
|
|
unsigned int program;
|
|
unsigned int version;
|
|
u32 __data_loc_addr;
|
|
u32 __data_loc_netid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rpcb_unregister {
|
|
struct trace_entry ent;
|
|
unsigned int program;
|
|
unsigned int version;
|
|
u32 __data_loc_netid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xdr_msg_class {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
const void *head_base;
|
|
size_t head_len;
|
|
const void *tail_base;
|
|
size_t tail_len;
|
|
unsigned int page_len;
|
|
unsigned int msg_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xdr_buf_class {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
const void *head_base;
|
|
size_t head_len;
|
|
const void *tail_base;
|
|
size_t tail_len;
|
|
unsigned int page_base;
|
|
unsigned int page_len;
|
|
unsigned int msg_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_authenticate {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned int netns_ino;
|
|
u32 xid;
|
|
unsigned long svc_status;
|
|
unsigned long auth_stat;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_process {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 vers;
|
|
u32 proc;
|
|
u32 __data_loc_service;
|
|
u32 __data_loc_procedure;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_rqst_event {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned int netns_ino;
|
|
u32 xid;
|
|
unsigned long flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_rqst_status {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned int netns_ino;
|
|
u32 xid;
|
|
int status;
|
|
unsigned long flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_stats_latency {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned int netns_ino;
|
|
u32 xid;
|
|
unsigned long execute;
|
|
u32 __data_loc_procedure;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xprt_create_err {
|
|
struct trace_entry ent;
|
|
long error;
|
|
u32 __data_loc_program;
|
|
u32 __data_loc_protocol;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xprt_enqueue {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned long flags;
|
|
unsigned int netns_ino;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xprt_dequeue {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned long flags;
|
|
unsigned int netns_ino;
|
|
unsigned long wakeup;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xprt_event {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned long flags;
|
|
unsigned int netns_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_xprt_accept {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_server;
|
|
u32 __data_loc_client;
|
|
unsigned long flags;
|
|
unsigned int netns_ino;
|
|
u32 __data_loc_protocol;
|
|
u32 __data_loc_service;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_wake_up {
|
|
struct trace_entry ent;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_alloc_arg_err {
|
|
struct trace_entry ent;
|
|
unsigned int requested;
|
|
unsigned int allocated;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_deferred_event {
|
|
struct trace_entry ent;
|
|
const void *dr;
|
|
u32 xid;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svcsock_new_socket {
|
|
struct trace_entry ent;
|
|
unsigned long type;
|
|
unsigned long family;
|
|
bool listener;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svcsock_marker {
|
|
struct trace_entry ent;
|
|
unsigned int length;
|
|
bool last;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svcsock_class {
|
|
struct trace_entry ent;
|
|
ssize_t result;
|
|
unsigned long flags;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svcsock_tcp_recv_short {
|
|
struct trace_entry ent;
|
|
u32 expected;
|
|
u32 received;
|
|
unsigned long flags;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svcsock_tcp_state {
|
|
struct trace_entry ent;
|
|
unsigned long socket_state;
|
|
unsigned long sock_state;
|
|
unsigned long flags;
|
|
u32 __data_loc_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svcsock_accept_class {
|
|
struct trace_entry ent;
|
|
long status;
|
|
u32 __data_loc_service;
|
|
unsigned int netns_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cache_event {
|
|
struct trace_entry ent;
|
|
const struct cache_head *h;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_register_class {
|
|
struct trace_entry ent;
|
|
u32 version;
|
|
unsigned long family;
|
|
unsigned short protocol;
|
|
unsigned short port;
|
|
int error;
|
|
u32 __data_loc_program;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_svc_unregister {
|
|
struct trace_entry ent;
|
|
u32 version;
|
|
int error;
|
|
u32 __data_loc_program;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_clnt_new {
|
|
u32 addr;
|
|
u32 port;
|
|
u32 program;
|
|
u32 server;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_clnt_new_err {
|
|
u32 program;
|
|
u32 server;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_request {
|
|
u32 progname;
|
|
u32 procname;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_task_queued {
|
|
u32 q_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_reply_event {
|
|
u32 progname;
|
|
u32 procname;
|
|
u32 servername;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_stats_latency {
|
|
u32 progname;
|
|
u32 procname;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_xdr_overflow {
|
|
u32 progname;
|
|
u32 procedure;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_xdr_alignment {
|
|
u32 progname;
|
|
u32 procedure;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_xprt_lifetime_class {
|
|
u32 addr;
|
|
u32 port;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_xprt_event {
|
|
u32 addr;
|
|
u32 port;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xprt_retransmit {
|
|
u32 progname;
|
|
u32 procname;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xprt_ping {
|
|
u32 addr;
|
|
u32 port;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xs_data_ready {
|
|
u32 addr;
|
|
u32 port;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xs_stream_read_data {
|
|
u32 addr;
|
|
u32 port;
|
|
};
|
|
|
|
struct trace_event_data_offsets_xs_stream_read_request {
|
|
u32 addr;
|
|
u32 port;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcb_getport {
|
|
u32 servername;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcb_register {
|
|
u32 addr;
|
|
u32 netid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpcb_unregister {
|
|
u32 netid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_authenticate {
|
|
u32 server;
|
|
u32 client;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_process {
|
|
u32 service;
|
|
u32 procedure;
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_rqst_event {
|
|
u32 server;
|
|
u32 client;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_rqst_status {
|
|
u32 server;
|
|
u32 client;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_stats_latency {
|
|
u32 server;
|
|
u32 client;
|
|
u32 procedure;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_xprt_create_err {
|
|
u32 program;
|
|
u32 protocol;
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_xprt_enqueue {
|
|
u32 server;
|
|
u32 client;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_xprt_dequeue {
|
|
u32 server;
|
|
u32 client;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_xprt_event {
|
|
u32 server;
|
|
u32 client;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_xprt_accept {
|
|
u32 server;
|
|
u32 client;
|
|
u32 protocol;
|
|
u32 service;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_deferred_event {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svcsock_marker {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svcsock_class {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svcsock_tcp_recv_short {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svcsock_tcp_state {
|
|
u32 addr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svcsock_accept_class {
|
|
u32 service;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cache_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_register_class {
|
|
u32 program;
|
|
};
|
|
|
|
struct trace_event_data_offsets_svc_unregister {
|
|
u32 program;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rpc_xdr_buf_class {};
|
|
|
|
struct trace_event_data_offsets_rpc_clnt_class {};
|
|
|
|
struct trace_event_data_offsets_rpc_clnt_clone_err {};
|
|
|
|
struct trace_event_data_offsets_rpc_task_status {};
|
|
|
|
struct trace_event_data_offsets_rpc_task_running {};
|
|
|
|
struct trace_event_data_offsets_rpc_failure {};
|
|
|
|
struct trace_event_data_offsets_rpc_buf_alloc {};
|
|
|
|
struct trace_event_data_offsets_rpc_call_rpcerror {};
|
|
|
|
struct trace_event_data_offsets_xs_socket_event {};
|
|
|
|
struct trace_event_data_offsets_xs_socket_event_done {};
|
|
|
|
struct trace_event_data_offsets_rpc_socket_nospace {};
|
|
|
|
struct trace_event_data_offsets_xprt_transmit {};
|
|
|
|
struct trace_event_data_offsets_xprt_writelock_event {};
|
|
|
|
struct trace_event_data_offsets_xprt_cong_event {};
|
|
|
|
struct trace_event_data_offsets_xprt_reserve {};
|
|
|
|
struct trace_event_data_offsets_rpcb_setport {};
|
|
|
|
struct trace_event_data_offsets_pmap_register {};
|
|
|
|
struct trace_event_data_offsets_svc_xdr_msg_class {};
|
|
|
|
struct trace_event_data_offsets_svc_xdr_buf_class {};
|
|
|
|
struct trace_event_data_offsets_svc_wake_up {};
|
|
|
|
struct trace_event_data_offsets_svc_alloc_arg_err {};
|
|
|
|
struct trace_event_data_offsets_svcsock_new_socket {};
|
|
|
|
enum nl80211_txq_stats {
|
|
__NL80211_TXQ_STATS_INVALID = 0,
|
|
NL80211_TXQ_STATS_BACKLOG_BYTES = 1,
|
|
NL80211_TXQ_STATS_BACKLOG_PACKETS = 2,
|
|
NL80211_TXQ_STATS_FLOWS = 3,
|
|
NL80211_TXQ_STATS_DROPS = 4,
|
|
NL80211_TXQ_STATS_ECN_MARKS = 5,
|
|
NL80211_TXQ_STATS_OVERLIMIT = 6,
|
|
NL80211_TXQ_STATS_OVERMEMORY = 7,
|
|
NL80211_TXQ_STATS_COLLISIONS = 8,
|
|
NL80211_TXQ_STATS_TX_BYTES = 9,
|
|
NL80211_TXQ_STATS_TX_PACKETS = 10,
|
|
NL80211_TXQ_STATS_MAX_FLOWS = 11,
|
|
NUM_NL80211_TXQ_STATS = 12,
|
|
NL80211_TXQ_STATS_MAX = 11,
|
|
};
|
|
|
|
enum nl80211_sta_flags {
|
|
__NL80211_STA_FLAG_INVALID = 0,
|
|
NL80211_STA_FLAG_AUTHORIZED = 1,
|
|
NL80211_STA_FLAG_SHORT_PREAMBLE = 2,
|
|
NL80211_STA_FLAG_WME = 3,
|
|
NL80211_STA_FLAG_MFP = 4,
|
|
NL80211_STA_FLAG_AUTHENTICATED = 5,
|
|
NL80211_STA_FLAG_TDLS_PEER = 6,
|
|
NL80211_STA_FLAG_ASSOCIATED = 7,
|
|
__NL80211_STA_FLAG_AFTER_LAST = 8,
|
|
NL80211_STA_FLAG_MAX = 7,
|
|
};
|
|
|
|
enum station_parameters_apply_mask {
|
|
STATION_PARAM_APPLY_UAPSD = 1,
|
|
STATION_PARAM_APPLY_CAPABILITY = 2,
|
|
STATION_PARAM_APPLY_PLINK_STATE = 4,
|
|
};
|
|
|
|
enum cfg80211_station_type {
|
|
CFG80211_STA_AP_CLIENT = 0,
|
|
CFG80211_STA_AP_CLIENT_UNASSOC = 1,
|
|
CFG80211_STA_AP_MLME_CLIENT = 2,
|
|
CFG80211_STA_AP_STA = 3,
|
|
CFG80211_STA_IBSS = 4,
|
|
CFG80211_STA_TDLS_PEER_SETUP = 5,
|
|
CFG80211_STA_TDLS_PEER_ACTIVE = 6,
|
|
CFG80211_STA_MESH_PEER_KERNEL = 7,
|
|
CFG80211_STA_MESH_PEER_USER = 8,
|
|
};
|
|
|
|
enum wiphy_params_flags {
|
|
WIPHY_PARAM_RETRY_SHORT = 1,
|
|
WIPHY_PARAM_RETRY_LONG = 2,
|
|
WIPHY_PARAM_FRAG_THRESHOLD = 4,
|
|
WIPHY_PARAM_RTS_THRESHOLD = 8,
|
|
WIPHY_PARAM_COVERAGE_CLASS = 16,
|
|
WIPHY_PARAM_DYN_ACK = 32,
|
|
WIPHY_PARAM_TXQ_LIMIT = 64,
|
|
WIPHY_PARAM_TXQ_MEMORY_LIMIT = 128,
|
|
WIPHY_PARAM_TXQ_QUANTUM = 256,
|
|
};
|
|
|
|
enum cfg80211_nan_conf_changes {
|
|
CFG80211_NAN_CONF_CHANGED_PREF = 1,
|
|
CFG80211_NAN_CONF_CHANGED_BANDS = 2,
|
|
};
|
|
|
|
struct ieee80211_csa_settings {
|
|
const u16 *counter_offsets_beacon;
|
|
const u16 *counter_offsets_presp;
|
|
int n_counter_offsets_beacon;
|
|
int n_counter_offsets_presp;
|
|
u8 count;
|
|
};
|
|
|
|
struct cfg80211_nan_match_params {
|
|
enum nl80211_nan_function_type type;
|
|
u8 inst_id;
|
|
u8 peer_inst_id;
|
|
const u8 *addr;
|
|
u8 info_len;
|
|
const u8 *info;
|
|
u64 cookie;
|
|
};
|
|
|
|
struct ieee80211_color_change_settings {
|
|
u16 counter_offset_beacon;
|
|
u16 counter_offset_presp;
|
|
u8 count;
|
|
};
|
|
|
|
struct legacy_pic {
|
|
int nr_legacy_irqs;
|
|
struct irq_chip *chip;
|
|
void (*mask)(unsigned int);
|
|
void (*unmask)(unsigned int);
|
|
void (*mask_all)();
|
|
void (*restore_mask)();
|
|
void (*init)(int);
|
|
int (*probe)();
|
|
int (*irq_pending)(unsigned int);
|
|
void (*make_irq)(unsigned int);
|
|
};
|
|
|
|
struct pvclock_wall_clock {
|
|
u32 version;
|
|
u32 sec;
|
|
u32 nsec;
|
|
};
|
|
|
|
struct tlb_context {
|
|
u64 ctx_id;
|
|
u64 tlb_gen;
|
|
};
|
|
|
|
struct tlb_state {
|
|
struct mm_struct *loaded_mm;
|
|
union {
|
|
struct mm_struct *last_user_mm;
|
|
unsigned long last_user_mm_spec;
|
|
};
|
|
u16 loaded_mm_asid;
|
|
u16 next_asid;
|
|
bool invalidate_other;
|
|
unsigned short user_pcid_flush_mask;
|
|
unsigned long cr4;
|
|
struct tlb_context ctxs[6];
|
|
};
|
|
|
|
enum l1tf_mitigations {
|
|
L1TF_MITIGATION_OFF = 0,
|
|
L1TF_MITIGATION_FLUSH_NOWARN = 1,
|
|
L1TF_MITIGATION_FLUSH = 2,
|
|
L1TF_MITIGATION_FLUSH_NOSMT = 3,
|
|
L1TF_MITIGATION_FULL = 4,
|
|
L1TF_MITIGATION_FULL_FORCE = 5,
|
|
};
|
|
|
|
struct map_range {
|
|
unsigned long start;
|
|
unsigned long end;
|
|
unsigned int page_size_mask;
|
|
};
|
|
|
|
struct core_vma_metadata;
|
|
|
|
struct coredump_params {
|
|
const kernel_siginfo_t *siginfo;
|
|
struct file *file;
|
|
unsigned long limit;
|
|
unsigned long mm_flags;
|
|
int cpu;
|
|
loff_t written;
|
|
loff_t pos;
|
|
loff_t to_skip;
|
|
int vma_count;
|
|
size_t vma_data_size;
|
|
struct core_vma_metadata *vma_meta;
|
|
};
|
|
|
|
struct core_vma_metadata {
|
|
unsigned long start;
|
|
unsigned long end;
|
|
unsigned long flags;
|
|
unsigned long dump_size;
|
|
unsigned long pgoff;
|
|
struct file *file;
|
|
};
|
|
|
|
typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int);
|
|
|
|
typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *);
|
|
|
|
enum sig_handler {
|
|
HANDLER_CURRENT = 0,
|
|
HANDLER_SIG_DFL = 1,
|
|
HANDLER_EXIT = 2,
|
|
};
|
|
|
|
enum {
|
|
TRACE_SIGNAL_DELIVERED = 0,
|
|
TRACE_SIGNAL_IGNORED = 1,
|
|
TRACE_SIGNAL_ALREADY_PENDING = 2,
|
|
TRACE_SIGNAL_OVERFLOW_FAIL = 3,
|
|
TRACE_SIGNAL_LOSE_INFO = 4,
|
|
};
|
|
|
|
enum siginfo_layout {
|
|
SIL_KILL = 0,
|
|
SIL_TIMER = 1,
|
|
SIL_POLL = 2,
|
|
SIL_FAULT = 3,
|
|
SIL_FAULT_TRAPNO = 4,
|
|
SIL_FAULT_MCEERR = 5,
|
|
SIL_FAULT_BNDERR = 6,
|
|
SIL_FAULT_PKUERR = 7,
|
|
SIL_FAULT_PERF_EVENT = 8,
|
|
SIL_CHLD = 9,
|
|
SIL_RT = 10,
|
|
SIL_SYS = 11,
|
|
};
|
|
|
|
struct trace_event_raw_signal_generate {
|
|
struct trace_entry ent;
|
|
int sig;
|
|
int errno;
|
|
int code;
|
|
char comm[16];
|
|
pid_t pid;
|
|
int group;
|
|
int result;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_signal_deliver {
|
|
struct trace_entry ent;
|
|
int sig;
|
|
int errno;
|
|
int code;
|
|
unsigned long sa_handler;
|
|
unsigned long sa_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct multiprocess_signals {
|
|
sigset_t signal;
|
|
struct hlist_node node;
|
|
};
|
|
|
|
typedef s32 compat_timer_t;
|
|
|
|
typedef s32 compat_clock_t;
|
|
|
|
struct compat_siginfo {
|
|
int si_signo;
|
|
int si_errno;
|
|
int si_code;
|
|
union {
|
|
int _pad[29];
|
|
struct {
|
|
compat_pid_t _pid;
|
|
__compat_uid32_t _uid;
|
|
} _kill;
|
|
struct {
|
|
compat_timer_t _tid;
|
|
int _overrun;
|
|
compat_sigval_t _sigval;
|
|
} _timer;
|
|
struct {
|
|
compat_pid_t _pid;
|
|
__compat_uid32_t _uid;
|
|
compat_sigval_t _sigval;
|
|
} _rt;
|
|
struct {
|
|
compat_pid_t _pid;
|
|
__compat_uid32_t _uid;
|
|
int _status;
|
|
compat_clock_t _utime;
|
|
compat_clock_t _stime;
|
|
} _sigchld;
|
|
struct {
|
|
compat_uptr_t _addr;
|
|
union {
|
|
int _trapno;
|
|
short _addr_lsb;
|
|
struct {
|
|
char _dummy_bnd[4];
|
|
compat_uptr_t _lower;
|
|
compat_uptr_t _upper;
|
|
} _addr_bnd;
|
|
struct {
|
|
char _dummy_pkey[4];
|
|
u32 _pkey;
|
|
} _addr_pkey;
|
|
struct {
|
|
compat_ulong_t _data;
|
|
u32 _type;
|
|
u32 _flags;
|
|
} _perf;
|
|
};
|
|
} _sigfault;
|
|
struct {
|
|
compat_long_t _band;
|
|
int _fd;
|
|
} _sigpoll;
|
|
struct {
|
|
compat_uptr_t _call_addr;
|
|
int _syscall;
|
|
unsigned int _arch;
|
|
} _sigsys;
|
|
} _sifields;
|
|
};
|
|
|
|
struct compat_sigaltstack {
|
|
compat_uptr_t ss_sp;
|
|
int ss_flags;
|
|
compat_size_t ss_size;
|
|
};
|
|
|
|
typedef struct compat_sigaltstack compat_stack_t;
|
|
|
|
typedef unsigned long old_sigset_t;
|
|
|
|
typedef u32 compat_old_sigset_t;
|
|
|
|
struct compat_sigaction {
|
|
compat_uptr_t sa_handler;
|
|
compat_ulong_t sa_flags;
|
|
compat_uptr_t sa_restorer;
|
|
compat_sigset_t sa_mask;
|
|
};
|
|
|
|
struct compat_old_sigaction {
|
|
compat_uptr_t sa_handler;
|
|
compat_old_sigset_t sa_mask;
|
|
compat_ulong_t sa_flags;
|
|
compat_uptr_t sa_restorer;
|
|
};
|
|
|
|
struct trace_event_data_offsets_signal_generate {};
|
|
|
|
struct trace_event_data_offsets_signal_deliver {};
|
|
|
|
struct bpf_hrtimer {
|
|
struct hrtimer timer;
|
|
struct bpf_map *map;
|
|
struct bpf_prog *prog;
|
|
void __attribute__((btf_type_tag("rcu"))) *callback_fn;
|
|
void *value;
|
|
};
|
|
|
|
struct bpf_bprintf_buffers {
|
|
char bin_args[512];
|
|
char buf[1024];
|
|
};
|
|
|
|
enum {
|
|
BPF_F_TIMER_ABS = 1,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *);
|
|
|
|
typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *);
|
|
|
|
typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *);
|
|
|
|
typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *);
|
|
|
|
typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_get_smp_processor_id)();
|
|
|
|
typedef u64 (*btf_bpf_get_numa_node_id)();
|
|
|
|
typedef u64 (*btf_bpf_ktime_get_ns)();
|
|
|
|
typedef u64 (*btf_bpf_ktime_get_boot_ns)();
|
|
|
|
typedef u64 (*btf_bpf_ktime_get_coarse_ns)();
|
|
|
|
typedef u64 (*btf_bpf_ktime_get_tai_ns)();
|
|
|
|
typedef u64 (*btf_bpf_get_current_pid_tgid)();
|
|
|
|
typedef u64 (*btf_bpf_get_current_uid_gid)();
|
|
|
|
typedef u64 (*btf_bpf_get_current_comm)(char *, u32);
|
|
|
|
typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *);
|
|
|
|
typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *);
|
|
|
|
typedef u64 (*btf_bpf_jiffies64)();
|
|
|
|
typedef u64 (*btf_bpf_get_current_cgroup_id)();
|
|
|
|
typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int);
|
|
|
|
typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *);
|
|
|
|
typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *);
|
|
|
|
typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *);
|
|
|
|
struct bpf_pidns_info;
|
|
|
|
typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32);
|
|
|
|
struct bpf_pidns_info {
|
|
__u32 pid;
|
|
__u32 tgid;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *);
|
|
|
|
typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64);
|
|
|
|
typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_this_cpu_ptr)(const void *);
|
|
|
|
typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32);
|
|
|
|
struct bpf_timer_kern;
|
|
|
|
typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64);
|
|
|
|
struct bpf_timer_kern {
|
|
struct bpf_hrtimer *timer;
|
|
struct bpf_spin_lock lock;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *);
|
|
|
|
typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *);
|
|
|
|
typedef u64 (*btf_bpf_kptr_xchg)(void *, void *);
|
|
|
|
typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *);
|
|
|
|
typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32);
|
|
|
|
struct bpf_rb_node {
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;};
|
|
|
|
struct bpf_timer {
|
|
long: 64;
|
|
long: 64;};
|
|
|
|
struct bpf_dynptr {
|
|
long: 64;
|
|
long: 64;};
|
|
|
|
struct bpf_list_node {
|
|
long: 64;
|
|
long: 64;};
|
|
|
|
struct bpf_list_head {
|
|
long: 64;
|
|
long: 64;};
|
|
|
|
struct bpf_rb_root {
|
|
long: 64;
|
|
long: 64;};
|
|
|
|
struct btf_id_dtor_kfunc {
|
|
u32 btf_id;
|
|
u32 kfunc_btf_id;
|
|
};
|
|
|
|
typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool);
|
|
|
|
typedef void (*btf_trace_mark_victim)(void *, int);
|
|
|
|
typedef void (*btf_trace_wake_reaper)(void *, int);
|
|
|
|
typedef void (*btf_trace_start_task_reaping)(void *, int);
|
|
|
|
typedef void (*btf_trace_finish_task_reaping)(void *, int);
|
|
|
|
typedef void (*btf_trace_skip_task_reaping)(void *, int);
|
|
|
|
enum compact_priority {
|
|
COMPACT_PRIO_SYNC_FULL = 0,
|
|
MIN_COMPACT_PRIORITY = 0,
|
|
COMPACT_PRIO_SYNC_LIGHT = 1,
|
|
MIN_COMPACT_COSTLY_PRIORITY = 1,
|
|
DEF_COMPACT_PRIORITY = 1,
|
|
COMPACT_PRIO_ASYNC = 2,
|
|
INIT_COMPACT_PRIORITY = 2,
|
|
};
|
|
|
|
typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool);
|
|
|
|
enum oom_constraint {
|
|
CONSTRAINT_NONE = 0,
|
|
CONSTRAINT_CPUSET = 1,
|
|
CONSTRAINT_MEMORY_POLICY = 2,
|
|
CONSTRAINT_MEMCG = 3,
|
|
};
|
|
|
|
struct trace_event_raw_oom_score_adj_update {
|
|
struct trace_entry ent;
|
|
pid_t pid;
|
|
char comm[16];
|
|
short oom_score_adj;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_reclaim_retry_zone {
|
|
struct trace_entry ent;
|
|
int node;
|
|
int zone_idx;
|
|
int order;
|
|
unsigned long reclaimable;
|
|
unsigned long available;
|
|
unsigned long min_wmark;
|
|
int no_progress_loops;
|
|
bool wmark_check;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mark_victim {
|
|
struct trace_entry ent;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wake_reaper {
|
|
struct trace_entry ent;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_start_task_reaping {
|
|
struct trace_entry ent;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_finish_task_reaping {
|
|
struct trace_entry ent;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_skip_task_reaping {
|
|
struct trace_entry ent;
|
|
int pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_compact_retry {
|
|
struct trace_entry ent;
|
|
int order;
|
|
int priority;
|
|
int result;
|
|
int retries;
|
|
int max_retries;
|
|
bool ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct oom_control {
|
|
struct zonelist *zonelist;
|
|
nodemask_t *nodemask;
|
|
struct mem_cgroup *memcg;
|
|
const gfp_t gfp_mask;
|
|
const int order;
|
|
unsigned long totalpages;
|
|
struct task_struct *chosen;
|
|
long chosen_points;
|
|
enum oom_constraint constraint;
|
|
};
|
|
|
|
struct trace_event_data_offsets_oom_score_adj_update {};
|
|
|
|
struct trace_event_data_offsets_reclaim_retry_zone {};
|
|
|
|
struct trace_event_data_offsets_mark_victim {};
|
|
|
|
struct trace_event_data_offsets_wake_reaper {};
|
|
|
|
struct trace_event_data_offsets_start_task_reaping {};
|
|
|
|
struct trace_event_data_offsets_finish_task_reaping {};
|
|
|
|
struct trace_event_data_offsets_skip_task_reaping {};
|
|
|
|
struct trace_event_data_offsets_compact_retry {};
|
|
|
|
struct mlock_fbatch {
|
|
local_lock_t lock;
|
|
struct folio_batch fbatch;
|
|
};
|
|
|
|
typedef union {
|
|
struct page **pages;
|
|
struct folio **folios;
|
|
struct encoded_page **encoded_pages;
|
|
} release_pages_arg;
|
|
|
|
struct utimbuf {
|
|
__kernel_old_time_t actime;
|
|
__kernel_old_time_t modtime;
|
|
};
|
|
|
|
struct old_utimbuf32 {
|
|
old_time32_t actime;
|
|
old_time32_t modtime;
|
|
};
|
|
|
|
struct dnotify_struct;
|
|
|
|
struct dnotify_mark {
|
|
struct fsnotify_mark fsn_mark;
|
|
struct dnotify_struct *dn;
|
|
};
|
|
|
|
struct dnotify_struct {
|
|
struct dnotify_struct *dn_next;
|
|
__u32 dn_mask;
|
|
int dn_fd;
|
|
struct file *dn_filp;
|
|
fl_owner_t dn_owner;
|
|
};
|
|
|
|
enum proc_param {
|
|
Opt_gid___4 = 0,
|
|
Opt_hidepid = 1,
|
|
Opt_subset = 2,
|
|
};
|
|
|
|
struct proc_fs_context {
|
|
struct pid_namespace *pid_ns;
|
|
unsigned int mask;
|
|
enum proc_hidepid hidepid;
|
|
int gid;
|
|
enum proc_pidonly pidonly;
|
|
};
|
|
|
|
struct elf_prpsinfo {
|
|
char pr_state;
|
|
char pr_sname;
|
|
char pr_zomb;
|
|
char pr_nice;
|
|
unsigned long pr_flag;
|
|
__kernel_uid_t pr_uid;
|
|
__kernel_gid_t pr_gid;
|
|
pid_t pr_pid;
|
|
pid_t pr_ppid;
|
|
pid_t pr_pgrp;
|
|
pid_t pr_sid;
|
|
char pr_fname[16];
|
|
char pr_psargs[80];
|
|
};
|
|
|
|
struct elf_siginfo {
|
|
int si_signo;
|
|
int si_code;
|
|
int si_errno;
|
|
};
|
|
|
|
struct elf_prstatus_common {
|
|
struct elf_siginfo pr_info;
|
|
short pr_cursig;
|
|
unsigned long pr_sigpend;
|
|
unsigned long pr_sighold;
|
|
pid_t pr_pid;
|
|
pid_t pr_ppid;
|
|
pid_t pr_pgrp;
|
|
pid_t pr_sid;
|
|
struct __kernel_old_timeval pr_utime;
|
|
struct __kernel_old_timeval pr_stime;
|
|
struct __kernel_old_timeval pr_cutime;
|
|
struct __kernel_old_timeval pr_cstime;
|
|
};
|
|
|
|
typedef unsigned long elf_greg_t;
|
|
|
|
typedef elf_greg_t elf_gregset_t[27];
|
|
|
|
struct elf_prstatus {
|
|
struct elf_prstatus_common common;
|
|
elf_gregset_t pr_reg;
|
|
int pr_fpvalid;
|
|
};
|
|
|
|
struct ext4_getfsmap_info {
|
|
struct ext4_fsmap_head *gfi_head;
|
|
ext4_fsmap_format_t gfi_formatter;
|
|
void *gfi_format_arg;
|
|
ext4_fsblk_t gfi_next_fsblk;
|
|
u32 gfi_dev;
|
|
ext4_group_t gfi_agno;
|
|
struct ext4_fsmap gfi_low;
|
|
struct ext4_fsmap gfi_high;
|
|
struct ext4_fsmap gfi_lastfree;
|
|
struct list_head gfi_meta_list;
|
|
bool gfi_last;
|
|
};
|
|
|
|
struct ext4_getfsmap_dev {
|
|
int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *);
|
|
u32 gfd_dev;
|
|
};
|
|
|
|
enum nfs_ftype {
|
|
NFNON = 0,
|
|
NFREG = 1,
|
|
NFDIR = 2,
|
|
NFBLK = 3,
|
|
NFCHR = 4,
|
|
NFLNK = 5,
|
|
NFSOCK = 6,
|
|
NFBAD = 7,
|
|
NFFIFO = 8,
|
|
};
|
|
|
|
enum nfs2_ftype {
|
|
NF2NON = 0,
|
|
NF2REG = 1,
|
|
NF2DIR = 2,
|
|
NF2BLK = 3,
|
|
NF2CHR = 4,
|
|
NF2LNK = 5,
|
|
NF2SOCK = 6,
|
|
NF2BAD = 7,
|
|
NF2FIFO = 8,
|
|
};
|
|
|
|
typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *);
|
|
|
|
typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *);
|
|
|
|
typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32);
|
|
|
|
typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32);
|
|
|
|
typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32);
|
|
|
|
typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32);
|
|
|
|
typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32);
|
|
|
|
typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int);
|
|
|
|
typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int);
|
|
|
|
typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int);
|
|
|
|
typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *);
|
|
|
|
typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int);
|
|
|
|
typedef void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int);
|
|
|
|
typedef void (*btf_trace_nfs4_set_lock)(void *, const struct file_lock *, const struct nfs4_state *, const nfs4_stateid *, int, int);
|
|
|
|
typedef void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *);
|
|
|
|
typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t);
|
|
|
|
typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t);
|
|
|
|
typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int);
|
|
|
|
typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int);
|
|
|
|
typedef void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int);
|
|
|
|
typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int);
|
|
|
|
typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int);
|
|
|
|
typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int);
|
|
|
|
struct trace_event_raw_nfs4_clientid_event {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dstaddr;
|
|
unsigned long error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_setup_sequence {
|
|
struct trace_entry ent;
|
|
unsigned int session;
|
|
unsigned int slot_nr;
|
|
unsigned int seq_nr;
|
|
unsigned int highest_used_slotid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_state_mgr {
|
|
struct trace_entry ent;
|
|
unsigned long state;
|
|
u32 __data_loc_hostname;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_state_mgr_failed {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long state;
|
|
u32 __data_loc_hostname;
|
|
u32 __data_loc_section;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_xdr_bad_operation {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
u32 op;
|
|
u32 expected;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_xdr_event {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
u32 op;
|
|
unsigned long error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_cb_error_class {
|
|
struct trace_entry ent;
|
|
u32 xid;
|
|
u32 cbident;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_open_event {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long flags;
|
|
unsigned long fmode;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
int openstateid_seq;
|
|
u32 openstateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_cached_open {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned int fmode;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_close {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned int fmode;
|
|
unsigned long error;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_lock_event {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long cmd;
|
|
unsigned long type;
|
|
loff_t start;
|
|
loff_t end;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_set_lock {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long cmd;
|
|
unsigned long type;
|
|
loff_t start;
|
|
loff_t end;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
int lockstateid_seq;
|
|
u32 lockstateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_state_lock_reclaim {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned long state_flags;
|
|
unsigned long lock_flags;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_set_delegation_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned int fmode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_delegreturn_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
unsigned long error;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_lookup_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long error;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_lookupp {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 ino;
|
|
unsigned long error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_rename {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long error;
|
|
u64 olddir;
|
|
u32 __data_loc_oldname;
|
|
u64 newdir;
|
|
u32 __data_loc_newname;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_inode_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned long error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_inode_stateid_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned long error;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_getattr_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned int valid;
|
|
unsigned long error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_inode_callback_event {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u32 __data_loc_dstaddr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_inode_stateid_callback_event {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u32 __data_loc_dstaddr;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_idmap_event {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
u32 id;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_read_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 arg_count;
|
|
u32 res_count;
|
|
unsigned long error;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
int layoutstateid_seq;
|
|
u32 layoutstateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_write_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 arg_count;
|
|
u32 res_count;
|
|
unsigned long error;
|
|
int stateid_seq;
|
|
u32 stateid_hash;
|
|
int layoutstateid_seq;
|
|
u32 layoutstateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs4_commit_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
unsigned long error;
|
|
loff_t offset;
|
|
u32 count;
|
|
int layoutstateid_seq;
|
|
u32 layoutstateid_hash;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_clientid_event {
|
|
u32 dstaddr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_state_mgr {
|
|
u32 hostname;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_state_mgr_failed {
|
|
u32 hostname;
|
|
u32 section;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_open_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_lookup_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_rename {
|
|
u32 oldname;
|
|
u32 newname;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_inode_callback_event {
|
|
u32 dstaddr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_inode_stateid_callback_event {
|
|
u32 dstaddr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_idmap_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs4_setup_sequence {};
|
|
|
|
struct trace_event_data_offsets_nfs4_xdr_bad_operation {};
|
|
|
|
struct trace_event_data_offsets_nfs4_xdr_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_cb_error_class {};
|
|
|
|
struct trace_event_data_offsets_nfs4_cached_open {};
|
|
|
|
struct trace_event_data_offsets_nfs4_close {};
|
|
|
|
struct trace_event_data_offsets_nfs4_lock_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_set_lock {};
|
|
|
|
struct trace_event_data_offsets_nfs4_state_lock_reclaim {};
|
|
|
|
struct trace_event_data_offsets_nfs4_set_delegation_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_delegreturn_exit {};
|
|
|
|
struct trace_event_data_offsets_nfs4_lookupp {};
|
|
|
|
struct trace_event_data_offsets_nfs4_inode_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_inode_stateid_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_getattr_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_read_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_write_event {};
|
|
|
|
struct trace_event_data_offsets_nfs4_commit_event {};
|
|
|
|
struct ima_h_table {
|
|
atomic_long_t len;
|
|
atomic_long_t violations;
|
|
struct hlist_head queue[1024];
|
|
};
|
|
|
|
struct md5_state {
|
|
u32 hash[4];
|
|
u32 block[16];
|
|
u64 byte_count;
|
|
};
|
|
|
|
struct crypto_rfc4543_instance_ctx {
|
|
struct crypto_aead_spawn aead;
|
|
};
|
|
|
|
struct gcm_instance_ctx {
|
|
struct crypto_skcipher_spawn ctr;
|
|
struct crypto_ahash_spawn ghash;
|
|
};
|
|
|
|
struct crypto_gcm_ghash_ctx {
|
|
unsigned int cryptlen;
|
|
struct scatterlist *src;
|
|
int (*complete)(struct aead_request *, u32);
|
|
};
|
|
|
|
struct crypto_gcm_req_priv_ctx {
|
|
u8 iv[16];
|
|
u8 auth_tag[16];
|
|
u8 iauth_tag[16];
|
|
struct scatterlist src[3];
|
|
struct scatterlist dst[3];
|
|
struct scatterlist sg;
|
|
struct crypto_gcm_ghash_ctx ghash_ctx;
|
|
union {
|
|
struct ahash_request ahreq;
|
|
struct skcipher_request skreq;
|
|
} u;
|
|
};
|
|
|
|
struct crypto_gcm_ctx {
|
|
struct crypto_skcipher *ctr;
|
|
struct crypto_ahash *ghash;
|
|
};
|
|
|
|
struct crypto_rfc4543_ctx {
|
|
struct crypto_aead *child;
|
|
struct crypto_sync_skcipher *null;
|
|
u8 nonce[4];
|
|
};
|
|
|
|
struct crypto_rfc4106_ctx {
|
|
struct crypto_aead *child;
|
|
u8 nonce[4];
|
|
};
|
|
|
|
struct crypto_rfc4106_req_ctx {
|
|
struct scatterlist src[3];
|
|
struct scatterlist dst[3];
|
|
struct aead_request subreq;
|
|
};
|
|
|
|
struct crypto_rfc4543_req_ctx {
|
|
struct aead_request subreq;
|
|
};
|
|
|
|
enum {
|
|
BLK_MQ_NO_TAG = 4294967295,
|
|
BLK_MQ_TAG_MIN = 1,
|
|
BLK_MQ_TAG_MAX = 4294967294,
|
|
};
|
|
|
|
enum {
|
|
BLK_MQ_UNIQUE_TAG_BITS = 16,
|
|
BLK_MQ_UNIQUE_TAG_MASK = 65535,
|
|
};
|
|
|
|
struct sbq_wait {
|
|
struct sbitmap_queue *sbq;
|
|
struct wait_queue_entry wait;
|
|
};
|
|
|
|
typedef bool busy_tag_iter_fn(struct request *, void *);
|
|
|
|
typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *);
|
|
|
|
struct bt_iter_data {
|
|
struct blk_mq_hw_ctx *hctx;
|
|
struct request_queue *q;
|
|
busy_tag_iter_fn *fn;
|
|
void *data;
|
|
bool reserved;
|
|
};
|
|
|
|
struct bt_tags_iter_data {
|
|
struct blk_mq_tags *tags;
|
|
busy_tag_iter_fn *fn;
|
|
void *data;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct io_shutdown {
|
|
struct file *file;
|
|
int how;
|
|
};
|
|
|
|
struct io_sr_msg {
|
|
struct file *file;
|
|
union {
|
|
struct compat_msghdr __attribute__((btf_type_tag("user"))) *umsg_compat;
|
|
struct user_msghdr __attribute__((btf_type_tag("user"))) *umsg;
|
|
void __attribute__((btf_type_tag("user"))) *buf;
|
|
};
|
|
unsigned int len;
|
|
unsigned int done_io;
|
|
unsigned int msg_flags;
|
|
u16 flags;
|
|
u16 addr_len;
|
|
u16 buf_group;
|
|
void __attribute__((btf_type_tag("user"))) *addr;
|
|
struct io_kiocb *notif;
|
|
};
|
|
|
|
struct io_accept {
|
|
struct file *file;
|
|
struct sockaddr __attribute__((btf_type_tag("user"))) *addr;
|
|
int __attribute__((btf_type_tag("user"))) *addr_len;
|
|
int flags;
|
|
u32 file_slot;
|
|
unsigned long nofile;
|
|
};
|
|
|
|
struct io_socket {
|
|
struct file *file;
|
|
int domain;
|
|
int type;
|
|
int protocol;
|
|
int flags;
|
|
u32 file_slot;
|
|
unsigned long nofile;
|
|
};
|
|
|
|
struct io_connect {
|
|
struct file *file;
|
|
struct sockaddr __attribute__((btf_type_tag("user"))) *addr;
|
|
int addr_len;
|
|
bool in_progress;
|
|
};
|
|
|
|
struct io_async_msghdr {
|
|
union {
|
|
struct iovec fast_iov[8];
|
|
struct {
|
|
struct iovec fast_iov_one;
|
|
__kernel_size_t controllen;
|
|
int namelen;
|
|
__kernel_size_t payloadlen;
|
|
};
|
|
struct io_cache_entry cache;
|
|
};
|
|
struct iovec *free_iov;
|
|
struct sockaddr __attribute__((btf_type_tag("user"))) *uaddr;
|
|
struct msghdr msg;
|
|
struct __kernel_sockaddr_storage addr;
|
|
};
|
|
|
|
struct io_notif_data {
|
|
struct file *file;
|
|
struct ubuf_info uarg;
|
|
unsigned long account_pages;
|
|
bool zc_report;
|
|
bool zc_used;
|
|
bool zc_copied;
|
|
};
|
|
|
|
struct io_uring_recvmsg_out {
|
|
__u32 namelen;
|
|
__u32 controllen;
|
|
__u32 payloadlen;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct io_recvmsg_multishot_hdr {
|
|
struct io_uring_recvmsg_out msg;
|
|
struct __kernel_sockaddr_storage addr;
|
|
};
|
|
|
|
struct io_async_connect {
|
|
struct __kernel_sockaddr_storage address;
|
|
};
|
|
|
|
struct acpi_port_info {
|
|
char *name;
|
|
u16 start;
|
|
u16 end;
|
|
u8 osi_dependency;
|
|
};
|
|
|
|
enum {
|
|
ACPI_BUTTON_LID_INIT_IGNORE = 0,
|
|
ACPI_BUTTON_LID_INIT_OPEN = 1,
|
|
ACPI_BUTTON_LID_INIT_METHOD = 2,
|
|
ACPI_BUTTON_LID_INIT_DISABLED = 3,
|
|
};
|
|
|
|
struct acpi_button {
|
|
unsigned int type;
|
|
struct input_dev *input;
|
|
char phys[32];
|
|
unsigned long pushed;
|
|
int last_state;
|
|
ktime_t last_time;
|
|
bool suspended;
|
|
bool lid_state_initialized;
|
|
};
|
|
|
|
struct drm_mode_create_lease {
|
|
__u64 object_ids;
|
|
__u32 object_count;
|
|
__u32 flags;
|
|
__u32 lessee_id;
|
|
__u32 fd;
|
|
};
|
|
|
|
struct drm_mode_list_lessees {
|
|
__u32 count_lessees;
|
|
__u32 pad;
|
|
__u64 lessees_ptr;
|
|
};
|
|
|
|
struct drm_mode_get_lease {
|
|
__u32 count_objects;
|
|
__u32 pad;
|
|
__u64 objects_ptr;
|
|
};
|
|
|
|
struct drm_mode_revoke_lease {
|
|
__u32 lessee_id;
|
|
};
|
|
|
|
struct drm_shadow_plane_state {
|
|
struct drm_plane_state base;
|
|
struct iosys_map map[4];
|
|
struct iosys_map data[4];
|
|
};
|
|
|
|
struct drm_simple_display_pipe_funcs;
|
|
|
|
struct drm_simple_display_pipe {
|
|
struct drm_crtc crtc;
|
|
struct drm_plane plane;
|
|
struct drm_encoder encoder;
|
|
struct drm_connector *connector;
|
|
const struct drm_simple_display_pipe_funcs *funcs;
|
|
};
|
|
|
|
struct drm_simple_display_pipe_funcs {
|
|
enum drm_mode_status (*mode_valid)(struct drm_simple_display_pipe *, const struct drm_display_mode *);
|
|
void (*enable)(struct drm_simple_display_pipe *, struct drm_crtc_state *, struct drm_plane_state *);
|
|
void (*disable)(struct drm_simple_display_pipe *);
|
|
int (*check)(struct drm_simple_display_pipe *, struct drm_plane_state *, struct drm_crtc_state *);
|
|
void (*update)(struct drm_simple_display_pipe *, struct drm_plane_state *);
|
|
int (*prepare_fb)(struct drm_simple_display_pipe *, struct drm_plane_state *);
|
|
void (*cleanup_fb)(struct drm_simple_display_pipe *, struct drm_plane_state *);
|
|
int (*begin_fb_access)(struct drm_simple_display_pipe *, struct drm_plane_state *);
|
|
void (*end_fb_access)(struct drm_simple_display_pipe *, struct drm_plane_state *);
|
|
int (*enable_vblank)(struct drm_simple_display_pipe *);
|
|
void (*disable_vblank)(struct drm_simple_display_pipe *);
|
|
void (*reset_crtc)(struct drm_simple_display_pipe *);
|
|
struct drm_crtc_state * (*duplicate_crtc_state)(struct drm_simple_display_pipe *);
|
|
void (*destroy_crtc_state)(struct drm_simple_display_pipe *, struct drm_crtc_state *);
|
|
void (*reset_plane)(struct drm_simple_display_pipe *);
|
|
struct drm_plane_state * (*duplicate_plane_state)(struct drm_simple_display_pipe *);
|
|
void (*destroy_plane_state)(struct drm_simple_display_pipe *, struct drm_plane_state *);
|
|
};
|
|
|
|
struct intel_display_funcs___3;
|
|
|
|
struct intel_wm_funcs___4;
|
|
|
|
struct intel_display___4 {
|
|
struct {
|
|
const struct intel_display_funcs___3 *display;
|
|
const struct intel_cdclk_funcs *cdclk;
|
|
const struct intel_dpll_funcs *dpll;
|
|
const struct intel_hotplug_funcs *hotplug;
|
|
const struct intel_wm_funcs___4 *wm;
|
|
const struct intel_fdi_funcs *fdi;
|
|
const struct intel_color_funcs *color;
|
|
const struct intel_audio_funcs *audio;
|
|
} funcs;
|
|
struct intel_atomic_helper atomic_helper;
|
|
struct {
|
|
struct mutex lock;
|
|
} backlight;
|
|
struct {
|
|
struct intel_global_obj obj;
|
|
struct intel_bw_info max[6];
|
|
} bw;
|
|
struct {
|
|
struct intel_cdclk_config hw;
|
|
const struct intel_cdclk_vals *table;
|
|
struct intel_global_obj obj;
|
|
unsigned int max_cdclk_freq;
|
|
} cdclk;
|
|
struct {
|
|
struct drm_property_blob *glk_linear_degamma_lut;
|
|
} color;
|
|
struct {
|
|
u8 enabled_slices;
|
|
struct intel_global_obj obj;
|
|
} dbuf;
|
|
struct {
|
|
spinlock_t phy_lock;
|
|
} dkl;
|
|
struct {
|
|
u32 mmio_base;
|
|
} dsi;
|
|
struct {
|
|
struct intel_fbdev *fbdev;
|
|
struct work_struct suspend_work;
|
|
} fbdev;
|
|
struct {
|
|
unsigned int pll_freq;
|
|
u32 rx_config;
|
|
} fdi;
|
|
struct {
|
|
struct list_head obj_list;
|
|
} global;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
struct intel_gmbus *bus[15];
|
|
wait_queue_head_t wait_queue;
|
|
} gmbus;
|
|
struct {
|
|
struct i915_hdcp_comp_master *master;
|
|
bool comp_added;
|
|
struct mutex comp_mutex;
|
|
} hdcp;
|
|
struct {
|
|
u32 state;
|
|
} hti;
|
|
struct {
|
|
struct i915_power_domains domains;
|
|
u32 chv_phy_control;
|
|
bool chv_phy_assert[2];
|
|
} power;
|
|
struct {
|
|
u32 mmio_base;
|
|
struct mutex mutex;
|
|
} pps;
|
|
struct {
|
|
struct drm_property *broadcast_rgb;
|
|
struct drm_property *force_audio;
|
|
} properties;
|
|
struct {
|
|
unsigned long mask;
|
|
} quirks;
|
|
struct {
|
|
struct drm_atomic_state *modeset_state;
|
|
struct drm_modeset_acquire_ctx reset_ctx;
|
|
} restore;
|
|
struct {
|
|
enum {
|
|
I915_SAGV_UNKNOWN___4 = 0,
|
|
I915_SAGV_DISABLED___4 = 1,
|
|
I915_SAGV_ENABLED___4 = 2,
|
|
I915_SAGV_NOT_CONTROLLED___4 = 3,
|
|
} status;
|
|
u32 block_time_us;
|
|
} sagv;
|
|
struct {
|
|
u8 phy_failed_calibration;
|
|
} snps;
|
|
struct {
|
|
u32 chv_dpll_md[4];
|
|
u32 bxt_phy_grc;
|
|
} state;
|
|
struct {
|
|
struct workqueue_struct *modeset;
|
|
struct workqueue_struct *flip;
|
|
} wq;
|
|
struct intel_audio audio;
|
|
struct intel_dmc dmc;
|
|
struct intel_dpll dpll;
|
|
struct intel_fbc *fbc[2];
|
|
struct intel_frontbuffer_tracking fb_tracking;
|
|
struct intel_hotplug hotplug;
|
|
struct intel_opregion opregion;
|
|
struct intel_overlay *overlay;
|
|
struct intel_vbt_data vbt;
|
|
struct intel_wm wm;
|
|
};
|
|
|
|
struct intel_uncore___4;
|
|
|
|
struct intel_uncore_funcs___4 {
|
|
enum forcewake_domains (*read_fw_domains)(struct intel_uncore___4 *, i915_reg_t);
|
|
enum forcewake_domains (*write_fw_domains)(struct intel_uncore___4 *, i915_reg_t);
|
|
u8 (*mmio_readb)(struct intel_uncore___4 *, i915_reg_t, bool);
|
|
u16 (*mmio_readw)(struct intel_uncore___4 *, i915_reg_t, bool);
|
|
u32 (*mmio_readl)(struct intel_uncore___4 *, i915_reg_t, bool);
|
|
u64 (*mmio_readq)(struct intel_uncore___4 *, i915_reg_t, bool);
|
|
void (*mmio_writeb)(struct intel_uncore___4 *, i915_reg_t, u8, bool);
|
|
void (*mmio_writew)(struct intel_uncore___4 *, i915_reg_t, u16, bool);
|
|
void (*mmio_writel)(struct intel_uncore___4 *, i915_reg_t, u32, bool);
|
|
};
|
|
|
|
struct intel_gt___4;
|
|
|
|
struct intel_uncore_fw_get___4;
|
|
|
|
struct intel_uncore_forcewake_domain___4;
|
|
|
|
struct intel_uncore___4 {
|
|
void *regs;
|
|
struct drm_i915_private___2 *i915;
|
|
struct intel_gt___4 *gt;
|
|
struct intel_runtime_pm *rpm;
|
|
spinlock_t lock;
|
|
u32 gsi_offset;
|
|
unsigned int flags;
|
|
const struct intel_forcewake_range *fw_domains_table;
|
|
unsigned int fw_domains_table_entries;
|
|
const struct i915_range *shadowed_reg_table;
|
|
unsigned int shadowed_reg_table_entries;
|
|
struct notifier_block pmic_bus_access_nb;
|
|
const struct intel_uncore_fw_get___4 *fw_get_funcs;
|
|
struct intel_uncore_funcs___4 funcs;
|
|
unsigned int fifo_count;
|
|
enum forcewake_domains fw_domains;
|
|
enum forcewake_domains fw_domains_active;
|
|
enum forcewake_domains fw_domains_timer;
|
|
enum forcewake_domains fw_domains_saved;
|
|
struct intel_uncore_forcewake_domain___4 *fw_domain[16];
|
|
unsigned int user_forcewake_count;
|
|
struct intel_uncore_mmio_debug *debug;
|
|
};
|
|
|
|
struct intel_memory_region___4;
|
|
|
|
struct i915_gem_mm___4 {
|
|
struct intel_memory_region___4 *stolen_region;
|
|
struct drm_mm stolen;
|
|
struct mutex stolen_lock;
|
|
spinlock_t obj_lock;
|
|
struct list_head purge_list;
|
|
struct list_head shrink_list;
|
|
struct llist_head free_list;
|
|
struct work_struct free_work;
|
|
atomic_t free_count;
|
|
struct vfsmount *gemfs;
|
|
struct intel_memory_region___4 *regions[7];
|
|
struct notifier_block oom_notifier;
|
|
struct notifier_block vmap_notifier;
|
|
struct shrinker shrinker;
|
|
rwlock_t notifier_lock;
|
|
u64 shrink_memory;
|
|
u32 shrink_count;
|
|
};
|
|
|
|
struct i915_gpu_coredump___4;
|
|
|
|
struct i915_gpu_error___4 {
|
|
spinlock_t lock;
|
|
struct i915_gpu_coredump___4 *first_error;
|
|
atomic_t pending_fb_pin;
|
|
atomic_t reset_count;
|
|
atomic_t reset_engine_count[27];
|
|
};
|
|
|
|
struct i915_perf___4;
|
|
|
|
struct i915_perf_stream___4;
|
|
|
|
struct i915_oa_ops___4 {
|
|
bool (*is_valid_b_counter_reg)(struct i915_perf___4 *, u32);
|
|
bool (*is_valid_mux_reg)(struct i915_perf___4 *, u32);
|
|
bool (*is_valid_flex_reg)(struct i915_perf___4 *, u32);
|
|
int (*enable_metric_set)(struct i915_perf_stream___4 *, struct i915_active *);
|
|
void (*disable_metric_set)(struct i915_perf_stream___4 *);
|
|
void (*oa_enable)(struct i915_perf_stream___4 *);
|
|
void (*oa_disable)(struct i915_perf_stream___4 *);
|
|
int (*read)(struct i915_perf_stream___4 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
u32 (*oa_hw_tail_read)(struct i915_perf_stream___4 *);
|
|
};
|
|
|
|
struct i915_perf___4 {
|
|
struct drm_i915_private___2 *i915;
|
|
struct kobject *metrics_kobj;
|
|
struct mutex metrics_lock;
|
|
struct idr metrics_idr;
|
|
struct ratelimit_state spurious_report_rs;
|
|
struct ratelimit_state tail_pointer_race;
|
|
u32 gen7_latched_oastatus1;
|
|
u32 ctx_oactxctrl_offset;
|
|
u32 ctx_flexeu0_offset;
|
|
u32 gen8_valid_ctx_bit;
|
|
struct i915_oa_ops___4 ops;
|
|
const struct i915_oa_format *oa_formats;
|
|
unsigned long format_mask[1];
|
|
atomic64_t noa_programming_delay;
|
|
};
|
|
|
|
struct i915_address_space___4;
|
|
|
|
struct i915_vma_ops___4;
|
|
|
|
struct i915_vma_resource___4 {
|
|
struct dma_fence unbind_fence;
|
|
spinlock_t lock;
|
|
refcount_t hold_count;
|
|
struct work_struct work;
|
|
struct i915_sw_fence chain;
|
|
struct rb_node rb;
|
|
u64 __subtree_last;
|
|
struct i915_address_space___4 *vm;
|
|
intel_wakeref_t wakeref;
|
|
struct i915_vma_bindinfo bi;
|
|
struct intel_memory_region___4 *mr;
|
|
const struct i915_vma_ops___4 *ops;
|
|
void *private;
|
|
u64 start;
|
|
u64 node_size;
|
|
u64 vma_size;
|
|
u32 guard;
|
|
u32 page_sizes_gtt;
|
|
u32 bound_flags;
|
|
bool allocated: 1;
|
|
bool immediate_unbind: 1;
|
|
bool needs_wakeref: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u32 *tlb;
|
|
};
|
|
|
|
struct drm_i915_gem_object___4;
|
|
|
|
struct i915_vma___4;
|
|
|
|
struct intel_uc_fw___4 {
|
|
enum intel_uc_fw_type type;
|
|
union {
|
|
const enum intel_uc_fw_status status;
|
|
enum intel_uc_fw_status __status;
|
|
};
|
|
struct intel_uc_fw_file file_wanted;
|
|
struct intel_uc_fw_file file_selected;
|
|
bool user_overridden;
|
|
size_t size;
|
|
struct drm_i915_gem_object___4 *obj;
|
|
struct i915_vma_resource___4 dummy;
|
|
struct i915_vma___4 *rsa_data;
|
|
u32 rsa_size;
|
|
u32 ucode_size;
|
|
u32 private_data_size;
|
|
bool loaded_via_gsc;
|
|
};
|
|
|
|
struct intel_context___4;
|
|
|
|
struct intel_gsc_uc___4 {
|
|
struct intel_uc_fw___4 fw;
|
|
struct i915_vma___4 *local;
|
|
struct intel_context___4 *ce;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct intel_guc_log___4 {
|
|
u32 level;
|
|
struct {
|
|
s32 bytes;
|
|
s32 units;
|
|
s32 count;
|
|
u32 flag;
|
|
} sizes[3];
|
|
bool sizes_initialised;
|
|
struct i915_vma___4 *vma;
|
|
void *buf_addr;
|
|
struct {
|
|
bool buf_in_use;
|
|
bool started;
|
|
struct work_struct flush_work;
|
|
struct rchan *channel;
|
|
struct mutex lock;
|
|
u32 full_count;
|
|
} relay;
|
|
struct {
|
|
u32 sampled_overflow;
|
|
u32 overflow;
|
|
u32 flush;
|
|
} stats[3];
|
|
};
|
|
|
|
struct intel_guc_ct___4 {
|
|
struct i915_vma___4 *vma;
|
|
bool enabled;
|
|
struct {
|
|
struct intel_guc_ct_buffer send;
|
|
struct intel_guc_ct_buffer recv;
|
|
} ctbs;
|
|
struct tasklet_struct receive_tasklet;
|
|
wait_queue_head_t wq;
|
|
struct {
|
|
u16 last_fence;
|
|
spinlock_t lock;
|
|
struct list_head pending;
|
|
struct list_head incoming;
|
|
struct work_struct worker;
|
|
} requests;
|
|
ktime_t stall_time;
|
|
};
|
|
|
|
struct intel_guc_slpc___4 {
|
|
struct i915_vma___4 *vma;
|
|
struct slpc_shared_data *vaddr;
|
|
bool supported;
|
|
bool selected;
|
|
bool min_is_rpmax;
|
|
u32 min_freq;
|
|
u32 rp0_freq;
|
|
u32 rp1_freq;
|
|
u32 boost_freq;
|
|
u32 min_freq_softlimit;
|
|
u32 max_freq_softlimit;
|
|
u32 media_ratio_mode;
|
|
struct mutex lock;
|
|
struct work_struct boost_work;
|
|
atomic_t num_waiters;
|
|
u32 num_boosts;
|
|
};
|
|
|
|
struct i915_sched_engine___4;
|
|
|
|
struct i915_request___4;
|
|
|
|
struct intel_guc___4 {
|
|
struct intel_uc_fw___4 fw;
|
|
struct intel_guc_log___4 log;
|
|
struct intel_guc_ct___4 ct;
|
|
struct intel_guc_slpc___4 slpc;
|
|
struct intel_guc_state_capture *capture;
|
|
struct i915_sched_engine___4 *sched_engine;
|
|
struct i915_request___4 *stalled_request;
|
|
enum {
|
|
STALL_NONE___4 = 0,
|
|
STALL_REGISTER_CONTEXT___4 = 1,
|
|
STALL_MOVE_LRC_TAIL___4 = 2,
|
|
STALL_ADD_REQUEST___4 = 3,
|
|
} submission_stall_reason;
|
|
spinlock_t irq_lock;
|
|
unsigned int msg_enabled_mask;
|
|
atomic_t outstanding_submission_g2h;
|
|
struct {
|
|
bool enabled;
|
|
void (*reset)(struct intel_guc___4 *);
|
|
void (*enable)(struct intel_guc___4 *);
|
|
void (*disable)(struct intel_guc___4 *);
|
|
} interrupts;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct ida guc_ids;
|
|
int num_guc_ids;
|
|
unsigned long *guc_ids_bitmap;
|
|
struct list_head guc_id_list;
|
|
unsigned int guc_ids_in_use;
|
|
struct list_head destroyed_contexts;
|
|
struct work_struct destroyed_worker;
|
|
struct work_struct reset_fail_worker;
|
|
intel_engine_mask_t reset_fail_mask;
|
|
unsigned int sched_disable_delay_ms;
|
|
unsigned int sched_disable_gucid_threshold;
|
|
} submission_state;
|
|
bool submission_supported;
|
|
bool submission_selected;
|
|
bool submission_initialized;
|
|
struct intel_uc_fw_ver submission_version;
|
|
bool rc_supported;
|
|
bool rc_selected;
|
|
struct i915_vma___4 *ads_vma;
|
|
struct iosys_map ads_map;
|
|
u32 ads_regset_size;
|
|
u32 ads_regset_count[27];
|
|
struct guc_mmio_reg *ads_regset;
|
|
u32 ads_golden_ctxt_size;
|
|
u32 ads_capture_size;
|
|
u32 ads_engine_usage_size;
|
|
struct i915_vma___4 *lrc_desc_pool_v69;
|
|
void *lrc_desc_pool_vaddr_v69;
|
|
struct xarray context_lookup;
|
|
u32 params[14];
|
|
struct {
|
|
u32 base;
|
|
unsigned int count;
|
|
enum forcewake_domains fw_domains;
|
|
} send_regs;
|
|
i915_reg_t notify_reg;
|
|
u32 mmio_msg;
|
|
struct mutex send_mutex;
|
|
struct {
|
|
spinlock_t lock;
|
|
u64 gt_stamp;
|
|
unsigned long ping_delay;
|
|
struct delayed_work work;
|
|
u32 shift;
|
|
unsigned long last_stat_jiffies;
|
|
} timestamp;
|
|
};
|
|
|
|
struct intel_huc___4 {
|
|
struct intel_uc_fw___4 fw;
|
|
struct {
|
|
i915_reg_t reg;
|
|
u32 mask;
|
|
u32 value;
|
|
} status;
|
|
struct {
|
|
struct i915_sw_fence fence;
|
|
struct hrtimer timer;
|
|
struct notifier_block nb;
|
|
enum intel_huc_delayed_load_status status;
|
|
} delayed_load;
|
|
};
|
|
|
|
struct intel_uc_ops___4;
|
|
|
|
struct intel_uc___4 {
|
|
const struct intel_uc_ops___4 *ops;
|
|
struct intel_gsc_uc___4 gsc;
|
|
struct intel_guc___4 guc;
|
|
struct intel_huc___4 huc;
|
|
struct drm_i915_gem_object___4 *load_err_log;
|
|
bool reset_in_progress;
|
|
};
|
|
|
|
struct intel_gsc_intf___4 {
|
|
struct mei_aux_device *adev;
|
|
struct drm_i915_gem_object___4 *gem_obj;
|
|
int irq;
|
|
unsigned int id;
|
|
};
|
|
|
|
struct intel_gsc___4 {
|
|
struct intel_gsc_intf___4 intf[2];
|
|
};
|
|
|
|
struct i915_wa_list___4 {
|
|
struct intel_gt___4 *gt;
|
|
const char *name;
|
|
const char *engine_name;
|
|
struct i915_wa *list;
|
|
unsigned int count;
|
|
unsigned int wa_count;
|
|
};
|
|
|
|
struct intel_rc6___4 {
|
|
i915_reg_t res_reg[4];
|
|
u64 prev_hw_residency[4];
|
|
u64 cur_residency[4];
|
|
u32 ctl_enable;
|
|
struct drm_i915_gem_object___4 *pctx;
|
|
bool supported: 1;
|
|
bool enabled: 1;
|
|
bool manual: 1;
|
|
bool wakeref: 1;
|
|
};
|
|
|
|
struct intel_migrate___4 {
|
|
struct intel_context___4 *context;
|
|
};
|
|
|
|
struct i915_perf_gt___4 {
|
|
struct mutex lock;
|
|
struct intel_sseu sseu;
|
|
struct i915_perf_stream___4 *exclusive_stream;
|
|
};
|
|
|
|
struct i915_ggtt___4;
|
|
|
|
struct intel_engine_cs___4;
|
|
|
|
struct intel_gt___4 {
|
|
struct drm_i915_private___2 *i915;
|
|
const char *name;
|
|
enum intel_gt_type type;
|
|
struct intel_uncore___4 *uncore;
|
|
struct i915_ggtt___4 *ggtt;
|
|
struct intel_uc___4 uc;
|
|
struct intel_gsc___4 gsc;
|
|
struct intel_wopcm wopcm;
|
|
struct {
|
|
struct mutex invalidate_lock;
|
|
seqcount_mutex_t seqno;
|
|
} tlb;
|
|
struct i915_wa_list___4 wa_list;
|
|
struct intel_gt_timelines timelines;
|
|
struct intel_gt_requests requests;
|
|
struct {
|
|
struct llist_head list;
|
|
struct work_struct work;
|
|
} watchdog;
|
|
struct intel_wakeref wakeref;
|
|
atomic_t user_wakeref;
|
|
struct list_head closed_vma;
|
|
spinlock_t closed_lock;
|
|
ktime_t last_init_time;
|
|
struct intel_reset reset;
|
|
intel_wakeref_t awake;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
struct intel_llc llc;
|
|
struct intel_rc6___4 rc6;
|
|
struct intel_rps rps;
|
|
spinlock_t *irq_lock;
|
|
u32 gt_imr;
|
|
u32 pm_ier;
|
|
u32 pm_imr;
|
|
u32 pm_guc_events;
|
|
struct {
|
|
bool active;
|
|
seqcount_mutex_t lock;
|
|
ktime_t total;
|
|
ktime_t start;
|
|
} stats;
|
|
struct intel_engine_cs___4 *engine[27];
|
|
struct intel_engine_cs___4 *engine_class[54];
|
|
enum intel_submission_method submission_method;
|
|
struct i915_address_space___4 *vm;
|
|
struct intel_gt_buffer_pool buffer_pool;
|
|
struct i915_vma___4 *scratch;
|
|
struct intel_migrate___4 migrate;
|
|
const struct intel_mmio_range *steering_table[7];
|
|
struct {
|
|
u8 groupid;
|
|
u8 instanceid;
|
|
} default_steering;
|
|
spinlock_t mcr_lock;
|
|
phys_addr_t phys_addr;
|
|
struct intel_gt_info info;
|
|
struct {
|
|
u8 uc_index;
|
|
u8 wb_index;
|
|
} mocs;
|
|
struct kobject sysfs_gt;
|
|
struct gt_defaults defaults;
|
|
struct kobject *sysfs_defaults;
|
|
struct i915_perf_gt___4 perf;
|
|
struct list_head ggtt_link;
|
|
};
|
|
|
|
struct i915_drm_clients___4 {
|
|
struct drm_i915_private___2 *i915;
|
|
struct xarray xarray;
|
|
u32 next_id;
|
|
};
|
|
|
|
struct drm_i915_private___2 {
|
|
struct drm_device drm;
|
|
struct intel_display___4 display;
|
|
bool do_release;
|
|
struct i915_params params;
|
|
const struct intel_device_info __info;
|
|
struct intel_runtime_info __runtime;
|
|
struct intel_driver_caps caps;
|
|
struct i915_dsm dsm;
|
|
struct intel_uncore___4 uncore;
|
|
struct intel_uncore_mmio_debug mmio_debug;
|
|
struct i915_virtual_gpu vgpu;
|
|
struct intel_gvt *gvt;
|
|
struct {
|
|
struct pci_dev *pdev;
|
|
struct resource mch_res;
|
|
bool mchbar_need_disable;
|
|
} gmch;
|
|
struct rb_root uabi_engines;
|
|
unsigned int engine_uabi_class_count[5];
|
|
spinlock_t irq_lock;
|
|
bool display_irqs_enabled;
|
|
struct mutex sb_lock;
|
|
struct pm_qos_request sb_qos;
|
|
union {
|
|
u32 irq_mask;
|
|
u32 de_irq_mask[4];
|
|
};
|
|
u32 pipestat_irq_mask[4];
|
|
bool preserve_bios_swizzle;
|
|
unsigned int fsb_freq;
|
|
unsigned int mem_freq;
|
|
unsigned int is_ddr3;
|
|
unsigned int skl_preferred_vco_freq;
|
|
unsigned int max_dotclk_freq;
|
|
unsigned int hpll_freq;
|
|
unsigned int czclk_freq;
|
|
struct workqueue_struct *wq;
|
|
const struct drm_i915_clock_gating_funcs *clock_gating_funcs;
|
|
enum intel_pch pch_type;
|
|
unsigned short pch_id;
|
|
unsigned long gem_quirks;
|
|
struct i915_gem_mm___4 mm;
|
|
struct intel_l3_parity l3_parity;
|
|
u32 edram_size_mb;
|
|
struct i915_gpu_error___4 gpu_error;
|
|
u32 suspend_count;
|
|
struct i915_suspend_saved_registers regfile;
|
|
struct vlv_s0ix_state *vlv_s0ix_state;
|
|
struct dram_info dram_info;
|
|
struct intel_runtime_pm runtime_pm;
|
|
struct i915_perf___4 perf;
|
|
struct i915_hwmon *hwmon;
|
|
struct intel_gt___4 gt0;
|
|
struct intel_gt___4 *gt[4];
|
|
struct kobject *sysfs_gt;
|
|
struct intel_gt___4 *media_gt;
|
|
struct {
|
|
struct i915_gem_contexts contexts;
|
|
struct file *mmap_singleton;
|
|
} gem;
|
|
struct intel_pxp *pxp;
|
|
u8 vblank_enabled;
|
|
bool irq_enabled;
|
|
struct i915_pmu pmu;
|
|
struct i915_drm_clients___4 clients;
|
|
struct ttm_device___2 bdev;
|
|
};
|
|
|
|
struct intel_initial_plane_config___3;
|
|
|
|
struct intel_display_funcs___3 {
|
|
bool (*get_pipe_config)(struct intel_crtc *, struct intel_crtc_state *);
|
|
void (*get_initial_plane_config)(struct intel_crtc *, struct intel_initial_plane_config___3 *);
|
|
void (*crtc_enable)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*crtc_disable)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*commit_modeset_enables)(struct intel_atomic_state *);
|
|
};
|
|
|
|
struct intel_framebuffer___3;
|
|
|
|
struct intel_initial_plane_config___3 {
|
|
struct intel_framebuffer___3 *fb;
|
|
struct i915_vma___4 *vma;
|
|
unsigned int tiling;
|
|
int size;
|
|
u32 base;
|
|
u8 rotation;
|
|
};
|
|
|
|
struct intel_frontbuffer___4;
|
|
|
|
struct intel_framebuffer___3 {
|
|
struct drm_framebuffer base;
|
|
struct intel_frontbuffer___4 *frontbuffer;
|
|
struct intel_fb_view normal_view;
|
|
union {
|
|
struct intel_fb_view rotated_view;
|
|
struct intel_fb_view remapped_view;
|
|
};
|
|
struct i915_address_space___4 *dpt_vm;
|
|
};
|
|
|
|
struct intel_frontbuffer___4 {
|
|
struct kref ref;
|
|
atomic_t bits;
|
|
struct i915_active write;
|
|
struct drm_i915_gem_object___4 *obj;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops___4;
|
|
|
|
struct drm_i915_gem_object___4 {
|
|
union {
|
|
struct drm_gem_object base;
|
|
struct ttm_buffer_object___2 __do_not_access;
|
|
};
|
|
const struct drm_i915_gem_object_ops___4 *ops;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head list;
|
|
struct rb_root tree;
|
|
} vma;
|
|
struct list_head lut_list;
|
|
spinlock_t lut_lock;
|
|
struct list_head obj_link;
|
|
struct i915_address_space___4 *shares_resv_from;
|
|
union {
|
|
struct callback_head rcu;
|
|
struct llist_node freed;
|
|
};
|
|
unsigned int userfault_count;
|
|
struct list_head userfault_link;
|
|
struct {
|
|
spinlock_t lock;
|
|
struct rb_root offsets;
|
|
} mmo;
|
|
unsigned long flags;
|
|
unsigned int mem_flags;
|
|
unsigned int cache_level: 3;
|
|
unsigned int cache_coherent: 2;
|
|
unsigned int cache_dirty: 1;
|
|
u16 read_domains;
|
|
u16 write_domain;
|
|
struct intel_frontbuffer___4 __attribute__((btf_type_tag("rcu"))) *frontbuffer;
|
|
unsigned int tiling_and_stride;
|
|
struct {
|
|
atomic_t pages_pin_count;
|
|
atomic_t shrink_pin;
|
|
bool ttm_shrinkable;
|
|
bool unknown_state;
|
|
struct intel_memory_region___4 **placements;
|
|
int n_placements;
|
|
struct intel_memory_region___4 *region;
|
|
struct ttm_resource___2 *res;
|
|
struct list_head region_link;
|
|
struct i915_refct_sgt *rsgt;
|
|
struct sg_table *pages;
|
|
void *mapping;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_gem_object_page_iter get_page;
|
|
struct i915_gem_object_page_iter get_dma_page;
|
|
struct list_head link;
|
|
unsigned int madv: 2;
|
|
bool dirty: 1;
|
|
u32 tlb;
|
|
} mm;
|
|
struct {
|
|
struct i915_refct_sgt *cached_io_rsgt;
|
|
struct i915_gem_object_page_iter get_io_page;
|
|
struct drm_i915_gem_object___4 *backup;
|
|
bool created: 1;
|
|
} ttm;
|
|
u32 pxp_key_instance;
|
|
unsigned long *bit_17;
|
|
union {
|
|
struct i915_gem_userptr userptr;
|
|
struct drm_mm_node *stolen;
|
|
resource_size_t bo_offset;
|
|
unsigned long scratch;
|
|
u64 encode;
|
|
void *gvt_info;
|
|
};
|
|
};
|
|
|
|
struct drm_i915_gem_object_ops___4 {
|
|
unsigned int flags;
|
|
int (*get_pages)(struct drm_i915_gem_object___4 *);
|
|
void (*put_pages)(struct drm_i915_gem_object___4 *, struct sg_table *);
|
|
int (*truncate)(struct drm_i915_gem_object___4 *);
|
|
int (*shrink)(struct drm_i915_gem_object___4 *, unsigned int);
|
|
int (*pread)(struct drm_i915_gem_object___4 *, const struct drm_i915_gem_pread *);
|
|
int (*pwrite)(struct drm_i915_gem_object___4 *, const struct drm_i915_gem_pwrite *);
|
|
u64 (*mmap_offset)(struct drm_i915_gem_object___4 *);
|
|
void (*unmap_virtual)(struct drm_i915_gem_object___4 *);
|
|
int (*dmabuf_export)(struct drm_i915_gem_object___4 *);
|
|
void (*adjust_lru)(struct drm_i915_gem_object___4 *);
|
|
void (*delayed_free)(struct drm_i915_gem_object___4 *);
|
|
int (*migrate)(struct drm_i915_gem_object___4 *, struct intel_memory_region___4 *, unsigned int);
|
|
void (*release)(struct drm_i915_gem_object___4 *);
|
|
const struct vm_operations_struct *mmap_ops;
|
|
const char *name;
|
|
};
|
|
|
|
struct intel_memory_region_ops___4;
|
|
|
|
struct intel_memory_region___4 {
|
|
struct drm_i915_private___2 *i915;
|
|
const struct intel_memory_region_ops___4 *ops;
|
|
struct io_mapping iomap;
|
|
struct resource region;
|
|
resource_size_t io_start;
|
|
resource_size_t io_size;
|
|
resource_size_t min_page_size;
|
|
resource_size_t total;
|
|
u16 type;
|
|
u16 instance;
|
|
enum intel_region_id id;
|
|
char name[16];
|
|
bool private;
|
|
struct {
|
|
struct mutex lock;
|
|
struct list_head list;
|
|
} objects;
|
|
bool is_range_manager;
|
|
void *region_private;
|
|
};
|
|
|
|
struct intel_memory_region_ops___4 {
|
|
unsigned int flags;
|
|
int (*init)(struct intel_memory_region___4 *);
|
|
int (*release)(struct intel_memory_region___4 *);
|
|
int (*init_object)(struct intel_memory_region___4 *, struct drm_i915_gem_object___4 *, resource_size_t, resource_size_t, resource_size_t, unsigned int);
|
|
};
|
|
|
|
struct i915_vm_pt_stash___4;
|
|
|
|
struct i915_vma_ops___4 {
|
|
void (*bind_vma)(struct i915_address_space___4 *, struct i915_vm_pt_stash___4 *, struct i915_vma_resource___4 *, enum i915_cache_level, u32);
|
|
void (*unbind_vma)(struct i915_address_space___4 *, struct i915_vma_resource___4 *);
|
|
};
|
|
|
|
struct i915_page_table___4;
|
|
|
|
struct i915_address_space___4 {
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct drm_mm mm;
|
|
struct intel_gt___4 *gt;
|
|
struct drm_i915_private___2 *i915;
|
|
struct device *dma;
|
|
u64 total;
|
|
u64 reserved;
|
|
u64 min_alignment[4];
|
|
unsigned int bind_async_flags;
|
|
struct mutex mutex;
|
|
struct kref resv_ref;
|
|
struct dma_resv _resv;
|
|
struct drm_i915_gem_object___4 *scratch[4];
|
|
struct list_head bound_list;
|
|
struct list_head unbound_list;
|
|
bool is_ggtt: 1;
|
|
bool is_dpt: 1;
|
|
bool has_read_only: 1;
|
|
bool skip_pte_rewrite: 1;
|
|
u8 top;
|
|
u8 pd_shift;
|
|
u8 scratch_order;
|
|
unsigned long lmem_pt_obj_flags;
|
|
struct rb_root_cached pending_unbind;
|
|
struct drm_i915_gem_object___4 * (*alloc_pt_dma)(struct i915_address_space___4 *, int);
|
|
struct drm_i915_gem_object___4 * (*alloc_scratch_dma)(struct i915_address_space___4 *, int);
|
|
u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32);
|
|
void (*allocate_va_range)(struct i915_address_space___4 *, struct i915_vm_pt_stash___4 *, u64, u64);
|
|
void (*clear_range)(struct i915_address_space___4 *, u64, u64);
|
|
void (*insert_page)(struct i915_address_space___4 *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*insert_entries)(struct i915_address_space___4 *, struct i915_vma_resource___4 *, enum i915_cache_level, u32);
|
|
void (*raw_insert_page)(struct i915_address_space___4 *, dma_addr_t, u64, enum i915_cache_level, u32);
|
|
void (*raw_insert_entries)(struct i915_address_space___4 *, struct i915_vma_resource___4 *, enum i915_cache_level, u32);
|
|
void (*cleanup)(struct i915_address_space___4 *);
|
|
void (*foreach)(struct i915_address_space___4 *, u64, u64, void (*)(struct i915_address_space___4 *, struct i915_page_table___4 *, void *), void *);
|
|
struct i915_vma_ops___4 vma_ops;
|
|
};
|
|
|
|
struct intel_uncore_fw_get___4 {
|
|
void (*force_wake_get)(struct intel_uncore___4 *, enum forcewake_domains);
|
|
};
|
|
|
|
struct intel_uncore_forcewake_domain___4 {
|
|
struct intel_uncore___4 *uncore;
|
|
enum forcewake_domain_id id;
|
|
enum forcewake_domains mask;
|
|
unsigned int wake_count;
|
|
bool active;
|
|
struct hrtimer timer;
|
|
u32 *reg_set;
|
|
u32 *reg_ack;
|
|
};
|
|
|
|
struct i915_ppgtt___4;
|
|
|
|
struct i915_fence_reg___4;
|
|
|
|
struct i915_ggtt___4 {
|
|
struct i915_address_space___4 vm;
|
|
struct io_mapping iomap;
|
|
struct resource gmadr;
|
|
resource_size_t mappable_end;
|
|
void *gsm;
|
|
void (*invalidate)(struct i915_ggtt___4 *);
|
|
struct i915_ppgtt___4 *alias;
|
|
bool do_idle_maps;
|
|
int mtrr;
|
|
u32 bit_6_swizzle_x;
|
|
u32 bit_6_swizzle_y;
|
|
u32 pin_bias;
|
|
unsigned int num_fences;
|
|
struct i915_fence_reg___4 *fence_regs;
|
|
struct list_head fence_list;
|
|
struct list_head userfault_list;
|
|
struct mutex error_mutex;
|
|
struct drm_mm_node error_capture;
|
|
struct drm_mm_node uc_fw;
|
|
struct list_head gt_list;
|
|
};
|
|
|
|
struct i915_page_directory___4;
|
|
|
|
struct i915_ppgtt___4 {
|
|
struct i915_address_space___4 vm;
|
|
struct i915_page_directory___4 *pd;
|
|
};
|
|
|
|
struct i915_page_table___4 {
|
|
struct drm_i915_gem_object___4 *base;
|
|
union {
|
|
atomic_t used;
|
|
struct i915_page_table___4 *stash;
|
|
};
|
|
bool is_compact;
|
|
};
|
|
|
|
struct i915_page_directory___4 {
|
|
struct i915_page_table___4 pt;
|
|
spinlock_t lock;
|
|
void **entry;
|
|
};
|
|
|
|
struct i915_fence_reg___4 {
|
|
struct list_head link;
|
|
struct i915_ggtt___4 *ggtt;
|
|
struct i915_vma___4 *vma;
|
|
atomic_t pin_count;
|
|
struct i915_active active;
|
|
int id;
|
|
bool dirty;
|
|
u32 start;
|
|
u32 size;
|
|
u32 tiling;
|
|
u32 stride;
|
|
};
|
|
|
|
struct i915_mmap_offset___4;
|
|
|
|
struct i915_vma___4 {
|
|
struct drm_mm_node node;
|
|
struct i915_address_space___4 *vm;
|
|
const struct i915_vma_ops___4 *ops;
|
|
struct drm_i915_gem_object___4 *obj;
|
|
struct sg_table *pages;
|
|
void *iomap;
|
|
void *private;
|
|
struct i915_fence_reg___4 *fence;
|
|
u64 size;
|
|
struct i915_page_sizes page_sizes;
|
|
struct i915_mmap_offset___4 *mmo;
|
|
u32 guard;
|
|
u32 fence_size;
|
|
u32 fence_alignment;
|
|
u32 display_alignment;
|
|
atomic_t open_count;
|
|
atomic_t flags;
|
|
struct i915_active active;
|
|
atomic_t pages_count;
|
|
bool vm_ddestroy;
|
|
struct i915_gtt_view gtt_view;
|
|
struct list_head vm_link;
|
|
struct list_head obj_link;
|
|
struct rb_node obj_node;
|
|
struct hlist_node obj_hash;
|
|
struct list_head evict_link;
|
|
struct list_head closed_link;
|
|
struct i915_vma_resource___4 *resource;
|
|
};
|
|
|
|
struct i915_vm_pt_stash___4 {
|
|
struct i915_page_table___4 *pt[2];
|
|
int pt_sz;
|
|
};
|
|
|
|
struct i915_mmap_offset___4 {
|
|
struct drm_vma_offset_node vma_node;
|
|
struct drm_i915_gem_object___4 *obj;
|
|
enum i915_mmap_type mmap_type;
|
|
struct rb_node offset;
|
|
};
|
|
|
|
struct intel_uc_ops___4 {
|
|
int (*sanitize)(struct intel_uc___4 *);
|
|
void (*init_fw)(struct intel_uc___4 *);
|
|
void (*fini_fw)(struct intel_uc___4 *);
|
|
int (*init)(struct intel_uc___4 *);
|
|
void (*fini)(struct intel_uc___4 *);
|
|
int (*init_hw)(struct intel_uc___4 *);
|
|
void (*fini_hw)(struct intel_uc___4 *);
|
|
};
|
|
|
|
struct i915_gem_context___4;
|
|
|
|
struct intel_timeline___4;
|
|
|
|
struct intel_context_ops___4;
|
|
|
|
struct intel_context___4 {
|
|
union {
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
struct intel_engine_cs___4 *engine;
|
|
struct intel_engine_cs___4 *inflight;
|
|
struct i915_address_space___4 *vm;
|
|
struct i915_gem_context___4 __attribute__((btf_type_tag("rcu"))) *gem_context;
|
|
struct list_head signal_link;
|
|
struct list_head signals;
|
|
spinlock_t signal_lock;
|
|
struct i915_vma___4 *state;
|
|
u32 ring_size;
|
|
struct intel_ring *ring;
|
|
struct intel_timeline___4 *timeline;
|
|
unsigned long flags;
|
|
struct {
|
|
u64 timeout_us;
|
|
} watchdog;
|
|
u32 *lrc_reg_state;
|
|
union {
|
|
struct {
|
|
u32 lrca;
|
|
u32 ccid;
|
|
};
|
|
u64 desc;
|
|
} lrc;
|
|
u32 tag;
|
|
struct intel_context_stats stats;
|
|
unsigned int active_count;
|
|
atomic_t pin_count;
|
|
struct mutex pin_mutex;
|
|
struct i915_active active;
|
|
const struct intel_context_ops___4 *ops;
|
|
struct intel_sseu sseu;
|
|
struct list_head pinned_contexts_link;
|
|
u8 wa_bb_page;
|
|
struct {
|
|
spinlock_t lock;
|
|
u32 sched_state;
|
|
struct list_head fences;
|
|
struct i915_sw_fence blocked;
|
|
struct list_head requests;
|
|
u8 prio;
|
|
u32 prio_count[4];
|
|
struct delayed_work sched_disable_delay_work;
|
|
} guc_state;
|
|
struct {
|
|
u16 id;
|
|
atomic_t ref;
|
|
struct list_head link;
|
|
} guc_id;
|
|
struct list_head destroyed_link;
|
|
struct {
|
|
union {
|
|
struct list_head child_list;
|
|
struct list_head child_link;
|
|
};
|
|
struct intel_context___4 *parent;
|
|
struct i915_request___4 *last_rq;
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
u8 number_children;
|
|
u8 child_index;
|
|
struct {
|
|
u16 wqi_head;
|
|
u16 wqi_tail;
|
|
u32 *wq_head;
|
|
u32 *wq_tail;
|
|
u32 *wq_status;
|
|
u8 parent_page;
|
|
} guc;
|
|
} parallel;
|
|
};
|
|
|
|
struct intel_hw_status_page___4 {
|
|
struct list_head timelines;
|
|
struct i915_vma___4 *vma;
|
|
u32 *addr;
|
|
};
|
|
|
|
struct i915_ctx_workarounds___4 {
|
|
struct i915_wa_ctx_bb indirect_ctx;
|
|
struct i915_wa_ctx_bb per_ctx;
|
|
struct i915_vma___4 *vma;
|
|
};
|
|
|
|
struct intel_engine_execlists___4 {
|
|
struct timer_list timer;
|
|
struct timer_list preempt;
|
|
const struct i915_request___4 *preempt_target;
|
|
u32 ccid;
|
|
u32 yield;
|
|
u32 error_interrupt;
|
|
u32 reset_ccid;
|
|
u32 *submit_reg;
|
|
u32 *ctrl_reg;
|
|
struct i915_request___4 * const *active;
|
|
struct i915_request___4 *inflight[3];
|
|
struct i915_request___4 *pending[3];
|
|
unsigned int port_mask;
|
|
struct rb_root_cached virtual;
|
|
u32 *csb_write;
|
|
u64 *csb_status;
|
|
u8 csb_size;
|
|
u8 csb_head;
|
|
};
|
|
|
|
struct intel_breadcrumbs___2;
|
|
|
|
struct intel_engine_cs___4 {
|
|
struct drm_i915_private___2 *i915;
|
|
struct intel_gt___4 *gt;
|
|
struct intel_uncore___4 *uncore;
|
|
char name[8];
|
|
enum intel_engine_id id;
|
|
enum intel_engine_id legacy_idx;
|
|
unsigned int guc_id;
|
|
intel_engine_mask_t mask;
|
|
u32 reset_domain;
|
|
intel_engine_mask_t logical_mask;
|
|
u8 class;
|
|
u8 instance;
|
|
u16 uabi_class;
|
|
u16 uabi_instance;
|
|
u32 uabi_capabilities;
|
|
u32 context_size;
|
|
u32 mmio_base;
|
|
enum forcewake_domains fw_domain;
|
|
unsigned int fw_active;
|
|
unsigned long context_tag;
|
|
struct rb_node uabi_node;
|
|
struct intel_sseu sseu;
|
|
struct i915_sched_engine___4 *sched_engine;
|
|
struct i915_request___4 *request_pool;
|
|
struct intel_context___4 *hung_ce;
|
|
struct llist_head barrier_tasks;
|
|
struct intel_context___4 *kernel_context;
|
|
struct list_head pinned_contexts_list;
|
|
intel_engine_mask_t saturated;
|
|
struct {
|
|
struct delayed_work work;
|
|
struct i915_request___4 *systole;
|
|
unsigned long blocked;
|
|
} heartbeat;
|
|
unsigned long serial;
|
|
unsigned long wakeref_serial;
|
|
struct intel_wakeref wakeref;
|
|
struct file *default_state;
|
|
struct {
|
|
struct intel_ring *ring;
|
|
struct intel_timeline___4 *timeline;
|
|
} legacy;
|
|
struct ewma__engine_latency latency;
|
|
struct intel_breadcrumbs___2 *breadcrumbs;
|
|
struct intel_engine_pmu pmu;
|
|
struct intel_hw_status_page___4 status_page;
|
|
struct i915_ctx_workarounds___4 wa_ctx;
|
|
struct i915_wa_list___4 ctx_wa_list;
|
|
struct i915_wa_list___4 wa_list;
|
|
struct i915_wa_list___4 whitelist;
|
|
u32 irq_keep_mask;
|
|
u32 irq_enable_mask;
|
|
void (*irq_enable)(struct intel_engine_cs___4 *);
|
|
void (*irq_disable)(struct intel_engine_cs___4 *);
|
|
void (*irq_handler)(struct intel_engine_cs___4 *, u16);
|
|
void (*sanitize)(struct intel_engine_cs___4 *);
|
|
int (*resume)(struct intel_engine_cs___4 *);
|
|
struct {
|
|
void (*prepare)(struct intel_engine_cs___4 *);
|
|
void (*rewind)(struct intel_engine_cs___4 *, bool);
|
|
void (*cancel)(struct intel_engine_cs___4 *);
|
|
void (*finish)(struct intel_engine_cs___4 *);
|
|
} reset;
|
|
void (*park)(struct intel_engine_cs___4 *);
|
|
void (*unpark)(struct intel_engine_cs___4 *);
|
|
void (*bump_serial)(struct intel_engine_cs___4 *);
|
|
void (*set_default_submission)(struct intel_engine_cs___4 *);
|
|
const struct intel_context_ops___4 *cops;
|
|
int (*request_alloc)(struct i915_request___4 *);
|
|
int (*emit_flush)(struct i915_request___4 *, u32);
|
|
int (*emit_bb_start)(struct i915_request___4 *, u64, u32, unsigned int);
|
|
int (*emit_init_breadcrumb)(struct i915_request___4 *);
|
|
u32 * (*emit_fini_breadcrumb)(struct i915_request___4 *, u32 *);
|
|
unsigned int emit_fini_breadcrumb_dw;
|
|
void (*submit_request)(struct i915_request___4 *);
|
|
void (*release)(struct intel_engine_cs___4 *);
|
|
void (*add_active_request)(struct i915_request___4 *);
|
|
void (*remove_active_request)(struct i915_request___4 *);
|
|
ktime_t (*busyness)(struct intel_engine_cs___4 *, ktime_t *);
|
|
struct intel_engine_execlists___4 execlists;
|
|
struct intel_timeline___4 *retire;
|
|
struct work_struct retire_work;
|
|
struct atomic_notifier_head context_status_notifier;
|
|
unsigned int flags;
|
|
struct hlist_head cmd_hash[512];
|
|
const struct drm_i915_reg_table *reg_tables;
|
|
int reg_table_count;
|
|
u32 (*get_cmd_length_mask)(u32);
|
|
struct {
|
|
union {
|
|
struct intel_engine_execlists_stats execlists;
|
|
struct intel_engine_guc_stats guc;
|
|
};
|
|
ktime_t rps;
|
|
} stats;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} props;
|
|
struct {
|
|
unsigned long heartbeat_interval_ms;
|
|
unsigned long max_busywait_duration_ns;
|
|
unsigned long preempt_timeout_ms;
|
|
unsigned long stop_timeout_ms;
|
|
unsigned long timeslice_duration_ms;
|
|
} defaults;
|
|
};
|
|
|
|
struct i915_sched_engine___4 {
|
|
struct kref ref;
|
|
spinlock_t lock;
|
|
struct list_head requests;
|
|
struct list_head hold;
|
|
struct tasklet_struct tasklet;
|
|
struct i915_priolist default_priolist;
|
|
int queue_priority_hint;
|
|
struct rb_root_cached queue;
|
|
bool no_priolist;
|
|
void *private_data;
|
|
void (*destroy)(struct kref *);
|
|
bool (*disabled)(struct i915_sched_engine___4 *);
|
|
void (*kick_backend)(const struct i915_request___4 *, int);
|
|
void (*bump_inflight_request_prio)(struct i915_request___4 *, int);
|
|
void (*retire_inflight_request_prio)(struct i915_request___4 *);
|
|
void (*schedule)(struct i915_request___4 *, const struct i915_sched_attr *);
|
|
};
|
|
|
|
struct i915_capture_list___4;
|
|
|
|
struct i915_request___4 {
|
|
struct dma_fence fence;
|
|
spinlock_t lock;
|
|
struct drm_i915_private___2 *i915;
|
|
struct intel_engine_cs___4 *engine;
|
|
struct intel_context___4 *context;
|
|
struct intel_ring *ring;
|
|
struct intel_timeline___4 __attribute__((btf_type_tag("rcu"))) *timeline;
|
|
struct list_head signal_link;
|
|
struct llist_node signal_node;
|
|
unsigned long rcustate;
|
|
struct pin_cookie cookie;
|
|
struct i915_sw_fence submit;
|
|
union {
|
|
wait_queue_entry_t submitq;
|
|
struct i915_sw_dma_fence_cb dmaq;
|
|
struct i915_request_duration_cb duration;
|
|
};
|
|
struct llist_head execute_cb;
|
|
struct i915_sw_fence semaphore;
|
|
struct irq_work submit_work;
|
|
struct i915_sched_node sched;
|
|
struct i915_dependency dep;
|
|
intel_engine_mask_t execution_mask;
|
|
const u32 *hwsp_seqno;
|
|
u32 head;
|
|
u32 infix;
|
|
u32 postfix;
|
|
u32 tail;
|
|
u32 wa_tail;
|
|
u32 reserved_space;
|
|
struct i915_vma_resource___4 *batch_res;
|
|
struct i915_capture_list___4 *capture_list;
|
|
unsigned long emitted_jiffies;
|
|
struct list_head link;
|
|
struct i915_request_watchdog watchdog;
|
|
struct list_head guc_fence_link;
|
|
u8 guc_prio;
|
|
wait_queue_entry_t hucq;
|
|
};
|
|
|
|
struct intel_timeline___4 {
|
|
u64 fence_context;
|
|
u32 seqno;
|
|
struct mutex mutex;
|
|
atomic_t pin_count;
|
|
atomic_t active_count;
|
|
void *hwsp_map;
|
|
const u32 *hwsp_seqno;
|
|
struct i915_vma___4 *hwsp_ggtt;
|
|
u32 hwsp_offset;
|
|
bool has_initial_breadcrumb;
|
|
struct list_head requests;
|
|
struct i915_active_fence last_request;
|
|
struct i915_active active;
|
|
struct intel_timeline___4 *retire;
|
|
struct i915_syncmap *sync;
|
|
struct list_head link;
|
|
struct intel_gt___4 *gt;
|
|
struct list_head engine_link;
|
|
struct kref kref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct i915_capture_list___4 {
|
|
struct i915_vma_resource___4 *vma_res;
|
|
struct i915_capture_list___4 *next;
|
|
};
|
|
|
|
struct intel_breadcrumbs___2 {
|
|
struct kref ref;
|
|
atomic_t active;
|
|
spinlock_t signalers_lock;
|
|
struct list_head signalers;
|
|
struct llist_head signaled_requests;
|
|
atomic_t signaler_active;
|
|
spinlock_t irq_lock;
|
|
struct irq_work irq_work;
|
|
unsigned int irq_enabled;
|
|
bool irq_armed;
|
|
intel_engine_mask_t engine_mask;
|
|
struct intel_engine_cs___4 *irq_engine;
|
|
bool (*irq_enable)(struct intel_breadcrumbs___2 *);
|
|
void (*irq_disable)(struct intel_breadcrumbs___2 *);
|
|
};
|
|
|
|
struct i915_gem_ww_ctx___4;
|
|
|
|
struct intel_context_ops___4 {
|
|
unsigned long flags;
|
|
int (*alloc)(struct intel_context___4 *);
|
|
void (*revoke)(struct intel_context___4 *, struct i915_request___4 *, unsigned int);
|
|
void (*close)(struct intel_context___4 *);
|
|
int (*pre_pin)(struct intel_context___4 *, struct i915_gem_ww_ctx___4 *, void **);
|
|
int (*pin)(struct intel_context___4 *, void *);
|
|
void (*unpin)(struct intel_context___4 *);
|
|
void (*post_unpin)(struct intel_context___4 *);
|
|
void (*cancel_request)(struct intel_context___4 *, struct i915_request___4 *);
|
|
void (*enter)(struct intel_context___4 *);
|
|
void (*exit)(struct intel_context___4 *);
|
|
void (*sched_disable)(struct intel_context___4 *);
|
|
void (*reset)(struct intel_context___4 *);
|
|
void (*destroy)(struct kref *);
|
|
struct intel_context___4 * (*create_virtual)(struct intel_engine_cs___4 **, unsigned int, unsigned long);
|
|
struct intel_context___4 * (*create_parallel)(struct intel_engine_cs___4 **, unsigned int, unsigned int);
|
|
struct intel_engine_cs___4 * (*get_sibling)(struct intel_engine_cs___4 *, unsigned int);
|
|
};
|
|
|
|
struct i915_gem_ww_ctx___4 {
|
|
struct ww_acquire_ctx ctx;
|
|
struct list_head obj_list;
|
|
struct drm_i915_gem_object___4 *contended;
|
|
bool intr;
|
|
};
|
|
|
|
struct i915_gem_engines___4;
|
|
|
|
struct i915_drm_client___4;
|
|
|
|
struct i915_gem_context___4 {
|
|
struct drm_i915_private___2 *i915;
|
|
struct drm_i915_file_private *file_priv;
|
|
struct i915_gem_engines___4 __attribute__((btf_type_tag("rcu"))) *engines;
|
|
struct mutex engines_mutex;
|
|
struct drm_syncobj *syncobj;
|
|
struct i915_address_space___4 *vm;
|
|
struct pid *pid;
|
|
struct list_head link;
|
|
struct i915_drm_client___4 *client;
|
|
struct list_head client_link;
|
|
struct kref ref;
|
|
struct work_struct release_work;
|
|
struct callback_head rcu;
|
|
unsigned long user_flags;
|
|
unsigned long flags;
|
|
bool uses_protected_content;
|
|
intel_wakeref_t pxp_wakeref;
|
|
struct mutex mutex;
|
|
struct i915_sched_attr sched;
|
|
atomic_t guilty_count;
|
|
atomic_t active_count;
|
|
unsigned long hang_timestamp[2];
|
|
u8 remap_slice;
|
|
struct xarray handles_vma;
|
|
struct mutex lut_mutex;
|
|
char name[24];
|
|
struct {
|
|
spinlock_t lock;
|
|
struct list_head engines;
|
|
} stale;
|
|
};
|
|
|
|
struct i915_gem_engines___4 {
|
|
union {
|
|
struct list_head link;
|
|
struct callback_head rcu;
|
|
};
|
|
struct i915_sw_fence fence;
|
|
struct i915_gem_context___4 *ctx;
|
|
unsigned int num_engines;
|
|
struct intel_context___4 *engines[0];
|
|
};
|
|
|
|
struct i915_drm_client___4 {
|
|
struct kref kref;
|
|
unsigned int id;
|
|
spinlock_t ctx_lock;
|
|
struct list_head ctx_list;
|
|
struct i915_drm_clients___4 *clients;
|
|
atomic64_t past_runtime[5];
|
|
};
|
|
|
|
struct i915_perf_stream_ops___4;
|
|
|
|
struct i915_oa_config___4;
|
|
|
|
struct i915_perf_stream___4 {
|
|
struct i915_perf___4 *perf;
|
|
struct intel_uncore___4 *uncore;
|
|
struct intel_engine_cs___4 *engine;
|
|
struct mutex lock;
|
|
u32 sample_flags;
|
|
int sample_size;
|
|
struct i915_gem_context___4 *ctx;
|
|
bool enabled;
|
|
bool hold_preemption;
|
|
const struct i915_perf_stream_ops___4 *ops;
|
|
struct i915_oa_config___4 *oa_config;
|
|
struct llist_head oa_config_bos;
|
|
struct intel_context___4 *pinned_ctx;
|
|
u32 specific_ctx_id;
|
|
u32 specific_ctx_id_mask;
|
|
struct hrtimer poll_check_timer;
|
|
wait_queue_head_t poll_wq;
|
|
bool pollin;
|
|
bool periodic;
|
|
int period_exponent;
|
|
struct {
|
|
const struct i915_oa_format *format;
|
|
struct i915_vma___4 *vma;
|
|
u8 *vaddr;
|
|
u32 last_ctx_id;
|
|
int size_exponent;
|
|
spinlock_t ptr_lock;
|
|
u32 aging_tail;
|
|
u64 aging_timestamp;
|
|
u32 head;
|
|
u32 tail;
|
|
} oa_buffer;
|
|
struct i915_vma___4 *noa_wait;
|
|
u64 poll_oa_period;
|
|
};
|
|
|
|
struct i915_perf_stream_ops___4 {
|
|
void (*enable)(struct i915_perf_stream___4 *);
|
|
void (*disable)(struct i915_perf_stream___4 *);
|
|
void (*poll_wait)(struct i915_perf_stream___4 *, struct file *, poll_table *);
|
|
int (*wait_unlocked)(struct i915_perf_stream___4 *);
|
|
int (*read)(struct i915_perf_stream___4 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *);
|
|
void (*destroy)(struct i915_perf_stream___4 *);
|
|
};
|
|
|
|
struct i915_oa_config___4 {
|
|
struct i915_perf___4 *perf;
|
|
char uuid[37];
|
|
int id;
|
|
const struct i915_oa_reg *mux_regs;
|
|
u32 mux_regs_len;
|
|
const struct i915_oa_reg *b_counter_regs;
|
|
u32 b_counter_regs_len;
|
|
const struct i915_oa_reg *flex_regs;
|
|
u32 flex_regs_len;
|
|
struct attribute_group sysfs_metric;
|
|
struct attribute *attrs[2];
|
|
struct kobj_attribute sysfs_metric_id;
|
|
struct kref ref;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct intel_wm_funcs___4 {
|
|
void (*update_wm)(struct drm_i915_private___2 *);
|
|
int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *);
|
|
int (*compute_global_watermarks)(struct intel_atomic_state *);
|
|
};
|
|
|
|
struct intel_gt_coredump___4;
|
|
|
|
struct i915_gpu_coredump___4 {
|
|
struct kref ref;
|
|
ktime_t time;
|
|
ktime_t boottime;
|
|
ktime_t uptime;
|
|
unsigned long capture;
|
|
struct drm_i915_private___2 *i915;
|
|
struct intel_gt_coredump___4 *gt;
|
|
char error_msg[128];
|
|
bool simulated;
|
|
bool wakelock;
|
|
bool suspended;
|
|
int iommu;
|
|
u32 reset_count;
|
|
u32 suspend_count;
|
|
struct intel_device_info device_info;
|
|
struct intel_runtime_info runtime_info;
|
|
struct intel_driver_caps driver_caps;
|
|
struct i915_params params;
|
|
struct intel_overlay_error_state *overlay;
|
|
struct scatterlist *sgl;
|
|
struct scatterlist *fit;
|
|
};
|
|
|
|
struct intel_engine_coredump___4;
|
|
|
|
struct intel_uc_coredump___4;
|
|
|
|
struct intel_gt_coredump___4 {
|
|
const struct intel_gt___4 *_gt;
|
|
bool awake;
|
|
bool simulated;
|
|
struct intel_gt_info info;
|
|
u32 eir;
|
|
u32 pgtbl_er;
|
|
u32 ier;
|
|
u32 gtier[6];
|
|
u32 ngtier;
|
|
u32 forcewake;
|
|
u32 error;
|
|
u32 err_int;
|
|
u32 fault_data0;
|
|
u32 fault_data1;
|
|
u32 done_reg;
|
|
u32 gac_eco;
|
|
u32 gam_ecochk;
|
|
u32 gab_ctl;
|
|
u32 gfx_mode;
|
|
u32 gtt_cache;
|
|
u32 aux_err;
|
|
u32 gam_done;
|
|
u32 clock_frequency;
|
|
u32 clock_period_ns;
|
|
u32 derrmr;
|
|
u32 sfc_done[4];
|
|
u32 nfence;
|
|
u64 fence[32];
|
|
struct intel_engine_coredump___4 *engine;
|
|
struct intel_uc_coredump___4 *uc;
|
|
struct intel_gt_coredump___4 *next;
|
|
};
|
|
|
|
struct intel_engine_coredump___4 {
|
|
const struct intel_engine_cs___4 *engine;
|
|
bool hung;
|
|
bool simulated;
|
|
u32 reset_count;
|
|
u32 rq_head;
|
|
u32 rq_post;
|
|
u32 rq_tail;
|
|
u32 ccid;
|
|
u32 start;
|
|
u32 tail;
|
|
u32 head;
|
|
u32 ctl;
|
|
u32 mode;
|
|
u32 hws;
|
|
u32 ipeir;
|
|
u32 ipehr;
|
|
u32 esr;
|
|
u32 bbstate;
|
|
u32 instpm;
|
|
u32 instps;
|
|
u64 bbaddr;
|
|
u64 acthd;
|
|
u32 fault_reg;
|
|
u64 faddr;
|
|
u32 rc_psmi;
|
|
u32 nopid;
|
|
u32 excc;
|
|
u32 cmd_cctl;
|
|
u32 cscmdop;
|
|
u32 ctx_sr_ctl;
|
|
u32 dma_faddr_hi;
|
|
u32 dma_faddr_lo;
|
|
struct intel_instdone instdone;
|
|
struct intel_guc_state_capture *guc_capture;
|
|
struct __guc_capture_parsed_output *guc_capture_node;
|
|
struct i915_gem_context_coredump context;
|
|
struct i915_vma_coredump *vma;
|
|
struct i915_request_coredump execlist[2];
|
|
unsigned int num_ports;
|
|
struct {
|
|
u32 gfx_mode;
|
|
union {
|
|
u64 pdp[4];
|
|
u32 pp_dir_base;
|
|
};
|
|
} vm_info;
|
|
struct intel_engine_coredump___4 *next;
|
|
};
|
|
|
|
struct intel_uc_coredump___4 {
|
|
struct intel_uc_fw___4 guc_fw;
|
|
struct intel_uc_fw___4 huc_fw;
|
|
struct guc_info guc;
|
|
};
|
|
|
|
typedef u32 (*hotplug_enables_func)(struct drm_i915_private___2 *, enum hpd_pin);
|
|
|
|
struct i915_gem_apply_to_region_ops;
|
|
|
|
struct i915_gem_apply_to_region {
|
|
const struct i915_gem_apply_to_region_ops *ops;
|
|
struct i915_gem_ww_ctx *ww;
|
|
u32 interruptible: 1;
|
|
};
|
|
|
|
struct i915_gem_apply_to_region_ops {
|
|
int (*process_obj)(struct i915_gem_apply_to_region *, struct drm_i915_gem_object *);
|
|
};
|
|
|
|
struct __ext_steer_reg {
|
|
const char *name;
|
|
i915_mcr_reg_t reg;
|
|
};
|
|
|
|
struct __guc_mmio_reg_descr;
|
|
|
|
struct __guc_mmio_reg_descr_group {
|
|
const struct __guc_mmio_reg_descr *list;
|
|
u32 num_regs;
|
|
u32 owner;
|
|
u32 type;
|
|
u32 engine;
|
|
struct __guc_mmio_reg_descr *extlist;
|
|
};
|
|
|
|
struct __guc_mmio_reg_descr {
|
|
i915_reg_t reg;
|
|
u32 flags;
|
|
u32 mask;
|
|
const char *regname;
|
|
};
|
|
|
|
struct __guc_capture_ads_cache {
|
|
bool is_valid;
|
|
void *ptr;
|
|
size_t size;
|
|
int status;
|
|
};
|
|
|
|
struct intel_guc_state_capture {
|
|
const struct __guc_mmio_reg_descr_group *reglists;
|
|
struct __guc_mmio_reg_descr_group *extlists;
|
|
struct __guc_capture_ads_cache ads_cache[96];
|
|
void *ads_null_cache;
|
|
struct list_head cachelist;
|
|
int max_mmio_per_node;
|
|
struct list_head outlist;
|
|
};
|
|
|
|
struct gcap_reg_list_info {
|
|
u32 vfid;
|
|
u32 num_regs;
|
|
struct guc_mmio_reg *regs;
|
|
};
|
|
|
|
struct __guc_capture_parsed_output {
|
|
struct list_head link;
|
|
bool is_partial;
|
|
u32 eng_class;
|
|
u32 eng_inst;
|
|
u32 guc_id;
|
|
u32 lrca;
|
|
struct gcap_reg_list_info reginfo[3];
|
|
};
|
|
|
|
enum guc_capture_type {
|
|
GUC_CAPTURE_LIST_TYPE_GLOBAL = 0,
|
|
GUC_CAPTURE_LIST_TYPE_ENGINE_CLASS = 1,
|
|
GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE = 2,
|
|
GUC_CAPTURE_LIST_TYPE_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
GUC_CAPTURE_LIST_INDEX_PF = 0,
|
|
GUC_CAPTURE_LIST_INDEX_VF = 1,
|
|
GUC_CAPTURE_LIST_INDEX_MAX = 2,
|
|
};
|
|
|
|
enum guc_log_buffer_type {
|
|
GUC_DEBUG_LOG_BUFFER = 0,
|
|
GUC_CRASH_DUMP_LOG_BUFFER = 1,
|
|
GUC_CAPTURE_LOG_BUFFER = 2,
|
|
GUC_MAX_LOG_BUFFER = 3,
|
|
};
|
|
|
|
struct guc_debug_capture_list_header {
|
|
u32 info;
|
|
};
|
|
|
|
struct guc_debug_capture_list {
|
|
struct guc_debug_capture_list_header header;
|
|
struct guc_mmio_reg regs[0];
|
|
};
|
|
|
|
struct __guc_capture_bufstate {
|
|
u32 size;
|
|
void *data;
|
|
u32 rd;
|
|
u32 wr;
|
|
};
|
|
|
|
struct guc_log_buffer_state {
|
|
u32 marker[2];
|
|
u32 read_ptr;
|
|
u32 write_ptr;
|
|
u32 size;
|
|
u32 sampled_write_ptr;
|
|
u32 wrap_offset;
|
|
union {
|
|
struct {
|
|
u32 flush_to_file: 1;
|
|
u32 buffer_full_cnt: 4;
|
|
u32 reserved: 27;
|
|
};
|
|
u32 flags;
|
|
};
|
|
u32 version;
|
|
};
|
|
|
|
struct guc_state_capture_header_t {
|
|
u32 owner;
|
|
u32 info;
|
|
u32 lrca;
|
|
u32 guc_id;
|
|
u32 num_mmios;
|
|
};
|
|
|
|
struct guc_state_capture_group_header_t {
|
|
u32 owner;
|
|
u32 info;
|
|
};
|
|
|
|
struct intel_quirk {
|
|
int device;
|
|
int subsystem_vendor;
|
|
int subsystem_device;
|
|
void (*hook)(struct drm_i915_private___2 *);
|
|
};
|
|
|
|
struct intel_dmi_quirk {
|
|
void (*hook)(struct drm_i915_private___2 *);
|
|
const struct dmi_system_id (*dmi_id_list)[0];
|
|
};
|
|
|
|
struct intel_crt {
|
|
struct intel_encoder base;
|
|
struct intel_connector *connector;
|
|
bool force_hotplug_required;
|
|
i915_reg_t adpa_reg;
|
|
};
|
|
|
|
struct _balloon_info_ {
|
|
struct drm_mm_node space[4];
|
|
};
|
|
|
|
enum {
|
|
mechtype_caddy = 0,
|
|
mechtype_tray = 1,
|
|
mechtype_popup = 2,
|
|
mechtype_individual_changer = 4,
|
|
mechtype_cartridge_changer = 5,
|
|
};
|
|
|
|
struct event_header {
|
|
__be16 data_len;
|
|
__u8 notification_class: 3;
|
|
__u8 reserved1: 4;
|
|
__u8 nea: 1;
|
|
__u8 supp_event_class;
|
|
};
|
|
|
|
struct e1000_stats {
|
|
char stat_string[32];
|
|
int type;
|
|
int sizeof_stat;
|
|
int stat_offset;
|
|
};
|
|
|
|
enum e1000_state_t___2 {
|
|
__E1000_TESTING___2 = 0,
|
|
__E1000_RESETTING___2 = 1,
|
|
__E1000_DOWN___2 = 2,
|
|
__E1000_DISABLED = 3,
|
|
};
|
|
|
|
enum {
|
|
NETDEV_STATS = 0,
|
|
E1000_STATS = 1,
|
|
};
|
|
|
|
struct e1000_rx_desc {
|
|
__le64 buffer_addr;
|
|
__le16 length;
|
|
__le16 csum;
|
|
u8 status;
|
|
u8 errors;
|
|
__le16 special;
|
|
};
|
|
|
|
typedef enum {
|
|
e1000_undefined = 0,
|
|
e1000_82542_rev2_0 = 1,
|
|
e1000_82542_rev2_1 = 2,
|
|
e1000_82543 = 3,
|
|
e1000_82544 = 4,
|
|
e1000_82540 = 5,
|
|
e1000_82545 = 6,
|
|
e1000_82545_rev_3 = 7,
|
|
e1000_82546 = 8,
|
|
e1000_ce4100 = 9,
|
|
e1000_82546_rev_3 = 10,
|
|
e1000_82541 = 11,
|
|
e1000_82541_rev_2 = 12,
|
|
e1000_82547 = 13,
|
|
e1000_82547_rev_2 = 14,
|
|
e1000_num_macs = 15,
|
|
} e1000_mac_type;
|
|
|
|
typedef enum {
|
|
e1000_phy_m88___2 = 0,
|
|
e1000_phy_igp___2 = 1,
|
|
e1000_phy_8211 = 2,
|
|
e1000_phy_8201 = 3,
|
|
e1000_phy_undefined = 255,
|
|
} e1000_phy_type;
|
|
|
|
typedef enum {
|
|
e1000_media_type_copper___2 = 0,
|
|
e1000_media_type_fiber___2 = 1,
|
|
e1000_media_type_internal_serdes___2 = 2,
|
|
e1000_num_media_types___2 = 3,
|
|
} e1000_media_type;
|
|
|
|
typedef enum {
|
|
E1000_FC_NONE = 0,
|
|
E1000_FC_RX_PAUSE = 1,
|
|
E1000_FC_TX_PAUSE = 2,
|
|
E1000_FC_FULL = 3,
|
|
E1000_FC_DEFAULT = 255,
|
|
} e1000_fc_type;
|
|
|
|
typedef enum {
|
|
e1000_bus_speed_unknown = 0,
|
|
e1000_bus_speed_33 = 1,
|
|
e1000_bus_speed_66 = 2,
|
|
e1000_bus_speed_100 = 3,
|
|
e1000_bus_speed_120 = 4,
|
|
e1000_bus_speed_133 = 5,
|
|
e1000_bus_speed_reserved = 6,
|
|
} e1000_bus_speed;
|
|
|
|
typedef enum {
|
|
e1000_bus_width_unknown___2 = 0,
|
|
e1000_bus_width_32___2 = 1,
|
|
e1000_bus_width_64___2 = 2,
|
|
e1000_bus_width_reserved___2 = 3,
|
|
} e1000_bus_width;
|
|
|
|
typedef enum {
|
|
e1000_bus_type_unknown = 0,
|
|
e1000_bus_type_pci = 1,
|
|
e1000_bus_type_pcix = 2,
|
|
e1000_bus_type_reserved = 3,
|
|
} e1000_bus_type;
|
|
|
|
typedef enum {
|
|
e1000_eeprom_uninitialized = 0,
|
|
e1000_eeprom_spi = 1,
|
|
e1000_eeprom_microwire = 2,
|
|
e1000_eeprom_flash = 3,
|
|
e1000_eeprom_none = 4,
|
|
e1000_num_eeprom_types = 5,
|
|
} e1000_eeprom_type;
|
|
|
|
struct e1000_eeprom_info {
|
|
e1000_eeprom_type type;
|
|
u16 word_size;
|
|
u16 opcode_bits;
|
|
u16 address_bits;
|
|
u16 delay_usec;
|
|
u16 page_size;
|
|
};
|
|
|
|
typedef enum {
|
|
e1000_ms_hw_default___2 = 0,
|
|
e1000_ms_force_master___2 = 1,
|
|
e1000_ms_force_slave___2 = 2,
|
|
e1000_ms_auto___2 = 3,
|
|
} e1000_ms_type;
|
|
|
|
typedef enum {
|
|
e1000_ffe_config_enabled = 0,
|
|
e1000_ffe_config_active = 1,
|
|
e1000_ffe_config_blocked = 2,
|
|
} e1000_ffe_config;
|
|
|
|
typedef enum {
|
|
e1000_smart_speed_default___2 = 0,
|
|
e1000_smart_speed_on___2 = 1,
|
|
e1000_smart_speed_off___2 = 2,
|
|
} e1000_smart_speed;
|
|
|
|
typedef enum {
|
|
e1000_dsp_config_disabled = 0,
|
|
e1000_dsp_config_enabled = 1,
|
|
e1000_dsp_config_activated = 2,
|
|
e1000_dsp_config_undefined = 255,
|
|
} e1000_dsp_config;
|
|
|
|
struct e1000_shadow_ram___2;
|
|
|
|
struct e1000_hw___2 {
|
|
u8 *hw_addr;
|
|
u8 *flash_address;
|
|
void *ce4100_gbe_mdio_base_virt;
|
|
e1000_mac_type mac_type;
|
|
e1000_phy_type phy_type;
|
|
u32 phy_init_script;
|
|
e1000_media_type media_type;
|
|
void *back;
|
|
struct e1000_shadow_ram___2 *eeprom_shadow_ram;
|
|
u32 flash_bank_size;
|
|
u32 flash_base_addr;
|
|
e1000_fc_type fc;
|
|
e1000_bus_speed bus_speed;
|
|
e1000_bus_width bus_width;
|
|
e1000_bus_type bus_type;
|
|
struct e1000_eeprom_info eeprom;
|
|
e1000_ms_type master_slave;
|
|
e1000_ms_type original_master_slave;
|
|
e1000_ffe_config ffe_config_state;
|
|
u32 asf_firmware_present;
|
|
u32 eeprom_semaphore_present;
|
|
unsigned long io_base;
|
|
u32 phy_id;
|
|
u32 phy_revision;
|
|
u32 phy_addr;
|
|
u32 original_fc;
|
|
u32 txcw;
|
|
u32 autoneg_failed;
|
|
u32 max_frame_size;
|
|
u32 min_frame_size;
|
|
u32 mc_filter_type;
|
|
u32 num_mc_addrs;
|
|
u32 collision_delta;
|
|
u32 tx_packet_delta;
|
|
u32 ledctl_default;
|
|
u32 ledctl_mode1;
|
|
u32 ledctl_mode2;
|
|
bool tx_pkt_filtering;
|
|
struct e1000_host_mng_dhcp_cookie mng_cookie;
|
|
u16 phy_spd_default;
|
|
u16 autoneg_advertised;
|
|
u16 pci_cmd_word;
|
|
u16 fc_high_water;
|
|
u16 fc_low_water;
|
|
u16 fc_pause_time;
|
|
u16 current_ifs_val;
|
|
u16 ifs_min_val;
|
|
u16 ifs_max_val;
|
|
u16 ifs_step_size;
|
|
u16 ifs_ratio;
|
|
u16 device_id;
|
|
u16 vendor_id;
|
|
u16 subsystem_id;
|
|
u16 subsystem_vendor_id;
|
|
u8 revision_id;
|
|
u8 autoneg;
|
|
u8 mdix;
|
|
u8 forced_speed_duplex;
|
|
u8 wait_autoneg_complete;
|
|
u8 dma_fairness;
|
|
u8 mac_addr[6];
|
|
u8 perm_mac_addr[6];
|
|
bool disable_polarity_correction;
|
|
bool speed_downgraded;
|
|
e1000_smart_speed smart_speed;
|
|
e1000_dsp_config dsp_config_state;
|
|
bool get_link_status;
|
|
bool serdes_has_link;
|
|
bool tbi_compatibility_en;
|
|
bool tbi_compatibility_on;
|
|
bool laa_is_present;
|
|
bool phy_reset_disable;
|
|
bool initialize_hw_bits_disable;
|
|
bool fc_send_xon;
|
|
bool fc_strict_ieee;
|
|
bool report_tx_early;
|
|
bool adaptive_ifs;
|
|
bool ifs_params_forced;
|
|
bool in_ifs_mode;
|
|
bool mng_reg_access_disabled;
|
|
bool leave_av_bit_off;
|
|
bool bad_tx_carr_stats_fd;
|
|
bool has_smbus;
|
|
};
|
|
|
|
struct e1000_shadow_ram___2 {
|
|
u16 eeprom_word;
|
|
bool modified;
|
|
};
|
|
|
|
struct e1000_hw_stats___2 {
|
|
u64 crcerrs;
|
|
u64 algnerrc;
|
|
u64 symerrs;
|
|
u64 rxerrc;
|
|
u64 txerrc;
|
|
u64 mpc;
|
|
u64 scc;
|
|
u64 ecol;
|
|
u64 mcc;
|
|
u64 latecol;
|
|
u64 colc;
|
|
u64 dc;
|
|
u64 tncrs;
|
|
u64 sec;
|
|
u64 cexterr;
|
|
u64 rlec;
|
|
u64 xonrxc;
|
|
u64 xontxc;
|
|
u64 xoffrxc;
|
|
u64 xofftxc;
|
|
u64 fcruc;
|
|
u64 prc64;
|
|
u64 prc127;
|
|
u64 prc255;
|
|
u64 prc511;
|
|
u64 prc1023;
|
|
u64 prc1522;
|
|
u64 gprc;
|
|
u64 bprc;
|
|
u64 mprc;
|
|
u64 gptc;
|
|
u64 gorcl;
|
|
u64 gorch;
|
|
u64 gotcl;
|
|
u64 gotch;
|
|
u64 rnbc;
|
|
u64 ruc;
|
|
u64 rfc;
|
|
u64 roc;
|
|
u64 rlerrc;
|
|
u64 rjc;
|
|
u64 mgprc;
|
|
u64 mgpdc;
|
|
u64 mgptc;
|
|
u64 torl;
|
|
u64 torh;
|
|
u64 totl;
|
|
u64 toth;
|
|
u64 tpr;
|
|
u64 tpt;
|
|
u64 ptc64;
|
|
u64 ptc127;
|
|
u64 ptc255;
|
|
u64 ptc511;
|
|
u64 ptc1023;
|
|
u64 ptc1522;
|
|
u64 mptc;
|
|
u64 bptc;
|
|
u64 tsctc;
|
|
u64 tsctfc;
|
|
u64 iac;
|
|
u64 icrxptc;
|
|
u64 icrxatc;
|
|
u64 ictxptc;
|
|
u64 ictxatc;
|
|
u64 ictxqec;
|
|
u64 ictxqmtc;
|
|
u64 icrxdmtc;
|
|
u64 icrxoc;
|
|
};
|
|
|
|
typedef enum {
|
|
e1000_cable_length_50 = 0,
|
|
e1000_cable_length_50_80 = 1,
|
|
e1000_cable_length_80_110 = 2,
|
|
e1000_cable_length_110_140 = 3,
|
|
e1000_cable_length_140 = 4,
|
|
e1000_cable_length_undefined = 255,
|
|
} e1000_cable_length;
|
|
|
|
typedef enum {
|
|
e1000_10bt_ext_dist_enable_normal = 0,
|
|
e1000_10bt_ext_dist_enable_lower = 1,
|
|
e1000_10bt_ext_dist_enable_undefined = 255,
|
|
} e1000_10bt_ext_dist_enable;
|
|
|
|
typedef enum {
|
|
e1000_rev_polarity_normal___2 = 0,
|
|
e1000_rev_polarity_reversed___2 = 1,
|
|
e1000_rev_polarity_undefined___2 = 255,
|
|
} e1000_rev_polarity;
|
|
|
|
typedef enum {
|
|
e1000_downshift_normal = 0,
|
|
e1000_downshift_activated = 1,
|
|
e1000_downshift_undefined = 255,
|
|
} e1000_downshift;
|
|
|
|
typedef enum {
|
|
e1000_polarity_reversal_enabled = 0,
|
|
e1000_polarity_reversal_disabled = 1,
|
|
e1000_polarity_reversal_undefined = 255,
|
|
} e1000_polarity_reversal;
|
|
|
|
typedef enum {
|
|
e1000_auto_x_mode_manual_mdi = 0,
|
|
e1000_auto_x_mode_manual_mdix = 1,
|
|
e1000_auto_x_mode_auto1 = 2,
|
|
e1000_auto_x_mode_auto2 = 3,
|
|
e1000_auto_x_mode_undefined = 255,
|
|
} e1000_auto_x_mode;
|
|
|
|
typedef enum {
|
|
e1000_1000t_rx_status_not_ok___2 = 0,
|
|
e1000_1000t_rx_status_ok___2 = 1,
|
|
e1000_1000t_rx_status_undefined___2 = 255,
|
|
} e1000_1000t_rx_status;
|
|
|
|
struct e1000_phy_info___2 {
|
|
e1000_cable_length cable_length;
|
|
e1000_10bt_ext_dist_enable extended_10bt_distance;
|
|
e1000_rev_polarity cable_polarity;
|
|
e1000_downshift downshift;
|
|
e1000_polarity_reversal polarity_correction;
|
|
e1000_auto_x_mode mdix_mode;
|
|
e1000_1000t_rx_status local_rx;
|
|
e1000_1000t_rx_status remote_rx;
|
|
};
|
|
|
|
struct e1000_tx_buffer;
|
|
|
|
struct e1000_tx_ring {
|
|
void *desc;
|
|
dma_addr_t dma;
|
|
unsigned int size;
|
|
unsigned int count;
|
|
unsigned int next_to_use;
|
|
unsigned int next_to_clean;
|
|
struct e1000_tx_buffer *buffer_info;
|
|
u16 tdh;
|
|
u16 tdt;
|
|
bool last_tx_tso;
|
|
};
|
|
|
|
struct e1000_rx_buffer;
|
|
|
|
struct e1000_rx_ring {
|
|
void *desc;
|
|
dma_addr_t dma;
|
|
unsigned int size;
|
|
unsigned int count;
|
|
unsigned int next_to_use;
|
|
unsigned int next_to_clean;
|
|
struct e1000_rx_buffer *buffer_info;
|
|
struct sk_buff *rx_skb_top;
|
|
int cpu;
|
|
u16 rdh;
|
|
u16 rdt;
|
|
};
|
|
|
|
struct e1000_adapter___2 {
|
|
unsigned long active_vlans[64];
|
|
u16 mng_vlan_id;
|
|
u32 bd_number;
|
|
u32 rx_buffer_len;
|
|
u32 wol;
|
|
u32 smartspeed;
|
|
u32 en_mng_pt;
|
|
u16 link_speed;
|
|
u16 link_duplex;
|
|
spinlock_t stats_lock;
|
|
unsigned int total_tx_bytes;
|
|
unsigned int total_tx_packets;
|
|
unsigned int total_rx_bytes;
|
|
unsigned int total_rx_packets;
|
|
u32 itr;
|
|
u32 itr_setting;
|
|
u16 tx_itr;
|
|
u16 rx_itr;
|
|
u8 fc_autoneg;
|
|
struct e1000_tx_ring *tx_ring;
|
|
unsigned int restart_queue;
|
|
u32 txd_cmd;
|
|
u32 tx_int_delay;
|
|
u32 tx_abs_int_delay;
|
|
u32 gotcl;
|
|
u64 gotcl_old;
|
|
u64 tpt_old;
|
|
u64 colc_old;
|
|
u32 tx_timeout_count;
|
|
u32 tx_fifo_head;
|
|
u32 tx_head_addr;
|
|
u32 tx_fifo_size;
|
|
u8 tx_timeout_factor;
|
|
atomic_t tx_fifo_stall;
|
|
bool pcix_82544;
|
|
bool detect_tx_hung;
|
|
bool dump_buffers;
|
|
bool (*clean_rx)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int *, int);
|
|
void (*alloc_rx_buf)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int);
|
|
struct e1000_rx_ring *rx_ring;
|
|
struct napi_struct napi;
|
|
int num_tx_queues;
|
|
int num_rx_queues;
|
|
u64 hw_csum_err;
|
|
u64 hw_csum_good;
|
|
u32 alloc_rx_buff_failed;
|
|
u32 rx_int_delay;
|
|
u32 rx_abs_int_delay;
|
|
bool rx_csum;
|
|
u32 gorcl;
|
|
u64 gorcl_old;
|
|
struct net_device *netdev;
|
|
struct pci_dev *pdev;
|
|
struct e1000_hw___2 hw;
|
|
struct e1000_hw_stats___2 stats;
|
|
struct e1000_phy_info___2 phy_info;
|
|
struct e1000_phy_stats phy_stats;
|
|
u32 test_icr;
|
|
struct e1000_tx_ring test_tx_ring;
|
|
struct e1000_rx_ring test_rx_ring;
|
|
int msg_enable;
|
|
bool tso_force;
|
|
bool smart_power_down;
|
|
bool quad_port_a;
|
|
unsigned long flags;
|
|
u32 eeprom_wol;
|
|
int bars;
|
|
int need_ioport;
|
|
bool discarding;
|
|
struct work_struct reset_task;
|
|
struct delayed_work watchdog_task;
|
|
struct delayed_work fifo_stall_task;
|
|
struct delayed_work phy_info_task;
|
|
};
|
|
|
|
struct e1000_tx_buffer {
|
|
struct sk_buff *skb;
|
|
dma_addr_t dma;
|
|
unsigned long time_stamp;
|
|
u16 length;
|
|
u16 next_to_watch;
|
|
bool mapped_as_page;
|
|
unsigned short segs;
|
|
unsigned int bytecount;
|
|
};
|
|
|
|
struct e1000_rx_buffer {
|
|
union {
|
|
struct page *page;
|
|
u8 *data;
|
|
} rxbuf;
|
|
dma_addr_t dma;
|
|
};
|
|
|
|
struct tuple_t {
|
|
u_int Attributes;
|
|
cisdata_t DesiredTuple;
|
|
u_int Flags;
|
|
u_int LinkOffset;
|
|
u_int CISOffset;
|
|
cisdata_t TupleCode;
|
|
cisdata_t TupleLink;
|
|
cisdata_t TupleOffset;
|
|
cisdata_t TupleDataMax;
|
|
cisdata_t TupleDataLen;
|
|
cisdata_t *TupleData;
|
|
};
|
|
|
|
typedef struct tuple_t tuple_t;
|
|
|
|
struct cistpl_device_t {
|
|
u_char ndev;
|
|
struct {
|
|
u_char type;
|
|
u_char wp;
|
|
u_int speed;
|
|
u_int size;
|
|
} dev[4];
|
|
};
|
|
|
|
typedef struct cistpl_device_t cistpl_device_t;
|
|
|
|
struct cistpl_checksum_t {
|
|
u_short addr;
|
|
u_short len;
|
|
u_char sum;
|
|
};
|
|
|
|
typedef struct cistpl_checksum_t cistpl_checksum_t;
|
|
|
|
struct cistpl_longlink_t {
|
|
u_int addr;
|
|
};
|
|
|
|
typedef struct cistpl_longlink_t cistpl_longlink_t;
|
|
|
|
struct cistpl_altstr_t {
|
|
u_char ns;
|
|
u_char ofs[4];
|
|
char str[254];
|
|
};
|
|
|
|
typedef struct cistpl_altstr_t cistpl_altstr_t;
|
|
|
|
struct cistpl_jedec_t {
|
|
u_char nid;
|
|
struct {
|
|
u_char mfr;
|
|
u_char info;
|
|
} id[4];
|
|
};
|
|
|
|
typedef struct cistpl_jedec_t cistpl_jedec_t;
|
|
|
|
struct cistpl_funce_t {
|
|
u_char type;
|
|
u_char data[0];
|
|
};
|
|
|
|
typedef struct cistpl_funce_t cistpl_funce_t;
|
|
|
|
struct cistpl_bar_t {
|
|
u_char attr;
|
|
u_int size;
|
|
};
|
|
|
|
typedef struct cistpl_bar_t cistpl_bar_t;
|
|
|
|
struct cistpl_power_t {
|
|
u_char present;
|
|
u_char flags;
|
|
u_int param[7];
|
|
};
|
|
|
|
typedef struct cistpl_power_t cistpl_power_t;
|
|
|
|
struct cistpl_timing_t {
|
|
u_int wait;
|
|
u_int waitscale;
|
|
u_int ready;
|
|
u_int rdyscale;
|
|
u_int reserved;
|
|
u_int rsvscale;
|
|
};
|
|
|
|
typedef struct cistpl_timing_t cistpl_timing_t;
|
|
|
|
struct cistpl_io_t {
|
|
u_char flags;
|
|
u_char nwin;
|
|
struct {
|
|
u_int base;
|
|
u_int len;
|
|
} win[16];
|
|
};
|
|
|
|
typedef struct cistpl_io_t cistpl_io_t;
|
|
|
|
struct cistpl_irq_t {
|
|
u_int IRQInfo1;
|
|
u_int IRQInfo2;
|
|
};
|
|
|
|
typedef struct cistpl_irq_t cistpl_irq_t;
|
|
|
|
struct cistpl_mem_t {
|
|
u_char flags;
|
|
u_char nwin;
|
|
struct {
|
|
u_int len;
|
|
u_int card_addr;
|
|
u_int host_addr;
|
|
} win[8];
|
|
};
|
|
|
|
typedef struct cistpl_mem_t cistpl_mem_t;
|
|
|
|
struct cistpl_cftable_entry_t {
|
|
u_char index;
|
|
u_short flags;
|
|
u_char interface;
|
|
cistpl_power_t vcc;
|
|
cistpl_power_t vpp1;
|
|
cistpl_power_t vpp2;
|
|
cistpl_timing_t timing;
|
|
cistpl_io_t io;
|
|
cistpl_irq_t irq;
|
|
cistpl_mem_t mem;
|
|
u_char subtuples;
|
|
};
|
|
|
|
typedef struct cistpl_cftable_entry_t cistpl_cftable_entry_t;
|
|
|
|
struct cistpl_cftable_entry_cb_t {
|
|
u_char index;
|
|
u_int flags;
|
|
cistpl_power_t vcc;
|
|
cistpl_power_t vpp1;
|
|
cistpl_power_t vpp2;
|
|
u_char io;
|
|
cistpl_irq_t irq;
|
|
u_char mem;
|
|
u_char subtuples;
|
|
};
|
|
|
|
typedef struct cistpl_cftable_entry_cb_t cistpl_cftable_entry_cb_t;
|
|
|
|
struct cistpl_vers_2_t {
|
|
u_char vers;
|
|
u_char comply;
|
|
u_short dindex;
|
|
u_char vspec8;
|
|
u_char vspec9;
|
|
u_char nhdr;
|
|
u_char vendor;
|
|
u_char info;
|
|
char str[244];
|
|
};
|
|
|
|
typedef struct cistpl_vers_2_t cistpl_vers_2_t;
|
|
|
|
struct cistpl_org_t {
|
|
u_char data_org;
|
|
char desc[30];
|
|
};
|
|
|
|
typedef struct cistpl_org_t cistpl_org_t;
|
|
|
|
struct cistpl_format_t {
|
|
u_char type;
|
|
u_char edc;
|
|
u_int offset;
|
|
u_int length;
|
|
};
|
|
|
|
typedef struct cistpl_format_t cistpl_format_t;
|
|
|
|
union cisparse_t {
|
|
cistpl_device_t device;
|
|
cistpl_checksum_t checksum;
|
|
cistpl_longlink_t longlink;
|
|
cistpl_longlink_mfc_t longlink_mfc;
|
|
cistpl_vers_1_t version_1;
|
|
cistpl_altstr_t altstr;
|
|
cistpl_jedec_t jedec;
|
|
cistpl_manfid_t manfid;
|
|
cistpl_funcid_t funcid;
|
|
cistpl_funce_t funce;
|
|
cistpl_bar_t bar;
|
|
cistpl_config_t config;
|
|
cistpl_cftable_entry_t cftable_entry;
|
|
cistpl_cftable_entry_cb_t cftable_entry_cb;
|
|
cistpl_device_geo_t device_geo;
|
|
cistpl_vers_2_t vers_2;
|
|
cistpl_org_t org;
|
|
cistpl_format_t format;
|
|
};
|
|
|
|
typedef union cisparse_t cisparse_t;
|
|
|
|
struct pcmcia_loop_mem {
|
|
struct pcmcia_device *p_dev;
|
|
void *priv_data;
|
|
int (*loop_tuple)(struct pcmcia_device *, tuple_t *, void *);
|
|
};
|
|
|
|
struct pcmcia_cfg_mem {
|
|
struct pcmcia_device *p_dev;
|
|
int (*conf_check)(struct pcmcia_device *, void *);
|
|
void *priv_data;
|
|
cisparse_t parse;
|
|
cistpl_cftable_entry_t dflt;
|
|
};
|
|
|
|
struct pcmcia_loop_get {
|
|
size_t len;
|
|
cisdata_t **buf;
|
|
};
|
|
|
|
enum amd_chipset_gen {
|
|
NOT_AMD_CHIPSET = 0,
|
|
AMD_CHIPSET_SB600 = 1,
|
|
AMD_CHIPSET_SB700 = 2,
|
|
AMD_CHIPSET_SB800 = 3,
|
|
AMD_CHIPSET_HUDSON2 = 4,
|
|
AMD_CHIPSET_BOLTON = 5,
|
|
AMD_CHIPSET_YANGTZE = 6,
|
|
AMD_CHIPSET_TAISHAN = 7,
|
|
AMD_CHIPSET_UNKNOWN = 8,
|
|
};
|
|
|
|
struct amd_chipset_type {
|
|
enum amd_chipset_gen gen;
|
|
u8 rev;
|
|
};
|
|
|
|
struct amd_chipset_info {
|
|
struct pci_dev *nb_dev;
|
|
struct pci_dev *smbus_dev;
|
|
int nb_type;
|
|
struct amd_chipset_type sb_type;
|
|
int isoc_reqs;
|
|
int probe_count;
|
|
bool need_pll_quirk;
|
|
};
|
|
|
|
struct ff_periodic_effect_compat {
|
|
__u16 waveform;
|
|
__u16 period;
|
|
__s16 magnitude;
|
|
__s16 offset;
|
|
__u16 phase;
|
|
struct ff_envelope envelope;
|
|
__u32 custom_len;
|
|
compat_uptr_t custom_data;
|
|
};
|
|
|
|
struct ff_effect_compat {
|
|
__u16 type;
|
|
__s16 id;
|
|
__u16 direction;
|
|
struct ff_trigger trigger;
|
|
struct ff_replay replay;
|
|
union {
|
|
struct ff_constant_effect constant;
|
|
struct ff_ramp_effect ramp;
|
|
struct ff_periodic_effect_compat periodic;
|
|
struct ff_condition_effect condition[2];
|
|
struct ff_rumble_effect rumble;
|
|
} u;
|
|
};
|
|
|
|
struct input_event_compat {
|
|
compat_ulong_t sec;
|
|
compat_ulong_t usec;
|
|
__u16 type;
|
|
__u16 code;
|
|
__s32 value;
|
|
};
|
|
|
|
struct input_event {
|
|
__kernel_ulong_t __sec;
|
|
__kernel_ulong_t __usec;
|
|
__u16 type;
|
|
__u16 code;
|
|
__s32 value;
|
|
};
|
|
|
|
struct cytp_data {
|
|
int fw_version;
|
|
int pkt_size;
|
|
int mode;
|
|
int tp_min_pressure;
|
|
int tp_max_pressure;
|
|
int tp_width;
|
|
int tp_high;
|
|
int tp_max_abs_x;
|
|
int tp_max_abs_y;
|
|
int tp_res_x;
|
|
int tp_res_y;
|
|
int tp_metrics_supported;
|
|
};
|
|
|
|
struct cytp_contact {
|
|
int x;
|
|
int y;
|
|
int z;
|
|
};
|
|
|
|
struct cytp_report_data {
|
|
int contact_cnt;
|
|
struct cytp_contact contacts[2];
|
|
unsigned int left: 1;
|
|
unsigned int right: 1;
|
|
unsigned int middle: 1;
|
|
unsigned int tap: 1;
|
|
};
|
|
|
|
struct pps_event_time {
|
|
struct timespec64 ts_real;
|
|
};
|
|
|
|
struct dm_kcopyd_throttle {
|
|
unsigned int throttle;
|
|
unsigned int num_io_jobs;
|
|
unsigned int io_period;
|
|
unsigned int total_period;
|
|
unsigned int last_jiffies;
|
|
};
|
|
|
|
enum dm_io_mem_type {
|
|
DM_IO_PAGE_LIST = 0,
|
|
DM_IO_BIO = 1,
|
|
DM_IO_VMA = 2,
|
|
DM_IO_KMEM = 3,
|
|
};
|
|
|
|
enum dm_raid1_error {
|
|
DM_RAID1_WRITE_ERROR = 0,
|
|
DM_RAID1_FLUSH_ERROR = 1,
|
|
DM_RAID1_SYNC_ERROR = 2,
|
|
DM_RAID1_READ_ERROR = 3,
|
|
};
|
|
|
|
enum dm_rh_region_states {
|
|
DM_RH_CLEAN = 1,
|
|
DM_RH_DIRTY = 2,
|
|
DM_RH_NOSYNC = 4,
|
|
DM_RH_RECOVERING = 8,
|
|
};
|
|
|
|
struct dm_region_hash;
|
|
|
|
struct dm_kcopyd_client;
|
|
|
|
typedef sector_t region_t;
|
|
|
|
struct mirror_set;
|
|
|
|
struct mirror {
|
|
struct mirror_set *ms;
|
|
atomic_t error_count;
|
|
unsigned long error_type;
|
|
struct dm_dev *dev;
|
|
sector_t offset;
|
|
};
|
|
|
|
struct dm_io_client;
|
|
|
|
struct mirror_set {
|
|
struct dm_target *ti;
|
|
struct list_head list;
|
|
uint64_t features;
|
|
spinlock_t lock;
|
|
struct bio_list reads;
|
|
struct bio_list writes;
|
|
struct bio_list failures;
|
|
struct bio_list holds;
|
|
struct dm_region_hash *rh;
|
|
struct dm_kcopyd_client *kcopyd_client;
|
|
struct dm_io_client *io_client;
|
|
region_t nr_regions;
|
|
int in_sync;
|
|
int log_failure;
|
|
int leg_failure;
|
|
atomic_t suspend;
|
|
atomic_t default_mirror;
|
|
struct workqueue_struct *kmirrord_wq;
|
|
struct work_struct kmirrord_work;
|
|
struct timer_list timer;
|
|
unsigned long timer_pending;
|
|
struct work_struct trigger_event;
|
|
unsigned int nr_mirrors;
|
|
struct mirror mirror[0];
|
|
};
|
|
|
|
struct dm_dirty_log_type;
|
|
|
|
struct dm_dirty_log {
|
|
struct dm_dirty_log_type *type;
|
|
int (*flush_callback_fn)(struct dm_target *);
|
|
void *context;
|
|
};
|
|
|
|
struct dm_dirty_log_type {
|
|
const char *name;
|
|
struct module *module;
|
|
struct list_head list;
|
|
int (*ctr)(struct dm_dirty_log *, struct dm_target *, unsigned int, char **);
|
|
void (*dtr)(struct dm_dirty_log *);
|
|
int (*presuspend)(struct dm_dirty_log *);
|
|
int (*postsuspend)(struct dm_dirty_log *);
|
|
int (*resume)(struct dm_dirty_log *);
|
|
uint32_t (*get_region_size)(struct dm_dirty_log *);
|
|
int (*is_clean)(struct dm_dirty_log *, region_t);
|
|
int (*in_sync)(struct dm_dirty_log *, region_t, int);
|
|
int (*flush)(struct dm_dirty_log *);
|
|
void (*mark_region)(struct dm_dirty_log *, region_t);
|
|
void (*clear_region)(struct dm_dirty_log *, region_t);
|
|
int (*get_resync_work)(struct dm_dirty_log *, region_t *);
|
|
void (*set_region_sync)(struct dm_dirty_log *, region_t, int);
|
|
region_t (*get_sync_count)(struct dm_dirty_log *);
|
|
int (*status)(struct dm_dirty_log *, status_type_t, char *, unsigned int);
|
|
int (*is_remote_recovering)(struct dm_dirty_log *, region_t);
|
|
};
|
|
|
|
struct dm_bio_details {
|
|
struct block_device *bi_bdev;
|
|
int __bi_remaining;
|
|
unsigned long bi_flags;
|
|
struct bvec_iter bi_iter;
|
|
bio_end_io_t *bi_end_io;
|
|
};
|
|
|
|
struct dm_region;
|
|
|
|
struct dm_io_region {
|
|
struct block_device *bdev;
|
|
sector_t sector;
|
|
sector_t count;
|
|
};
|
|
|
|
struct page_list;
|
|
|
|
struct dm_io_memory {
|
|
enum dm_io_mem_type type;
|
|
unsigned int offset;
|
|
union {
|
|
struct page_list *pl;
|
|
struct bio *bio;
|
|
void *vma;
|
|
void *addr;
|
|
} ptr;
|
|
};
|
|
|
|
typedef void (*io_notify_fn)(unsigned long, void *);
|
|
|
|
struct dm_io_notify {
|
|
io_notify_fn fn;
|
|
void *context;
|
|
};
|
|
|
|
struct dm_io_request {
|
|
blk_opf_t bi_opf;
|
|
struct dm_io_memory mem;
|
|
struct dm_io_notify notify;
|
|
struct dm_io_client *client;
|
|
};
|
|
|
|
struct page_list {
|
|
struct page_list *next;
|
|
struct page *page;
|
|
};
|
|
|
|
typedef void (*dm_kcopyd_notify_fn)(int, unsigned long, void *);
|
|
|
|
struct dm_raid1_bio_record {
|
|
struct mirror *m;
|
|
struct dm_bio_details details;
|
|
region_t write_region;
|
|
};
|
|
|
|
enum {
|
|
WMI_READ_TAKES_NO_ARGS = 0,
|
|
WMI_PROBED = 1,
|
|
};
|
|
|
|
struct wmi_device {
|
|
struct device dev;
|
|
bool setable;
|
|
};
|
|
|
|
struct guid_block {
|
|
guid_t guid;
|
|
union {
|
|
char object_id[2];
|
|
struct {
|
|
unsigned char notify_id;
|
|
unsigned char reserved;
|
|
};
|
|
};
|
|
u8 instance_count;
|
|
u8 flags;
|
|
};
|
|
|
|
typedef void (*wmi_notify_handler)(u32, void *);
|
|
|
|
struct wmi_block {
|
|
struct wmi_device dev;
|
|
struct list_head list;
|
|
struct guid_block gblock;
|
|
struct miscdevice char_dev;
|
|
struct mutex char_mutex;
|
|
struct acpi_device *acpi_device;
|
|
wmi_notify_handler handler;
|
|
void *handler_data;
|
|
u64 req_buf_size;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct wmi_device_id;
|
|
|
|
struct wmi_ioctl_buffer;
|
|
|
|
struct wmi_driver {
|
|
struct device_driver driver;
|
|
const struct wmi_device_id *id_table;
|
|
bool no_notify_data;
|
|
int (*probe)(struct wmi_device *, const void *);
|
|
void (*remove)(struct wmi_device *);
|
|
void (*notify)(struct wmi_device *, union acpi_object *);
|
|
long (*filter_callback)(struct wmi_device *, unsigned int, struct wmi_ioctl_buffer *);
|
|
};
|
|
|
|
struct wmi_device_id {
|
|
const char guid_string[37];
|
|
const void *context;
|
|
};
|
|
|
|
struct wmi_ioctl_buffer {
|
|
__u64 length;
|
|
__u8 data[0];
|
|
};
|
|
|
|
enum {
|
|
HDA_JACK_NOT_PRESENT = 0,
|
|
HDA_JACK_PRESENT = 1,
|
|
HDA_JACK_PHANTOM = 2,
|
|
};
|
|
|
|
enum snd_jack_types {
|
|
SND_JACK_HEADPHONE = 1,
|
|
SND_JACK_MICROPHONE = 2,
|
|
SND_JACK_HEADSET = 3,
|
|
SND_JACK_LINEOUT = 4,
|
|
SND_JACK_MECHANICAL = 8,
|
|
SND_JACK_VIDEOOUT = 16,
|
|
SND_JACK_AVOUT = 20,
|
|
SND_JACK_LINEIN = 32,
|
|
SND_JACK_BTN_0 = 16384,
|
|
SND_JACK_BTN_1 = 8192,
|
|
SND_JACK_BTN_2 = 4096,
|
|
SND_JACK_BTN_3 = 2048,
|
|
SND_JACK_BTN_4 = 1024,
|
|
SND_JACK_BTN_5 = 512,
|
|
};
|
|
|
|
struct hda_jack_callback;
|
|
|
|
struct snd_jack;
|
|
|
|
struct hda_jack_tbl {
|
|
hda_nid_t nid;
|
|
int dev_id;
|
|
unsigned char tag;
|
|
struct hda_jack_callback *callback;
|
|
unsigned int pin_sense;
|
|
unsigned int jack_detect: 1;
|
|
unsigned int jack_dirty: 1;
|
|
unsigned int phantom_jack: 1;
|
|
unsigned int block_report: 1;
|
|
hda_nid_t gating_jack;
|
|
hda_nid_t gated_jack;
|
|
hda_nid_t key_report_jack;
|
|
int type;
|
|
int button_state;
|
|
struct snd_jack *jack;
|
|
};
|
|
|
|
typedef void (*hda_jack_callback_fn)(struct hda_codec *, struct hda_jack_callback *);
|
|
|
|
struct hda_jack_callback {
|
|
hda_nid_t nid;
|
|
int dev_id;
|
|
hda_jack_callback_fn func;
|
|
unsigned int private_data;
|
|
unsigned int unsol_res;
|
|
struct hda_jack_tbl *jack;
|
|
struct hda_jack_callback *next;
|
|
};
|
|
|
|
struct snd_jack {
|
|
struct list_head kctl_list;
|
|
struct snd_card *card;
|
|
const char *id;
|
|
struct input_dev *input_dev;
|
|
struct mutex input_dev_lock;
|
|
int registered;
|
|
int type;
|
|
char name[100];
|
|
unsigned int key[6];
|
|
int hw_status_cache;
|
|
void *private_data;
|
|
void (*private_free)(struct snd_jack *);
|
|
};
|
|
|
|
struct hda_jack_keymap {
|
|
enum snd_jack_types type;
|
|
int key;
|
|
};
|
|
|
|
struct cpu_rmap {
|
|
struct kref refcount;
|
|
u16 size;
|
|
u16 used;
|
|
void **obj;
|
|
struct {
|
|
u16 index;
|
|
u16 dist;
|
|
} near[0];
|
|
};
|
|
|
|
struct bpf_xdp_link {
|
|
struct bpf_link link;
|
|
struct net_device *dev;
|
|
int flags;
|
|
};
|
|
|
|
enum qdisc_state_t {
|
|
__QDISC_STATE_SCHED = 0,
|
|
__QDISC_STATE_DEACTIVATED = 1,
|
|
__QDISC_STATE_MISSED = 2,
|
|
__QDISC_STATE_DRAINING = 3,
|
|
};
|
|
|
|
enum {
|
|
NAPIF_STATE_SCHED = 1,
|
|
NAPIF_STATE_MISSED = 2,
|
|
NAPIF_STATE_DISABLE = 4,
|
|
NAPIF_STATE_NPSVC = 8,
|
|
NAPIF_STATE_LISTED = 16,
|
|
NAPIF_STATE_NO_BUSY_POLL = 32,
|
|
NAPIF_STATE_IN_BUSY_POLL = 64,
|
|
NAPIF_STATE_PREFER_BUSY_POLL = 128,
|
|
NAPIF_STATE_THREADED = 256,
|
|
NAPIF_STATE_SCHED_THREADED = 512,
|
|
};
|
|
|
|
enum bpf_xdp_mode {
|
|
XDP_MODE_SKB = 0,
|
|
XDP_MODE_DRV = 1,
|
|
XDP_MODE_HW = 2,
|
|
__MAX_XDP_MODE = 3,
|
|
};
|
|
|
|
enum qdisc_state2_t {
|
|
__QDISC_STATE2_RUNNING = 0,
|
|
};
|
|
|
|
enum {
|
|
SKB_FCLONE_UNAVAILABLE = 0,
|
|
SKB_FCLONE_ORIG = 1,
|
|
SKB_FCLONE_CLONE = 2,
|
|
};
|
|
|
|
struct netdev_adjacent {
|
|
struct net_device *dev;
|
|
netdevice_tracker dev_tracker;
|
|
bool master;
|
|
bool ignore;
|
|
u16 ref_nr;
|
|
void *private;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct dev_kfree_skb_cb {
|
|
enum skb_drop_reason reason;
|
|
};
|
|
|
|
struct netdev_net_notifier {
|
|
struct list_head list;
|
|
struct notifier_block *nb;
|
|
};
|
|
|
|
struct net_device_path_stack {
|
|
int num_paths;
|
|
struct net_device_path path[5];
|
|
};
|
|
|
|
struct skb_checksum_ops {
|
|
__wsum (*update)(const void *, int, __wsum);
|
|
__wsum (*combine)(__wsum, __wsum, int, int);
|
|
};
|
|
|
|
struct netdev_nested_priv {
|
|
unsigned char flags;
|
|
void *data;
|
|
};
|
|
|
|
struct netdev_notifier_offload_xstats_rd {
|
|
struct rtnl_hw_stats64 stats;
|
|
bool used;
|
|
};
|
|
|
|
struct netdev_notifier_offload_xstats_ru {
|
|
bool used;
|
|
};
|
|
|
|
typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *);
|
|
|
|
struct ifslave {
|
|
__s32 slave_id;
|
|
char slave_name[16];
|
|
__s8 link;
|
|
__s8 state;
|
|
__u32 link_failure_count;
|
|
};
|
|
|
|
typedef struct ifslave ifslave;
|
|
|
|
struct ifbond {
|
|
__s32 bond_mode;
|
|
__s32 num_slaves;
|
|
__s32 miimon;
|
|
};
|
|
|
|
typedef struct ifbond ifbond;
|
|
|
|
struct netdev_bonding_info {
|
|
ifslave slave;
|
|
ifbond master;
|
|
};
|
|
|
|
struct netdev_notifier_bonding_info {
|
|
struct netdev_notifier_info info;
|
|
struct netdev_bonding_info bonding_info;
|
|
};
|
|
|
|
struct netdev_notifier_changelowerstate_info {
|
|
struct netdev_notifier_info info;
|
|
void *lower_state_info;
|
|
};
|
|
|
|
struct netdev_notifier_pre_changeaddr_info {
|
|
struct netdev_notifier_info info;
|
|
const unsigned char *dev_addr;
|
|
};
|
|
|
|
struct xfrm_policy_afinfo {
|
|
struct dst_ops *dst_ops;
|
|
struct dst_entry * (*dst_lookup)(struct net *, int, int, const xfrm_address_t *, const xfrm_address_t *, u32);
|
|
int (*get_saddr)(struct net *, int, xfrm_address_t *, xfrm_address_t *, u32);
|
|
int (*fill_dst)(struct xfrm_dst *, struct net_device *, const struct flowi *);
|
|
struct dst_entry * (*blackhole_route)(struct net *, struct dst_entry *);
|
|
};
|
|
|
|
enum fib6_walk_state {
|
|
FWS_L = 0,
|
|
FWS_R = 1,
|
|
FWS_C = 2,
|
|
FWS_U = 3,
|
|
};
|
|
|
|
enum {
|
|
FIB6_NO_SERNUM_CHANGE = 0,
|
|
};
|
|
|
|
struct fib6_walker {
|
|
struct list_head lh;
|
|
struct fib6_node *root;
|
|
struct fib6_node *node;
|
|
struct fib6_info *leaf;
|
|
enum fib6_walk_state state;
|
|
unsigned int skip;
|
|
unsigned int count;
|
|
unsigned int skip_in_node;
|
|
int (*func)(struct fib6_walker *);
|
|
void *args;
|
|
};
|
|
|
|
struct fib6_cleaner {
|
|
struct fib6_walker w;
|
|
struct net *net;
|
|
int (*func)(struct fib6_info *, void *);
|
|
int sernum;
|
|
void *arg;
|
|
bool skip_notify;
|
|
};
|
|
|
|
struct rtgenmsg {
|
|
unsigned char rtgen_family;
|
|
};
|
|
|
|
struct fib6_dump_arg {
|
|
struct net *net;
|
|
struct notifier_block *nb;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
struct lookup_args {
|
|
int offset;
|
|
const struct in6_addr *addr;
|
|
};
|
|
|
|
struct ipv6_route_iter {
|
|
struct seq_net_private p;
|
|
struct fib6_walker w;
|
|
loff_t skip;
|
|
struct fib6_table *tbl;
|
|
int sernum;
|
|
};
|
|
|
|
struct bpf_iter__ipv6_route {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct fib6_info *rt;
|
|
};
|
|
};
|
|
|
|
struct fib6_nh_pcpu_arg {
|
|
struct fib6_info *from;
|
|
const struct fib6_table *table;
|
|
};
|
|
|
|
struct calipso_map_cache_bkt {
|
|
spinlock_t lock;
|
|
u32 size;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct calipso_doi;
|
|
|
|
struct netlbl_calipso_ops {
|
|
int (*doi_add)(struct calipso_doi *, struct netlbl_audit *);
|
|
void (*doi_free)(struct calipso_doi *);
|
|
int (*doi_remove)(u32, struct netlbl_audit *);
|
|
struct calipso_doi * (*doi_getdef)(u32);
|
|
void (*doi_putdef)(struct calipso_doi *);
|
|
int (*doi_walk)(u32 *, int (*)(struct calipso_doi *, void *), void *);
|
|
int (*sock_getattr)(struct sock *, struct netlbl_lsm_secattr *);
|
|
int (*sock_setattr)(struct sock *, const struct calipso_doi *, const struct netlbl_lsm_secattr *);
|
|
void (*sock_delattr)(struct sock *);
|
|
int (*req_setattr)(struct request_sock *, const struct calipso_doi *, const struct netlbl_lsm_secattr *);
|
|
void (*req_delattr)(struct request_sock *);
|
|
int (*opt_getattr)(const unsigned char *, struct netlbl_lsm_secattr *);
|
|
unsigned char * (*skbuff_optptr)(const struct sk_buff *);
|
|
int (*skbuff_setattr)(struct sk_buff *, const struct calipso_doi *, const struct netlbl_lsm_secattr *);
|
|
int (*skbuff_delattr)(struct sk_buff *);
|
|
void (*cache_invalidate)();
|
|
int (*cache_add)(const unsigned char *, const struct netlbl_lsm_secattr *);
|
|
};
|
|
|
|
struct calipso_doi {
|
|
u32 doi;
|
|
u32 type;
|
|
refcount_t refcount;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct calipso_map_cache_entry {
|
|
u32 hash;
|
|
unsigned char *key;
|
|
size_t key_len;
|
|
struct netlbl_lsm_cache *lsm_data;
|
|
u32 activity;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum {
|
|
NLBL_CALIPSO_A_UNSPEC = 0,
|
|
NLBL_CALIPSO_A_DOI = 1,
|
|
NLBL_CALIPSO_A_MTYPE = 2,
|
|
__NLBL_CALIPSO_A_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
NLBL_CALIPSO_C_UNSPEC = 0,
|
|
NLBL_CALIPSO_C_ADD = 1,
|
|
NLBL_CALIPSO_C_REMOVE = 2,
|
|
NLBL_CALIPSO_C_LIST = 3,
|
|
NLBL_CALIPSO_C_LISTALL = 4,
|
|
__NLBL_CALIPSO_C_MAX = 5,
|
|
};
|
|
|
|
struct netlbl_domaddr_map;
|
|
|
|
struct cipso_v4_doi;
|
|
|
|
struct netlbl_dommap_def {
|
|
u32 type;
|
|
union {
|
|
struct netlbl_domaddr_map *addrsel;
|
|
struct cipso_v4_doi *cipso;
|
|
struct calipso_doi *calipso;
|
|
};
|
|
};
|
|
|
|
struct netlbl_dom_map {
|
|
char *domain;
|
|
u16 family;
|
|
struct netlbl_dommap_def def;
|
|
u32 valid;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct netlbl_domaddr_map {
|
|
struct list_head list4;
|
|
struct list_head list6;
|
|
};
|
|
|
|
struct netlbl_domhsh_walk_arg {
|
|
struct netlbl_audit *audit_info;
|
|
u32 doi;
|
|
};
|
|
|
|
struct netlbl_calipso_doiwalk_arg {
|
|
struct netlink_callback *nl_cb;
|
|
struct sk_buff *skb;
|
|
u32 seq;
|
|
};
|
|
|
|
enum ctx_state {
|
|
CONTEXT_DISABLED = -1,
|
|
CONTEXT_KERNEL = 0,
|
|
CONTEXT_IDLE = 1,
|
|
CONTEXT_USER = 2,
|
|
CONTEXT_GUEST = 3,
|
|
CONTEXT_MAX = 4,
|
|
};
|
|
|
|
struct warn_args;
|
|
|
|
typedef void (*btf_trace_emulate_vsyscall)(void *, int);
|
|
|
|
enum {
|
|
EMULATE = 0,
|
|
XONLY = 1,
|
|
NONE___2 = 2,
|
|
};
|
|
|
|
struct trace_event_raw_emulate_vsyscall {
|
|
struct trace_entry ent;
|
|
int nr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_emulate_vsyscall {};
|
|
|
|
enum {
|
|
HW_BREAKPOINT_LEN_1 = 1,
|
|
HW_BREAKPOINT_LEN_2 = 2,
|
|
HW_BREAKPOINT_LEN_3 = 3,
|
|
HW_BREAKPOINT_LEN_4 = 4,
|
|
HW_BREAKPOINT_LEN_5 = 5,
|
|
HW_BREAKPOINT_LEN_6 = 6,
|
|
HW_BREAKPOINT_LEN_7 = 7,
|
|
HW_BREAKPOINT_LEN_8 = 8,
|
|
};
|
|
|
|
struct cpuid_regs_done {
|
|
struct cpuid_regs regs;
|
|
struct completion done;
|
|
};
|
|
|
|
enum {
|
|
PER_LINUX = 0,
|
|
PER_LINUX_32BIT = 8388608,
|
|
PER_LINUX_FDPIC = 524288,
|
|
PER_SVR4 = 68157441,
|
|
PER_SVR3 = 83886082,
|
|
PER_SCOSVR3 = 117440515,
|
|
PER_OSR5 = 100663299,
|
|
PER_WYSEV386 = 83886084,
|
|
PER_ISCR4 = 67108869,
|
|
PER_BSD = 6,
|
|
PER_SUNOS = 67108870,
|
|
PER_XENIX = 83886087,
|
|
PER_LINUX32 = 8,
|
|
PER_LINUX32_3GB = 134217736,
|
|
PER_IRIX32 = 67108873,
|
|
PER_IRIXN32 = 67108874,
|
|
PER_IRIX64 = 67108875,
|
|
PER_RISCOS = 12,
|
|
PER_SOLARIS = 67108877,
|
|
PER_UW7 = 68157454,
|
|
PER_OSF4 = 15,
|
|
PER_HPUX = 16,
|
|
PER_MASK = 255,
|
|
};
|
|
|
|
enum uts_proc {
|
|
UTS_PROC_ARCH = 0,
|
|
UTS_PROC_OSTYPE = 1,
|
|
UTS_PROC_OSRELEASE = 2,
|
|
UTS_PROC_VERSION = 3,
|
|
UTS_PROC_HOSTNAME = 4,
|
|
UTS_PROC_DOMAINNAME = 5,
|
|
};
|
|
|
|
struct tms {
|
|
__kernel_clock_t tms_utime;
|
|
__kernel_clock_t tms_stime;
|
|
__kernel_clock_t tms_cutime;
|
|
__kernel_clock_t tms_cstime;
|
|
};
|
|
|
|
struct compat_tms {
|
|
compat_clock_t tms_utime;
|
|
compat_clock_t tms_stime;
|
|
compat_clock_t tms_cutime;
|
|
compat_clock_t tms_cstime;
|
|
};
|
|
|
|
struct old_utsname {
|
|
char sysname[65];
|
|
char nodename[65];
|
|
char release[65];
|
|
char version[65];
|
|
char machine[65];
|
|
};
|
|
|
|
struct oldold_utsname {
|
|
char sysname[9];
|
|
char nodename[9];
|
|
char release[9];
|
|
char version[9];
|
|
char machine[9];
|
|
};
|
|
|
|
struct compat_rlimit {
|
|
compat_ulong_t rlim_cur;
|
|
compat_ulong_t rlim_max;
|
|
};
|
|
|
|
struct rlimit64 {
|
|
__u64 rlim_cur;
|
|
__u64 rlim_max;
|
|
};
|
|
|
|
struct rusage {
|
|
struct __kernel_old_timeval ru_utime;
|
|
struct __kernel_old_timeval ru_stime;
|
|
__kernel_long_t ru_maxrss;
|
|
__kernel_long_t ru_ixrss;
|
|
__kernel_long_t ru_idrss;
|
|
__kernel_long_t ru_isrss;
|
|
__kernel_long_t ru_minflt;
|
|
__kernel_long_t ru_majflt;
|
|
__kernel_long_t ru_nswap;
|
|
__kernel_long_t ru_inblock;
|
|
__kernel_long_t ru_oublock;
|
|
__kernel_long_t ru_msgsnd;
|
|
__kernel_long_t ru_msgrcv;
|
|
__kernel_long_t ru_nsignals;
|
|
__kernel_long_t ru_nvcsw;
|
|
__kernel_long_t ru_nivcsw;
|
|
};
|
|
|
|
struct compat_rusage {
|
|
struct old_timeval32 ru_utime;
|
|
struct old_timeval32 ru_stime;
|
|
compat_long_t ru_maxrss;
|
|
compat_long_t ru_ixrss;
|
|
compat_long_t ru_idrss;
|
|
compat_long_t ru_isrss;
|
|
compat_long_t ru_minflt;
|
|
compat_long_t ru_majflt;
|
|
compat_long_t ru_nswap;
|
|
compat_long_t ru_inblock;
|
|
compat_long_t ru_oublock;
|
|
compat_long_t ru_msgsnd;
|
|
compat_long_t ru_msgrcv;
|
|
compat_long_t ru_nsignals;
|
|
compat_long_t ru_nvcsw;
|
|
compat_long_t ru_nivcsw;
|
|
};
|
|
|
|
struct getcpu_cache {
|
|
unsigned long blob[16];
|
|
};
|
|
|
|
struct compat_sysinfo {
|
|
s32 uptime;
|
|
u32 loads[3];
|
|
u32 totalram;
|
|
u32 freeram;
|
|
u32 sharedram;
|
|
u32 bufferram;
|
|
u32 totalswap;
|
|
u32 freeswap;
|
|
u16 procs;
|
|
u16 pad;
|
|
u32 totalhigh;
|
|
u32 freehigh;
|
|
u32 mem_unit;
|
|
char _f[8];
|
|
};
|
|
|
|
struct prctl_mm_map {
|
|
__u64 start_code;
|
|
__u64 end_code;
|
|
__u64 start_data;
|
|
__u64 end_data;
|
|
__u64 start_brk;
|
|
__u64 brk;
|
|
__u64 start_stack;
|
|
__u64 arg_start;
|
|
__u64 arg_end;
|
|
__u64 env_start;
|
|
__u64 env_end;
|
|
__u64 *auxv;
|
|
__u32 auxv_size;
|
|
__u32 exe_fd;
|
|
};
|
|
|
|
typedef int (*proc_visitor)(struct task_struct *, void *);
|
|
|
|
struct cfd_percpu;
|
|
|
|
struct call_function_data {
|
|
struct cfd_percpu __attribute__((btf_type_tag("percpu"))) *pcpu;
|
|
cpumask_var_t cpumask;
|
|
cpumask_var_t cpumask_ipi;
|
|
};
|
|
|
|
struct cfd_percpu {
|
|
call_single_data_t csd;
|
|
};
|
|
|
|
struct smp_call_on_cpu_struct {
|
|
struct work_struct work;
|
|
struct completion done;
|
|
int (*func)(void *);
|
|
void *data;
|
|
int ret;
|
|
int cpu;
|
|
};
|
|
|
|
struct ftrace_graph_ret;
|
|
|
|
typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *);
|
|
|
|
struct ftrace_graph_ret {
|
|
unsigned long func;
|
|
int depth;
|
|
unsigned int overrun;
|
|
unsigned long long calltime;
|
|
unsigned long long rettime;
|
|
};
|
|
|
|
struct ftrace_graph_ent;
|
|
|
|
typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *);
|
|
|
|
struct ftrace_graph_ent {
|
|
unsigned long func;
|
|
int depth;
|
|
} __attribute__((packed));
|
|
|
|
struct fgraph_ops {
|
|
trace_func_graph_ent_t entryfunc;
|
|
trace_func_graph_ret_t retfunc;
|
|
};
|
|
|
|
struct bpf_bloom_filter {
|
|
struct bpf_map map;
|
|
u32 bitset_mask;
|
|
u32 hash_seed;
|
|
u32 aligned_u32_count;
|
|
u32 nr_hash_funcs;
|
|
unsigned long bitset[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
enum {
|
|
BPF_F_SKIP_FIELD_MASK = 255,
|
|
BPF_F_USER_STACK = 256,
|
|
BPF_F_FAST_STACK_CMP = 512,
|
|
BPF_F_REUSE_STACKID = 1024,
|
|
BPF_F_USER_BUILD_ID = 2048,
|
|
};
|
|
|
|
enum bpf_stack_build_id_status {
|
|
BPF_STACK_BUILD_ID_EMPTY = 0,
|
|
BPF_STACK_BUILD_ID_VALID = 1,
|
|
BPF_STACK_BUILD_ID_IP = 2,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64);
|
|
|
|
struct bpf_perf_event_data_kern;
|
|
|
|
typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64);
|
|
|
|
typedef struct pt_regs bpf_user_pt_regs_t;
|
|
|
|
struct bpf_perf_event_data_kern {
|
|
bpf_user_pt_regs_t *regs;
|
|
struct perf_sample_data *data;
|
|
struct perf_event *event;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64);
|
|
|
|
struct pcpu_freelist_node;
|
|
|
|
struct pcpu_freelist_head {
|
|
struct pcpu_freelist_node *first;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
struct pcpu_freelist {
|
|
struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist;
|
|
struct pcpu_freelist_head extralist;
|
|
};
|
|
|
|
struct stack_map_bucket;
|
|
|
|
struct bpf_stack_map {
|
|
struct bpf_map map;
|
|
void *elems;
|
|
struct pcpu_freelist freelist;
|
|
u32 n_buckets;
|
|
struct stack_map_bucket *buckets[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct pcpu_freelist_node {
|
|
struct pcpu_freelist_node *next;
|
|
};
|
|
|
|
struct stack_map_bucket {
|
|
struct pcpu_freelist_node fnode;
|
|
u32 hash;
|
|
u32 nr;
|
|
u64 data[0];
|
|
};
|
|
|
|
struct bpf_stack_build_id {
|
|
__s32 status;
|
|
unsigned char build_id[20];
|
|
union {
|
|
__u64 offset;
|
|
__u64 ip;
|
|
};
|
|
};
|
|
|
|
struct mmap_unlock_irq_work {
|
|
struct irq_work irq_work;
|
|
struct mm_struct *mm;
|
|
};
|
|
|
|
typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *);
|
|
|
|
typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *);
|
|
|
|
typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t);
|
|
|
|
typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t);
|
|
|
|
enum behavior {
|
|
EXCLUSIVE = 0,
|
|
SHARED = 1,
|
|
DROP = 2,
|
|
};
|
|
|
|
struct trace_event_raw_mm_filemap_op_page_cache {
|
|
struct trace_entry ent;
|
|
unsigned long pfn;
|
|
unsigned long i_ino;
|
|
unsigned long index;
|
|
dev_t s_dev;
|
|
unsigned char order;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_filemap_set_wb_err {
|
|
struct trace_entry ent;
|
|
unsigned long i_ino;
|
|
dev_t s_dev;
|
|
errseq_t errseq;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_file_check_and_advance_wb_err {
|
|
struct trace_entry ent;
|
|
struct file *file;
|
|
unsigned long i_ino;
|
|
dev_t s_dev;
|
|
errseq_t old;
|
|
errseq_t new;
|
|
char __data[0];
|
|
};
|
|
|
|
struct wait_page_key {
|
|
struct folio *folio;
|
|
int bit_nr;
|
|
int page_match;
|
|
};
|
|
|
|
struct trace_event_data_offsets_mm_filemap_op_page_cache {};
|
|
|
|
struct trace_event_data_offsets_filemap_set_wb_err {};
|
|
|
|
struct trace_event_data_offsets_file_check_and_advance_wb_err {};
|
|
|
|
struct mmp_struct {
|
|
__le32 mmp_magic;
|
|
__le32 mmp_seq;
|
|
__le64 mmp_time;
|
|
char mmp_nodename[64];
|
|
char mmp_bdevname[32];
|
|
__le16 mmp_check_interval;
|
|
__le16 mmp_pad1;
|
|
__le32 mmp_pad2[226];
|
|
__le32 mmp_checksum;
|
|
};
|
|
|
|
struct fat_floppy_defaults {
|
|
unsigned int nr_sectors;
|
|
unsigned int sec_per_clus;
|
|
unsigned int dir_entries;
|
|
unsigned int media;
|
|
unsigned int fat_length;
|
|
};
|
|
|
|
enum {
|
|
DIO_LOCKING = 1,
|
|
DIO_SKIP_HOLES = 2,
|
|
};
|
|
|
|
enum {
|
|
Opt_check_n = 0,
|
|
Opt_check_r = 1,
|
|
Opt_check_s = 2,
|
|
Opt_uid___4 = 3,
|
|
Opt_gid___5 = 4,
|
|
Opt_umask = 5,
|
|
Opt_dmask = 6,
|
|
Opt_fmask = 7,
|
|
Opt_allow_utime = 8,
|
|
Opt_codepage = 9,
|
|
Opt_usefree = 10,
|
|
Opt_nocase = 11,
|
|
Opt_quiet = 12,
|
|
Opt_showexec = 13,
|
|
Opt_debug = 14,
|
|
Opt_immutable = 15,
|
|
Opt_dots = 16,
|
|
Opt_nodots = 17,
|
|
Opt_charset = 18,
|
|
Opt_shortname_lower = 19,
|
|
Opt_shortname_win95 = 20,
|
|
Opt_shortname_winnt = 21,
|
|
Opt_shortname_mixed = 22,
|
|
Opt_utf8_no = 23,
|
|
Opt_utf8_yes = 24,
|
|
Opt_uni_xl_no = 25,
|
|
Opt_uni_xl_yes = 26,
|
|
Opt_nonumtail_no = 27,
|
|
Opt_nonumtail_yes = 28,
|
|
Opt_obsolete = 29,
|
|
Opt_flush = 30,
|
|
Opt_tz_utc = 31,
|
|
Opt_rodir = 32,
|
|
Opt_err_cont = 33,
|
|
Opt_err_panic = 34,
|
|
Opt_err_ro = 35,
|
|
Opt_discard = 36,
|
|
Opt_nfs = 37,
|
|
Opt_time_offset = 38,
|
|
Opt_nfs_stale_rw = 39,
|
|
Opt_nfs_nostale_ro = 40,
|
|
Opt_err___4 = 41,
|
|
Opt_dos1xfloppy = 42,
|
|
};
|
|
|
|
struct fat_bios_param_block {
|
|
u16 fat_sector_size;
|
|
u8 fat_sec_per_clus;
|
|
u16 fat_reserved;
|
|
u8 fat_fats;
|
|
u16 fat_dir_entries;
|
|
u16 fat_sectors;
|
|
u16 fat_fat_length;
|
|
u32 fat_total_sect;
|
|
u8 fat16_state;
|
|
u32 fat16_vol_id;
|
|
u32 fat32_length;
|
|
u32 fat32_root_cluster;
|
|
u16 fat32_info_sector;
|
|
u8 fat32_state;
|
|
u32 fat32_vol_id;
|
|
};
|
|
|
|
typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *);
|
|
|
|
typedef void dio_submit_t(struct bio *, struct inode *, loff_t);
|
|
|
|
enum nfs3_ftype {
|
|
NF3NON = 0,
|
|
NF3REG = 1,
|
|
NF3DIR = 2,
|
|
NF3BLK = 3,
|
|
NF3CHR = 4,
|
|
NF3LNK = 5,
|
|
NF3SOCK = 6,
|
|
NF3FIFO = 7,
|
|
NF3BAD = 8,
|
|
};
|
|
|
|
enum nfs3_createmode {
|
|
NFS3_CREATE_UNCHECKED = 0,
|
|
NFS3_CREATE_GUARDED = 1,
|
|
NFS3_CREATE_EXCLUSIVE = 2,
|
|
};
|
|
|
|
struct nfs3_sattrargs {
|
|
struct nfs_fh *fh;
|
|
struct iattr *sattr;
|
|
unsigned int guard;
|
|
struct timespec64 guardtime;
|
|
};
|
|
|
|
struct nfs3_accessargs {
|
|
struct nfs_fh *fh;
|
|
__u32 access;
|
|
};
|
|
|
|
struct nfs3_createargs {
|
|
struct nfs_fh *fh;
|
|
const char *name;
|
|
unsigned int len;
|
|
struct iattr *sattr;
|
|
enum nfs3_createmode createmode;
|
|
__be32 verifier[2];
|
|
};
|
|
|
|
struct nfs3_diropres {
|
|
struct nfs_fattr *dir_attr;
|
|
struct nfs_fh *fh;
|
|
struct nfs_fattr *fattr;
|
|
};
|
|
|
|
struct nfs3_symlinkargs {
|
|
struct nfs_fh *fromfh;
|
|
const char *fromname;
|
|
unsigned int fromlen;
|
|
struct page **pages;
|
|
unsigned int pathlen;
|
|
struct iattr *sattr;
|
|
};
|
|
|
|
struct nfs3_mknodargs {
|
|
struct nfs_fh *fh;
|
|
const char *name;
|
|
unsigned int len;
|
|
enum nfs3_ftype type;
|
|
struct iattr *sattr;
|
|
dev_t rdev;
|
|
};
|
|
|
|
struct nfs3_readdirargs {
|
|
struct nfs_fh *fh;
|
|
__u64 cookie;
|
|
__be32 verf[2];
|
|
bool plus;
|
|
unsigned int count;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct nfs3_readdirres {
|
|
struct nfs_fattr *dir_attr;
|
|
__be32 *verf;
|
|
bool plus;
|
|
};
|
|
|
|
struct nfs3_diropargs {
|
|
struct nfs_fh *fh;
|
|
const char *name;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct nfs3_accessres {
|
|
struct nfs_fattr *fattr;
|
|
__u32 access;
|
|
};
|
|
|
|
struct nfs3_readlinkargs {
|
|
struct nfs_fh *fh;
|
|
unsigned int pgbase;
|
|
unsigned int pglen;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct nfs3_mkdirargs {
|
|
struct nfs_fh *fh;
|
|
const char *name;
|
|
unsigned int len;
|
|
struct iattr *sattr;
|
|
};
|
|
|
|
struct nfs3_linkargs {
|
|
struct nfs_fh *fromfh;
|
|
struct nfs_fh *tofh;
|
|
const char *toname;
|
|
unsigned int tolen;
|
|
};
|
|
|
|
struct nfs3_linkres {
|
|
struct nfs_fattr *dir_attr;
|
|
struct nfs_fattr *fattr;
|
|
};
|
|
|
|
struct getdents_callback {
|
|
struct dir_context ctx;
|
|
char *name;
|
|
u64 ino;
|
|
int found;
|
|
int sequence;
|
|
};
|
|
|
|
struct security_hook_heads {
|
|
struct hlist_head binder_set_context_mgr;
|
|
struct hlist_head binder_transaction;
|
|
struct hlist_head binder_transfer_binder;
|
|
struct hlist_head binder_transfer_file;
|
|
struct hlist_head ptrace_access_check;
|
|
struct hlist_head ptrace_traceme;
|
|
struct hlist_head capget;
|
|
struct hlist_head capset;
|
|
struct hlist_head capable;
|
|
struct hlist_head quotactl;
|
|
struct hlist_head quota_on;
|
|
struct hlist_head syslog;
|
|
struct hlist_head settime;
|
|
struct hlist_head vm_enough_memory;
|
|
struct hlist_head bprm_creds_for_exec;
|
|
struct hlist_head bprm_creds_from_file;
|
|
struct hlist_head bprm_check_security;
|
|
struct hlist_head bprm_committing_creds;
|
|
struct hlist_head bprm_committed_creds;
|
|
struct hlist_head fs_context_dup;
|
|
struct hlist_head fs_context_parse_param;
|
|
struct hlist_head sb_alloc_security;
|
|
struct hlist_head sb_delete;
|
|
struct hlist_head sb_free_security;
|
|
struct hlist_head sb_free_mnt_opts;
|
|
struct hlist_head sb_eat_lsm_opts;
|
|
struct hlist_head sb_mnt_opts_compat;
|
|
struct hlist_head sb_remount;
|
|
struct hlist_head sb_kern_mount;
|
|
struct hlist_head sb_show_options;
|
|
struct hlist_head sb_statfs;
|
|
struct hlist_head sb_mount;
|
|
struct hlist_head sb_umount;
|
|
struct hlist_head sb_pivotroot;
|
|
struct hlist_head sb_set_mnt_opts;
|
|
struct hlist_head sb_clone_mnt_opts;
|
|
struct hlist_head move_mount;
|
|
struct hlist_head dentry_init_security;
|
|
struct hlist_head dentry_create_files_as;
|
|
struct hlist_head path_notify;
|
|
struct hlist_head inode_alloc_security;
|
|
struct hlist_head inode_free_security;
|
|
struct hlist_head inode_init_security;
|
|
struct hlist_head inode_init_security_anon;
|
|
struct hlist_head inode_create;
|
|
struct hlist_head inode_link;
|
|
struct hlist_head inode_unlink;
|
|
struct hlist_head inode_symlink;
|
|
struct hlist_head inode_mkdir;
|
|
struct hlist_head inode_rmdir;
|
|
struct hlist_head inode_mknod;
|
|
struct hlist_head inode_rename;
|
|
struct hlist_head inode_readlink;
|
|
struct hlist_head inode_follow_link;
|
|
struct hlist_head inode_permission;
|
|
struct hlist_head inode_setattr;
|
|
struct hlist_head inode_getattr;
|
|
struct hlist_head inode_setxattr;
|
|
struct hlist_head inode_post_setxattr;
|
|
struct hlist_head inode_getxattr;
|
|
struct hlist_head inode_listxattr;
|
|
struct hlist_head inode_removexattr;
|
|
struct hlist_head inode_set_acl;
|
|
struct hlist_head inode_get_acl;
|
|
struct hlist_head inode_remove_acl;
|
|
struct hlist_head inode_need_killpriv;
|
|
struct hlist_head inode_killpriv;
|
|
struct hlist_head inode_getsecurity;
|
|
struct hlist_head inode_setsecurity;
|
|
struct hlist_head inode_listsecurity;
|
|
struct hlist_head inode_getsecid;
|
|
struct hlist_head inode_copy_up;
|
|
struct hlist_head inode_copy_up_xattr;
|
|
struct hlist_head kernfs_init_security;
|
|
struct hlist_head file_permission;
|
|
struct hlist_head file_alloc_security;
|
|
struct hlist_head file_free_security;
|
|
struct hlist_head file_ioctl;
|
|
struct hlist_head mmap_addr;
|
|
struct hlist_head mmap_file;
|
|
struct hlist_head file_mprotect;
|
|
struct hlist_head file_lock;
|
|
struct hlist_head file_fcntl;
|
|
struct hlist_head file_set_fowner;
|
|
struct hlist_head file_send_sigiotask;
|
|
struct hlist_head file_receive;
|
|
struct hlist_head file_open;
|
|
struct hlist_head file_truncate;
|
|
struct hlist_head task_alloc;
|
|
struct hlist_head task_free;
|
|
struct hlist_head cred_alloc_blank;
|
|
struct hlist_head cred_free;
|
|
struct hlist_head cred_prepare;
|
|
struct hlist_head cred_transfer;
|
|
struct hlist_head cred_getsecid;
|
|
struct hlist_head kernel_act_as;
|
|
struct hlist_head kernel_create_files_as;
|
|
struct hlist_head kernel_module_request;
|
|
struct hlist_head kernel_load_data;
|
|
struct hlist_head kernel_post_load_data;
|
|
struct hlist_head kernel_read_file;
|
|
struct hlist_head kernel_post_read_file;
|
|
struct hlist_head task_fix_setuid;
|
|
struct hlist_head task_fix_setgid;
|
|
struct hlist_head task_fix_setgroups;
|
|
struct hlist_head task_setpgid;
|
|
struct hlist_head task_getpgid;
|
|
struct hlist_head task_getsid;
|
|
struct hlist_head current_getsecid_subj;
|
|
struct hlist_head task_getsecid_obj;
|
|
struct hlist_head task_setnice;
|
|
struct hlist_head task_setioprio;
|
|
struct hlist_head task_getioprio;
|
|
struct hlist_head task_prlimit;
|
|
struct hlist_head task_setrlimit;
|
|
struct hlist_head task_setscheduler;
|
|
struct hlist_head task_getscheduler;
|
|
struct hlist_head task_movememory;
|
|
struct hlist_head task_kill;
|
|
struct hlist_head task_prctl;
|
|
struct hlist_head task_to_inode;
|
|
struct hlist_head userns_create;
|
|
struct hlist_head ipc_permission;
|
|
struct hlist_head ipc_getsecid;
|
|
struct hlist_head msg_msg_alloc_security;
|
|
struct hlist_head msg_msg_free_security;
|
|
struct hlist_head msg_queue_alloc_security;
|
|
struct hlist_head msg_queue_free_security;
|
|
struct hlist_head msg_queue_associate;
|
|
struct hlist_head msg_queue_msgctl;
|
|
struct hlist_head msg_queue_msgsnd;
|
|
struct hlist_head msg_queue_msgrcv;
|
|
struct hlist_head shm_alloc_security;
|
|
struct hlist_head shm_free_security;
|
|
struct hlist_head shm_associate;
|
|
struct hlist_head shm_shmctl;
|
|
struct hlist_head shm_shmat;
|
|
struct hlist_head sem_alloc_security;
|
|
struct hlist_head sem_free_security;
|
|
struct hlist_head sem_associate;
|
|
struct hlist_head sem_semctl;
|
|
struct hlist_head sem_semop;
|
|
struct hlist_head netlink_send;
|
|
struct hlist_head d_instantiate;
|
|
struct hlist_head getprocattr;
|
|
struct hlist_head setprocattr;
|
|
struct hlist_head ismaclabel;
|
|
struct hlist_head secid_to_secctx;
|
|
struct hlist_head secctx_to_secid;
|
|
struct hlist_head release_secctx;
|
|
struct hlist_head inode_invalidate_secctx;
|
|
struct hlist_head inode_notifysecctx;
|
|
struct hlist_head inode_setsecctx;
|
|
struct hlist_head inode_getsecctx;
|
|
struct hlist_head unix_stream_connect;
|
|
struct hlist_head unix_may_send;
|
|
struct hlist_head socket_create;
|
|
struct hlist_head socket_post_create;
|
|
struct hlist_head socket_socketpair;
|
|
struct hlist_head socket_bind;
|
|
struct hlist_head socket_connect;
|
|
struct hlist_head socket_listen;
|
|
struct hlist_head socket_accept;
|
|
struct hlist_head socket_sendmsg;
|
|
struct hlist_head socket_recvmsg;
|
|
struct hlist_head socket_getsockname;
|
|
struct hlist_head socket_getpeername;
|
|
struct hlist_head socket_getsockopt;
|
|
struct hlist_head socket_setsockopt;
|
|
struct hlist_head socket_shutdown;
|
|
struct hlist_head socket_sock_rcv_skb;
|
|
struct hlist_head socket_getpeersec_stream;
|
|
struct hlist_head socket_getpeersec_dgram;
|
|
struct hlist_head sk_alloc_security;
|
|
struct hlist_head sk_free_security;
|
|
struct hlist_head sk_clone_security;
|
|
struct hlist_head sk_getsecid;
|
|
struct hlist_head sock_graft;
|
|
struct hlist_head inet_conn_request;
|
|
struct hlist_head inet_csk_clone;
|
|
struct hlist_head inet_conn_established;
|
|
struct hlist_head secmark_relabel_packet;
|
|
struct hlist_head secmark_refcount_inc;
|
|
struct hlist_head secmark_refcount_dec;
|
|
struct hlist_head req_classify_flow;
|
|
struct hlist_head tun_dev_alloc_security;
|
|
struct hlist_head tun_dev_free_security;
|
|
struct hlist_head tun_dev_create;
|
|
struct hlist_head tun_dev_attach_queue;
|
|
struct hlist_head tun_dev_attach;
|
|
struct hlist_head tun_dev_open;
|
|
struct hlist_head sctp_assoc_request;
|
|
struct hlist_head sctp_bind_connect;
|
|
struct hlist_head sctp_sk_clone;
|
|
struct hlist_head sctp_assoc_established;
|
|
struct hlist_head key_alloc;
|
|
struct hlist_head key_free;
|
|
struct hlist_head key_permission;
|
|
struct hlist_head key_getsecurity;
|
|
struct hlist_head audit_rule_init;
|
|
struct hlist_head audit_rule_known;
|
|
struct hlist_head audit_rule_match;
|
|
struct hlist_head audit_rule_free;
|
|
struct hlist_head bpf;
|
|
struct hlist_head bpf_map;
|
|
struct hlist_head bpf_prog;
|
|
struct hlist_head bpf_map_alloc_security;
|
|
struct hlist_head bpf_map_free_security;
|
|
struct hlist_head bpf_prog_alloc_security;
|
|
struct hlist_head bpf_prog_free_security;
|
|
struct hlist_head locked_down;
|
|
struct hlist_head perf_event_open;
|
|
struct hlist_head perf_event_alloc;
|
|
struct hlist_head perf_event_free;
|
|
struct hlist_head perf_event_read;
|
|
struct hlist_head perf_event_write;
|
|
struct hlist_head uring_override_creds;
|
|
struct hlist_head uring_sqpoll;
|
|
struct hlist_head uring_cmd;
|
|
};
|
|
|
|
enum lsm_order {
|
|
LSM_ORDER_FIRST = -1,
|
|
LSM_ORDER_MUTABLE = 0,
|
|
};
|
|
|
|
struct lsm_blob_sizes;
|
|
|
|
struct lsm_info {
|
|
const char *name;
|
|
enum lsm_order order;
|
|
unsigned long flags;
|
|
int *enabled;
|
|
int (*init)();
|
|
struct lsm_blob_sizes *blobs;
|
|
};
|
|
|
|
struct lsm_blob_sizes {
|
|
int lbs_cred;
|
|
int lbs_file;
|
|
int lbs_inode;
|
|
int lbs_superblock;
|
|
int lbs_ipc;
|
|
int lbs_msg_msg;
|
|
int lbs_task;
|
|
};
|
|
|
|
struct sctp_association;
|
|
|
|
union security_list_options {
|
|
int (*binder_set_context_mgr)(const struct cred *);
|
|
int (*binder_transaction)(const struct cred *, const struct cred *);
|
|
int (*binder_transfer_binder)(const struct cred *, const struct cred *);
|
|
int (*binder_transfer_file)(const struct cred *, const struct cred *, struct file *);
|
|
int (*ptrace_access_check)(struct task_struct *, unsigned int);
|
|
int (*ptrace_traceme)(struct task_struct *);
|
|
int (*capget)(struct task_struct *, kernel_cap_t *, kernel_cap_t *, kernel_cap_t *);
|
|
int (*capset)(struct cred *, const struct cred *, const kernel_cap_t *, const kernel_cap_t *, const kernel_cap_t *);
|
|
int (*capable)(const struct cred *, struct user_namespace *, int, unsigned int);
|
|
int (*quotactl)(int, int, int, struct super_block *);
|
|
int (*quota_on)(struct dentry *);
|
|
int (*syslog)(int);
|
|
int (*settime)(const struct timespec64 *, const struct timezone *);
|
|
int (*vm_enough_memory)(struct mm_struct *, long);
|
|
int (*bprm_creds_for_exec)(struct linux_binprm *);
|
|
int (*bprm_creds_from_file)(struct linux_binprm *, struct file *);
|
|
int (*bprm_check_security)(struct linux_binprm *);
|
|
void (*bprm_committing_creds)(struct linux_binprm *);
|
|
void (*bprm_committed_creds)(struct linux_binprm *);
|
|
int (*fs_context_dup)(struct fs_context *, struct fs_context *);
|
|
int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *);
|
|
int (*sb_alloc_security)(struct super_block *);
|
|
void (*sb_delete)(struct super_block *);
|
|
void (*sb_free_security)(struct super_block *);
|
|
void (*sb_free_mnt_opts)(void *);
|
|
int (*sb_eat_lsm_opts)(char *, void **);
|
|
int (*sb_mnt_opts_compat)(struct super_block *, void *);
|
|
int (*sb_remount)(struct super_block *, void *);
|
|
int (*sb_kern_mount)(struct super_block *);
|
|
int (*sb_show_options)(struct seq_file *, struct super_block *);
|
|
int (*sb_statfs)(struct dentry *);
|
|
int (*sb_mount)(const char *, const struct path *, const char *, unsigned long, void *);
|
|
int (*sb_umount)(struct vfsmount *, int);
|
|
int (*sb_pivotroot)(const struct path *, const struct path *);
|
|
int (*sb_set_mnt_opts)(struct super_block *, void *, unsigned long, unsigned long *);
|
|
int (*sb_clone_mnt_opts)(const struct super_block *, struct super_block *, unsigned long, unsigned long *);
|
|
int (*move_mount)(const struct path *, const struct path *);
|
|
int (*dentry_init_security)(struct dentry *, int, const struct qstr *, const char **, void **, u32 *);
|
|
int (*dentry_create_files_as)(struct dentry *, int, struct qstr *, const struct cred *, struct cred *);
|
|
int (*path_notify)(const struct path *, u64, unsigned int);
|
|
int (*inode_alloc_security)(struct inode *);
|
|
void (*inode_free_security)(struct inode *);
|
|
int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, const char **, void **, size_t *);
|
|
int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *);
|
|
int (*inode_create)(struct inode *, struct dentry *, umode_t);
|
|
int (*inode_link)(struct dentry *, struct inode *, struct dentry *);
|
|
int (*inode_unlink)(struct inode *, struct dentry *);
|
|
int (*inode_symlink)(struct inode *, struct dentry *, const char *);
|
|
int (*inode_mkdir)(struct inode *, struct dentry *, umode_t);
|
|
int (*inode_rmdir)(struct inode *, struct dentry *);
|
|
int (*inode_mknod)(struct inode *, struct dentry *, umode_t, dev_t);
|
|
int (*inode_rename)(struct inode *, struct dentry *, struct inode *, struct dentry *);
|
|
int (*inode_readlink)(struct dentry *);
|
|
int (*inode_follow_link)(struct dentry *, struct inode *, bool);
|
|
int (*inode_permission)(struct inode *, int);
|
|
int (*inode_setattr)(struct dentry *, struct iattr *);
|
|
int (*inode_getattr)(const struct path *);
|
|
int (*inode_setxattr)(struct mnt_idmap *, struct dentry *, const char *, const void *, size_t, int);
|
|
void (*inode_post_setxattr)(struct dentry *, const char *, const void *, size_t, int);
|
|
int (*inode_getxattr)(struct dentry *, const char *);
|
|
int (*inode_listxattr)(struct dentry *);
|
|
int (*inode_removexattr)(struct mnt_idmap *, struct dentry *, const char *);
|
|
int (*inode_set_acl)(struct mnt_idmap *, struct dentry *, const char *, struct posix_acl *);
|
|
int (*inode_get_acl)(struct mnt_idmap *, struct dentry *, const char *);
|
|
int (*inode_remove_acl)(struct mnt_idmap *, struct dentry *, const char *);
|
|
int (*inode_need_killpriv)(struct dentry *);
|
|
int (*inode_killpriv)(struct mnt_idmap *, struct dentry *);
|
|
int (*inode_getsecurity)(struct mnt_idmap *, struct inode *, const char *, void **, bool);
|
|
int (*inode_setsecurity)(struct inode *, const char *, const void *, size_t, int);
|
|
int (*inode_listsecurity)(struct inode *, char *, size_t);
|
|
void (*inode_getsecid)(struct inode *, u32 *);
|
|
int (*inode_copy_up)(struct dentry *, struct cred **);
|
|
int (*inode_copy_up_xattr)(const char *);
|
|
int (*kernfs_init_security)(struct kernfs_node *, struct kernfs_node *);
|
|
int (*file_permission)(struct file *, int);
|
|
int (*file_alloc_security)(struct file *);
|
|
void (*file_free_security)(struct file *);
|
|
int (*file_ioctl)(struct file *, unsigned int, unsigned long);
|
|
int (*mmap_addr)(unsigned long);
|
|
int (*mmap_file)(struct file *, unsigned long, unsigned long, unsigned long);
|
|
int (*file_mprotect)(struct vm_area_struct *, unsigned long, unsigned long);
|
|
int (*file_lock)(struct file *, unsigned int);
|
|
int (*file_fcntl)(struct file *, unsigned int, unsigned long);
|
|
void (*file_set_fowner)(struct file *);
|
|
int (*file_send_sigiotask)(struct task_struct *, struct fown_struct *, int);
|
|
int (*file_receive)(struct file *);
|
|
int (*file_open)(struct file *);
|
|
int (*file_truncate)(struct file *);
|
|
int (*task_alloc)(struct task_struct *, unsigned long);
|
|
void (*task_free)(struct task_struct *);
|
|
int (*cred_alloc_blank)(struct cred *, gfp_t);
|
|
void (*cred_free)(struct cred *);
|
|
int (*cred_prepare)(struct cred *, const struct cred *, gfp_t);
|
|
void (*cred_transfer)(struct cred *, const struct cred *);
|
|
void (*cred_getsecid)(const struct cred *, u32 *);
|
|
int (*kernel_act_as)(struct cred *, u32);
|
|
int (*kernel_create_files_as)(struct cred *, struct inode *);
|
|
int (*kernel_module_request)(char *);
|
|
int (*kernel_load_data)(enum kernel_load_data_id, bool);
|
|
int (*kernel_post_load_data)(char *, loff_t, enum kernel_load_data_id, char *);
|
|
int (*kernel_read_file)(struct file *, enum kernel_read_file_id, bool);
|
|
int (*kernel_post_read_file)(struct file *, char *, loff_t, enum kernel_read_file_id);
|
|
int (*task_fix_setuid)(struct cred *, const struct cred *, int);
|
|
int (*task_fix_setgid)(struct cred *, const struct cred *, int);
|
|
int (*task_fix_setgroups)(struct cred *, const struct cred *);
|
|
int (*task_setpgid)(struct task_struct *, pid_t);
|
|
int (*task_getpgid)(struct task_struct *);
|
|
int (*task_getsid)(struct task_struct *);
|
|
void (*current_getsecid_subj)(u32 *);
|
|
void (*task_getsecid_obj)(struct task_struct *, u32 *);
|
|
int (*task_setnice)(struct task_struct *, int);
|
|
int (*task_setioprio)(struct task_struct *, int);
|
|
int (*task_getioprio)(struct task_struct *);
|
|
int (*task_prlimit)(const struct cred *, const struct cred *, unsigned int);
|
|
int (*task_setrlimit)(struct task_struct *, unsigned int, struct rlimit *);
|
|
int (*task_setscheduler)(struct task_struct *);
|
|
int (*task_getscheduler)(struct task_struct *);
|
|
int (*task_movememory)(struct task_struct *);
|
|
int (*task_kill)(struct task_struct *, struct kernel_siginfo *, int, const struct cred *);
|
|
int (*task_prctl)(int, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
void (*task_to_inode)(struct task_struct *, struct inode *);
|
|
int (*userns_create)(const struct cred *);
|
|
int (*ipc_permission)(struct kern_ipc_perm *, short);
|
|
void (*ipc_getsecid)(struct kern_ipc_perm *, u32 *);
|
|
int (*msg_msg_alloc_security)(struct msg_msg *);
|
|
void (*msg_msg_free_security)(struct msg_msg *);
|
|
int (*msg_queue_alloc_security)(struct kern_ipc_perm *);
|
|
void (*msg_queue_free_security)(struct kern_ipc_perm *);
|
|
int (*msg_queue_associate)(struct kern_ipc_perm *, int);
|
|
int (*msg_queue_msgctl)(struct kern_ipc_perm *, int);
|
|
int (*msg_queue_msgsnd)(struct kern_ipc_perm *, struct msg_msg *, int);
|
|
int (*msg_queue_msgrcv)(struct kern_ipc_perm *, struct msg_msg *, struct task_struct *, long, int);
|
|
int (*shm_alloc_security)(struct kern_ipc_perm *);
|
|
void (*shm_free_security)(struct kern_ipc_perm *);
|
|
int (*shm_associate)(struct kern_ipc_perm *, int);
|
|
int (*shm_shmctl)(struct kern_ipc_perm *, int);
|
|
int (*shm_shmat)(struct kern_ipc_perm *, char __attribute__((btf_type_tag("user"))) *, int);
|
|
int (*sem_alloc_security)(struct kern_ipc_perm *);
|
|
void (*sem_free_security)(struct kern_ipc_perm *);
|
|
int (*sem_associate)(struct kern_ipc_perm *, int);
|
|
int (*sem_semctl)(struct kern_ipc_perm *, int);
|
|
int (*sem_semop)(struct kern_ipc_perm *, struct sembuf *, unsigned int, int);
|
|
int (*netlink_send)(struct sock *, struct sk_buff *);
|
|
void (*d_instantiate)(struct dentry *, struct inode *);
|
|
int (*getprocattr)(struct task_struct *, const char *, char **);
|
|
int (*setprocattr)(const char *, void *, size_t);
|
|
int (*ismaclabel)(const char *);
|
|
int (*secid_to_secctx)(u32, char **, u32 *);
|
|
int (*secctx_to_secid)(const char *, u32, u32 *);
|
|
void (*release_secctx)(char *, u32);
|
|
void (*inode_invalidate_secctx)(struct inode *);
|
|
int (*inode_notifysecctx)(struct inode *, void *, u32);
|
|
int (*inode_setsecctx)(struct dentry *, void *, u32);
|
|
int (*inode_getsecctx)(struct inode *, void **, u32 *);
|
|
int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *);
|
|
int (*unix_may_send)(struct socket *, struct socket *);
|
|
int (*socket_create)(int, int, int, int);
|
|
int (*socket_post_create)(struct socket *, int, int, int, int);
|
|
int (*socket_socketpair)(struct socket *, struct socket *);
|
|
int (*socket_bind)(struct socket *, struct sockaddr *, int);
|
|
int (*socket_connect)(struct socket *, struct sockaddr *, int);
|
|
int (*socket_listen)(struct socket *, int);
|
|
int (*socket_accept)(struct socket *, struct socket *);
|
|
int (*socket_sendmsg)(struct socket *, struct msghdr *, int);
|
|
int (*socket_recvmsg)(struct socket *, struct msghdr *, int, int);
|
|
int (*socket_getsockname)(struct socket *);
|
|
int (*socket_getpeername)(struct socket *);
|
|
int (*socket_getsockopt)(struct socket *, int, int);
|
|
int (*socket_setsockopt)(struct socket *, int, int);
|
|
int (*socket_shutdown)(struct socket *, int);
|
|
int (*socket_sock_rcv_skb)(struct sock *, struct sk_buff *);
|
|
int (*socket_getpeersec_stream)(struct socket *, sockptr_t, sockptr_t, unsigned int);
|
|
int (*socket_getpeersec_dgram)(struct socket *, struct sk_buff *, u32 *);
|
|
int (*sk_alloc_security)(struct sock *, int, gfp_t);
|
|
void (*sk_free_security)(struct sock *);
|
|
void (*sk_clone_security)(const struct sock *, struct sock *);
|
|
void (*sk_getsecid)(struct sock *, u32 *);
|
|
void (*sock_graft)(struct sock *, struct socket *);
|
|
int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *);
|
|
void (*inet_csk_clone)(struct sock *, const struct request_sock *);
|
|
void (*inet_conn_established)(struct sock *, struct sk_buff *);
|
|
int (*secmark_relabel_packet)(u32);
|
|
void (*secmark_refcount_inc)();
|
|
void (*secmark_refcount_dec)();
|
|
void (*req_classify_flow)(const struct request_sock *, struct flowi_common *);
|
|
int (*tun_dev_alloc_security)(void **);
|
|
void (*tun_dev_free_security)(void *);
|
|
int (*tun_dev_create)();
|
|
int (*tun_dev_attach_queue)(void *);
|
|
int (*tun_dev_attach)(struct sock *, void *);
|
|
int (*tun_dev_open)(void *);
|
|
int (*sctp_assoc_request)(struct sctp_association *, struct sk_buff *);
|
|
int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int);
|
|
void (*sctp_sk_clone)(struct sctp_association *, struct sock *, struct sock *);
|
|
int (*sctp_assoc_established)(struct sctp_association *, struct sk_buff *);
|
|
int (*key_alloc)(struct key *, const struct cred *, unsigned long);
|
|
void (*key_free)(struct key *);
|
|
int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm);
|
|
int (*key_getsecurity)(struct key *, char **);
|
|
int (*audit_rule_init)(u32, u32, char *, void **);
|
|
int (*audit_rule_known)(struct audit_krule *);
|
|
int (*audit_rule_match)(u32, u32, u32, void *);
|
|
void (*audit_rule_free)(void *);
|
|
int (*bpf)(int, union bpf_attr *, unsigned int);
|
|
int (*bpf_map)(struct bpf_map *, fmode_t);
|
|
int (*bpf_prog)(struct bpf_prog *);
|
|
int (*bpf_map_alloc_security)(struct bpf_map *);
|
|
void (*bpf_map_free_security)(struct bpf_map *);
|
|
int (*bpf_prog_alloc_security)(struct bpf_prog_aux *);
|
|
void (*bpf_prog_free_security)(struct bpf_prog_aux *);
|
|
int (*locked_down)(enum lockdown_reason);
|
|
int (*perf_event_open)(struct perf_event_attr *, int);
|
|
int (*perf_event_alloc)(struct perf_event *);
|
|
void (*perf_event_free)(struct perf_event *);
|
|
int (*perf_event_read)(struct perf_event *);
|
|
int (*perf_event_write)(struct perf_event *);
|
|
int (*uring_override_creds)(const struct cred *);
|
|
int (*uring_sqpoll)();
|
|
int (*uring_cmd)(struct io_uring_cmd *);
|
|
};
|
|
|
|
struct security_hook_list {
|
|
struct hlist_node list;
|
|
struct hlist_head *head;
|
|
union security_list_options hook;
|
|
const char *lsm;
|
|
};
|
|
|
|
struct crypto_comp {
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
enum {
|
|
SKCIPHER_WALK_PHYS = 1,
|
|
SKCIPHER_WALK_SLOW = 2,
|
|
SKCIPHER_WALK_COPY = 4,
|
|
SKCIPHER_WALK_DIFF = 8,
|
|
SKCIPHER_WALK_SLEEP = 16,
|
|
};
|
|
|
|
struct skcipher_walk_buffer {
|
|
struct list_head entry;
|
|
struct scatter_walk dst;
|
|
unsigned int len;
|
|
u8 *data;
|
|
u8 buffer[0];
|
|
};
|
|
|
|
struct crypto_report_blkcipher {
|
|
char type[64];
|
|
char geniv[64];
|
|
unsigned int blocksize;
|
|
unsigned int min_keysize;
|
|
unsigned int max_keysize;
|
|
unsigned int ivsize;
|
|
};
|
|
|
|
struct biovec_slab {
|
|
int nr_vecs;
|
|
char *name;
|
|
struct kmem_cache *slab;
|
|
};
|
|
|
|
struct bio_slab {
|
|
struct kmem_cache *slab;
|
|
unsigned int slab_ref;
|
|
unsigned int slab_size;
|
|
char name[8];
|
|
};
|
|
|
|
struct io_sync {
|
|
struct file *file;
|
|
loff_t len;
|
|
loff_t off;
|
|
int flags;
|
|
int mode;
|
|
};
|
|
|
|
enum {
|
|
IO_WORKER_F_UP = 1,
|
|
IO_WORKER_F_RUNNING = 2,
|
|
IO_WORKER_F_FREE = 4,
|
|
IO_WORKER_F_BOUND = 8,
|
|
};
|
|
|
|
enum {
|
|
IO_WQ_WORK_CANCEL = 1,
|
|
IO_WQ_WORK_HASHED = 2,
|
|
IO_WQ_WORK_UNBOUND = 4,
|
|
IO_WQ_WORK_CONCURRENT = 16,
|
|
IO_WQ_HASH_SHIFT = 24,
|
|
};
|
|
|
|
enum io_wq_cancel {
|
|
IO_WQ_CANCEL_OK = 0,
|
|
IO_WQ_CANCEL_RUNNING = 1,
|
|
IO_WQ_CANCEL_NOTFOUND = 2,
|
|
};
|
|
|
|
enum {
|
|
IO_WQ_ACCT_BOUND = 0,
|
|
IO_WQ_ACCT_UNBOUND = 1,
|
|
IO_WQ_ACCT_NR = 2,
|
|
};
|
|
|
|
enum {
|
|
IO_WQ_BIT_EXIT = 0,
|
|
};
|
|
|
|
enum {
|
|
IO_ACCT_STALLED_BIT = 0,
|
|
};
|
|
|
|
struct io_wqe;
|
|
|
|
struct io_worker {
|
|
refcount_t ref;
|
|
unsigned int flags;
|
|
struct hlist_nulls_node nulls_node;
|
|
struct list_head all_list;
|
|
struct task_struct *task;
|
|
struct io_wqe *wqe;
|
|
struct io_wq_work *cur_work;
|
|
struct io_wq_work *next_work;
|
|
raw_spinlock_t lock;
|
|
struct completion ref_done;
|
|
unsigned long create_state;
|
|
struct callback_head create_work;
|
|
int create_index;
|
|
union {
|
|
struct callback_head rcu;
|
|
struct work_struct work;
|
|
};
|
|
};
|
|
|
|
typedef struct io_wq_work *free_work_fn(struct io_wq_work *);
|
|
|
|
typedef void io_wq_work_fn(struct io_wq_work *);
|
|
|
|
struct io_wq {
|
|
unsigned long state;
|
|
free_work_fn *free_work;
|
|
io_wq_work_fn *do_work;
|
|
struct io_wq_hash *hash;
|
|
atomic_t worker_refs;
|
|
struct completion worker_done;
|
|
struct hlist_node cpuhp_node;
|
|
struct task_struct *task;
|
|
struct io_wqe *wqes[0];
|
|
};
|
|
|
|
struct io_wqe_acct {
|
|
unsigned int nr_workers;
|
|
unsigned int max_workers;
|
|
int index;
|
|
atomic_t nr_running;
|
|
raw_spinlock_t lock;
|
|
struct io_wq_work_list work_list;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct io_wqe {
|
|
raw_spinlock_t lock;
|
|
struct io_wqe_acct acct[2];
|
|
int node;
|
|
struct hlist_nulls_head free_list;
|
|
struct list_head all_list;
|
|
struct wait_queue_entry wait;
|
|
struct io_wq *wq;
|
|
struct io_wq_work *hash_tail[64];
|
|
cpumask_var_t cpu_mask;
|
|
};
|
|
|
|
typedef bool work_cancel_fn(struct io_wq_work *, void *);
|
|
|
|
struct io_cb_cancel_data {
|
|
work_cancel_fn *fn;
|
|
void *data;
|
|
int nr_running;
|
|
int nr_pending;
|
|
bool cancel_all;
|
|
};
|
|
|
|
struct online_data {
|
|
unsigned int cpu;
|
|
bool online;
|
|
};
|
|
|
|
struct io_wq_data {
|
|
struct io_wq_hash *hash;
|
|
struct task_struct *task;
|
|
io_wq_work_fn *do_work;
|
|
free_work_fn *free_work;
|
|
};
|
|
|
|
enum pci_bar_type {
|
|
pci_bar_unknown = 0,
|
|
pci_bar_io = 1,
|
|
pci_bar_mem32 = 2,
|
|
pci_bar_mem64 = 3,
|
|
};
|
|
|
|
enum pci_fixup_pass {
|
|
pci_fixup_early = 0,
|
|
pci_fixup_header = 1,
|
|
pci_fixup_final = 2,
|
|
pci_fixup_enable = 3,
|
|
pci_fixup_resume = 4,
|
|
pci_fixup_suspend = 5,
|
|
pci_fixup_resume_early = 6,
|
|
pci_fixup_suspend_late = 7,
|
|
};
|
|
|
|
enum pcie_bus_config_types {
|
|
PCIE_BUS_TUNE_OFF = 0,
|
|
PCIE_BUS_DEFAULT = 1,
|
|
PCIE_BUS_SAFE = 2,
|
|
PCIE_BUS_PERFORMANCE = 3,
|
|
PCIE_BUS_PEER2PEER = 4,
|
|
};
|
|
|
|
struct pci_domain_busn_res {
|
|
struct list_head list;
|
|
struct resource res;
|
|
int domain_nr;
|
|
};
|
|
|
|
struct acpi_processor_errata {
|
|
u8 smp;
|
|
struct {
|
|
u8 throttle: 1;
|
|
u8 fdma: 1;
|
|
u8 reserved: 6;
|
|
u32 bmisx;
|
|
} piix4;
|
|
};
|
|
|
|
enum {
|
|
AML_FIELD_ACCESS_ANY = 0,
|
|
AML_FIELD_ACCESS_BYTE = 1,
|
|
AML_FIELD_ACCESS_WORD = 2,
|
|
AML_FIELD_ACCESS_DWORD = 3,
|
|
AML_FIELD_ACCESS_QWORD = 4,
|
|
AML_FIELD_ACCESS_BUFFER = 5,
|
|
};
|
|
|
|
struct memdev {
|
|
const char *name;
|
|
umode_t mode;
|
|
const struct file_operations *fops;
|
|
fmode_t fmode;
|
|
};
|
|
|
|
struct splice_desc;
|
|
|
|
typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *);
|
|
|
|
struct splice_desc {
|
|
size_t total_len;
|
|
unsigned int len;
|
|
unsigned int flags;
|
|
union {
|
|
void __attribute__((btf_type_tag("user"))) *userptr;
|
|
struct file *file;
|
|
void *data;
|
|
} u;
|
|
loff_t pos;
|
|
loff_t *opos;
|
|
size_t num_spliced;
|
|
bool need_wakeup;
|
|
};
|
|
|
|
struct tis_vendor_timeout_override {
|
|
u32 did_vid;
|
|
unsigned long timeout_us[4];
|
|
};
|
|
|
|
struct tis_vendor_durations_override {
|
|
u32 did_vid;
|
|
struct tpm1_version version;
|
|
unsigned long durations[3];
|
|
};
|
|
|
|
enum tpm_tis_io_mode {
|
|
TPM_TIS_PHYS_8 = 0,
|
|
TPM_TIS_PHYS_16 = 1,
|
|
TPM_TIS_PHYS_32 = 2,
|
|
};
|
|
|
|
enum tis_int_flags {
|
|
TPM_GLOBAL_INT_ENABLE = 2147483648,
|
|
TPM_INTF_BURST_COUNT_STATIC = 256,
|
|
TPM_INTF_CMD_READY_INT = 128,
|
|
TPM_INTF_INT_EDGE_FALLING = 64,
|
|
TPM_INTF_INT_EDGE_RISING = 32,
|
|
TPM_INTF_INT_LEVEL_LOW = 16,
|
|
TPM_INTF_INT_LEVEL_HIGH = 8,
|
|
TPM_INTF_LOCALITY_CHANGE_INT = 4,
|
|
TPM_INTF_STS_VALID_INT = 2,
|
|
TPM_INTF_DATA_AVAIL_INT = 1,
|
|
};
|
|
|
|
enum tis_defaults {
|
|
TIS_MEM_LEN = 20480,
|
|
TIS_SHORT_TIMEOUT = 750,
|
|
TIS_LONG_TIMEOUT = 2000,
|
|
TIS_TIMEOUT_MIN_ATML = 14700,
|
|
TIS_TIMEOUT_MAX_ATML = 15000,
|
|
};
|
|
|
|
enum tpm_tis_flags {
|
|
TPM_TIS_ITPM_WORKAROUND = 1,
|
|
TPM_TIS_INVALID_STATUS = 2,
|
|
TPM_TIS_DEFAULT_CANCELLATION = 4,
|
|
};
|
|
|
|
enum tis_status {
|
|
TPM_STS_VALID = 128,
|
|
TPM_STS_COMMAND_READY = 64,
|
|
TPM_STS_GO = 32,
|
|
TPM_STS_DATA_AVAIL = 16,
|
|
TPM_STS_DATA_EXPECT = 8,
|
|
TPM_STS_READ_ZERO = 35,
|
|
};
|
|
|
|
enum tis_access {
|
|
TPM_ACCESS_VALID = 128,
|
|
TPM_ACCESS_ACTIVE_LOCALITY = 32,
|
|
TPM_ACCESS_REQUEST_PENDING = 4,
|
|
TPM_ACCESS_REQUEST_USE = 2,
|
|
};
|
|
|
|
struct tpm_tis_phy_ops;
|
|
|
|
struct tpm_tis_data {
|
|
u16 manufacturer_id;
|
|
int locality;
|
|
int irq;
|
|
bool irq_tested;
|
|
unsigned long flags;
|
|
void *ilb_base_addr;
|
|
u16 clkrun_enabled;
|
|
wait_queue_head_t int_queue;
|
|
wait_queue_head_t read_queue;
|
|
const struct tpm_tis_phy_ops *phy_ops;
|
|
unsigned short rng_quality;
|
|
unsigned int timeout_min;
|
|
unsigned int timeout_max;
|
|
};
|
|
|
|
struct tpm_tis_phy_ops {
|
|
int (*read_bytes)(struct tpm_tis_data *, u32, u16, u8 *, enum tpm_tis_io_mode);
|
|
int (*write_bytes)(struct tpm_tis_data *, u32, u16, const u8 *, enum tpm_tis_io_mode);
|
|
int (*verify_crc)(struct tpm_tis_data *, size_t, const u8 *);
|
|
};
|
|
|
|
struct drm_out_fence_state {
|
|
s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr;
|
|
struct sync_file *sync_file;
|
|
int fd;
|
|
};
|
|
|
|
struct drm_mode_atomic {
|
|
__u32 flags;
|
|
__u32 count_objs;
|
|
__u64 objs_ptr;
|
|
__u64 count_props_ptr;
|
|
__u64 props_ptr;
|
|
__u64 prop_values_ptr;
|
|
__u64 reserved;
|
|
__u64 user_data;
|
|
};
|
|
|
|
struct drm_dp_mst_atomic_payload {
|
|
struct drm_dp_mst_port *port;
|
|
s8 vc_start_slot;
|
|
u8 vcpi;
|
|
int time_slots;
|
|
int pbn;
|
|
bool delete: 1;
|
|
bool dsc_enabled: 1;
|
|
struct list_head next;
|
|
};
|
|
|
|
struct drm_dp_mst_topology_state {
|
|
struct drm_private_state base;
|
|
struct drm_dp_mst_topology_mgr *mgr;
|
|
u32 pending_crtc_mask;
|
|
struct drm_crtc_commit **commit_deps;
|
|
size_t num_commit_deps;
|
|
u32 payload_mask;
|
|
struct list_head payloads;
|
|
u8 total_avail_slots;
|
|
u8 start_slot;
|
|
int pbn_div;
|
|
};
|
|
|
|
struct drm_dp_nak_reply {
|
|
u8 guid[16];
|
|
u8 reason;
|
|
u8 nak_data;
|
|
};
|
|
|
|
struct drm_dp_link_addr_reply_port {
|
|
bool input_port;
|
|
u8 peer_device_type;
|
|
u8 port_number;
|
|
bool mcs;
|
|
bool ddps;
|
|
bool legacy_device_plug_status;
|
|
u8 dpcd_revision;
|
|
u8 peer_guid[16];
|
|
u8 num_sdp_streams;
|
|
u8 num_sdp_stream_sinks;
|
|
};
|
|
|
|
struct drm_dp_link_address_ack_reply {
|
|
u8 guid[16];
|
|
u8 nports;
|
|
struct drm_dp_link_addr_reply_port ports[16];
|
|
};
|
|
|
|
struct drm_dp_port_number_rep {
|
|
u8 port_number;
|
|
};
|
|
|
|
struct drm_dp_enum_path_resources_ack_reply {
|
|
u8 port_number;
|
|
bool fec_capable;
|
|
u16 full_payload_bw_number;
|
|
u16 avail_payload_bw_number;
|
|
};
|
|
|
|
struct drm_dp_allocate_payload_ack_reply {
|
|
u8 port_number;
|
|
u8 vcpi;
|
|
u16 allocated_pbn;
|
|
};
|
|
|
|
struct drm_dp_query_payload_ack_reply {
|
|
u8 port_number;
|
|
u16 allocated_pbn;
|
|
};
|
|
|
|
struct drm_dp_remote_dpcd_read_ack_reply {
|
|
u8 port_number;
|
|
u8 num_bytes;
|
|
u8 bytes[255];
|
|
};
|
|
|
|
struct drm_dp_remote_dpcd_write_ack_reply {
|
|
u8 port_number;
|
|
};
|
|
|
|
struct drm_dp_remote_dpcd_write_nak_reply {
|
|
u8 port_number;
|
|
u8 reason;
|
|
u8 bytes_written_before_failure;
|
|
};
|
|
|
|
struct drm_dp_remote_i2c_read_ack_reply {
|
|
u8 port_number;
|
|
u8 num_bytes;
|
|
u8 bytes[255];
|
|
};
|
|
|
|
struct drm_dp_remote_i2c_read_nak_reply {
|
|
u8 port_number;
|
|
u8 nak_reason;
|
|
u8 i2c_nak_transaction;
|
|
};
|
|
|
|
struct drm_dp_remote_i2c_write_ack_reply {
|
|
u8 port_number;
|
|
};
|
|
|
|
struct drm_dp_query_stream_enc_status_ack_reply {
|
|
u8 stream_id;
|
|
bool reply_signed;
|
|
bool unauthorizable_device_present;
|
|
bool legacy_device_present;
|
|
bool query_capable_device_present;
|
|
bool hdcp_1x_device_present;
|
|
bool hdcp_2x_device_present;
|
|
bool auth_completed;
|
|
bool encryption_enabled;
|
|
bool repeater_present;
|
|
u8 state;
|
|
};
|
|
|
|
union ack_replies {
|
|
struct drm_dp_nak_reply nak;
|
|
struct drm_dp_link_address_ack_reply link_addr;
|
|
struct drm_dp_port_number_rep port_number;
|
|
struct drm_dp_enum_path_resources_ack_reply path_resources;
|
|
struct drm_dp_allocate_payload_ack_reply allocate_payload;
|
|
struct drm_dp_query_payload_ack_reply query_payload;
|
|
struct drm_dp_remote_dpcd_read_ack_reply remote_dpcd_read_ack;
|
|
struct drm_dp_remote_dpcd_write_ack_reply remote_dpcd_write_ack;
|
|
struct drm_dp_remote_dpcd_write_nak_reply remote_dpcd_write_nack;
|
|
struct drm_dp_remote_i2c_read_ack_reply remote_i2c_read_ack;
|
|
struct drm_dp_remote_i2c_read_nak_reply remote_i2c_read_nack;
|
|
struct drm_dp_remote_i2c_write_ack_reply remote_i2c_write_ack;
|
|
struct drm_dp_query_stream_enc_status_ack_reply enc_status;
|
|
};
|
|
|
|
struct drm_dp_sideband_msg_reply_body {
|
|
u8 reply_type;
|
|
u8 req_type;
|
|
union ack_replies u;
|
|
};
|
|
|
|
struct drm_dp_sideband_msg_tx {
|
|
u8 msg[256];
|
|
u8 chunk[48];
|
|
u8 cur_offset;
|
|
u8 cur_len;
|
|
struct drm_dp_mst_branch *dst;
|
|
struct list_head next;
|
|
int seqno;
|
|
int state;
|
|
bool path_msg;
|
|
struct drm_dp_sideband_msg_reply_body reply;
|
|
};
|
|
|
|
struct drm_dp_connection_status_notify {
|
|
u8 guid[16];
|
|
u8 port_number;
|
|
bool legacy_device_plug_status;
|
|
bool displayport_device_plug_status;
|
|
bool message_capability_status;
|
|
bool input_port;
|
|
u8 peer_device_type;
|
|
};
|
|
|
|
struct drm_dp_port_number_req {
|
|
u8 port_number;
|
|
};
|
|
|
|
struct drm_dp_resource_status_notify {
|
|
u8 port_number;
|
|
u8 guid[16];
|
|
u16 available_pbn;
|
|
};
|
|
|
|
struct drm_dp_query_payload {
|
|
u8 port_number;
|
|
u8 vcpi;
|
|
};
|
|
|
|
struct drm_dp_allocate_payload {
|
|
u8 port_number;
|
|
u8 number_sdp_streams;
|
|
u8 vcpi;
|
|
u16 pbn;
|
|
u8 sdp_stream_sink[16];
|
|
};
|
|
|
|
struct drm_dp_remote_dpcd_read {
|
|
u8 port_number;
|
|
u32 dpcd_address;
|
|
u8 num_bytes;
|
|
};
|
|
|
|
struct drm_dp_remote_dpcd_write {
|
|
u8 port_number;
|
|
u32 dpcd_address;
|
|
u8 num_bytes;
|
|
u8 *bytes;
|
|
};
|
|
|
|
struct drm_dp_remote_i2c_read_tx {
|
|
u8 i2c_dev_id;
|
|
u8 num_bytes;
|
|
u8 *bytes;
|
|
u8 no_stop_bit;
|
|
u8 i2c_transaction_delay;
|
|
};
|
|
|
|
struct drm_dp_remote_i2c_read {
|
|
u8 num_transactions;
|
|
u8 port_number;
|
|
struct drm_dp_remote_i2c_read_tx transactions[4];
|
|
u8 read_i2c_device_id;
|
|
u8 num_bytes_read;
|
|
};
|
|
|
|
struct drm_dp_remote_i2c_write {
|
|
u8 port_number;
|
|
u8 write_i2c_device_id;
|
|
u8 num_bytes;
|
|
u8 *bytes;
|
|
};
|
|
|
|
struct drm_dp_query_stream_enc_status {
|
|
u8 stream_id;
|
|
u8 client_id[7];
|
|
u8 stream_event;
|
|
bool valid_stream_event;
|
|
u8 stream_behavior;
|
|
u8 valid_stream_behavior;
|
|
};
|
|
|
|
union ack_req {
|
|
struct drm_dp_connection_status_notify conn_stat;
|
|
struct drm_dp_port_number_req port_num;
|
|
struct drm_dp_resource_status_notify resource_stat;
|
|
struct drm_dp_query_payload query_payload;
|
|
struct drm_dp_allocate_payload allocate_payload;
|
|
struct drm_dp_remote_dpcd_read dpcd_read;
|
|
struct drm_dp_remote_dpcd_write dpcd_write;
|
|
struct drm_dp_remote_i2c_read i2c_read;
|
|
struct drm_dp_remote_i2c_write i2c_write;
|
|
struct drm_dp_query_stream_enc_status enc_status;
|
|
};
|
|
|
|
struct drm_dp_sideband_msg_req_body {
|
|
u8 req_type;
|
|
union ack_req u;
|
|
};
|
|
|
|
struct drm_dp_pending_up_req {
|
|
struct drm_dp_sideband_msg_hdr hdr;
|
|
struct drm_dp_sideband_msg_req_body msg;
|
|
struct list_head next;
|
|
};
|
|
|
|
enum drm_i915_pmu_engine_sample {
|
|
I915_SAMPLE_BUSY = 0,
|
|
I915_SAMPLE_WAIT = 1,
|
|
I915_SAMPLE_SEMA = 2,
|
|
};
|
|
|
|
enum {
|
|
__I915_SAMPLE_FREQ_ACT = 0,
|
|
__I915_SAMPLE_FREQ_REQ = 1,
|
|
__I915_SAMPLE_RC6 = 2,
|
|
__I915_SAMPLE_RC6_LAST_REPORTED = 3,
|
|
__I915_NUM_PMU_SAMPLERS = 4,
|
|
};
|
|
|
|
enum i915_pmu_tracked_events {
|
|
__I915_PMU_ACTUAL_FREQUENCY_ENABLED = 0,
|
|
__I915_PMU_REQUESTED_FREQUENCY_ENABLED = 1,
|
|
__I915_PMU_RC6_RESIDENCY_ENABLED = 2,
|
|
__I915_PMU_TRACKED_EVENT_COUNT = 3,
|
|
};
|
|
|
|
struct i915_str_attribute {
|
|
struct device_attribute attr;
|
|
const char *str;
|
|
};
|
|
|
|
struct i915_ext_attribute {
|
|
struct device_attribute attr;
|
|
unsigned long val;
|
|
};
|
|
|
|
struct i915_gem_ttm_pm_apply {
|
|
struct i915_gem_apply_to_region base;
|
|
bool allow_gpu: 1;
|
|
bool backup_pinned: 1;
|
|
};
|
|
|
|
struct gsc_def {
|
|
const char *name;
|
|
unsigned long bar;
|
|
size_t bar_size;
|
|
bool use_polling;
|
|
bool slow_firmware;
|
|
size_t lmem_size;
|
|
};
|
|
|
|
struct auxiliary_device {
|
|
struct device dev;
|
|
const char *name;
|
|
u32 id;
|
|
};
|
|
|
|
struct mei_aux_device {
|
|
struct auxiliary_device aux_dev;
|
|
int irq;
|
|
struct resource bar;
|
|
struct resource ext_op_mem;
|
|
bool slow_firmware;
|
|
};
|
|
|
|
struct cn_dev {
|
|
struct cb_id id;
|
|
u32 seq;
|
|
u32 groups;
|
|
struct sock *nls;
|
|
struct cn_queue_dev *cbdev;
|
|
};
|
|
|
|
struct scsi_proc_entry {
|
|
struct list_head entry;
|
|
const struct scsi_host_template *sht;
|
|
struct proc_dir_entry *proc_dir;
|
|
unsigned int present;
|
|
};
|
|
|
|
struct rtl8169_private;
|
|
|
|
struct rtl_cond {
|
|
bool (*check)(struct rtl8169_private *);
|
|
const char *msg;
|
|
};
|
|
|
|
enum mac_version {
|
|
RTL_GIGA_MAC_VER_02 = 0,
|
|
RTL_GIGA_MAC_VER_03 = 1,
|
|
RTL_GIGA_MAC_VER_04 = 2,
|
|
RTL_GIGA_MAC_VER_05 = 3,
|
|
RTL_GIGA_MAC_VER_06 = 4,
|
|
RTL_GIGA_MAC_VER_07 = 5,
|
|
RTL_GIGA_MAC_VER_08 = 6,
|
|
RTL_GIGA_MAC_VER_09 = 7,
|
|
RTL_GIGA_MAC_VER_10 = 8,
|
|
RTL_GIGA_MAC_VER_11 = 9,
|
|
RTL_GIGA_MAC_VER_14 = 10,
|
|
RTL_GIGA_MAC_VER_17 = 11,
|
|
RTL_GIGA_MAC_VER_18 = 12,
|
|
RTL_GIGA_MAC_VER_19 = 13,
|
|
RTL_GIGA_MAC_VER_20 = 14,
|
|
RTL_GIGA_MAC_VER_21 = 15,
|
|
RTL_GIGA_MAC_VER_22 = 16,
|
|
RTL_GIGA_MAC_VER_23 = 17,
|
|
RTL_GIGA_MAC_VER_24 = 18,
|
|
RTL_GIGA_MAC_VER_25 = 19,
|
|
RTL_GIGA_MAC_VER_26 = 20,
|
|
RTL_GIGA_MAC_VER_28 = 21,
|
|
RTL_GIGA_MAC_VER_29 = 22,
|
|
RTL_GIGA_MAC_VER_30 = 23,
|
|
RTL_GIGA_MAC_VER_31 = 24,
|
|
RTL_GIGA_MAC_VER_32 = 25,
|
|
RTL_GIGA_MAC_VER_33 = 26,
|
|
RTL_GIGA_MAC_VER_34 = 27,
|
|
RTL_GIGA_MAC_VER_35 = 28,
|
|
RTL_GIGA_MAC_VER_36 = 29,
|
|
RTL_GIGA_MAC_VER_37 = 30,
|
|
RTL_GIGA_MAC_VER_38 = 31,
|
|
RTL_GIGA_MAC_VER_39 = 32,
|
|
RTL_GIGA_MAC_VER_40 = 33,
|
|
RTL_GIGA_MAC_VER_42 = 34,
|
|
RTL_GIGA_MAC_VER_43 = 35,
|
|
RTL_GIGA_MAC_VER_44 = 36,
|
|
RTL_GIGA_MAC_VER_46 = 37,
|
|
RTL_GIGA_MAC_VER_48 = 38,
|
|
RTL_GIGA_MAC_VER_51 = 39,
|
|
RTL_GIGA_MAC_VER_52 = 40,
|
|
RTL_GIGA_MAC_VER_53 = 41,
|
|
RTL_GIGA_MAC_VER_61 = 42,
|
|
RTL_GIGA_MAC_VER_63 = 43,
|
|
RTL_GIGA_MAC_NONE = 44,
|
|
};
|
|
|
|
enum rtl_dash_type {
|
|
RTL_DASH_NONE = 0,
|
|
RTL_DASH_DP = 1,
|
|
RTL_DASH_EP = 2,
|
|
};
|
|
|
|
struct ring_info {
|
|
struct sk_buff *skb;
|
|
u32 len;
|
|
};
|
|
|
|
struct rtl8169_tc_offsets {
|
|
bool inited;
|
|
__le64 tx_errors;
|
|
__le32 tx_multi_collision;
|
|
__le16 tx_aborted;
|
|
__le16 rx_missed;
|
|
};
|
|
|
|
struct TxDesc;
|
|
|
|
struct RxDesc;
|
|
|
|
struct rtl8169_counters;
|
|
|
|
struct rtl_fw;
|
|
|
|
struct rtl8169_private {
|
|
void *mmio_addr;
|
|
struct pci_dev *pci_dev;
|
|
struct net_device *dev;
|
|
struct phy_device *phydev;
|
|
struct napi_struct napi;
|
|
enum mac_version mac_version;
|
|
enum rtl_dash_type dash_type;
|
|
u32 cur_rx;
|
|
u32 cur_tx;
|
|
u32 dirty_tx;
|
|
struct TxDesc *TxDescArray;
|
|
struct RxDesc *RxDescArray;
|
|
dma_addr_t TxPhyAddr;
|
|
dma_addr_t RxPhyAddr;
|
|
struct page *Rx_databuff[256];
|
|
struct ring_info tx_skb[256];
|
|
u16 cp_cmd;
|
|
u32 irq_mask;
|
|
int irq;
|
|
struct clk *clk;
|
|
struct {
|
|
unsigned long flags[1];
|
|
struct work_struct work;
|
|
} wk;
|
|
spinlock_t config25_lock;
|
|
spinlock_t mac_ocp_lock;
|
|
spinlock_t cfg9346_usage_lock;
|
|
int cfg9346_usage_count;
|
|
unsigned int supports_gmii: 1;
|
|
dma_addr_t counters_phys_addr;
|
|
struct rtl8169_counters *counters;
|
|
struct rtl8169_tc_offsets tc_offset;
|
|
u32 saved_wolopts;
|
|
int eee_adv;
|
|
const char *fw_name;
|
|
struct rtl_fw *rtl_fw;
|
|
u32 ocp_base;
|
|
};
|
|
|
|
struct TxDesc {
|
|
__le32 opts1;
|
|
__le32 opts2;
|
|
__le64 addr;
|
|
};
|
|
|
|
struct RxDesc {
|
|
__le32 opts1;
|
|
__le32 opts2;
|
|
__le64 addr;
|
|
};
|
|
|
|
struct rtl8169_counters {
|
|
__le64 tx_packets;
|
|
__le64 rx_packets;
|
|
__le64 tx_errors;
|
|
__le32 rx_errors;
|
|
__le16 rx_missed;
|
|
__le16 align_errors;
|
|
__le32 tx_one_collision;
|
|
__le32 tx_multi_collision;
|
|
__le64 rx_unicast;
|
|
__le64 rx_broadcast;
|
|
__le32 rx_multicast;
|
|
__le16 tx_aborted;
|
|
__le16 tx_underun;
|
|
};
|
|
|
|
typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int);
|
|
|
|
typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int);
|
|
|
|
struct rtl_fw_phy_action {
|
|
__le32 *code;
|
|
size_t size;
|
|
};
|
|
|
|
struct rtl_fw {
|
|
rtl_fw_write_t phy_write;
|
|
rtl_fw_read_t phy_read;
|
|
rtl_fw_write_t mac_mcu_write;
|
|
rtl_fw_read_t mac_mcu_read;
|
|
const struct firmware *fw;
|
|
const char *fw_name;
|
|
struct device *dev;
|
|
char version[32];
|
|
struct rtl_fw_phy_action phy_action;
|
|
};
|
|
|
|
typedef void (*rtl_generic_fct)(struct rtl8169_private *);
|
|
|
|
struct ephy_info {
|
|
unsigned int offset;
|
|
u16 mask;
|
|
u16 bits;
|
|
};
|
|
|
|
struct rtl_mac_info {
|
|
u16 mask;
|
|
u16 val;
|
|
enum mac_version ver;
|
|
};
|
|
|
|
struct rtl_coalesce_info {
|
|
u32 speed;
|
|
u32 scale_nsecs[4];
|
|
};
|
|
|
|
enum rtl8168_8101_registers {
|
|
CSIDR = 100,
|
|
CSIAR = 104,
|
|
PMCH = 111,
|
|
EPHYAR = 128,
|
|
DLLPR = 208,
|
|
DBG_REG = 209,
|
|
TWSI = 210,
|
|
MCU = 211,
|
|
EFUSEAR = 220,
|
|
MISC_1 = 242,
|
|
};
|
|
|
|
enum rtl8168_registers {
|
|
LED_FREQ = 26,
|
|
EEE_LED = 27,
|
|
ERIDR = 112,
|
|
ERIAR = 116,
|
|
EPHY_RXER_NUM = 124,
|
|
OCPDR = 176,
|
|
OCPAR = 180,
|
|
GPHY_OCP = 184,
|
|
RDSAR1 = 208,
|
|
MISC = 240,
|
|
};
|
|
|
|
enum rtl_registers {
|
|
MAC0___2 = 0,
|
|
MAC4 = 4,
|
|
MAR0___2 = 8,
|
|
CounterAddrLow = 16,
|
|
CounterAddrHigh = 20,
|
|
TxDescStartAddrLow = 32,
|
|
TxDescStartAddrHigh = 36,
|
|
TxHDescStartAddrLow = 40,
|
|
TxHDescStartAddrHigh = 44,
|
|
FLASH = 48,
|
|
ERSR = 54,
|
|
ChipCmd___2 = 55,
|
|
TxPoll = 56,
|
|
IntrMask___2 = 60,
|
|
IntrStatus___2 = 62,
|
|
TxConfig___2 = 64,
|
|
RxConfig___2 = 68,
|
|
Cfg9346___2 = 80,
|
|
Config0___2 = 81,
|
|
Config1___2 = 82,
|
|
Config2 = 83,
|
|
Config3___2 = 84,
|
|
Config4___2 = 85,
|
|
Config5___2 = 86,
|
|
PHYAR = 96,
|
|
PHYstatus = 108,
|
|
RxMaxSize = 218,
|
|
CPlusCmd = 224,
|
|
IntrMitigate = 226,
|
|
RxDescAddrLow = 228,
|
|
RxDescAddrHigh = 232,
|
|
EarlyTxThres = 236,
|
|
MaxTxPacketSize = 236,
|
|
FuncEvent = 240,
|
|
FuncEventMask = 244,
|
|
FuncPresetState = 248,
|
|
IBCR0 = 248,
|
|
IBCR2 = 249,
|
|
IBIMR0 = 250,
|
|
IBISR0 = 251,
|
|
FuncForceEvent = 252,
|
|
};
|
|
|
|
enum rtl_register_content {
|
|
SYSErr = 32768,
|
|
PCSTimeout___2 = 16384,
|
|
SWInt = 256,
|
|
TxDescUnavail = 128,
|
|
RxFIFOOver___2 = 64,
|
|
LinkChg = 32,
|
|
RxOverflow___2 = 16,
|
|
TxErr___2 = 8,
|
|
TxOK___2 = 4,
|
|
RxErr___2 = 2,
|
|
RxOK___2 = 1,
|
|
RxRWT = 4194304,
|
|
RxRES = 2097152,
|
|
RxRUNT = 1048576,
|
|
RxCRC = 524288,
|
|
StopReq = 128,
|
|
CmdReset___2 = 16,
|
|
CmdRxEnb___2 = 8,
|
|
CmdTxEnb___2 = 4,
|
|
RxBufEmpty___2 = 1,
|
|
HPQ = 128,
|
|
NPQ = 64,
|
|
FSWInt = 1,
|
|
Cfg9346_Lock___2 = 0,
|
|
Cfg9346_Unlock___2 = 192,
|
|
AcceptErr___2 = 32,
|
|
AcceptRunt___2 = 16,
|
|
AcceptBroadcast___2 = 8,
|
|
AcceptMulticast___2 = 4,
|
|
AcceptMyPhys___2 = 2,
|
|
AcceptAllPhys___2 = 1,
|
|
TxInterFrameGapShift = 24,
|
|
TxDMAShift___2 = 8,
|
|
LEDS1 = 128,
|
|
LEDS0 = 64,
|
|
Speed_down = 16,
|
|
MEMMAP = 8,
|
|
IOMAP = 4,
|
|
VPD = 2,
|
|
PMEnable = 1,
|
|
ClkReqEn = 128,
|
|
MSIEnable = 32,
|
|
PCI_Clock_66MHz = 1,
|
|
PCI_Clock_33MHz = 0,
|
|
MagicPacket = 32,
|
|
LinkUp = 16,
|
|
Jumbo_En0 = 4,
|
|
Rdy_to_L23 = 2,
|
|
Beacon_en = 1,
|
|
Jumbo_En1 = 2,
|
|
BWF = 64,
|
|
MWF = 32,
|
|
UWF = 16,
|
|
Spi_en = 8,
|
|
LanWake = 2,
|
|
PMEStatus = 1,
|
|
ASPM_en = 1,
|
|
EnableBist = 32768,
|
|
Mac_dbgo_oe = 16384,
|
|
EnAnaPLL = 16384,
|
|
Normal_mode = 8192,
|
|
Force_half_dup = 4096,
|
|
Force_rxflow_en = 2048,
|
|
Force_txflow_en = 1024,
|
|
Cxpl_dbg_sel = 512,
|
|
ASF = 256,
|
|
PktCntrDisable = 128,
|
|
Mac_dbgo_sel = 28,
|
|
RxVlan = 64,
|
|
RxChkSum = 32,
|
|
PCIDAC = 16,
|
|
PCIMulRW = 8,
|
|
TBI_Enable = 128,
|
|
TxFlowCtrl = 64,
|
|
RxFlowCtrl = 32,
|
|
_1000bpsF = 16,
|
|
_100bps = 8,
|
|
_10bps = 4,
|
|
LinkStatus = 2,
|
|
FullDup = 1,
|
|
CounterReset = 1,
|
|
CounterDump = 8,
|
|
MagicPacket_v2 = 65536,
|
|
};
|
|
|
|
enum rtl_desc_bit {
|
|
DescOwn = -2147483648,
|
|
RingEnd = 1073741824,
|
|
FirstFrag = 536870912,
|
|
LastFrag = 268435456,
|
|
};
|
|
|
|
enum rtl_flag {
|
|
RTL_FLAG_TASK_ENABLED = 0,
|
|
RTL_FLAG_TASK_RESET_PENDING = 1,
|
|
RTL_FLAG_TASK_TX_TIMEOUT = 2,
|
|
RTL_FLAG_MAX = 3,
|
|
};
|
|
|
|
enum rtl8125_registers {
|
|
IntrMask_8125 = 56,
|
|
IntrStatus_8125 = 60,
|
|
TxPoll_8125 = 144,
|
|
MAC0_BKP = 6624,
|
|
EEE_TXIDLE_TIMER_8125 = 24648,
|
|
};
|
|
|
|
enum rtl_tx_desc_bit {
|
|
TD_LSO = 134217728,
|
|
TxVlanTag = 131072,
|
|
};
|
|
|
|
enum rtl_tx_desc_bit_0 {
|
|
TD0_TCP_CS = 65536,
|
|
TD0_UDP_CS = 131072,
|
|
TD0_IP_CS = 262144,
|
|
};
|
|
|
|
enum rtl_tx_desc_bit_1 {
|
|
TD1_GTSENV4 = 67108864,
|
|
TD1_GTSENV6 = 33554432,
|
|
TD1_IPv6_CS = 268435456,
|
|
TD1_IPv4_CS = 536870912,
|
|
TD1_TCP_CS = 1073741824,
|
|
TD1_UDP_CS = -2147483648,
|
|
};
|
|
|
|
enum rtl_rx_desc_bit {
|
|
PID1 = 262144,
|
|
PID0 = 131072,
|
|
IPFail = 65536,
|
|
UDPFail = 32768,
|
|
TCPFail = 16384,
|
|
RxVlanTag = 65536,
|
|
};
|
|
|
|
struct swoc_info {
|
|
__u8 rev;
|
|
__u8 reserved[8];
|
|
__u16 LinuxSKU;
|
|
__u16 LinuxVer;
|
|
__u8 reserved2[47];
|
|
} __attribute__((packed));
|
|
|
|
enum rc_filter_type {
|
|
RC_FILTER_NORMAL = 0,
|
|
RC_FILTER_WAKEUP = 1,
|
|
RC_FILTER_MAX = 2,
|
|
};
|
|
|
|
struct rc_filter_attribute {
|
|
struct device_attribute attr;
|
|
enum rc_filter_type type;
|
|
bool mask;
|
|
};
|
|
|
|
struct cpu_dbs_info {
|
|
u64 prev_cpu_idle;
|
|
u64 prev_update_time;
|
|
u64 prev_cpu_nice;
|
|
unsigned int prev_load;
|
|
struct update_util_data update_util;
|
|
struct policy_dbs_info *policy_dbs;
|
|
};
|
|
|
|
struct net_test {
|
|
char name[32];
|
|
int (*fn)(struct net_device *);
|
|
};
|
|
|
|
struct netsfhdr {
|
|
__be32 version;
|
|
__be64 magic;
|
|
u8 id;
|
|
} __attribute__((packed));
|
|
|
|
struct net_packet_attrs {
|
|
const unsigned char *src;
|
|
const unsigned char *dst;
|
|
u32 ip_src;
|
|
u32 ip_dst;
|
|
bool tcp;
|
|
u16 sport;
|
|
u16 dport;
|
|
int timeout;
|
|
int size;
|
|
int max_size;
|
|
u8 id;
|
|
u16 queue_mapping;
|
|
};
|
|
|
|
struct net_test_priv {
|
|
struct net_packet_attrs *packet;
|
|
struct packet_type pt;
|
|
struct completion comp;
|
|
int double_vlan;
|
|
int vlan_id;
|
|
int ok;
|
|
};
|
|
|
|
enum flow_action_id {
|
|
FLOW_ACTION_ACCEPT = 0,
|
|
FLOW_ACTION_DROP = 1,
|
|
FLOW_ACTION_TRAP = 2,
|
|
FLOW_ACTION_GOTO = 3,
|
|
FLOW_ACTION_REDIRECT = 4,
|
|
FLOW_ACTION_MIRRED = 5,
|
|
FLOW_ACTION_REDIRECT_INGRESS = 6,
|
|
FLOW_ACTION_MIRRED_INGRESS = 7,
|
|
FLOW_ACTION_VLAN_PUSH = 8,
|
|
FLOW_ACTION_VLAN_POP = 9,
|
|
FLOW_ACTION_VLAN_MANGLE = 10,
|
|
FLOW_ACTION_TUNNEL_ENCAP = 11,
|
|
FLOW_ACTION_TUNNEL_DECAP = 12,
|
|
FLOW_ACTION_MANGLE = 13,
|
|
FLOW_ACTION_ADD = 14,
|
|
FLOW_ACTION_CSUM = 15,
|
|
FLOW_ACTION_MARK = 16,
|
|
FLOW_ACTION_PTYPE = 17,
|
|
FLOW_ACTION_PRIORITY = 18,
|
|
FLOW_ACTION_RX_QUEUE_MAPPING = 19,
|
|
FLOW_ACTION_WAKE = 20,
|
|
FLOW_ACTION_QUEUE = 21,
|
|
FLOW_ACTION_SAMPLE = 22,
|
|
FLOW_ACTION_POLICE = 23,
|
|
FLOW_ACTION_CT = 24,
|
|
FLOW_ACTION_CT_METADATA = 25,
|
|
FLOW_ACTION_MPLS_PUSH = 26,
|
|
FLOW_ACTION_MPLS_POP = 27,
|
|
FLOW_ACTION_MPLS_MANGLE = 28,
|
|
FLOW_ACTION_GATE = 29,
|
|
FLOW_ACTION_PPPOE_PUSH = 30,
|
|
FLOW_ACTION_JUMP = 31,
|
|
FLOW_ACTION_PIPE = 32,
|
|
FLOW_ACTION_VLAN_PUSH_ETH = 33,
|
|
FLOW_ACTION_VLAN_POP_ETH = 34,
|
|
FLOW_ACTION_CONTINUE = 35,
|
|
NUM_FLOW_ACTIONS = 36,
|
|
};
|
|
|
|
enum flow_action_hw_stats {
|
|
FLOW_ACTION_HW_STATS_IMMEDIATE = 1,
|
|
FLOW_ACTION_HW_STATS_DELAYED = 2,
|
|
FLOW_ACTION_HW_STATS_ANY = 3,
|
|
FLOW_ACTION_HW_STATS_DISABLED = 4,
|
|
FLOW_ACTION_HW_STATS_DONT_CARE = 7,
|
|
};
|
|
|
|
enum flow_action_mangle_base {
|
|
FLOW_ACT_MANGLE_UNSPEC = 0,
|
|
FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1,
|
|
FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2,
|
|
FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3,
|
|
FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4,
|
|
FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5,
|
|
};
|
|
|
|
enum ethtool_flags {
|
|
ETH_FLAG_TXVLAN = 128,
|
|
ETH_FLAG_RXVLAN = 256,
|
|
ETH_FLAG_LRO = 32768,
|
|
ETH_FLAG_NTUPLE = 134217728,
|
|
ETH_FLAG_RXHASH = 268435456,
|
|
};
|
|
|
|
enum ethtool_sfeatures_retval_bits {
|
|
ETHTOOL_F_UNSUPPORTED__BIT = 0,
|
|
ETHTOOL_F_WISH__BIT = 1,
|
|
ETHTOOL_F_COMPAT__BIT = 2,
|
|
};
|
|
|
|
enum tunable_id {
|
|
ETHTOOL_ID_UNSPEC = 0,
|
|
ETHTOOL_RX_COPYBREAK = 1,
|
|
ETHTOOL_TX_COPYBREAK = 2,
|
|
ETHTOOL_PFC_PREVENTION_TOUT = 3,
|
|
ETHTOOL_TX_COPYBREAK_BUF_SIZE = 4,
|
|
__ETHTOOL_TUNABLE_COUNT = 5,
|
|
};
|
|
|
|
enum tunable_type_id {
|
|
ETHTOOL_TUNABLE_UNSPEC = 0,
|
|
ETHTOOL_TUNABLE_U8 = 1,
|
|
ETHTOOL_TUNABLE_U16 = 2,
|
|
ETHTOOL_TUNABLE_U32 = 3,
|
|
ETHTOOL_TUNABLE_U64 = 4,
|
|
ETHTOOL_TUNABLE_STRING = 5,
|
|
ETHTOOL_TUNABLE_S8 = 6,
|
|
ETHTOOL_TUNABLE_S16 = 7,
|
|
ETHTOOL_TUNABLE_S32 = 8,
|
|
ETHTOOL_TUNABLE_S64 = 9,
|
|
};
|
|
|
|
enum phy_tunable_id {
|
|
ETHTOOL_PHY_ID_UNSPEC = 0,
|
|
ETHTOOL_PHY_DOWNSHIFT = 1,
|
|
ETHTOOL_PHY_FAST_LINK_DOWN = 2,
|
|
ETHTOOL_PHY_EDPD = 3,
|
|
__ETHTOOL_PHY_TUNABLE_COUNT = 4,
|
|
};
|
|
|
|
struct flow_dissector_key_ip {
|
|
__u8 tos;
|
|
__u8 ttl;
|
|
};
|
|
|
|
struct flow_dissector_key_eth_addrs {
|
|
unsigned char dst[6];
|
|
unsigned char src[6];
|
|
};
|
|
|
|
struct ethtool_rx_flow_key {
|
|
struct flow_dissector_key_basic basic;
|
|
union {
|
|
struct flow_dissector_key_ipv4_addrs ipv4;
|
|
struct flow_dissector_key_ipv6_addrs ipv6;
|
|
};
|
|
struct flow_dissector_key_ports tp;
|
|
struct flow_dissector_key_ip ip;
|
|
struct flow_dissector_key_vlan vlan;
|
|
struct flow_dissector_key_eth_addrs eth_addrs;
|
|
};
|
|
|
|
struct ethtool_rx_flow_match {
|
|
struct flow_dissector dissector;
|
|
int: 32;
|
|
struct ethtool_rx_flow_key key;
|
|
struct ethtool_rx_flow_key mask;
|
|
};
|
|
|
|
struct ethtool_devlink_compat {
|
|
struct devlink *devlink;
|
|
union {
|
|
struct ethtool_flash efl;
|
|
struct ethtool_drvinfo info;
|
|
};
|
|
};
|
|
|
|
struct ethtool_value {
|
|
__u32 cmd;
|
|
__u32 data;
|
|
};
|
|
|
|
struct flow_rule;
|
|
|
|
struct ethtool_rx_flow_rule {
|
|
struct flow_rule *rule;
|
|
unsigned long priv[0];
|
|
};
|
|
|
|
struct flow_match {
|
|
struct flow_dissector *dissector;
|
|
void *mask;
|
|
void *key;
|
|
};
|
|
|
|
typedef void (*action_destr)(void *);
|
|
|
|
struct nf_flowtable;
|
|
|
|
struct action_gate_entry;
|
|
|
|
struct flow_action_entry {
|
|
enum flow_action_id id;
|
|
u32 hw_index;
|
|
unsigned long cookie;
|
|
u64 miss_cookie;
|
|
enum flow_action_hw_stats hw_stats;
|
|
action_destr destructor;
|
|
void *destructor_priv;
|
|
union {
|
|
u32 chain_index;
|
|
struct net_device *dev;
|
|
struct {
|
|
u16 vid;
|
|
__be16 proto;
|
|
u8 prio;
|
|
} vlan;
|
|
struct {
|
|
unsigned char dst[6];
|
|
unsigned char src[6];
|
|
} vlan_push_eth;
|
|
struct {
|
|
enum flow_action_mangle_base htype;
|
|
u32 offset;
|
|
u32 mask;
|
|
u32 val;
|
|
} mangle;
|
|
struct ip_tunnel_info *tunnel;
|
|
u32 csum_flags;
|
|
u32 mark;
|
|
u16 ptype;
|
|
u16 rx_queue;
|
|
u32 priority;
|
|
struct {
|
|
u32 ctx;
|
|
u32 index;
|
|
u8 vf;
|
|
} queue;
|
|
struct {
|
|
struct psample_group *psample_group;
|
|
u32 rate;
|
|
u32 trunc_size;
|
|
bool truncate;
|
|
} sample;
|
|
struct {
|
|
u32 burst;
|
|
u64 rate_bytes_ps;
|
|
u64 peakrate_bytes_ps;
|
|
u32 avrate;
|
|
u16 overhead;
|
|
u64 burst_pkt;
|
|
u64 rate_pkt_ps;
|
|
u32 mtu;
|
|
struct {
|
|
enum flow_action_id act_id;
|
|
u32 extval;
|
|
} exceed;
|
|
struct {
|
|
enum flow_action_id act_id;
|
|
u32 extval;
|
|
} notexceed;
|
|
} police;
|
|
struct {
|
|
int action;
|
|
u16 zone;
|
|
struct nf_flowtable *flow_table;
|
|
} ct;
|
|
struct {
|
|
unsigned long cookie;
|
|
u32 mark;
|
|
u32 labels[4];
|
|
bool orig_dir;
|
|
} ct_metadata;
|
|
struct {
|
|
u32 label;
|
|
__be16 proto;
|
|
u8 tc;
|
|
u8 bos;
|
|
u8 ttl;
|
|
} mpls_push;
|
|
struct {
|
|
__be16 proto;
|
|
} mpls_pop;
|
|
struct {
|
|
u32 label;
|
|
u8 tc;
|
|
u8 bos;
|
|
u8 ttl;
|
|
} mpls_mangle;
|
|
struct {
|
|
s32 prio;
|
|
u64 basetime;
|
|
u64 cycletime;
|
|
u64 cycletimeext;
|
|
u32 num_entries;
|
|
struct action_gate_entry *entries;
|
|
} gate;
|
|
struct {
|
|
u16 sid;
|
|
} pppoe;
|
|
};
|
|
struct flow_action_cookie *user_cookie;
|
|
};
|
|
|
|
struct flow_action {
|
|
unsigned int num_entries;
|
|
struct flow_action_entry entries[0];
|
|
};
|
|
|
|
struct flow_rule {
|
|
struct flow_match match;
|
|
struct flow_action action;
|
|
};
|
|
|
|
struct ethtool_link_usettings {
|
|
struct ethtool_link_settings base;
|
|
struct {
|
|
__u32 supported[4];
|
|
__u32 advertising[4];
|
|
__u32 lp_advertising[4];
|
|
} link_modes;
|
|
};
|
|
|
|
struct compat_ethtool_rx_flow_spec {
|
|
u32 flow_type;
|
|
union ethtool_flow_union h_u;
|
|
struct ethtool_flow_ext h_ext;
|
|
union ethtool_flow_union m_u;
|
|
struct ethtool_flow_ext m_ext;
|
|
compat_u64 ring_cookie;
|
|
u32 location;
|
|
} __attribute__((packed));
|
|
|
|
struct compat_ethtool_rxnfc {
|
|
u32 cmd;
|
|
u32 flow_type;
|
|
compat_u64 data;
|
|
struct compat_ethtool_rx_flow_spec fs;
|
|
u32 rule_cnt;
|
|
u32 rule_locs[0];
|
|
} __attribute__((packed));
|
|
|
|
struct ethtool_rx_flow_spec_input {
|
|
const struct ethtool_rx_flow_spec *fs;
|
|
u32 rss_ctx;
|
|
};
|
|
|
|
struct ethtool_gstrings {
|
|
__u32 cmd;
|
|
__u32 string_set;
|
|
__u32 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct ethtool_perm_addr {
|
|
__u32 cmd;
|
|
__u32 size;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct ethtool_sset_info {
|
|
__u32 cmd;
|
|
__u32 reserved;
|
|
__u64 sset_mask;
|
|
__u32 data[0];
|
|
};
|
|
|
|
struct ethtool_rxfh {
|
|
__u32 cmd;
|
|
__u32 rss_context;
|
|
__u32 indir_size;
|
|
__u32 key_size;
|
|
__u8 hfunc;
|
|
__u8 rsvd8[3];
|
|
__u32 rsvd32;
|
|
__u32 rss_config[0];
|
|
};
|
|
|
|
struct ethtool_get_features_block {
|
|
__u32 available;
|
|
__u32 requested;
|
|
__u32 active;
|
|
__u32 never_changed;
|
|
};
|
|
|
|
struct ethtool_gfeatures {
|
|
__u32 cmd;
|
|
__u32 size;
|
|
struct ethtool_get_features_block features[0];
|
|
};
|
|
|
|
struct ethtool_set_features_block {
|
|
__u32 valid;
|
|
__u32 requested;
|
|
};
|
|
|
|
struct ethtool_sfeatures {
|
|
__u32 cmd;
|
|
__u32 size;
|
|
struct ethtool_set_features_block features[0];
|
|
};
|
|
|
|
struct ethtool_per_queue_op {
|
|
__u32 cmd;
|
|
__u32 sub_command;
|
|
__u32 queue_mask[128];
|
|
char data[0];
|
|
};
|
|
|
|
struct conntrack_gc_work {
|
|
struct delayed_work dwork;
|
|
u32 next_bucket;
|
|
u32 avg_timeout;
|
|
u32 count;
|
|
u32 start_time;
|
|
bool exiting;
|
|
bool early_drop;
|
|
};
|
|
|
|
enum nf_ct_ecache_state {
|
|
NFCT_ECACHE_DESTROY_FAIL = 0,
|
|
NFCT_ECACHE_DESTROY_SENT = 1,
|
|
};
|
|
|
|
enum nf_ct_helper_flags {
|
|
NF_CT_HELPER_F_USERSPACE = 1,
|
|
NF_CT_HELPER_F_CONFIGURED = 2,
|
|
};
|
|
|
|
struct nf_conn_tstamp {
|
|
u_int64_t start;
|
|
u_int64_t stop;
|
|
};
|
|
|
|
struct nf_conn_counter {
|
|
atomic64_t packets;
|
|
atomic64_t bytes;
|
|
};
|
|
|
|
struct nf_conn_acct {
|
|
struct nf_conn_counter counter[2];
|
|
};
|
|
|
|
struct nf_conn_labels {
|
|
unsigned long bits[2];
|
|
};
|
|
|
|
typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *);
|
|
|
|
typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16);
|
|
|
|
struct mfc_cache_cmp_arg {
|
|
__be32 mfc_mcastgrp;
|
|
__be32 mfc_origin;
|
|
};
|
|
|
|
enum {
|
|
IPMRA_CREPORT_UNSPEC = 0,
|
|
IPMRA_CREPORT_MSGTYPE = 1,
|
|
IPMRA_CREPORT_VIF_ID = 2,
|
|
IPMRA_CREPORT_SRC_ADDR = 3,
|
|
IPMRA_CREPORT_DST_ADDR = 4,
|
|
IPMRA_CREPORT_PKT = 5,
|
|
IPMRA_CREPORT_TABLE = 6,
|
|
__IPMRA_CREPORT_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
MFC_STATIC = 1,
|
|
MFC_OFFLOAD = 2,
|
|
};
|
|
|
|
enum {
|
|
PIM_TYPE_HELLO = 0,
|
|
PIM_TYPE_REGISTER = 1,
|
|
PIM_TYPE_REGISTER_STOP = 2,
|
|
PIM_TYPE_JOIN_PRUNE = 3,
|
|
PIM_TYPE_BOOTSTRAP = 4,
|
|
PIM_TYPE_ASSERT = 5,
|
|
PIM_TYPE_GRAFT = 6,
|
|
PIM_TYPE_GRAFT_ACK = 7,
|
|
PIM_TYPE_CANDIDATE_RP_ADV = 8,
|
|
};
|
|
|
|
enum {
|
|
IPMRA_TABLE_UNSPEC = 0,
|
|
IPMRA_TABLE_ID = 1,
|
|
IPMRA_TABLE_CACHE_RES_QUEUE_LEN = 2,
|
|
IPMRA_TABLE_MROUTE_REG_VIF_NUM = 3,
|
|
IPMRA_TABLE_MROUTE_DO_ASSERT = 4,
|
|
IPMRA_TABLE_MROUTE_DO_PIM = 5,
|
|
IPMRA_TABLE_VIFS = 6,
|
|
IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE = 7,
|
|
__IPMRA_TABLE_MAX = 8,
|
|
};
|
|
|
|
enum {
|
|
IPMRA_VIF_UNSPEC = 0,
|
|
IPMRA_VIF = 1,
|
|
__IPMRA_VIF_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
IPMRA_VIFA_UNSPEC = 0,
|
|
IPMRA_VIFA_IFINDEX = 1,
|
|
IPMRA_VIFA_VIF_ID = 2,
|
|
IPMRA_VIFA_FLAGS = 3,
|
|
IPMRA_VIFA_BYTES_IN = 4,
|
|
IPMRA_VIFA_BYTES_OUT = 5,
|
|
IPMRA_VIFA_PACKETS_IN = 6,
|
|
IPMRA_VIFA_PACKETS_OUT = 7,
|
|
IPMRA_VIFA_LOCAL_ADDR = 8,
|
|
IPMRA_VIFA_REMOTE_ADDR = 9,
|
|
IPMRA_VIFA_PAD = 10,
|
|
__IPMRA_VIFA_MAX = 11,
|
|
};
|
|
|
|
typedef unsigned short vifi_t;
|
|
|
|
struct igmpmsg {
|
|
__u32 unused1;
|
|
__u32 unused2;
|
|
unsigned char im_msgtype;
|
|
unsigned char im_mbz;
|
|
unsigned char im_vif;
|
|
unsigned char im_vif_hi;
|
|
struct in_addr im_src;
|
|
struct in_addr im_dst;
|
|
};
|
|
|
|
struct mr_mfc {
|
|
struct rhlist_head mnode;
|
|
unsigned short mfc_parent;
|
|
int mfc_flags;
|
|
union {
|
|
struct {
|
|
unsigned long expires;
|
|
struct sk_buff_head unresolved;
|
|
} unres;
|
|
struct {
|
|
unsigned long last_assert;
|
|
int minvif;
|
|
int maxvif;
|
|
unsigned long bytes;
|
|
unsigned long pkt;
|
|
unsigned long wrong_if;
|
|
unsigned long lastuse;
|
|
unsigned char ttls[32];
|
|
refcount_t refcount;
|
|
} res;
|
|
} mfc_un;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
void (*free)(struct callback_head *);
|
|
};
|
|
|
|
struct mfc_cache {
|
|
struct mr_mfc _c;
|
|
union {
|
|
struct {
|
|
__be32 mfc_mcastgrp;
|
|
__be32 mfc_origin;
|
|
};
|
|
struct mfc_cache_cmp_arg cmparg;
|
|
};
|
|
};
|
|
|
|
struct igmphdr {
|
|
__u8 type;
|
|
__u8 code;
|
|
__sum16 csum;
|
|
__be32 group;
|
|
};
|
|
|
|
struct pimreghdr {
|
|
__u8 type;
|
|
__u8 reserved;
|
|
__be16 csum;
|
|
__be32 flags;
|
|
};
|
|
|
|
struct vifctl {
|
|
vifi_t vifc_vifi;
|
|
unsigned char vifc_flags;
|
|
unsigned char vifc_threshold;
|
|
unsigned int vifc_rate_limit;
|
|
union {
|
|
struct in_addr vifc_lcl_addr;
|
|
int vifc_lcl_ifindex;
|
|
};
|
|
struct in_addr vifc_rmt_addr;
|
|
};
|
|
|
|
struct vif_entry_notifier_info {
|
|
struct fib_notifier_info info;
|
|
struct net_device *dev;
|
|
unsigned short vif_index;
|
|
unsigned short vif_flags;
|
|
u32 tb_id;
|
|
};
|
|
|
|
struct mfc_entry_notifier_info {
|
|
struct fib_notifier_info info;
|
|
struct mr_mfc *mfc;
|
|
u32 tb_id;
|
|
};
|
|
|
|
struct mfcctl {
|
|
struct in_addr mfcc_origin;
|
|
struct in_addr mfcc_mcastgrp;
|
|
vifi_t mfcc_parent;
|
|
unsigned char mfcc_ttls[32];
|
|
unsigned int mfcc_pkt_cnt;
|
|
unsigned int mfcc_byte_cnt;
|
|
unsigned int mfcc_wrong_if;
|
|
int mfcc_expire;
|
|
};
|
|
|
|
struct mr_vif_iter {
|
|
struct seq_net_private p;
|
|
struct mr_table *mrt;
|
|
int ct;
|
|
};
|
|
|
|
struct mr_mfc_iter {
|
|
struct seq_net_private p;
|
|
struct mr_table *mrt;
|
|
struct list_head *cache;
|
|
spinlock_t *lock;
|
|
};
|
|
|
|
struct sioc_sg_req {
|
|
struct in_addr src;
|
|
struct in_addr grp;
|
|
unsigned long pktcnt;
|
|
unsigned long bytecnt;
|
|
unsigned long wrong_if;
|
|
};
|
|
|
|
struct sioc_vif_req {
|
|
vifi_t vifi;
|
|
unsigned long icount;
|
|
unsigned long ocount;
|
|
unsigned long ibytes;
|
|
unsigned long obytes;
|
|
};
|
|
|
|
struct compat_sioc_sg_req {
|
|
struct in_addr src;
|
|
struct in_addr grp;
|
|
compat_ulong_t pktcnt;
|
|
compat_ulong_t bytecnt;
|
|
compat_ulong_t wrong_if;
|
|
};
|
|
|
|
struct compat_sioc_vif_req {
|
|
vifi_t vifi;
|
|
compat_ulong_t icount;
|
|
compat_ulong_t ocount;
|
|
compat_ulong_t ibytes;
|
|
compat_ulong_t obytes;
|
|
};
|
|
|
|
struct bpf_iter__unix {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct unix_sock *unix_sk;
|
|
};
|
|
uid_t uid;
|
|
};
|
|
|
|
struct bpf_unix_iter_state {
|
|
struct seq_net_private p;
|
|
unsigned int cur_sk;
|
|
unsigned int end_sk;
|
|
unsigned int max_sk;
|
|
struct sock **batch;
|
|
bool st_bucket_done;
|
|
};
|
|
|
|
struct unix_stream_read_state {
|
|
int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *);
|
|
struct socket *socket;
|
|
struct msghdr *msg;
|
|
struct pipe_inode_info *pipe;
|
|
size_t size;
|
|
int flags;
|
|
unsigned int splice_flags;
|
|
};
|
|
|
|
enum xprt_xid_rb_cmp {
|
|
XID_RB_EQUAL = 0,
|
|
XID_RB_LEFT = 1,
|
|
XID_RB_RIGHT = 2,
|
|
};
|
|
|
|
enum nl80211_attrs {
|
|
NL80211_ATTR_UNSPEC = 0,
|
|
NL80211_ATTR_WIPHY = 1,
|
|
NL80211_ATTR_WIPHY_NAME = 2,
|
|
NL80211_ATTR_IFINDEX = 3,
|
|
NL80211_ATTR_IFNAME = 4,
|
|
NL80211_ATTR_IFTYPE = 5,
|
|
NL80211_ATTR_MAC = 6,
|
|
NL80211_ATTR_KEY_DATA = 7,
|
|
NL80211_ATTR_KEY_IDX = 8,
|
|
NL80211_ATTR_KEY_CIPHER = 9,
|
|
NL80211_ATTR_KEY_SEQ = 10,
|
|
NL80211_ATTR_KEY_DEFAULT = 11,
|
|
NL80211_ATTR_BEACON_INTERVAL = 12,
|
|
NL80211_ATTR_DTIM_PERIOD = 13,
|
|
NL80211_ATTR_BEACON_HEAD = 14,
|
|
NL80211_ATTR_BEACON_TAIL = 15,
|
|
NL80211_ATTR_STA_AID = 16,
|
|
NL80211_ATTR_STA_FLAGS = 17,
|
|
NL80211_ATTR_STA_LISTEN_INTERVAL = 18,
|
|
NL80211_ATTR_STA_SUPPORTED_RATES = 19,
|
|
NL80211_ATTR_STA_VLAN = 20,
|
|
NL80211_ATTR_STA_INFO = 21,
|
|
NL80211_ATTR_WIPHY_BANDS = 22,
|
|
NL80211_ATTR_MNTR_FLAGS = 23,
|
|
NL80211_ATTR_MESH_ID = 24,
|
|
NL80211_ATTR_STA_PLINK_ACTION = 25,
|
|
NL80211_ATTR_MPATH_NEXT_HOP = 26,
|
|
NL80211_ATTR_MPATH_INFO = 27,
|
|
NL80211_ATTR_BSS_CTS_PROT = 28,
|
|
NL80211_ATTR_BSS_SHORT_PREAMBLE = 29,
|
|
NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30,
|
|
NL80211_ATTR_HT_CAPABILITY = 31,
|
|
NL80211_ATTR_SUPPORTED_IFTYPES = 32,
|
|
NL80211_ATTR_REG_ALPHA2 = 33,
|
|
NL80211_ATTR_REG_RULES = 34,
|
|
NL80211_ATTR_MESH_CONFIG = 35,
|
|
NL80211_ATTR_BSS_BASIC_RATES = 36,
|
|
NL80211_ATTR_WIPHY_TXQ_PARAMS = 37,
|
|
NL80211_ATTR_WIPHY_FREQ = 38,
|
|
NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39,
|
|
NL80211_ATTR_KEY_DEFAULT_MGMT = 40,
|
|
NL80211_ATTR_MGMT_SUBTYPE = 41,
|
|
NL80211_ATTR_IE = 42,
|
|
NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 43,
|
|
NL80211_ATTR_SCAN_FREQUENCIES = 44,
|
|
NL80211_ATTR_SCAN_SSIDS = 45,
|
|
NL80211_ATTR_GENERATION = 46,
|
|
NL80211_ATTR_BSS = 47,
|
|
NL80211_ATTR_REG_INITIATOR = 48,
|
|
NL80211_ATTR_REG_TYPE = 49,
|
|
NL80211_ATTR_SUPPORTED_COMMANDS = 50,
|
|
NL80211_ATTR_FRAME = 51,
|
|
NL80211_ATTR_SSID = 52,
|
|
NL80211_ATTR_AUTH_TYPE = 53,
|
|
NL80211_ATTR_REASON_CODE = 54,
|
|
NL80211_ATTR_KEY_TYPE = 55,
|
|
NL80211_ATTR_MAX_SCAN_IE_LEN = 56,
|
|
NL80211_ATTR_CIPHER_SUITES = 57,
|
|
NL80211_ATTR_FREQ_BEFORE = 58,
|
|
NL80211_ATTR_FREQ_AFTER = 59,
|
|
NL80211_ATTR_FREQ_FIXED = 60,
|
|
NL80211_ATTR_WIPHY_RETRY_SHORT = 61,
|
|
NL80211_ATTR_WIPHY_RETRY_LONG = 62,
|
|
NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63,
|
|
NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64,
|
|
NL80211_ATTR_TIMED_OUT = 65,
|
|
NL80211_ATTR_USE_MFP = 66,
|
|
NL80211_ATTR_STA_FLAGS2 = 67,
|
|
NL80211_ATTR_CONTROL_PORT = 68,
|
|
NL80211_ATTR_TESTDATA = 69,
|
|
NL80211_ATTR_PRIVACY = 70,
|
|
NL80211_ATTR_DISCONNECTED_BY_AP = 71,
|
|
NL80211_ATTR_STATUS_CODE = 72,
|
|
NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73,
|
|
NL80211_ATTR_CIPHER_SUITE_GROUP = 74,
|
|
NL80211_ATTR_WPA_VERSIONS = 75,
|
|
NL80211_ATTR_AKM_SUITES = 76,
|
|
NL80211_ATTR_REQ_IE = 77,
|
|
NL80211_ATTR_RESP_IE = 78,
|
|
NL80211_ATTR_PREV_BSSID = 79,
|
|
NL80211_ATTR_KEY = 80,
|
|
NL80211_ATTR_KEYS = 81,
|
|
NL80211_ATTR_PID = 82,
|
|
NL80211_ATTR_4ADDR = 83,
|
|
NL80211_ATTR_SURVEY_INFO = 84,
|
|
NL80211_ATTR_PMKID = 85,
|
|
NL80211_ATTR_MAX_NUM_PMKIDS = 86,
|
|
NL80211_ATTR_DURATION = 87,
|
|
NL80211_ATTR_COOKIE = 88,
|
|
NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89,
|
|
NL80211_ATTR_TX_RATES = 90,
|
|
NL80211_ATTR_FRAME_MATCH = 91,
|
|
NL80211_ATTR_ACK = 92,
|
|
NL80211_ATTR_PS_STATE = 93,
|
|
NL80211_ATTR_CQM = 94,
|
|
NL80211_ATTR_LOCAL_STATE_CHANGE = 95,
|
|
NL80211_ATTR_AP_ISOLATE = 96,
|
|
NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97,
|
|
NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98,
|
|
NL80211_ATTR_TX_FRAME_TYPES = 99,
|
|
NL80211_ATTR_RX_FRAME_TYPES = 100,
|
|
NL80211_ATTR_FRAME_TYPE = 101,
|
|
NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102,
|
|
NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103,
|
|
NL80211_ATTR_SUPPORT_IBSS_RSN = 104,
|
|
NL80211_ATTR_WIPHY_ANTENNA_TX = 105,
|
|
NL80211_ATTR_WIPHY_ANTENNA_RX = 106,
|
|
NL80211_ATTR_MCAST_RATE = 107,
|
|
NL80211_ATTR_OFFCHANNEL_TX_OK = 108,
|
|
NL80211_ATTR_BSS_HT_OPMODE = 109,
|
|
NL80211_ATTR_KEY_DEFAULT_TYPES = 110,
|
|
NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 111,
|
|
NL80211_ATTR_MESH_SETUP = 112,
|
|
NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 113,
|
|
NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 114,
|
|
NL80211_ATTR_SUPPORT_MESH_AUTH = 115,
|
|
NL80211_ATTR_STA_PLINK_STATE = 116,
|
|
NL80211_ATTR_WOWLAN_TRIGGERS = 117,
|
|
NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 118,
|
|
NL80211_ATTR_SCHED_SCAN_INTERVAL = 119,
|
|
NL80211_ATTR_INTERFACE_COMBINATIONS = 120,
|
|
NL80211_ATTR_SOFTWARE_IFTYPES = 121,
|
|
NL80211_ATTR_REKEY_DATA = 122,
|
|
NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 123,
|
|
NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 124,
|
|
NL80211_ATTR_SCAN_SUPP_RATES = 125,
|
|
NL80211_ATTR_HIDDEN_SSID = 126,
|
|
NL80211_ATTR_IE_PROBE_RESP = 127,
|
|
NL80211_ATTR_IE_ASSOC_RESP = 128,
|
|
NL80211_ATTR_STA_WME = 129,
|
|
NL80211_ATTR_SUPPORT_AP_UAPSD = 130,
|
|
NL80211_ATTR_ROAM_SUPPORT = 131,
|
|
NL80211_ATTR_SCHED_SCAN_MATCH = 132,
|
|
NL80211_ATTR_MAX_MATCH_SETS = 133,
|
|
NL80211_ATTR_PMKSA_CANDIDATE = 134,
|
|
NL80211_ATTR_TX_NO_CCK_RATE = 135,
|
|
NL80211_ATTR_TDLS_ACTION = 136,
|
|
NL80211_ATTR_TDLS_DIALOG_TOKEN = 137,
|
|
NL80211_ATTR_TDLS_OPERATION = 138,
|
|
NL80211_ATTR_TDLS_SUPPORT = 139,
|
|
NL80211_ATTR_TDLS_EXTERNAL_SETUP = 140,
|
|
NL80211_ATTR_DEVICE_AP_SME = 141,
|
|
NL80211_ATTR_DONT_WAIT_FOR_ACK = 142,
|
|
NL80211_ATTR_FEATURE_FLAGS = 143,
|
|
NL80211_ATTR_PROBE_RESP_OFFLOAD = 144,
|
|
NL80211_ATTR_PROBE_RESP = 145,
|
|
NL80211_ATTR_DFS_REGION = 146,
|
|
NL80211_ATTR_DISABLE_HT = 147,
|
|
NL80211_ATTR_HT_CAPABILITY_MASK = 148,
|
|
NL80211_ATTR_NOACK_MAP = 149,
|
|
NL80211_ATTR_INACTIVITY_TIMEOUT = 150,
|
|
NL80211_ATTR_RX_SIGNAL_DBM = 151,
|
|
NL80211_ATTR_BG_SCAN_PERIOD = 152,
|
|
NL80211_ATTR_WDEV = 153,
|
|
NL80211_ATTR_USER_REG_HINT_TYPE = 154,
|
|
NL80211_ATTR_CONN_FAILED_REASON = 155,
|
|
NL80211_ATTR_AUTH_DATA = 156,
|
|
NL80211_ATTR_VHT_CAPABILITY = 157,
|
|
NL80211_ATTR_SCAN_FLAGS = 158,
|
|
NL80211_ATTR_CHANNEL_WIDTH = 159,
|
|
NL80211_ATTR_CENTER_FREQ1 = 160,
|
|
NL80211_ATTR_CENTER_FREQ2 = 161,
|
|
NL80211_ATTR_P2P_CTWINDOW = 162,
|
|
NL80211_ATTR_P2P_OPPPS = 163,
|
|
NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164,
|
|
NL80211_ATTR_ACL_POLICY = 165,
|
|
NL80211_ATTR_MAC_ADDRS = 166,
|
|
NL80211_ATTR_MAC_ACL_MAX = 167,
|
|
NL80211_ATTR_RADAR_EVENT = 168,
|
|
NL80211_ATTR_EXT_CAPA = 169,
|
|
NL80211_ATTR_EXT_CAPA_MASK = 170,
|
|
NL80211_ATTR_STA_CAPABILITY = 171,
|
|
NL80211_ATTR_STA_EXT_CAPABILITY = 172,
|
|
NL80211_ATTR_PROTOCOL_FEATURES = 173,
|
|
NL80211_ATTR_SPLIT_WIPHY_DUMP = 174,
|
|
NL80211_ATTR_DISABLE_VHT = 175,
|
|
NL80211_ATTR_VHT_CAPABILITY_MASK = 176,
|
|
NL80211_ATTR_MDID = 177,
|
|
NL80211_ATTR_IE_RIC = 178,
|
|
NL80211_ATTR_CRIT_PROT_ID = 179,
|
|
NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180,
|
|
NL80211_ATTR_PEER_AID = 181,
|
|
NL80211_ATTR_COALESCE_RULE = 182,
|
|
NL80211_ATTR_CH_SWITCH_COUNT = 183,
|
|
NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184,
|
|
NL80211_ATTR_CSA_IES = 185,
|
|
NL80211_ATTR_CNTDWN_OFFS_BEACON = 186,
|
|
NL80211_ATTR_CNTDWN_OFFS_PRESP = 187,
|
|
NL80211_ATTR_RXMGMT_FLAGS = 188,
|
|
NL80211_ATTR_STA_SUPPORTED_CHANNELS = 189,
|
|
NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 190,
|
|
NL80211_ATTR_HANDLE_DFS = 191,
|
|
NL80211_ATTR_SUPPORT_5_MHZ = 192,
|
|
NL80211_ATTR_SUPPORT_10_MHZ = 193,
|
|
NL80211_ATTR_OPMODE_NOTIF = 194,
|
|
NL80211_ATTR_VENDOR_ID = 195,
|
|
NL80211_ATTR_VENDOR_SUBCMD = 196,
|
|
NL80211_ATTR_VENDOR_DATA = 197,
|
|
NL80211_ATTR_VENDOR_EVENTS = 198,
|
|
NL80211_ATTR_QOS_MAP = 199,
|
|
NL80211_ATTR_MAC_HINT = 200,
|
|
NL80211_ATTR_WIPHY_FREQ_HINT = 201,
|
|
NL80211_ATTR_MAX_AP_ASSOC_STA = 202,
|
|
NL80211_ATTR_TDLS_PEER_CAPABILITY = 203,
|
|
NL80211_ATTR_SOCKET_OWNER = 204,
|
|
NL80211_ATTR_CSA_C_OFFSETS_TX = 205,
|
|
NL80211_ATTR_MAX_CSA_COUNTERS = 206,
|
|
NL80211_ATTR_TDLS_INITIATOR = 207,
|
|
NL80211_ATTR_USE_RRM = 208,
|
|
NL80211_ATTR_WIPHY_DYN_ACK = 209,
|
|
NL80211_ATTR_TSID = 210,
|
|
NL80211_ATTR_USER_PRIO = 211,
|
|
NL80211_ATTR_ADMITTED_TIME = 212,
|
|
NL80211_ATTR_SMPS_MODE = 213,
|
|
NL80211_ATTR_OPER_CLASS = 214,
|
|
NL80211_ATTR_MAC_MASK = 215,
|
|
NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 216,
|
|
NL80211_ATTR_EXT_FEATURES = 217,
|
|
NL80211_ATTR_SURVEY_RADIO_STATS = 218,
|
|
NL80211_ATTR_NETNS_FD = 219,
|
|
NL80211_ATTR_SCHED_SCAN_DELAY = 220,
|
|
NL80211_ATTR_REG_INDOOR = 221,
|
|
NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 222,
|
|
NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223,
|
|
NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224,
|
|
NL80211_ATTR_SCHED_SCAN_PLANS = 225,
|
|
NL80211_ATTR_PBSS = 226,
|
|
NL80211_ATTR_BSS_SELECT = 227,
|
|
NL80211_ATTR_STA_SUPPORT_P2P_PS = 228,
|
|
NL80211_ATTR_PAD = 229,
|
|
NL80211_ATTR_IFTYPE_EXT_CAPA = 230,
|
|
NL80211_ATTR_MU_MIMO_GROUP_DATA = 231,
|
|
NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232,
|
|
NL80211_ATTR_SCAN_START_TIME_TSF = 233,
|
|
NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 234,
|
|
NL80211_ATTR_MEASUREMENT_DURATION = 235,
|
|
NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236,
|
|
NL80211_ATTR_MESH_PEER_AID = 237,
|
|
NL80211_ATTR_NAN_MASTER_PREF = 238,
|
|
NL80211_ATTR_BANDS = 239,
|
|
NL80211_ATTR_NAN_FUNC = 240,
|
|
NL80211_ATTR_NAN_MATCH = 241,
|
|
NL80211_ATTR_FILS_KEK = 242,
|
|
NL80211_ATTR_FILS_NONCES = 243,
|
|
NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244,
|
|
NL80211_ATTR_BSSID = 245,
|
|
NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 246,
|
|
NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247,
|
|
NL80211_ATTR_TIMEOUT_REASON = 248,
|
|
NL80211_ATTR_FILS_ERP_USERNAME = 249,
|
|
NL80211_ATTR_FILS_ERP_REALM = 250,
|
|
NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251,
|
|
NL80211_ATTR_FILS_ERP_RRK = 252,
|
|
NL80211_ATTR_FILS_CACHE_ID = 253,
|
|
NL80211_ATTR_PMK = 254,
|
|
NL80211_ATTR_SCHED_SCAN_MULTI = 255,
|
|
NL80211_ATTR_SCHED_SCAN_MAX_REQS = 256,
|
|
NL80211_ATTR_WANT_1X_4WAY_HS = 257,
|
|
NL80211_ATTR_PMKR0_NAME = 258,
|
|
NL80211_ATTR_PORT_AUTHORIZED = 259,
|
|
NL80211_ATTR_EXTERNAL_AUTH_ACTION = 260,
|
|
NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261,
|
|
NL80211_ATTR_NSS = 262,
|
|
NL80211_ATTR_ACK_SIGNAL = 263,
|
|
NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264,
|
|
NL80211_ATTR_TXQ_STATS = 265,
|
|
NL80211_ATTR_TXQ_LIMIT = 266,
|
|
NL80211_ATTR_TXQ_MEMORY_LIMIT = 267,
|
|
NL80211_ATTR_TXQ_QUANTUM = 268,
|
|
NL80211_ATTR_HE_CAPABILITY = 269,
|
|
NL80211_ATTR_FTM_RESPONDER = 270,
|
|
NL80211_ATTR_FTM_RESPONDER_STATS = 271,
|
|
NL80211_ATTR_TIMEOUT = 272,
|
|
NL80211_ATTR_PEER_MEASUREMENTS = 273,
|
|
NL80211_ATTR_AIRTIME_WEIGHT = 274,
|
|
NL80211_ATTR_STA_TX_POWER_SETTING = 275,
|
|
NL80211_ATTR_STA_TX_POWER = 276,
|
|
NL80211_ATTR_SAE_PASSWORD = 277,
|
|
NL80211_ATTR_TWT_RESPONDER = 278,
|
|
NL80211_ATTR_HE_OBSS_PD = 279,
|
|
NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280,
|
|
NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281,
|
|
NL80211_ATTR_VLAN_ID = 282,
|
|
NL80211_ATTR_HE_BSS_COLOR = 283,
|
|
NL80211_ATTR_IFTYPE_AKM_SUITES = 284,
|
|
NL80211_ATTR_TID_CONFIG = 285,
|
|
NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286,
|
|
NL80211_ATTR_PMK_LIFETIME = 287,
|
|
NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288,
|
|
NL80211_ATTR_RECEIVE_MULTICAST = 289,
|
|
NL80211_ATTR_WIPHY_FREQ_OFFSET = 290,
|
|
NL80211_ATTR_CENTER_FREQ1_OFFSET = 291,
|
|
NL80211_ATTR_SCAN_FREQ_KHZ = 292,
|
|
NL80211_ATTR_HE_6GHZ_CAPABILITY = 293,
|
|
NL80211_ATTR_FILS_DISCOVERY = 294,
|
|
NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 295,
|
|
NL80211_ATTR_S1G_CAPABILITY = 296,
|
|
NL80211_ATTR_S1G_CAPABILITY_MASK = 297,
|
|
NL80211_ATTR_SAE_PWE = 298,
|
|
NL80211_ATTR_RECONNECT_REQUESTED = 299,
|
|
NL80211_ATTR_SAR_SPEC = 300,
|
|
NL80211_ATTR_DISABLE_HE = 301,
|
|
NL80211_ATTR_OBSS_COLOR_BITMAP = 302,
|
|
NL80211_ATTR_COLOR_CHANGE_COUNT = 303,
|
|
NL80211_ATTR_COLOR_CHANGE_COLOR = 304,
|
|
NL80211_ATTR_COLOR_CHANGE_ELEMS = 305,
|
|
NL80211_ATTR_MBSSID_CONFIG = 306,
|
|
NL80211_ATTR_MBSSID_ELEMS = 307,
|
|
NL80211_ATTR_RADAR_BACKGROUND = 308,
|
|
NL80211_ATTR_AP_SETTINGS_FLAGS = 309,
|
|
NL80211_ATTR_EHT_CAPABILITY = 310,
|
|
NL80211_ATTR_DISABLE_EHT = 311,
|
|
NL80211_ATTR_MLO_LINKS = 312,
|
|
NL80211_ATTR_MLO_LINK_ID = 313,
|
|
NL80211_ATTR_MLD_ADDR = 314,
|
|
NL80211_ATTR_MLO_SUPPORT = 315,
|
|
NL80211_ATTR_MAX_NUM_AKM_SUITES = 316,
|
|
NL80211_ATTR_EML_CAPABILITY = 317,
|
|
NL80211_ATTR_MLD_CAPA_AND_OPS = 318,
|
|
NL80211_ATTR_TX_HW_TIMESTAMP = 319,
|
|
NL80211_ATTR_RX_HW_TIMESTAMP = 320,
|
|
NL80211_ATTR_TD_BITMAP = 321,
|
|
NL80211_ATTR_PUNCT_BITMAP = 322,
|
|
__NL80211_ATTR_AFTER_LAST = 323,
|
|
NUM_NL80211_ATTR = 323,
|
|
NL80211_ATTR_MAX = 322,
|
|
};
|
|
|
|
enum nl80211_rate_info {
|
|
__NL80211_RATE_INFO_INVALID = 0,
|
|
NL80211_RATE_INFO_BITRATE = 1,
|
|
NL80211_RATE_INFO_MCS = 2,
|
|
NL80211_RATE_INFO_40_MHZ_WIDTH = 3,
|
|
NL80211_RATE_INFO_SHORT_GI = 4,
|
|
NL80211_RATE_INFO_BITRATE32 = 5,
|
|
NL80211_RATE_INFO_VHT_MCS = 6,
|
|
NL80211_RATE_INFO_VHT_NSS = 7,
|
|
NL80211_RATE_INFO_80_MHZ_WIDTH = 8,
|
|
NL80211_RATE_INFO_80P80_MHZ_WIDTH = 9,
|
|
NL80211_RATE_INFO_160_MHZ_WIDTH = 10,
|
|
NL80211_RATE_INFO_10_MHZ_WIDTH = 11,
|
|
NL80211_RATE_INFO_5_MHZ_WIDTH = 12,
|
|
NL80211_RATE_INFO_HE_MCS = 13,
|
|
NL80211_RATE_INFO_HE_NSS = 14,
|
|
NL80211_RATE_INFO_HE_GI = 15,
|
|
NL80211_RATE_INFO_HE_DCM = 16,
|
|
NL80211_RATE_INFO_HE_RU_ALLOC = 17,
|
|
NL80211_RATE_INFO_320_MHZ_WIDTH = 18,
|
|
NL80211_RATE_INFO_EHT_MCS = 19,
|
|
NL80211_RATE_INFO_EHT_NSS = 20,
|
|
NL80211_RATE_INFO_EHT_GI = 21,
|
|
NL80211_RATE_INFO_EHT_RU_ALLOC = 22,
|
|
__NL80211_RATE_INFO_AFTER_LAST = 23,
|
|
NL80211_RATE_INFO_MAX = 22,
|
|
};
|
|
|
|
enum plink_actions {
|
|
NL80211_PLINK_ACTION_NO_ACTION = 0,
|
|
NL80211_PLINK_ACTION_OPEN = 1,
|
|
NL80211_PLINK_ACTION_BLOCK = 2,
|
|
NUM_NL80211_PLINK_ACTIONS = 3,
|
|
};
|
|
|
|
enum nl80211_multicast_groups {
|
|
NL80211_MCGRP_CONFIG = 0,
|
|
NL80211_MCGRP_SCAN = 1,
|
|
NL80211_MCGRP_REGULATORY = 2,
|
|
NL80211_MCGRP_MLME = 3,
|
|
NL80211_MCGRP_VENDOR = 4,
|
|
NL80211_MCGRP_NAN = 5,
|
|
NL80211_MCGRP_TESTMODE = 6,
|
|
};
|
|
|
|
enum nl80211_nan_match_attributes {
|
|
__NL80211_NAN_MATCH_INVALID = 0,
|
|
NL80211_NAN_MATCH_FUNC_LOCAL = 1,
|
|
NL80211_NAN_MATCH_FUNC_PEER = 2,
|
|
NUM_NL80211_NAN_MATCH_ATTR = 3,
|
|
NL80211_NAN_MATCH_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_nan_func_attributes {
|
|
__NL80211_NAN_FUNC_INVALID = 0,
|
|
NL80211_NAN_FUNC_TYPE = 1,
|
|
NL80211_NAN_FUNC_SERVICE_ID = 2,
|
|
NL80211_NAN_FUNC_PUBLISH_TYPE = 3,
|
|
NL80211_NAN_FUNC_PUBLISH_BCAST = 4,
|
|
NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 5,
|
|
NL80211_NAN_FUNC_FOLLOW_UP_ID = 6,
|
|
NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 7,
|
|
NL80211_NAN_FUNC_FOLLOW_UP_DEST = 8,
|
|
NL80211_NAN_FUNC_CLOSE_RANGE = 9,
|
|
NL80211_NAN_FUNC_TTL = 10,
|
|
NL80211_NAN_FUNC_SERVICE_INFO = 11,
|
|
NL80211_NAN_FUNC_SRF = 12,
|
|
NL80211_NAN_FUNC_RX_MATCH_FILTER = 13,
|
|
NL80211_NAN_FUNC_TX_MATCH_FILTER = 14,
|
|
NL80211_NAN_FUNC_INSTANCE_ID = 15,
|
|
NL80211_NAN_FUNC_TERM_REASON = 16,
|
|
NUM_NL80211_NAN_FUNC_ATTR = 17,
|
|
NL80211_NAN_FUNC_ATTR_MAX = 16,
|
|
};
|
|
|
|
enum nl80211_connect_failed_reason {
|
|
NL80211_CONN_FAIL_MAX_CLIENTS = 0,
|
|
NL80211_CONN_FAIL_BLOCKED_CLIENT = 1,
|
|
};
|
|
|
|
enum nl80211_attr_cqm {
|
|
__NL80211_ATTR_CQM_INVALID = 0,
|
|
NL80211_ATTR_CQM_RSSI_THOLD = 1,
|
|
NL80211_ATTR_CQM_RSSI_HYST = 2,
|
|
NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 3,
|
|
NL80211_ATTR_CQM_PKT_LOSS_EVENT = 4,
|
|
NL80211_ATTR_CQM_TXE_RATE = 5,
|
|
NL80211_ATTR_CQM_TXE_PKTS = 6,
|
|
NL80211_ATTR_CQM_TXE_INTVL = 7,
|
|
NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 8,
|
|
NL80211_ATTR_CQM_RSSI_LEVEL = 9,
|
|
__NL80211_ATTR_CQM_AFTER_LAST = 10,
|
|
NL80211_ATTR_CQM_MAX = 9,
|
|
};
|
|
|
|
enum nl80211_wowlan_triggers {
|
|
__NL80211_WOWLAN_TRIG_INVALID = 0,
|
|
NL80211_WOWLAN_TRIG_ANY = 1,
|
|
NL80211_WOWLAN_TRIG_DISCONNECT = 2,
|
|
NL80211_WOWLAN_TRIG_MAGIC_PKT = 3,
|
|
NL80211_WOWLAN_TRIG_PKT_PATTERN = 4,
|
|
NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 5,
|
|
NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 6,
|
|
NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 7,
|
|
NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 8,
|
|
NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 9,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 10,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 11,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 12,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 13,
|
|
NL80211_WOWLAN_TRIG_TCP_CONNECTION = 14,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 15,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 16,
|
|
NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 17,
|
|
NL80211_WOWLAN_TRIG_NET_DETECT = 18,
|
|
NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 19,
|
|
NUM_NL80211_WOWLAN_TRIG = 20,
|
|
MAX_NL80211_WOWLAN_TRIG = 19,
|
|
};
|
|
|
|
enum nl80211_txq_attr {
|
|
__NL80211_TXQ_ATTR_INVALID = 0,
|
|
NL80211_TXQ_ATTR_AC = 1,
|
|
NL80211_TXQ_ATTR_TXOP = 2,
|
|
NL80211_TXQ_ATTR_CWMIN = 3,
|
|
NL80211_TXQ_ATTR_CWMAX = 4,
|
|
NL80211_TXQ_ATTR_AIFS = 5,
|
|
__NL80211_TXQ_ATTR_AFTER_LAST = 6,
|
|
NL80211_TXQ_ATTR_MAX = 5,
|
|
};
|
|
|
|
enum nl80211_mntr_flags {
|
|
__NL80211_MNTR_FLAG_INVALID = 0,
|
|
NL80211_MNTR_FLAG_FCSFAIL = 1,
|
|
NL80211_MNTR_FLAG_PLCPFAIL = 2,
|
|
NL80211_MNTR_FLAG_CONTROL = 3,
|
|
NL80211_MNTR_FLAG_OTHER_BSS = 4,
|
|
NL80211_MNTR_FLAG_COOK_FRAMES = 5,
|
|
NL80211_MNTR_FLAG_ACTIVE = 6,
|
|
__NL80211_MNTR_FLAG_AFTER_LAST = 7,
|
|
NL80211_MNTR_FLAG_MAX = 6,
|
|
};
|
|
|
|
enum nl80211_key_attributes {
|
|
__NL80211_KEY_INVALID = 0,
|
|
NL80211_KEY_DATA = 1,
|
|
NL80211_KEY_IDX = 2,
|
|
NL80211_KEY_CIPHER = 3,
|
|
NL80211_KEY_SEQ = 4,
|
|
NL80211_KEY_DEFAULT = 5,
|
|
NL80211_KEY_DEFAULT_MGMT = 6,
|
|
NL80211_KEY_TYPE = 7,
|
|
NL80211_KEY_DEFAULT_TYPES = 8,
|
|
NL80211_KEY_MODE = 9,
|
|
NL80211_KEY_DEFAULT_BEACON = 10,
|
|
__NL80211_KEY_AFTER_LAST = 11,
|
|
NL80211_KEY_MAX = 10,
|
|
};
|
|
|
|
enum nl80211_key_default_types {
|
|
__NL80211_KEY_DEFAULT_TYPE_INVALID = 0,
|
|
NL80211_KEY_DEFAULT_TYPE_UNICAST = 1,
|
|
NL80211_KEY_DEFAULT_TYPE_MULTICAST = 2,
|
|
NUM_NL80211_KEY_DEFAULT_TYPES = 3,
|
|
};
|
|
|
|
enum nl80211_ftm_responder_attributes {
|
|
__NL80211_FTM_RESP_ATTR_INVALID = 0,
|
|
NL80211_FTM_RESP_ATTR_ENABLED = 1,
|
|
NL80211_FTM_RESP_ATTR_LCI = 2,
|
|
NL80211_FTM_RESP_ATTR_CIVICLOC = 3,
|
|
__NL80211_FTM_RESP_ATTR_LAST = 4,
|
|
NL80211_FTM_RESP_ATTR_MAX = 3,
|
|
};
|
|
|
|
enum nl80211_bss_color_attributes {
|
|
__NL80211_HE_BSS_COLOR_ATTR_INVALID = 0,
|
|
NL80211_HE_BSS_COLOR_ATTR_COLOR = 1,
|
|
NL80211_HE_BSS_COLOR_ATTR_DISABLED = 2,
|
|
NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 3,
|
|
__NL80211_HE_BSS_COLOR_ATTR_LAST = 4,
|
|
NL80211_HE_BSS_COLOR_ATTR_MAX = 3,
|
|
};
|
|
|
|
enum nl80211_ap_settings_flags {
|
|
NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1,
|
|
NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2,
|
|
};
|
|
|
|
enum nl80211_wpa_versions {
|
|
NL80211_WPA_VERSION_1 = 1,
|
|
NL80211_WPA_VERSION_2 = 2,
|
|
NL80211_WPA_VERSION_3 = 4,
|
|
};
|
|
|
|
enum nl80211_tx_rate_attributes {
|
|
__NL80211_TXRATE_INVALID = 0,
|
|
NL80211_TXRATE_LEGACY = 1,
|
|
NL80211_TXRATE_HT = 2,
|
|
NL80211_TXRATE_VHT = 3,
|
|
NL80211_TXRATE_GI = 4,
|
|
NL80211_TXRATE_HE = 5,
|
|
NL80211_TXRATE_HE_GI = 6,
|
|
NL80211_TXRATE_HE_LTF = 7,
|
|
__NL80211_TXRATE_AFTER_LAST = 8,
|
|
NL80211_TXRATE_MAX = 7,
|
|
};
|
|
|
|
enum nl80211_obss_pd_attributes {
|
|
__NL80211_HE_OBSS_PD_ATTR_INVALID = 0,
|
|
NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 1,
|
|
NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 2,
|
|
NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 3,
|
|
NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 4,
|
|
NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 5,
|
|
NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 6,
|
|
__NL80211_HE_OBSS_PD_ATTR_LAST = 7,
|
|
NL80211_HE_OBSS_PD_ATTR_MAX = 6,
|
|
};
|
|
|
|
enum nl80211_fils_discovery_attributes {
|
|
__NL80211_FILS_DISCOVERY_ATTR_INVALID = 0,
|
|
NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 1,
|
|
NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 2,
|
|
NL80211_FILS_DISCOVERY_ATTR_TMPL = 3,
|
|
__NL80211_FILS_DISCOVERY_ATTR_LAST = 4,
|
|
NL80211_FILS_DISCOVERY_ATTR_MAX = 3,
|
|
};
|
|
|
|
enum nl80211_unsol_bcast_probe_resp_attributes {
|
|
__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID = 0,
|
|
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 1,
|
|
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 2,
|
|
__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST = 3,
|
|
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_mbssid_config_attributes {
|
|
__NL80211_MBSSID_CONFIG_ATTR_INVALID = 0,
|
|
NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 1,
|
|
NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 2,
|
|
NL80211_MBSSID_CONFIG_ATTR_INDEX = 3,
|
|
NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 4,
|
|
NL80211_MBSSID_CONFIG_ATTR_EMA = 5,
|
|
__NL80211_MBSSID_CONFIG_ATTR_LAST = 6,
|
|
NL80211_MBSSID_CONFIG_ATTR_MAX = 5,
|
|
};
|
|
|
|
enum nl80211_sta_wme_attr {
|
|
__NL80211_STA_WME_INVALID = 0,
|
|
NL80211_STA_WME_UAPSD_QUEUES = 1,
|
|
NL80211_STA_WME_MAX_SP = 2,
|
|
__NL80211_STA_WME_AFTER_LAST = 3,
|
|
NL80211_STA_WME_MAX = 2,
|
|
};
|
|
|
|
enum mpath_info_flags {
|
|
MPATH_INFO_FRAME_QLEN = 1,
|
|
MPATH_INFO_SN = 2,
|
|
MPATH_INFO_METRIC = 4,
|
|
MPATH_INFO_EXPTIME = 8,
|
|
MPATH_INFO_DISCOVERY_TIMEOUT = 16,
|
|
MPATH_INFO_DISCOVERY_RETRIES = 32,
|
|
MPATH_INFO_FLAGS = 64,
|
|
MPATH_INFO_HOP_COUNT = 128,
|
|
MPATH_INFO_PATH_CHANGE = 256,
|
|
};
|
|
|
|
enum nl80211_mpath_info {
|
|
__NL80211_MPATH_INFO_INVALID = 0,
|
|
NL80211_MPATH_INFO_FRAME_QLEN = 1,
|
|
NL80211_MPATH_INFO_SN = 2,
|
|
NL80211_MPATH_INFO_METRIC = 3,
|
|
NL80211_MPATH_INFO_EXPTIME = 4,
|
|
NL80211_MPATH_INFO_FLAGS = 5,
|
|
NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 6,
|
|
NL80211_MPATH_INFO_DISCOVERY_RETRIES = 7,
|
|
NL80211_MPATH_INFO_HOP_COUNT = 8,
|
|
NL80211_MPATH_INFO_PATH_CHANGE = 9,
|
|
__NL80211_MPATH_INFO_AFTER_LAST = 10,
|
|
NL80211_MPATH_INFO_MAX = 9,
|
|
};
|
|
|
|
enum nl80211_reg_rule_attr {
|
|
__NL80211_REG_RULE_ATTR_INVALID = 0,
|
|
NL80211_ATTR_REG_RULE_FLAGS = 1,
|
|
NL80211_ATTR_FREQ_RANGE_START = 2,
|
|
NL80211_ATTR_FREQ_RANGE_END = 3,
|
|
NL80211_ATTR_FREQ_RANGE_MAX_BW = 4,
|
|
NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 5,
|
|
NL80211_ATTR_POWER_RULE_MAX_EIRP = 6,
|
|
NL80211_ATTR_DFS_CAC_TIME = 7,
|
|
__NL80211_REG_RULE_ATTR_AFTER_LAST = 8,
|
|
NL80211_REG_RULE_ATTR_MAX = 7,
|
|
};
|
|
|
|
enum ieee80211_regd_source {
|
|
REGD_SOURCE_INTERNAL_DB = 0,
|
|
REGD_SOURCE_CRDA = 1,
|
|
REGD_SOURCE_CACHED = 2,
|
|
};
|
|
|
|
enum nl80211_meshconf_params {
|
|
__NL80211_MESHCONF_INVALID = 0,
|
|
NL80211_MESHCONF_RETRY_TIMEOUT = 1,
|
|
NL80211_MESHCONF_CONFIRM_TIMEOUT = 2,
|
|
NL80211_MESHCONF_HOLDING_TIMEOUT = 3,
|
|
NL80211_MESHCONF_MAX_PEER_LINKS = 4,
|
|
NL80211_MESHCONF_MAX_RETRIES = 5,
|
|
NL80211_MESHCONF_TTL = 6,
|
|
NL80211_MESHCONF_AUTO_OPEN_PLINKS = 7,
|
|
NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 8,
|
|
NL80211_MESHCONF_PATH_REFRESH_TIME = 9,
|
|
NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 10,
|
|
NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 11,
|
|
NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 12,
|
|
NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 13,
|
|
NL80211_MESHCONF_HWMP_ROOTMODE = 14,
|
|
NL80211_MESHCONF_ELEMENT_TTL = 15,
|
|
NL80211_MESHCONF_HWMP_RANN_INTERVAL = 16,
|
|
NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 17,
|
|
NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 18,
|
|
NL80211_MESHCONF_FORWARDING = 19,
|
|
NL80211_MESHCONF_RSSI_THRESHOLD = 20,
|
|
NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 21,
|
|
NL80211_MESHCONF_HT_OPMODE = 22,
|
|
NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 23,
|
|
NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 24,
|
|
NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 25,
|
|
NL80211_MESHCONF_POWER_MODE = 26,
|
|
NL80211_MESHCONF_AWAKE_WINDOW = 27,
|
|
NL80211_MESHCONF_PLINK_TIMEOUT = 28,
|
|
NL80211_MESHCONF_CONNECTED_TO_GATE = 29,
|
|
NL80211_MESHCONF_NOLEARN = 30,
|
|
NL80211_MESHCONF_CONNECTED_TO_AS = 31,
|
|
__NL80211_MESHCONF_ATTR_AFTER_LAST = 32,
|
|
NL80211_MESHCONF_ATTR_MAX = 31,
|
|
};
|
|
|
|
enum nl80211_bss {
|
|
__NL80211_BSS_INVALID = 0,
|
|
NL80211_BSS_BSSID = 1,
|
|
NL80211_BSS_FREQUENCY = 2,
|
|
NL80211_BSS_TSF = 3,
|
|
NL80211_BSS_BEACON_INTERVAL = 4,
|
|
NL80211_BSS_CAPABILITY = 5,
|
|
NL80211_BSS_INFORMATION_ELEMENTS = 6,
|
|
NL80211_BSS_SIGNAL_MBM = 7,
|
|
NL80211_BSS_SIGNAL_UNSPEC = 8,
|
|
NL80211_BSS_STATUS = 9,
|
|
NL80211_BSS_SEEN_MS_AGO = 10,
|
|
NL80211_BSS_BEACON_IES = 11,
|
|
NL80211_BSS_CHAN_WIDTH = 12,
|
|
NL80211_BSS_BEACON_TSF = 13,
|
|
NL80211_BSS_PRESP_DATA = 14,
|
|
NL80211_BSS_LAST_SEEN_BOOTTIME = 15,
|
|
NL80211_BSS_PAD = 16,
|
|
NL80211_BSS_PARENT_TSF = 17,
|
|
NL80211_BSS_PARENT_BSSID = 18,
|
|
NL80211_BSS_CHAIN_SIGNAL = 19,
|
|
NL80211_BSS_FREQUENCY_OFFSET = 20,
|
|
NL80211_BSS_MLO_LINK_ID = 21,
|
|
NL80211_BSS_MLD_ADDR = 22,
|
|
__NL80211_BSS_AFTER_LAST = 23,
|
|
NL80211_BSS_MAX = 22,
|
|
};
|
|
|
|
enum nl80211_bss_status {
|
|
NL80211_BSS_STATUS_AUTHENTICATED = 0,
|
|
NL80211_BSS_STATUS_ASSOCIATED = 1,
|
|
NL80211_BSS_STATUS_IBSS_JOINED = 2,
|
|
};
|
|
|
|
enum nl80211_sched_scan_match_attr {
|
|
__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID = 0,
|
|
NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 1,
|
|
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 2,
|
|
NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 3,
|
|
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 4,
|
|
NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 5,
|
|
NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 6,
|
|
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST = 7,
|
|
NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 6,
|
|
};
|
|
|
|
enum nl80211_sched_scan_plan {
|
|
__NL80211_SCHED_SCAN_PLAN_INVALID = 0,
|
|
NL80211_SCHED_SCAN_PLAN_INTERVAL = 1,
|
|
NL80211_SCHED_SCAN_PLAN_ITERATIONS = 2,
|
|
__NL80211_SCHED_SCAN_PLAN_AFTER_LAST = 3,
|
|
NL80211_SCHED_SCAN_PLAN_MAX = 2,
|
|
};
|
|
|
|
enum cfg80211_connect_params_changed {
|
|
UPDATE_ASSOC_IES = 1,
|
|
UPDATE_FILS_ERP_INFO = 2,
|
|
UPDATE_AUTH_TYPE = 4,
|
|
};
|
|
|
|
enum nl80211_survey_info {
|
|
__NL80211_SURVEY_INFO_INVALID = 0,
|
|
NL80211_SURVEY_INFO_FREQUENCY = 1,
|
|
NL80211_SURVEY_INFO_NOISE = 2,
|
|
NL80211_SURVEY_INFO_IN_USE = 3,
|
|
NL80211_SURVEY_INFO_TIME = 4,
|
|
NL80211_SURVEY_INFO_TIME_BUSY = 5,
|
|
NL80211_SURVEY_INFO_TIME_EXT_BUSY = 6,
|
|
NL80211_SURVEY_INFO_TIME_RX = 7,
|
|
NL80211_SURVEY_INFO_TIME_TX = 8,
|
|
NL80211_SURVEY_INFO_TIME_SCAN = 9,
|
|
NL80211_SURVEY_INFO_PAD = 10,
|
|
NL80211_SURVEY_INFO_TIME_BSS_RX = 11,
|
|
NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 12,
|
|
__NL80211_SURVEY_INFO_AFTER_LAST = 13,
|
|
NL80211_SURVEY_INFO_MAX = 12,
|
|
};
|
|
|
|
enum nl80211_ps_state {
|
|
NL80211_PS_DISABLED = 0,
|
|
NL80211_PS_ENABLED = 1,
|
|
};
|
|
|
|
enum nl80211_mesh_setup_params {
|
|
__NL80211_MESH_SETUP_INVALID = 0,
|
|
NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 1,
|
|
NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 2,
|
|
NL80211_MESH_SETUP_IE = 3,
|
|
NL80211_MESH_SETUP_USERSPACE_AUTH = 4,
|
|
NL80211_MESH_SETUP_USERSPACE_AMPE = 5,
|
|
NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 6,
|
|
NL80211_MESH_SETUP_USERSPACE_MPM = 7,
|
|
NL80211_MESH_SETUP_AUTH_PROTOCOL = 8,
|
|
__NL80211_MESH_SETUP_ATTR_AFTER_LAST = 9,
|
|
NL80211_MESH_SETUP_ATTR_MAX = 8,
|
|
};
|
|
|
|
enum ieee80211_mesh_sync_method {
|
|
IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1,
|
|
IEEE80211_SYNC_METHOD_VENDOR = 255,
|
|
};
|
|
|
|
enum ieee80211_mesh_path_protocol {
|
|
IEEE80211_PATH_PROTOCOL_HWMP = 1,
|
|
IEEE80211_PATH_PROTOCOL_VENDOR = 255,
|
|
};
|
|
|
|
enum ieee80211_mesh_path_metric {
|
|
IEEE80211_PATH_METRIC_AIRTIME = 1,
|
|
IEEE80211_PATH_METRIC_VENDOR = 255,
|
|
};
|
|
|
|
enum nl80211_packet_pattern_attr {
|
|
__NL80211_PKTPAT_INVALID = 0,
|
|
NL80211_PKTPAT_MASK = 1,
|
|
NL80211_PKTPAT_PATTERN = 2,
|
|
NL80211_PKTPAT_OFFSET = 3,
|
|
NUM_NL80211_PKTPAT = 4,
|
|
MAX_NL80211_PKTPAT = 3,
|
|
};
|
|
|
|
enum nl80211_wowlan_tcp_attrs {
|
|
__NL80211_WOWLAN_TCP_INVALID = 0,
|
|
NL80211_WOWLAN_TCP_SRC_IPV4 = 1,
|
|
NL80211_WOWLAN_TCP_DST_IPV4 = 2,
|
|
NL80211_WOWLAN_TCP_DST_MAC = 3,
|
|
NL80211_WOWLAN_TCP_SRC_PORT = 4,
|
|
NL80211_WOWLAN_TCP_DST_PORT = 5,
|
|
NL80211_WOWLAN_TCP_DATA_PAYLOAD = 6,
|
|
NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 7,
|
|
NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 8,
|
|
NL80211_WOWLAN_TCP_DATA_INTERVAL = 9,
|
|
NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 10,
|
|
NL80211_WOWLAN_TCP_WAKE_MASK = 11,
|
|
NUM_NL80211_WOWLAN_TCP = 12,
|
|
MAX_NL80211_WOWLAN_TCP = 11,
|
|
};
|
|
|
|
enum nl80211_rekey_data {
|
|
__NL80211_REKEY_DATA_INVALID = 0,
|
|
NL80211_REKEY_DATA_KEK = 1,
|
|
NL80211_REKEY_DATA_KCK = 2,
|
|
NL80211_REKEY_DATA_REPLAY_CTR = 3,
|
|
NL80211_REKEY_DATA_AKM = 4,
|
|
NUM_NL80211_REKEY_DATA = 5,
|
|
MAX_NL80211_REKEY_DATA = 4,
|
|
};
|
|
|
|
enum nl80211_nan_publish_type {
|
|
NL80211_NAN_SOLICITED_PUBLISH = 1,
|
|
NL80211_NAN_UNSOLICITED_PUBLISH = 2,
|
|
};
|
|
|
|
enum nl80211_nan_srf_attributes {
|
|
__NL80211_NAN_SRF_INVALID = 0,
|
|
NL80211_NAN_SRF_INCLUDE = 1,
|
|
NL80211_NAN_SRF_BF = 2,
|
|
NL80211_NAN_SRF_BF_IDX = 3,
|
|
NL80211_NAN_SRF_MAC_ADDRS = 4,
|
|
NUM_NL80211_NAN_SRF_ATTR = 5,
|
|
NL80211_NAN_SRF_ATTR_MAX = 4,
|
|
};
|
|
|
|
enum nl80211_protocol_features {
|
|
NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1,
|
|
};
|
|
|
|
enum nl80211_attr_coalesce_rule {
|
|
__NL80211_COALESCE_RULE_INVALID = 0,
|
|
NL80211_ATTR_COALESCE_RULE_DELAY = 1,
|
|
NL80211_ATTR_COALESCE_RULE_CONDITION = 2,
|
|
NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 3,
|
|
NUM_NL80211_ATTR_COALESCE_RULE = 4,
|
|
NL80211_ATTR_COALESCE_RULE_MAX = 3,
|
|
};
|
|
|
|
enum wiphy_vendor_command_flags {
|
|
WIPHY_VENDOR_CMD_NEED_WDEV = 1,
|
|
WIPHY_VENDOR_CMD_NEED_NETDEV = 2,
|
|
WIPHY_VENDOR_CMD_NEED_RUNNING = 4,
|
|
};
|
|
|
|
enum nl80211_ftm_responder_stats {
|
|
__NL80211_FTM_STATS_INVALID = 0,
|
|
NL80211_FTM_STATS_SUCCESS_NUM = 1,
|
|
NL80211_FTM_STATS_PARTIAL_NUM = 2,
|
|
NL80211_FTM_STATS_FAILED_NUM = 3,
|
|
NL80211_FTM_STATS_ASAP_NUM = 4,
|
|
NL80211_FTM_STATS_NON_ASAP_NUM = 5,
|
|
NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 6,
|
|
NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 7,
|
|
NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 8,
|
|
NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 9,
|
|
NL80211_FTM_STATS_PAD = 10,
|
|
__NL80211_FTM_STATS_AFTER_LAST = 11,
|
|
NL80211_FTM_STATS_MAX = 10,
|
|
};
|
|
|
|
enum nl80211_tid_config_attr {
|
|
__NL80211_TID_CONFIG_ATTR_INVALID = 0,
|
|
NL80211_TID_CONFIG_ATTR_PAD = 1,
|
|
NL80211_TID_CONFIG_ATTR_VIF_SUPP = 2,
|
|
NL80211_TID_CONFIG_ATTR_PEER_SUPP = 3,
|
|
NL80211_TID_CONFIG_ATTR_OVERRIDE = 4,
|
|
NL80211_TID_CONFIG_ATTR_TIDS = 5,
|
|
NL80211_TID_CONFIG_ATTR_NOACK = 6,
|
|
NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 7,
|
|
NL80211_TID_CONFIG_ATTR_RETRY_LONG = 8,
|
|
NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 9,
|
|
NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 10,
|
|
NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 11,
|
|
NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 12,
|
|
NL80211_TID_CONFIG_ATTR_TX_RATE = 13,
|
|
__NL80211_TID_CONFIG_ATTR_AFTER_LAST = 14,
|
|
NL80211_TID_CONFIG_ATTR_MAX = 13,
|
|
};
|
|
|
|
enum nl80211_sar_attrs {
|
|
__NL80211_SAR_ATTR_INVALID = 0,
|
|
NL80211_SAR_ATTR_TYPE = 1,
|
|
NL80211_SAR_ATTR_SPECS = 2,
|
|
__NL80211_SAR_ATTR_LAST = 3,
|
|
NL80211_SAR_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_sar_specs_attrs {
|
|
__NL80211_SAR_ATTR_SPECS_INVALID = 0,
|
|
NL80211_SAR_ATTR_SPECS_POWER = 1,
|
|
NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 2,
|
|
NL80211_SAR_ATTR_SPECS_START_FREQ = 3,
|
|
NL80211_SAR_ATTR_SPECS_END_FREQ = 4,
|
|
__NL80211_SAR_ATTR_SPECS_LAST = 5,
|
|
NL80211_SAR_ATTR_SPECS_MAX = 4,
|
|
};
|
|
|
|
enum nl80211_band_attr {
|
|
__NL80211_BAND_ATTR_INVALID = 0,
|
|
NL80211_BAND_ATTR_FREQS = 1,
|
|
NL80211_BAND_ATTR_RATES = 2,
|
|
NL80211_BAND_ATTR_HT_MCS_SET = 3,
|
|
NL80211_BAND_ATTR_HT_CAPA = 4,
|
|
NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 5,
|
|
NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 6,
|
|
NL80211_BAND_ATTR_VHT_MCS_SET = 7,
|
|
NL80211_BAND_ATTR_VHT_CAPA = 8,
|
|
NL80211_BAND_ATTR_IFTYPE_DATA = 9,
|
|
NL80211_BAND_ATTR_EDMG_CHANNELS = 10,
|
|
NL80211_BAND_ATTR_EDMG_BW_CONFIG = 11,
|
|
__NL80211_BAND_ATTR_AFTER_LAST = 12,
|
|
NL80211_BAND_ATTR_MAX = 11,
|
|
};
|
|
|
|
enum nl80211_bitrate_attr {
|
|
__NL80211_BITRATE_ATTR_INVALID = 0,
|
|
NL80211_BITRATE_ATTR_RATE = 1,
|
|
NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 2,
|
|
__NL80211_BITRATE_ATTR_AFTER_LAST = 3,
|
|
NL80211_BITRATE_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_band_iftype_attr {
|
|
__NL80211_BAND_IFTYPE_ATTR_INVALID = 0,
|
|
NL80211_BAND_IFTYPE_ATTR_IFTYPES = 1,
|
|
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 2,
|
|
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 3,
|
|
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 4,
|
|
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 5,
|
|
NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 6,
|
|
NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 7,
|
|
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 8,
|
|
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 9,
|
|
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 10,
|
|
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 11,
|
|
__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST = 12,
|
|
NL80211_BAND_IFTYPE_ATTR_MAX = 11,
|
|
};
|
|
|
|
enum nl80211_if_combination_attrs {
|
|
NL80211_IFACE_COMB_UNSPEC = 0,
|
|
NL80211_IFACE_COMB_LIMITS = 1,
|
|
NL80211_IFACE_COMB_MAXNUM = 2,
|
|
NL80211_IFACE_COMB_STA_AP_BI_MATCH = 3,
|
|
NL80211_IFACE_COMB_NUM_CHANNELS = 4,
|
|
NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 5,
|
|
NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 6,
|
|
NL80211_IFACE_COMB_BI_MIN_GCD = 7,
|
|
NUM_NL80211_IFACE_COMB = 8,
|
|
MAX_NL80211_IFACE_COMB = 7,
|
|
};
|
|
|
|
enum nl80211_iface_limit_attrs {
|
|
NL80211_IFACE_LIMIT_UNSPEC = 0,
|
|
NL80211_IFACE_LIMIT_MAX = 1,
|
|
NL80211_IFACE_LIMIT_TYPES = 2,
|
|
NUM_NL80211_IFACE_LIMIT = 3,
|
|
MAX_NL80211_IFACE_LIMIT = 2,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_attrs {
|
|
__NL80211_PMSR_ATTR_INVALID = 0,
|
|
NL80211_PMSR_ATTR_MAX_PEERS = 1,
|
|
NL80211_PMSR_ATTR_REPORT_AP_TSF = 2,
|
|
NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 3,
|
|
NL80211_PMSR_ATTR_TYPE_CAPA = 4,
|
|
NL80211_PMSR_ATTR_PEERS = 5,
|
|
NUM_NL80211_PMSR_ATTR = 6,
|
|
NL80211_PMSR_ATTR_MAX = 5,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_type {
|
|
NL80211_PMSR_TYPE_INVALID = 0,
|
|
NL80211_PMSR_TYPE_FTM = 1,
|
|
NUM_NL80211_PMSR_TYPES = 2,
|
|
NL80211_PMSR_TYPE_MAX = 1,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_ftm_capa {
|
|
__NL80211_PMSR_FTM_CAPA_ATTR_INVALID = 0,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 1,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 2,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 3,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 4,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 5,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 6,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 7,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 8,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 9,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 10,
|
|
NUM_NL80211_PMSR_FTM_CAPA_ATTR = 11,
|
|
NL80211_PMSR_FTM_CAPA_ATTR_MAX = 10,
|
|
};
|
|
|
|
enum nl80211_iftype_akm_attributes {
|
|
__NL80211_IFTYPE_AKM_ATTR_INVALID = 0,
|
|
NL80211_IFTYPE_AKM_ATTR_IFTYPES = 1,
|
|
NL80211_IFTYPE_AKM_ATTR_SUITES = 2,
|
|
__NL80211_IFTYPE_AKM_ATTR_LAST = 3,
|
|
NL80211_IFTYPE_AKM_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_reg_type {
|
|
NL80211_REGDOM_TYPE_COUNTRY = 0,
|
|
NL80211_REGDOM_TYPE_WORLD = 1,
|
|
NL80211_REGDOM_TYPE_CUSTOM_WORLD = 2,
|
|
NL80211_REGDOM_TYPE_INTERSECTION = 3,
|
|
};
|
|
|
|
enum nl80211_frequency_attr {
|
|
__NL80211_FREQUENCY_ATTR_INVALID = 0,
|
|
NL80211_FREQUENCY_ATTR_FREQ = 1,
|
|
NL80211_FREQUENCY_ATTR_DISABLED = 2,
|
|
NL80211_FREQUENCY_ATTR_NO_IR = 3,
|
|
__NL80211_FREQUENCY_ATTR_NO_IBSS = 4,
|
|
NL80211_FREQUENCY_ATTR_RADAR = 5,
|
|
NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 6,
|
|
NL80211_FREQUENCY_ATTR_DFS_STATE = 7,
|
|
NL80211_FREQUENCY_ATTR_DFS_TIME = 8,
|
|
NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 9,
|
|
NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 10,
|
|
NL80211_FREQUENCY_ATTR_NO_80MHZ = 11,
|
|
NL80211_FREQUENCY_ATTR_NO_160MHZ = 12,
|
|
NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 13,
|
|
NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 14,
|
|
NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 15,
|
|
NL80211_FREQUENCY_ATTR_NO_20MHZ = 16,
|
|
NL80211_FREQUENCY_ATTR_NO_10MHZ = 17,
|
|
NL80211_FREQUENCY_ATTR_WMM = 18,
|
|
NL80211_FREQUENCY_ATTR_NO_HE = 19,
|
|
NL80211_FREQUENCY_ATTR_OFFSET = 20,
|
|
NL80211_FREQUENCY_ATTR_1MHZ = 21,
|
|
NL80211_FREQUENCY_ATTR_2MHZ = 22,
|
|
NL80211_FREQUENCY_ATTR_4MHZ = 23,
|
|
NL80211_FREQUENCY_ATTR_8MHZ = 24,
|
|
NL80211_FREQUENCY_ATTR_16MHZ = 25,
|
|
NL80211_FREQUENCY_ATTR_NO_320MHZ = 26,
|
|
NL80211_FREQUENCY_ATTR_NO_EHT = 27,
|
|
__NL80211_FREQUENCY_ATTR_AFTER_LAST = 28,
|
|
NL80211_FREQUENCY_ATTR_MAX = 27,
|
|
};
|
|
|
|
enum nl80211_wmm_rule {
|
|
__NL80211_WMMR_INVALID = 0,
|
|
NL80211_WMMR_CW_MIN = 1,
|
|
NL80211_WMMR_CW_MAX = 2,
|
|
NL80211_WMMR_AIFSN = 3,
|
|
NL80211_WMMR_TXOP = 4,
|
|
__NL80211_WMMR_LAST = 5,
|
|
NL80211_WMMR_MAX = 4,
|
|
};
|
|
|
|
enum bss_param_flags {
|
|
BSS_PARAM_FLAGS_CTS_PROT = 1,
|
|
BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2,
|
|
BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 4,
|
|
};
|
|
|
|
enum nl80211_sta_bss_param {
|
|
__NL80211_STA_BSS_PARAM_INVALID = 0,
|
|
NL80211_STA_BSS_PARAM_CTS_PROT = 1,
|
|
NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 2,
|
|
NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 3,
|
|
NL80211_STA_BSS_PARAM_DTIM_PERIOD = 4,
|
|
NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 5,
|
|
__NL80211_STA_BSS_PARAM_AFTER_LAST = 6,
|
|
NL80211_STA_BSS_PARAM_MAX = 5,
|
|
};
|
|
|
|
enum nl80211_tid_stats {
|
|
__NL80211_TID_STATS_INVALID = 0,
|
|
NL80211_TID_STATS_RX_MSDU = 1,
|
|
NL80211_TID_STATS_TX_MSDU = 2,
|
|
NL80211_TID_STATS_TX_MSDU_RETRIES = 3,
|
|
NL80211_TID_STATS_TX_MSDU_FAILED = 4,
|
|
NL80211_TID_STATS_PAD = 5,
|
|
NL80211_TID_STATS_TXQ_STATS = 6,
|
|
NUM_NL80211_TID_STATS = 7,
|
|
NL80211_TID_STATS_MAX = 6,
|
|
};
|
|
|
|
enum nl80211_pmksa_candidate_attr {
|
|
__NL80211_PMKSA_CANDIDATE_INVALID = 0,
|
|
NL80211_PMKSA_CANDIDATE_INDEX = 1,
|
|
NL80211_PMKSA_CANDIDATE_BSSID = 2,
|
|
NL80211_PMKSA_CANDIDATE_PREAUTH = 3,
|
|
NUM_NL80211_PMKSA_CANDIDATE = 4,
|
|
MAX_NL80211_PMKSA_CANDIDATE = 3,
|
|
};
|
|
|
|
struct cfg80211_wowlan_nd_info;
|
|
|
|
struct cfg80211_wowlan_wakeup {
|
|
bool disconnect;
|
|
bool magic_pkt;
|
|
bool gtk_rekey_failure;
|
|
bool eap_identity_req;
|
|
bool four_way_handshake;
|
|
bool rfkill_release;
|
|
bool packet_80211;
|
|
bool tcp_match;
|
|
bool tcp_connlost;
|
|
bool tcp_nomoretokens;
|
|
s32 pattern_idx;
|
|
u32 packet_present_len;
|
|
u32 packet_len;
|
|
const void *packet;
|
|
struct cfg80211_wowlan_nd_info *net_detect;
|
|
};
|
|
|
|
struct cfg80211_wowlan_nd_match;
|
|
|
|
struct cfg80211_wowlan_nd_info {
|
|
int n_matches;
|
|
struct cfg80211_wowlan_nd_match *matches[0];
|
|
};
|
|
|
|
struct cfg80211_wowlan_nd_match {
|
|
struct cfg80211_ssid ssid;
|
|
int n_channels;
|
|
u32 channels[0];
|
|
};
|
|
|
|
struct cfg80211_ft_event_params {
|
|
const u8 *ies;
|
|
size_t ies_len;
|
|
const u8 *target_ap;
|
|
const u8 *ric_ies;
|
|
size_t ric_ies_len;
|
|
};
|
|
|
|
struct key_parse {
|
|
struct key_params p;
|
|
int idx;
|
|
int type;
|
|
bool def;
|
|
bool defmgmt;
|
|
bool defbeacon;
|
|
bool def_uni;
|
|
bool def_multi;
|
|
};
|
|
|
|
struct nl80211_txrate_vht {
|
|
__u16 mcs[8];
|
|
};
|
|
|
|
struct nl80211_txrate_he {
|
|
__u16 mcs[8];
|
|
};
|
|
|
|
struct nl80211_dump_wiphy_state {
|
|
s64 filter_wiphy;
|
|
long start;
|
|
long split_start;
|
|
long band_start;
|
|
long chan_start;
|
|
long capa_start;
|
|
bool split;
|
|
};
|
|
|
|
struct get_key_cookie {
|
|
struct sk_buff *msg;
|
|
int error;
|
|
int idx;
|
|
};
|
|
|
|
struct nl80211_bss_select_rssi_adjust {
|
|
__u8 band;
|
|
__s8 delta;
|
|
};
|
|
|
|
struct nl80211_pattern_support {
|
|
__u32 max_patterns;
|
|
__u32 min_pattern_len;
|
|
__u32 max_pattern_len;
|
|
__u32 max_pkt_offset;
|
|
};
|
|
|
|
struct nl80211_coalesce_rule_support {
|
|
__u32 max_rules;
|
|
struct nl80211_pattern_support pat;
|
|
__u32 max_delay;
|
|
};
|
|
|
|
struct imc_uncore_pci_dev {
|
|
__u32 pci_id;
|
|
struct pci_driver *driver;
|
|
};
|
|
|
|
typedef __u8 mtrr_type;
|
|
|
|
struct var_mtrr_range_state {
|
|
unsigned long base_pfn;
|
|
unsigned long size_pfn;
|
|
mtrr_type type;
|
|
};
|
|
|
|
struct pci_hostbridge_probe {
|
|
u32 bus;
|
|
u32 slot;
|
|
u32 vendor;
|
|
u32 device;
|
|
};
|
|
|
|
enum {
|
|
IORES_MAP_SYSTEM_RAM = 1,
|
|
IORES_MAP_ENCRYPTED = 2,
|
|
};
|
|
|
|
struct ioremap_desc {
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct bpf_cpumask {
|
|
cpumask_t cpumask;
|
|
refcount_t usage;
|
|
};
|
|
|
|
struct context_tracking {
|
|
atomic_t state;
|
|
long dynticks_nesting;
|
|
long dynticks_nmi_nesting;
|
|
};
|
|
|
|
struct fprop_global {
|
|
struct percpu_counter events;
|
|
unsigned int period;
|
|
seqcount_t sequence;
|
|
};
|
|
|
|
struct wb_domain {
|
|
spinlock_t lock;
|
|
struct fprop_global completions;
|
|
struct timer_list period_timer;
|
|
unsigned long period_time;
|
|
unsigned long dirty_limit_tstamp;
|
|
unsigned long dirty_limit;
|
|
};
|
|
|
|
struct dirty_throttle_control {
|
|
struct bdi_writeback *wb;
|
|
struct fprop_local_percpu *wb_completions;
|
|
unsigned long avail;
|
|
unsigned long dirty;
|
|
unsigned long thresh;
|
|
unsigned long bg_thresh;
|
|
unsigned long wb_dirty;
|
|
unsigned long wb_thresh;
|
|
unsigned long wb_bg_thresh;
|
|
unsigned long pos_ratio;
|
|
};
|
|
|
|
struct wb_lock_cookie {
|
|
bool locked;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct hugetlb_cgroup_per_node;
|
|
|
|
struct hugetlb_cgroup {
|
|
struct cgroup_subsys_state css;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct page_counter hugepage[2];
|
|
struct page_counter rsvd_hugepage[2];
|
|
atomic_long_t events[2];
|
|
atomic_long_t events_local[2];
|
|
struct cgroup_file events_file[2];
|
|
struct cgroup_file events_local_file[2];
|
|
struct hugetlb_cgroup_per_node *nodeinfo[0];
|
|
};
|
|
|
|
struct hugetlb_cgroup_per_node {
|
|
unsigned long usage[2];
|
|
};
|
|
|
|
enum hugetlb_memory_event {
|
|
HUGETLB_MAX = 0,
|
|
HUGETLB_NR_MEMORY_EVENTS = 1,
|
|
};
|
|
|
|
enum {
|
|
RES_USAGE = 0,
|
|
RES_RSVD_USAGE = 1,
|
|
RES_LIMIT = 2,
|
|
RES_RSVD_LIMIT = 3,
|
|
RES_MAX_USAGE = 4,
|
|
RES_RSVD_MAX_USAGE = 5,
|
|
RES_FAILCNT = 6,
|
|
RES_RSVD_FAILCNT = 7,
|
|
};
|
|
|
|
enum {
|
|
CFTYPE_ONLY_ON_ROOT = 1,
|
|
CFTYPE_NOT_ON_ROOT = 2,
|
|
CFTYPE_NS_DELEGATABLE = 4,
|
|
CFTYPE_NO_PREFIX = 8,
|
|
CFTYPE_WORLD_WRITABLE = 16,
|
|
CFTYPE_DEBUG = 32,
|
|
__CFTYPE_ONLY_ON_DFL = 65536,
|
|
__CFTYPE_NOT_ON_DFL = 131072,
|
|
__CFTYPE_ADDED = 262144,
|
|
};
|
|
|
|
struct file_region {
|
|
struct list_head link;
|
|
long from;
|
|
long to;
|
|
struct page_counter *reservation_counter;
|
|
struct cgroup_subsys_state *css;
|
|
};
|
|
|
|
typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *);
|
|
|
|
typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *);
|
|
|
|
typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *);
|
|
|
|
typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *);
|
|
|
|
struct wb_writeback_work;
|
|
|
|
typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *);
|
|
|
|
struct wb_completion;
|
|
|
|
struct wb_writeback_work {
|
|
long nr_pages;
|
|
struct super_block *sb;
|
|
enum writeback_sync_modes sync_mode;
|
|
unsigned int tagged_writepages: 1;
|
|
unsigned int for_kupdate: 1;
|
|
unsigned int range_cyclic: 1;
|
|
unsigned int for_background: 1;
|
|
unsigned int for_sync: 1;
|
|
unsigned int auto_free: 1;
|
|
enum wb_reason reason;
|
|
struct list_head list;
|
|
struct wb_completion *done;
|
|
};
|
|
|
|
struct wb_completion {
|
|
atomic_t cnt;
|
|
wait_queue_head_t *waitq;
|
|
};
|
|
|
|
typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *);
|
|
|
|
typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *);
|
|
|
|
typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *);
|
|
|
|
typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *);
|
|
|
|
typedef void (*btf_trace_writeback_pages_written)(void *, long);
|
|
|
|
typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *);
|
|
|
|
typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *);
|
|
|
|
typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *);
|
|
|
|
typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int);
|
|
|
|
typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long);
|
|
|
|
typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long);
|
|
|
|
typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long);
|
|
|
|
typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *);
|
|
|
|
struct trace_event_raw_writeback_folio_template {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
ino_t ino;
|
|
unsigned long index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_dirty_inode_template {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
ino_t ino;
|
|
unsigned long state;
|
|
unsigned long flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_write_inode_template {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
ino_t ino;
|
|
int sync_mode;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_work_class {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
long nr_pages;
|
|
dev_t sb_dev;
|
|
int sync_mode;
|
|
int for_kupdate;
|
|
int range_cyclic;
|
|
int for_background;
|
|
int reason;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_pages_written {
|
|
struct trace_entry ent;
|
|
long pages;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_class {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_bdi_register {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wbc_class {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
long nr_to_write;
|
|
long pages_skipped;
|
|
int sync_mode;
|
|
int for_kupdate;
|
|
int for_background;
|
|
int for_reclaim;
|
|
int range_cyclic;
|
|
long range_start;
|
|
long range_end;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_queue_io {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
unsigned long older;
|
|
long age;
|
|
int moved;
|
|
int reason;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_global_dirty_state {
|
|
struct trace_entry ent;
|
|
unsigned long nr_dirty;
|
|
unsigned long nr_writeback;
|
|
unsigned long background_thresh;
|
|
unsigned long dirty_thresh;
|
|
unsigned long dirty_limit;
|
|
unsigned long nr_dirtied;
|
|
unsigned long nr_written;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_bdi_dirty_ratelimit {
|
|
struct trace_entry ent;
|
|
char bdi[32];
|
|
unsigned long write_bw;
|
|
unsigned long avg_write_bw;
|
|
unsigned long dirty_rate;
|
|
unsigned long dirty_ratelimit;
|
|
unsigned long task_ratelimit;
|
|
unsigned long balanced_dirty_ratelimit;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_balance_dirty_pages {
|
|
struct trace_entry ent;
|
|
char bdi[32];
|
|
unsigned long limit;
|
|
unsigned long setpoint;
|
|
unsigned long dirty;
|
|
unsigned long bdi_setpoint;
|
|
unsigned long bdi_dirty;
|
|
unsigned long dirty_ratelimit;
|
|
unsigned long task_ratelimit;
|
|
unsigned int dirtied;
|
|
unsigned int dirtied_pause;
|
|
unsigned long paused;
|
|
long pause;
|
|
unsigned long period;
|
|
long think;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_sb_inodes_requeue {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
ino_t ino;
|
|
unsigned long state;
|
|
unsigned long dirtied_when;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_single_inode_template {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
ino_t ino;
|
|
unsigned long state;
|
|
unsigned long dirtied_when;
|
|
unsigned long writeback_index;
|
|
long nr_to_write;
|
|
unsigned long wrote;
|
|
ino_t cgroup_ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_writeback_inode_template {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned long state;
|
|
__u16 mode;
|
|
unsigned long dirtied_when;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_writeback_folio_template {};
|
|
|
|
struct trace_event_data_offsets_writeback_dirty_inode_template {};
|
|
|
|
struct trace_event_data_offsets_writeback_write_inode_template {};
|
|
|
|
struct trace_event_data_offsets_writeback_work_class {};
|
|
|
|
struct trace_event_data_offsets_writeback_pages_written {};
|
|
|
|
struct trace_event_data_offsets_writeback_class {};
|
|
|
|
struct trace_event_data_offsets_writeback_bdi_register {};
|
|
|
|
struct trace_event_data_offsets_wbc_class {};
|
|
|
|
struct trace_event_data_offsets_writeback_queue_io {};
|
|
|
|
struct trace_event_data_offsets_global_dirty_state {};
|
|
|
|
struct trace_event_data_offsets_bdi_dirty_ratelimit {};
|
|
|
|
struct trace_event_data_offsets_balance_dirty_pages {};
|
|
|
|
struct trace_event_data_offsets_writeback_sb_inodes_requeue {};
|
|
|
|
struct trace_event_data_offsets_writeback_single_inode_template {};
|
|
|
|
struct trace_event_data_offsets_writeback_inode_template {};
|
|
|
|
enum clear_refs_types {
|
|
CLEAR_REFS_ALL = 1,
|
|
CLEAR_REFS_ANON = 2,
|
|
CLEAR_REFS_MAPPED = 3,
|
|
CLEAR_REFS_SOFT_DIRTY = 4,
|
|
CLEAR_REFS_MM_HIWATER_RSS = 5,
|
|
CLEAR_REFS_LAST = 6,
|
|
};
|
|
|
|
struct proc_maps_private {
|
|
struct inode *inode;
|
|
struct task_struct *task;
|
|
struct mm_struct *mm;
|
|
struct vma_iterator iter;
|
|
};
|
|
|
|
struct mem_size_stats {
|
|
unsigned long resident;
|
|
unsigned long shared_clean;
|
|
unsigned long shared_dirty;
|
|
unsigned long private_clean;
|
|
unsigned long private_dirty;
|
|
unsigned long referenced;
|
|
unsigned long anonymous;
|
|
unsigned long lazyfree;
|
|
unsigned long anonymous_thp;
|
|
unsigned long shmem_thp;
|
|
unsigned long file_thp;
|
|
unsigned long swap;
|
|
unsigned long shared_hugetlb;
|
|
unsigned long private_hugetlb;
|
|
u64 pss;
|
|
u64 pss_anon;
|
|
u64 pss_file;
|
|
u64 pss_shmem;
|
|
u64 pss_dirty;
|
|
u64 pss_locked;
|
|
u64 swap_pss;
|
|
};
|
|
|
|
typedef struct {
|
|
u64 pme;
|
|
} pagemap_entry_t;
|
|
|
|
struct pagemapread {
|
|
int pos;
|
|
int len;
|
|
pagemap_entry_t *buffer;
|
|
bool show_pfn;
|
|
};
|
|
|
|
struct clear_refs_private {
|
|
enum clear_refs_types type;
|
|
};
|
|
|
|
typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t);
|
|
|
|
typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t);
|
|
|
|
typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *);
|
|
|
|
typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *);
|
|
|
|
typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *);
|
|
|
|
typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_writepage)(void *, struct page *);
|
|
|
|
typedef void (*btf_trace_ext4_readpage)(void *, struct page *);
|
|
|
|
typedef void (*btf_trace_ext4_releasepage)(void *, struct page *);
|
|
|
|
typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t);
|
|
|
|
typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t);
|
|
|
|
typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long);
|
|
|
|
typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *);
|
|
|
|
typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *);
|
|
|
|
typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *);
|
|
|
|
typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int);
|
|
|
|
typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *);
|
|
|
|
typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long);
|
|
|
|
typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int);
|
|
|
|
typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int);
|
|
|
|
typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int);
|
|
|
|
typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *);
|
|
|
|
typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *);
|
|
|
|
typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64);
|
|
|
|
typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool);
|
|
|
|
typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int);
|
|
|
|
typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int);
|
|
|
|
typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int);
|
|
|
|
typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *);
|
|
|
|
typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *);
|
|
|
|
typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *);
|
|
|
|
typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int);
|
|
|
|
typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int);
|
|
|
|
typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int);
|
|
|
|
typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short);
|
|
|
|
typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *);
|
|
|
|
typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *);
|
|
|
|
typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int);
|
|
|
|
typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16);
|
|
|
|
typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *);
|
|
|
|
typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *);
|
|
|
|
typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *);
|
|
|
|
typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t);
|
|
|
|
typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int);
|
|
|
|
typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t);
|
|
|
|
typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t);
|
|
|
|
typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool);
|
|
|
|
typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *);
|
|
|
|
typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *);
|
|
|
|
typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *);
|
|
|
|
typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t);
|
|
|
|
typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t);
|
|
|
|
typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t);
|
|
|
|
typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *);
|
|
|
|
typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int);
|
|
|
|
typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t);
|
|
|
|
typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int);
|
|
|
|
struct ext4_lazy_init {
|
|
unsigned long li_state;
|
|
struct list_head li_request_list;
|
|
struct mutex li_list_mtx;
|
|
};
|
|
|
|
struct ext4_err_translation {
|
|
int code;
|
|
int errno;
|
|
};
|
|
|
|
struct mount_opts {
|
|
int token;
|
|
int mount_opt;
|
|
int flags;
|
|
};
|
|
|
|
enum {
|
|
I_DATA_SEM_NORMAL = 0,
|
|
I_DATA_SEM_OTHER = 1,
|
|
I_DATA_SEM_QUOTA = 2,
|
|
};
|
|
|
|
enum {
|
|
Opt_bsd_df = 0,
|
|
Opt_minix_df = 1,
|
|
Opt_grpid = 2,
|
|
Opt_nogrpid = 3,
|
|
Opt_resgid = 4,
|
|
Opt_resuid = 5,
|
|
Opt_sb = 6,
|
|
Opt_nouid32 = 7,
|
|
Opt_debug___2 = 8,
|
|
Opt_removed = 9,
|
|
Opt_user_xattr = 10,
|
|
Opt_acl = 11,
|
|
Opt_auto_da_alloc = 12,
|
|
Opt_noauto_da_alloc = 13,
|
|
Opt_noload = 14,
|
|
Opt_commit = 15,
|
|
Opt_min_batch_time = 16,
|
|
Opt_max_batch_time = 17,
|
|
Opt_journal_dev = 18,
|
|
Opt_journal_path = 19,
|
|
Opt_journal_checksum = 20,
|
|
Opt_journal_async_commit = 21,
|
|
Opt_abort = 22,
|
|
Opt_data_journal = 23,
|
|
Opt_data_ordered = 24,
|
|
Opt_data_writeback = 25,
|
|
Opt_data_err_abort = 26,
|
|
Opt_data_err_ignore = 27,
|
|
Opt_test_dummy_encryption = 28,
|
|
Opt_inlinecrypt = 29,
|
|
Opt_usrjquota = 30,
|
|
Opt_grpjquota = 31,
|
|
Opt_quota = 32,
|
|
Opt_noquota = 33,
|
|
Opt_barrier = 34,
|
|
Opt_nobarrier = 35,
|
|
Opt_err___5 = 36,
|
|
Opt_usrquota = 37,
|
|
Opt_grpquota = 38,
|
|
Opt_prjquota = 39,
|
|
Opt_dax = 40,
|
|
Opt_dax_always = 41,
|
|
Opt_dax_inode = 42,
|
|
Opt_dax_never = 43,
|
|
Opt_stripe = 44,
|
|
Opt_delalloc = 45,
|
|
Opt_nodelalloc = 46,
|
|
Opt_warn_on_error = 47,
|
|
Opt_nowarn_on_error = 48,
|
|
Opt_mblk_io_submit = 49,
|
|
Opt_debug_want_extra_isize = 50,
|
|
Opt_nomblk_io_submit = 51,
|
|
Opt_block_validity = 52,
|
|
Opt_noblock_validity = 53,
|
|
Opt_inode_readahead_blks = 54,
|
|
Opt_journal_ioprio = 55,
|
|
Opt_dioread_nolock = 56,
|
|
Opt_dioread_lock = 57,
|
|
Opt_discard___2 = 58,
|
|
Opt_nodiscard = 59,
|
|
Opt_init_itable = 60,
|
|
Opt_noinit_itable = 61,
|
|
Opt_max_dir_size_kb = 62,
|
|
Opt_nojournal_checksum = 63,
|
|
Opt_nombcache = 64,
|
|
Opt_no_prefetch_block_bitmaps = 65,
|
|
Opt_mb_optimize_scan = 66,
|
|
Opt_errors = 67,
|
|
Opt_data = 68,
|
|
Opt_data_err = 69,
|
|
Opt_jqfmt = 70,
|
|
Opt_dax_type = 71,
|
|
};
|
|
|
|
enum {
|
|
IOPRIO_CLASS_NONE = 0,
|
|
IOPRIO_CLASS_RT = 1,
|
|
IOPRIO_CLASS_BE = 2,
|
|
IOPRIO_CLASS_IDLE = 3,
|
|
};
|
|
|
|
struct trace_event_raw_ext4_other_inode_update_time {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ino_t orig_ino;
|
|
uid_t uid;
|
|
gid_t gid;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_free_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
uid_t uid;
|
|
gid_t gid;
|
|
__u64 blocks;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_request_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t dir;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_allocate_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ino_t dir;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_evict_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int nlink;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_drop_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int drop;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_nfs_commit_metadata {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_mark_inode_dirty {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned long ip;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_begin_ordered_truncate {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t new_size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__write_begin {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t pos;
|
|
unsigned int len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__write_end {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t pos;
|
|
unsigned int len;
|
|
unsigned int copied;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_writepages {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
long nr_to_write;
|
|
long pages_skipped;
|
|
loff_t range_start;
|
|
loff_t range_end;
|
|
unsigned long writeback_index;
|
|
int sync_mode;
|
|
char for_kupdate;
|
|
char range_cyclic;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_da_write_pages {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned long first_page;
|
|
long nr_to_write;
|
|
int sync_mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_da_write_pages_extent {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 lblk;
|
|
__u32 len;
|
|
__u32 flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_writepages_result {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int ret;
|
|
int pages_written;
|
|
long pages_skipped;
|
|
unsigned long writeback_index;
|
|
int sync_mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__page_op {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned long index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_invalidate_folio_op {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned long index;
|
|
size_t offset;
|
|
size_t length;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_discard_blocks {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
__u64 blk;
|
|
__u64 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__mb_new_pa {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 pa_pstart;
|
|
__u64 pa_lstart;
|
|
__u32 pa_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_mb_release_inode_pa {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 block;
|
|
__u32 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_mb_release_group_pa {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
__u64 pa_pstart;
|
|
__u32 pa_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_discard_preallocations {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned int len;
|
|
unsigned int needed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_mb_discard_preallocations {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int needed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_request_blocks {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned int len;
|
|
__u32 logical;
|
|
__u32 lleft;
|
|
__u32 lright;
|
|
__u64 goal;
|
|
__u64 pleft;
|
|
__u64 pright;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_allocate_blocks {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 block;
|
|
unsigned int len;
|
|
__u32 logical;
|
|
__u32 lleft;
|
|
__u32 lright;
|
|
__u64 goal;
|
|
__u64 pleft;
|
|
__u64 pright;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_free_blocks {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 block;
|
|
unsigned long count;
|
|
int flags;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_sync_file_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ino_t parent;
|
|
int datasync;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_sync_file_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_sync_fs {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int wait;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_alloc_da_blocks {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned int data_blocks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_mballoc_alloc {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u32 orig_logical;
|
|
int orig_start;
|
|
__u32 orig_group;
|
|
int orig_len;
|
|
__u32 goal_logical;
|
|
int goal_start;
|
|
__u32 goal_group;
|
|
int goal_len;
|
|
__u32 result_logical;
|
|
int result_start;
|
|
__u32 result_group;
|
|
int result_len;
|
|
__u16 found;
|
|
__u16 groups;
|
|
__u16 buddy;
|
|
__u16 flags;
|
|
__u16 tail;
|
|
__u8 cr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_mballoc_prealloc {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u32 orig_logical;
|
|
int orig_start;
|
|
__u32 orig_group;
|
|
int orig_len;
|
|
__u32 result_logical;
|
|
int result_start;
|
|
__u32 result_group;
|
|
int result_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__mballoc {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int result_start;
|
|
__u32 result_group;
|
|
int result_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_forget {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 block;
|
|
int is_metadata;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_da_update_reserve_space {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 i_blocks;
|
|
int used_blocks;
|
|
int reserved_data_blocks;
|
|
int quota_claim;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_da_reserve_space {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 i_blocks;
|
|
int reserved_data_blocks;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_da_release_space {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 i_blocks;
|
|
int freed_blocks;
|
|
int reserved_data_blocks;
|
|
__u16 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__bitmap_load {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
__u32 group;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_read_block_bitmap_load {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
__u32 group;
|
|
bool prefetch;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__fallocate_mode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t offset;
|
|
loff_t len;
|
|
int mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fallocate_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t pos;
|
|
unsigned int blocks;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_unlink_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ino_t parent;
|
|
loff_t size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_unlink_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__truncate {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
__u64 blocks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_convert_to_initialized_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t m_lblk;
|
|
unsigned int m_len;
|
|
ext4_lblk_t u_lblk;
|
|
unsigned int u_len;
|
|
ext4_fsblk_t u_pblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_convert_to_initialized_fastpath {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t m_lblk;
|
|
unsigned int m_len;
|
|
ext4_lblk_t u_lblk;
|
|
unsigned int u_len;
|
|
ext4_fsblk_t u_pblk;
|
|
ext4_lblk_t i_lblk;
|
|
unsigned int i_len;
|
|
ext4_fsblk_t i_pblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__map_blocks_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
unsigned int len;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__map_blocks_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
unsigned int flags;
|
|
ext4_fsblk_t pblk;
|
|
ext4_lblk_t lblk;
|
|
unsigned int len;
|
|
unsigned int mflags;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_load_extent {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_fsblk_t pblk;
|
|
ext4_lblk_t lblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_load_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_journal_start_sb {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long ip;
|
|
int blocks;
|
|
int rsv_blocks;
|
|
int revoke_creds;
|
|
int type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_journal_start_inode {
|
|
struct trace_entry ent;
|
|
unsigned long ino;
|
|
dev_t dev;
|
|
unsigned long ip;
|
|
int blocks;
|
|
int rsv_blocks;
|
|
int revoke_creds;
|
|
int type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_journal_start_reserved {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long ip;
|
|
int blocks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__trim {
|
|
struct trace_entry ent;
|
|
int dev_major;
|
|
int dev_minor;
|
|
__u32 group;
|
|
int start;
|
|
int len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_handle_unwritten_extents {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
int flags;
|
|
ext4_lblk_t lblk;
|
|
ext4_fsblk_t pblk;
|
|
unsigned int len;
|
|
unsigned int allocated;
|
|
ext4_fsblk_t newblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_get_implied_cluster_alloc_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned int flags;
|
|
ext4_lblk_t lblk;
|
|
ext4_fsblk_t pblk;
|
|
unsigned int len;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_show_extent {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_fsblk_t pblk;
|
|
ext4_lblk_t lblk;
|
|
unsigned short len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_remove_blocks {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t from;
|
|
ext4_lblk_t to;
|
|
ext4_fsblk_t ee_pblk;
|
|
ext4_lblk_t ee_lblk;
|
|
unsigned short ee_len;
|
|
ext4_fsblk_t pc_pclu;
|
|
ext4_lblk_t pc_lblk;
|
|
int pc_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_rm_leaf {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t start;
|
|
ext4_lblk_t ee_lblk;
|
|
ext4_fsblk_t ee_pblk;
|
|
short ee_len;
|
|
ext4_fsblk_t pc_pclu;
|
|
ext4_lblk_t pc_lblk;
|
|
int pc_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_rm_idx {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_fsblk_t pblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_remove_space {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t start;
|
|
ext4_lblk_t end;
|
|
int depth;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_ext_remove_space_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t start;
|
|
ext4_lblk_t end;
|
|
int depth;
|
|
ext4_fsblk_t pc_pclu;
|
|
ext4_lblk_t pc_lblk;
|
|
int pc_state;
|
|
unsigned short eh_entries;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__es_extent {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
ext4_lblk_t len;
|
|
ext4_fsblk_t pblk;
|
|
char status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_remove_extent {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t lblk;
|
|
loff_t len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_find_extent_range_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_find_extent_range_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
ext4_lblk_t len;
|
|
ext4_fsblk_t pblk;
|
|
char status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_lookup_extent_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_lookup_extent_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
ext4_lblk_t len;
|
|
ext4_fsblk_t pblk;
|
|
char status;
|
|
int found;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4__es_shrink_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int nr_to_scan;
|
|
int cache_cnt;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_shrink_scan_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int nr_shrunk;
|
|
int cache_cnt;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_collapse_range {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t offset;
|
|
loff_t len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_insert_range {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
loff_t offset;
|
|
loff_t len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_shrink {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int nr_shrunk;
|
|
unsigned long long scan_time;
|
|
int nr_skipped;
|
|
int retried;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_es_insert_delayed_block {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
ext4_lblk_t lblk;
|
|
ext4_lblk_t len;
|
|
ext4_fsblk_t pblk;
|
|
char status;
|
|
bool allocated;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fsmap_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
dev_t keydev;
|
|
u32 agno;
|
|
u64 bno;
|
|
u64 len;
|
|
u64 owner;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_getfsmap_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
dev_t keydev;
|
|
u64 block;
|
|
u64 len;
|
|
u64 owner;
|
|
u64 flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_shutdown {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_error {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
const char *function;
|
|
unsigned int line;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_prefetch_bitmaps {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
__u32 group;
|
|
__u32 next;
|
|
__u32 ios;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_lazy_itable_init {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
__u32 group;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_replay_scan {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int error;
|
|
int off;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_replay {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int tag;
|
|
int ino;
|
|
int priv1;
|
|
int priv2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_commit_start {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_commit_stop {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int nblks;
|
|
int reason;
|
|
int num_fc;
|
|
int num_fc_ineligible;
|
|
int nblks_agg;
|
|
tid_t tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_stats {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned int fc_ineligible_rc[10];
|
|
unsigned long fc_commits;
|
|
unsigned long fc_ineligible_commits;
|
|
unsigned long fc_numblks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_track_dentry {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t t_tid;
|
|
ino_t i_ino;
|
|
tid_t i_sync_tid;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_track_inode {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t t_tid;
|
|
ino_t i_ino;
|
|
tid_t i_sync_tid;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_track_range {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t t_tid;
|
|
ino_t i_ino;
|
|
tid_t i_sync_tid;
|
|
long start;
|
|
long end;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_fc_cleanup {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int j_fc_off;
|
|
int full;
|
|
tid_t tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ext4_update_sb {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ext4_fsblk_t fsblk;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct ext4_journal_cb_entry {
|
|
struct list_head jce_list;
|
|
void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int);
|
|
};
|
|
|
|
struct ext4_fs_context {
|
|
char *s_qf_names[3];
|
|
struct fscrypt_dummy_policy dummy_enc_policy;
|
|
int s_jquota_fmt;
|
|
unsigned short qname_spec;
|
|
unsigned long vals_s_flags;
|
|
unsigned long mask_s_flags;
|
|
unsigned long journal_devnum;
|
|
unsigned long s_commit_interval;
|
|
unsigned long s_stripe;
|
|
unsigned int s_inode_readahead_blks;
|
|
unsigned int s_want_extra_isize;
|
|
unsigned int s_li_wait_mult;
|
|
unsigned int s_max_dir_size_kb;
|
|
unsigned int journal_ioprio;
|
|
unsigned int vals_s_mount_opt;
|
|
unsigned int mask_s_mount_opt;
|
|
unsigned int vals_s_mount_opt2;
|
|
unsigned int mask_s_mount_opt2;
|
|
unsigned long vals_s_mount_flags;
|
|
unsigned long mask_s_mount_flags;
|
|
unsigned int opt_flags;
|
|
unsigned int spec;
|
|
u32 s_max_batch_time;
|
|
u32 s_min_batch_time;
|
|
kuid_t s_resuid;
|
|
kgid_t s_resgid;
|
|
ext4_fsblk_t s_sb_block;
|
|
};
|
|
|
|
struct ext4_mount_options {
|
|
unsigned long s_mount_opt;
|
|
unsigned long s_mount_opt2;
|
|
kuid_t s_resuid;
|
|
kgid_t s_resgid;
|
|
unsigned long s_commit_interval;
|
|
u32 s_min_batch_time;
|
|
u32 s_max_batch_time;
|
|
int s_jquota_fmt;
|
|
char *s_qf_names[3];
|
|
};
|
|
|
|
struct trace_event_data_offsets_ext4_other_inode_update_time {};
|
|
|
|
struct trace_event_data_offsets_ext4_free_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_request_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_allocate_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_evict_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_drop_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_nfs_commit_metadata {};
|
|
|
|
struct trace_event_data_offsets_ext4_mark_inode_dirty {};
|
|
|
|
struct trace_event_data_offsets_ext4_begin_ordered_truncate {};
|
|
|
|
struct trace_event_data_offsets_ext4__write_begin {};
|
|
|
|
struct trace_event_data_offsets_ext4__write_end {};
|
|
|
|
struct trace_event_data_offsets_ext4_writepages {};
|
|
|
|
struct trace_event_data_offsets_ext4_da_write_pages {};
|
|
|
|
struct trace_event_data_offsets_ext4_da_write_pages_extent {};
|
|
|
|
struct trace_event_data_offsets_ext4_writepages_result {};
|
|
|
|
struct trace_event_data_offsets_ext4__page_op {};
|
|
|
|
struct trace_event_data_offsets_ext4_invalidate_folio_op {};
|
|
|
|
struct trace_event_data_offsets_ext4_discard_blocks {};
|
|
|
|
struct trace_event_data_offsets_ext4__mb_new_pa {};
|
|
|
|
struct trace_event_data_offsets_ext4_mb_release_inode_pa {};
|
|
|
|
struct trace_event_data_offsets_ext4_mb_release_group_pa {};
|
|
|
|
struct trace_event_data_offsets_ext4_discard_preallocations {};
|
|
|
|
struct trace_event_data_offsets_ext4_mb_discard_preallocations {};
|
|
|
|
struct trace_event_data_offsets_ext4_request_blocks {};
|
|
|
|
struct trace_event_data_offsets_ext4_allocate_blocks {};
|
|
|
|
struct trace_event_data_offsets_ext4_free_blocks {};
|
|
|
|
struct trace_event_data_offsets_ext4_sync_file_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4_sync_file_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4_sync_fs {};
|
|
|
|
struct trace_event_data_offsets_ext4_alloc_da_blocks {};
|
|
|
|
struct trace_event_data_offsets_ext4_mballoc_alloc {};
|
|
|
|
struct trace_event_data_offsets_ext4_mballoc_prealloc {};
|
|
|
|
struct trace_event_data_offsets_ext4__mballoc {};
|
|
|
|
struct trace_event_data_offsets_ext4_forget {};
|
|
|
|
struct trace_event_data_offsets_ext4_da_update_reserve_space {};
|
|
|
|
struct trace_event_data_offsets_ext4_da_reserve_space {};
|
|
|
|
struct trace_event_data_offsets_ext4_da_release_space {};
|
|
|
|
struct trace_event_data_offsets_ext4__bitmap_load {};
|
|
|
|
struct trace_event_data_offsets_ext4_read_block_bitmap_load {};
|
|
|
|
struct trace_event_data_offsets_ext4__fallocate_mode {};
|
|
|
|
struct trace_event_data_offsets_ext4_fallocate_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4_unlink_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4_unlink_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4__truncate {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {};
|
|
|
|
struct trace_event_data_offsets_ext4__map_blocks_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4__map_blocks_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_load_extent {};
|
|
|
|
struct trace_event_data_offsets_ext4_load_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_journal_start_sb {};
|
|
|
|
struct trace_event_data_offsets_ext4_journal_start_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_journal_start_reserved {};
|
|
|
|
struct trace_event_data_offsets_ext4__trim {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {};
|
|
|
|
struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_show_extent {};
|
|
|
|
struct trace_event_data_offsets_ext4_remove_blocks {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_rm_leaf {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_rm_idx {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_remove_space {};
|
|
|
|
struct trace_event_data_offsets_ext4_ext_remove_space_done {};
|
|
|
|
struct trace_event_data_offsets_ext4__es_extent {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_remove_extent {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_find_extent_range_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_find_extent_range_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_lookup_extent_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_lookup_extent_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4__es_shrink_enter {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_shrink_scan_exit {};
|
|
|
|
struct trace_event_data_offsets_ext4_collapse_range {};
|
|
|
|
struct trace_event_data_offsets_ext4_insert_range {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_shrink {};
|
|
|
|
struct trace_event_data_offsets_ext4_es_insert_delayed_block {};
|
|
|
|
struct trace_event_data_offsets_ext4_fsmap_class {};
|
|
|
|
struct trace_event_data_offsets_ext4_getfsmap_class {};
|
|
|
|
struct trace_event_data_offsets_ext4_shutdown {};
|
|
|
|
struct trace_event_data_offsets_ext4_error {};
|
|
|
|
struct trace_event_data_offsets_ext4_prefetch_bitmaps {};
|
|
|
|
struct trace_event_data_offsets_ext4_lazy_itable_init {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_replay_scan {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_replay {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_commit_start {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_commit_stop {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_stats {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_track_dentry {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_track_inode {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_track_range {};
|
|
|
|
struct trace_event_data_offsets_ext4_fc_cleanup {};
|
|
|
|
struct trace_event_data_offsets_ext4_update_sb {};
|
|
|
|
struct io_timeout {
|
|
struct file *file;
|
|
u32 off;
|
|
u32 target_seq;
|
|
struct list_head list;
|
|
struct io_kiocb *head;
|
|
struct io_kiocb *prev;
|
|
};
|
|
|
|
struct io_timeout_rem {
|
|
struct file *file;
|
|
u64 addr;
|
|
struct timespec64 ts;
|
|
u32 flags;
|
|
bool ltimeout;
|
|
};
|
|
|
|
struct io_timeout_data {
|
|
struct io_kiocb *req;
|
|
struct hrtimer timer;
|
|
struct timespec64 ts;
|
|
enum hrtimer_mode mode;
|
|
u32 flags;
|
|
};
|
|
|
|
struct io_cancel_data {
|
|
struct io_ring_ctx *ctx;
|
|
union {
|
|
u64 data;
|
|
struct file *file;
|
|
};
|
|
u32 flags;
|
|
int seq;
|
|
};
|
|
|
|
enum acpi_ec_event_state {
|
|
EC_EVENT_READY = 0,
|
|
EC_EVENT_IN_PROGRESS = 1,
|
|
EC_EVENT_COMPLETE = 2,
|
|
};
|
|
|
|
struct transaction;
|
|
|
|
struct acpi_ec {
|
|
acpi_handle handle;
|
|
acpi_handle address_space_handler_holder;
|
|
int gpe;
|
|
int irq;
|
|
unsigned long command_addr;
|
|
unsigned long data_addr;
|
|
bool global_lock;
|
|
unsigned long flags;
|
|
unsigned long reference_count;
|
|
struct mutex mutex;
|
|
wait_queue_head_t wait;
|
|
struct list_head list;
|
|
struct transaction *curr;
|
|
spinlock_t lock;
|
|
struct work_struct work;
|
|
unsigned long timestamp;
|
|
enum acpi_ec_event_state event_state;
|
|
unsigned int events_to_process;
|
|
unsigned int events_in_progress;
|
|
unsigned int queries_in_progress;
|
|
bool busy_polling;
|
|
unsigned int polling_guard;
|
|
};
|
|
|
|
struct transaction {
|
|
const u8 *wdata;
|
|
u8 *rdata;
|
|
unsigned short irq_count;
|
|
u8 command;
|
|
u8 wi;
|
|
u8 ri;
|
|
u8 wlen;
|
|
u8 rlen;
|
|
u8 flags;
|
|
};
|
|
|
|
enum ec_command {
|
|
ACPI_EC_COMMAND_READ = 128,
|
|
ACPI_EC_COMMAND_WRITE = 129,
|
|
ACPI_EC_BURST_ENABLE = 130,
|
|
ACPI_EC_BURST_DISABLE = 131,
|
|
ACPI_EC_COMMAND_QUERY = 132,
|
|
};
|
|
|
|
enum {
|
|
EC_FLAGS_QUERY_ENABLED = 0,
|
|
EC_FLAGS_EVENT_HANDLER_INSTALLED = 1,
|
|
EC_FLAGS_EC_HANDLER_INSTALLED = 2,
|
|
EC_FLAGS_EC_REG_CALLED = 3,
|
|
EC_FLAGS_QUERY_METHODS_INSTALLED = 4,
|
|
EC_FLAGS_STARTED = 5,
|
|
EC_FLAGS_STOPPED = 6,
|
|
EC_FLAGS_EVENTS_MASKED = 7,
|
|
};
|
|
|
|
typedef int (*acpi_ec_query_func)(void *);
|
|
|
|
struct acpi_ec_query_handler {
|
|
struct list_head node;
|
|
acpi_ec_query_func func;
|
|
acpi_handle handle;
|
|
void *data;
|
|
u8 query_bit;
|
|
struct kref kref;
|
|
};
|
|
|
|
struct acpi_ec_query {
|
|
struct transaction transaction;
|
|
struct work_struct work;
|
|
struct acpi_ec_query_handler *handler;
|
|
struct acpi_ec *ec;
|
|
};
|
|
|
|
struct acpi_table_ecdt {
|
|
struct acpi_table_header header;
|
|
struct acpi_generic_address control;
|
|
struct acpi_generic_address data;
|
|
u32 uid;
|
|
u8 gpe;
|
|
u8 id[1];
|
|
} __attribute__((packed));
|
|
|
|
struct dw_dma_chan;
|
|
|
|
struct dw_dma_platform_data;
|
|
|
|
struct dw_dma {
|
|
struct dma_device dma;
|
|
char name[20];
|
|
void *regs;
|
|
struct dma_pool *desc_pool;
|
|
struct tasklet_struct tasklet;
|
|
struct dw_dma_chan *chan;
|
|
u8 all_chan_mask;
|
|
u8 in_use;
|
|
void (*initialize_chan)(struct dw_dma_chan *);
|
|
void (*suspend_chan)(struct dw_dma_chan *, bool);
|
|
void (*resume_chan)(struct dw_dma_chan *, bool);
|
|
u32 (*prepare_ctllo)(struct dw_dma_chan *);
|
|
void (*encode_maxburst)(struct dw_dma_chan *, u32 *);
|
|
u32 (*bytes2block)(struct dw_dma_chan *, size_t, unsigned int, size_t *);
|
|
size_t (*block2bytes)(struct dw_dma_chan *, u32, u32);
|
|
void (*set_device_name)(struct dw_dma *, int);
|
|
void (*disable)(struct dw_dma *);
|
|
void (*enable)(struct dw_dma *);
|
|
struct dw_dma_platform_data *pdata;
|
|
};
|
|
|
|
struct dw_dma_slave {
|
|
struct device *dma_dev;
|
|
u8 src_id;
|
|
u8 dst_id;
|
|
u8 m_master;
|
|
u8 p_master;
|
|
u8 channels;
|
|
bool hs_polarity;
|
|
};
|
|
|
|
struct dw_dma_chan {
|
|
struct dma_chan chan;
|
|
void *ch_regs;
|
|
u8 mask;
|
|
u8 priority;
|
|
enum dma_transfer_direction direction;
|
|
struct list_head *tx_node_active;
|
|
spinlock_t lock;
|
|
unsigned long flags;
|
|
struct list_head active_list;
|
|
struct list_head queue;
|
|
unsigned int descs_allocated;
|
|
unsigned int block_size;
|
|
bool nollp;
|
|
u32 max_burst;
|
|
struct dw_dma_slave dws;
|
|
struct dma_slave_config dma_sconfig;
|
|
};
|
|
|
|
struct dw_dma_platform_data {
|
|
u32 nr_masters;
|
|
u32 nr_channels;
|
|
u32 chan_allocation_order;
|
|
u32 chan_priority;
|
|
u32 block_size;
|
|
u32 data_width[4];
|
|
u32 multi_block[8];
|
|
u32 max_burst[8];
|
|
u32 protctl;
|
|
u32 quirks;
|
|
};
|
|
|
|
struct dw_dma_chip {
|
|
struct device *dev;
|
|
int id;
|
|
int irq;
|
|
void *regs;
|
|
struct clk *clk;
|
|
struct dw_dma *dw;
|
|
const struct dw_dma_platform_data *pdata;
|
|
};
|
|
|
|
struct dw_dma_chan_regs {
|
|
u32 SAR;
|
|
u32 __pad_SAR;
|
|
u32 DAR;
|
|
u32 __pad_DAR;
|
|
u32 LLP;
|
|
u32 __pad_LLP;
|
|
u32 CTL_LO;
|
|
u32 CTL_HI;
|
|
u32 SSTAT;
|
|
u32 __pad_SSTAT;
|
|
u32 DSTAT;
|
|
u32 __pad_DSTAT;
|
|
u32 SSTATAR;
|
|
u32 __pad_SSTATAR;
|
|
u32 DSTATAR;
|
|
u32 __pad_DSTATAR;
|
|
u32 CFG_LO;
|
|
u32 CFG_HI;
|
|
u32 SGR;
|
|
u32 __pad_SGR;
|
|
u32 DSR;
|
|
u32 __pad_DSR;
|
|
};
|
|
|
|
struct sysrq_key_op {
|
|
void (* const handler)(int);
|
|
const char * const help_msg;
|
|
const char * const action_msg;
|
|
const int enable_mask;
|
|
};
|
|
|
|
struct sysrq_state {
|
|
struct input_handle handle;
|
|
struct work_struct reinject_work;
|
|
unsigned long key_down[12];
|
|
unsigned int alt;
|
|
unsigned int alt_use;
|
|
unsigned int shift;
|
|
unsigned int shift_use;
|
|
bool active;
|
|
bool need_reinject;
|
|
bool reinjecting;
|
|
bool reset_canceled;
|
|
bool reset_requested;
|
|
unsigned long reset_keybit[12];
|
|
int reset_seq_len;
|
|
int reset_seq_cnt;
|
|
int reset_seq_version;
|
|
struct timer_list keyreset_timer;
|
|
};
|
|
|
|
struct tpm_tis_tcg_phy {
|
|
struct tpm_tis_data priv;
|
|
void *iobase;
|
|
};
|
|
|
|
struct tpm_info {
|
|
struct resource res;
|
|
int irq;
|
|
};
|
|
|
|
struct drm_mode_get_encoder {
|
|
__u32 encoder_id;
|
|
__u32 encoder_type;
|
|
__u32 crtc_id;
|
|
__u32 possible_crtcs;
|
|
__u32 possible_clones;
|
|
};
|
|
|
|
struct drm_atomic_helper_damage_iter {
|
|
struct drm_rect plane_src;
|
|
const struct drm_rect *clips;
|
|
uint32_t num_clips;
|
|
uint32_t curr_clip;
|
|
bool full_update;
|
|
};
|
|
|
|
struct cb_kernel {
|
|
const void *data;
|
|
u32 size;
|
|
};
|
|
|
|
struct batch_vals {
|
|
u32 max_threads;
|
|
u32 state_start;
|
|
u32 surface_start;
|
|
u32 surface_height;
|
|
u32 surface_width;
|
|
u32 size;
|
|
};
|
|
|
|
struct batch_chunk {
|
|
struct i915_vma *vma;
|
|
u32 offset;
|
|
u32 *start;
|
|
u32 *end;
|
|
u32 max_items;
|
|
};
|
|
|
|
struct intel_renderstate_rodata {
|
|
const u32 *reloc;
|
|
const u32 *batch;
|
|
const u32 batch_items;
|
|
};
|
|
|
|
struct intel_renderstate {
|
|
struct i915_gem_ww_ctx ww;
|
|
const struct intel_renderstate_rodata *rodata;
|
|
struct i915_vma *vma;
|
|
u32 batch_offset;
|
|
u32 batch_size;
|
|
u32 aux_offset;
|
|
u32 aux_size;
|
|
};
|
|
|
|
struct ch7017_priv {
|
|
u8 dummy;
|
|
};
|
|
|
|
typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *);
|
|
|
|
struct ata_scsi_args {
|
|
struct ata_device *dev;
|
|
u16 *id;
|
|
struct scsi_cmnd *cmd;
|
|
};
|
|
|
|
struct e1000_opt_list {
|
|
int i;
|
|
char *str;
|
|
};
|
|
|
|
struct e1000_option {
|
|
enum {
|
|
enable_option = 0,
|
|
range_option = 1,
|
|
list_option = 2,
|
|
} type;
|
|
const char *name;
|
|
const char *err;
|
|
int def;
|
|
union {
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} r;
|
|
struct {
|
|
int nr;
|
|
const struct e1000_opt_list *p;
|
|
} l;
|
|
} arg;
|
|
};
|
|
|
|
enum {
|
|
e1000_10_half = 0,
|
|
e1000_10_full = 1,
|
|
e1000_100_half = 2,
|
|
e1000_100_full = 3,
|
|
};
|
|
|
|
struct ep_device {
|
|
struct usb_endpoint_descriptor *desc;
|
|
struct usb_device *udev;
|
|
struct device dev;
|
|
};
|
|
|
|
enum xhci_ep_reset_type {
|
|
EP_HARD_RESET = 0,
|
|
EP_SOFT_RESET = 1,
|
|
};
|
|
|
|
struct itco_wdt_platform_data {
|
|
char name[32];
|
|
unsigned int version;
|
|
bool no_reboot_use_pmc;
|
|
};
|
|
|
|
struct dmi_onboard_device_info {
|
|
const char *name;
|
|
u8 type;
|
|
unsigned short i2c_addr;
|
|
const char *i2c_type;
|
|
};
|
|
|
|
struct i801_priv {
|
|
struct i2c_adapter adapter;
|
|
unsigned long smba;
|
|
unsigned char original_hstcfg;
|
|
unsigned char original_hstcnt;
|
|
unsigned char original_slvcmd;
|
|
struct pci_dev *pci_dev;
|
|
unsigned int features;
|
|
struct completion done;
|
|
u8 status;
|
|
u8 cmd;
|
|
bool is_read;
|
|
int count;
|
|
int len;
|
|
u8 *data;
|
|
struct platform_device *tco_pdev;
|
|
bool acpi_reserved;
|
|
struct mutex acpi_lock;
|
|
};
|
|
|
|
struct dm_region_hash;
|
|
|
|
struct dm_region {
|
|
struct dm_region_hash *rh;
|
|
region_t key;
|
|
int state;
|
|
struct list_head hash_list;
|
|
struct list_head list;
|
|
atomic_t pending;
|
|
struct bio_list delayed_bios;
|
|
};
|
|
|
|
struct dm_region_hash {
|
|
uint32_t region_size;
|
|
unsigned int region_shift;
|
|
struct dm_dirty_log *log;
|
|
rwlock_t hash_lock;
|
|
unsigned int mask;
|
|
unsigned int nr_buckets;
|
|
unsigned int prime;
|
|
unsigned int shift;
|
|
struct list_head *buckets;
|
|
int flush_failure;
|
|
unsigned int max_recovery;
|
|
spinlock_t region_lock;
|
|
atomic_t recovery_in_flight;
|
|
struct list_head clean_regions;
|
|
struct list_head quiesced_regions;
|
|
struct list_head recovered_regions;
|
|
struct list_head failed_recovered_regions;
|
|
struct semaphore recovery_count;
|
|
mempool_t region_pool;
|
|
void *context;
|
|
sector_t target_begin;
|
|
void (*dispatch_bios)(void *, struct bio_list *);
|
|
void (*wakeup_workers)(void *);
|
|
void (*wakeup_all_recovery_waiters)(void *);
|
|
};
|
|
|
|
struct hidraw {
|
|
unsigned int minor;
|
|
int exist;
|
|
int open;
|
|
wait_queue_head_t wait;
|
|
struct hid_device *hid;
|
|
struct device *dev;
|
|
spinlock_t list_lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct hidraw_report {
|
|
__u8 *value;
|
|
int len;
|
|
};
|
|
|
|
struct hidraw_list {
|
|
struct hidraw_report buffer[64];
|
|
int head;
|
|
int tail;
|
|
struct fasync_struct *fasync;
|
|
struct hidraw *hidraw;
|
|
struct list_head node;
|
|
struct mutex read_mutex;
|
|
};
|
|
|
|
struct hidraw_devinfo {
|
|
__u32 bustype;
|
|
__s16 vendor;
|
|
__s16 product;
|
|
};
|
|
|
|
struct fib_notifier_net {
|
|
struct list_head fib_notifier_ops;
|
|
struct atomic_notifier_head fib_chain;
|
|
};
|
|
|
|
struct strset_info {
|
|
bool per_dev;
|
|
bool free_strings;
|
|
unsigned int count;
|
|
const char (*strings)[32];
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STRSET_UNSPEC = 0,
|
|
ETHTOOL_A_STRSET_HEADER = 1,
|
|
ETHTOOL_A_STRSET_STRINGSETS = 2,
|
|
ETHTOOL_A_STRSET_COUNTS_ONLY = 3,
|
|
__ETHTOOL_A_STRSET_CNT = 4,
|
|
ETHTOOL_A_STRSET_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STRINGSETS_UNSPEC = 0,
|
|
ETHTOOL_A_STRINGSETS_STRINGSET = 1,
|
|
__ETHTOOL_A_STRINGSETS_CNT = 2,
|
|
ETHTOOL_A_STRINGSETS_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STRINGSET_UNSPEC = 0,
|
|
ETHTOOL_A_STRINGSET_ID = 1,
|
|
ETHTOOL_A_STRINGSET_COUNT = 2,
|
|
ETHTOOL_A_STRINGSET_STRINGS = 3,
|
|
__ETHTOOL_A_STRINGSET_CNT = 4,
|
|
ETHTOOL_A_STRINGSET_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STRINGS_UNSPEC = 0,
|
|
ETHTOOL_A_STRINGS_STRING = 1,
|
|
__ETHTOOL_A_STRINGS_CNT = 2,
|
|
ETHTOOL_A_STRINGS_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STRING_UNSPEC = 0,
|
|
ETHTOOL_A_STRING_INDEX = 1,
|
|
ETHTOOL_A_STRING_VALUE = 2,
|
|
__ETHTOOL_A_STRING_CNT = 3,
|
|
ETHTOOL_A_STRING_MAX = 2,
|
|
};
|
|
|
|
struct strset_req_info {
|
|
struct ethnl_req_info base;
|
|
u32 req_ids;
|
|
bool counts_only;
|
|
};
|
|
|
|
struct strset_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct strset_info sets[21];
|
|
};
|
|
|
|
enum nfnl_abort_action {
|
|
NFNL_ABORT_NONE = 0,
|
|
NFNL_ABORT_AUTOLOAD = 1,
|
|
NFNL_ABORT_VALIDATE = 2,
|
|
};
|
|
|
|
struct nfnl_callback;
|
|
|
|
struct nfnetlink_subsystem {
|
|
const char *name;
|
|
__u8 subsys_id;
|
|
__u8 cb_count;
|
|
const struct nfnl_callback *cb;
|
|
struct module *owner;
|
|
int (*commit)(struct net *, struct sk_buff *);
|
|
int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action);
|
|
void (*cleanup)(struct net *);
|
|
bool (*valid_genid)(struct net *, u32);
|
|
};
|
|
|
|
enum nfnl_callback_type {
|
|
NFNL_CB_UNSPEC = 0,
|
|
NFNL_CB_MUTEX = 1,
|
|
NFNL_CB_RCU = 2,
|
|
NFNL_CB_BATCH = 3,
|
|
};
|
|
|
|
struct nfnl_info;
|
|
|
|
struct nfnl_callback {
|
|
int (*call)(struct sk_buff *, const struct nfnl_info *, const struct nlattr * const *);
|
|
const struct nla_policy *policy;
|
|
enum nfnl_callback_type type;
|
|
__u16 attr_count;
|
|
};
|
|
|
|
struct nfgenmsg;
|
|
|
|
struct nfnl_info {
|
|
struct net *net;
|
|
struct sock *sk;
|
|
const struct nlmsghdr *nlh;
|
|
const struct nfgenmsg *nfmsg;
|
|
struct netlink_ext_ack *extack;
|
|
};
|
|
|
|
struct nfgenmsg {
|
|
__u8 nfgen_family;
|
|
__u8 version;
|
|
__be16 res_id;
|
|
};
|
|
|
|
enum cntl_msg_types {
|
|
IPCTNL_MSG_CT_NEW = 0,
|
|
IPCTNL_MSG_CT_GET = 1,
|
|
IPCTNL_MSG_CT_DELETE = 2,
|
|
IPCTNL_MSG_CT_GET_CTRZERO = 3,
|
|
IPCTNL_MSG_CT_GET_STATS_CPU = 4,
|
|
IPCTNL_MSG_CT_GET_STATS = 5,
|
|
IPCTNL_MSG_CT_GET_DYING = 6,
|
|
IPCTNL_MSG_CT_GET_UNCONFIRMED = 7,
|
|
IPCTNL_MSG_MAX = 8,
|
|
};
|
|
|
|
enum nfnetlink_groups {
|
|
NFNLGRP_NONE = 0,
|
|
NFNLGRP_CONNTRACK_NEW = 1,
|
|
NFNLGRP_CONNTRACK_UPDATE = 2,
|
|
NFNLGRP_CONNTRACK_DESTROY = 3,
|
|
NFNLGRP_CONNTRACK_EXP_NEW = 4,
|
|
NFNLGRP_CONNTRACK_EXP_UPDATE = 5,
|
|
NFNLGRP_CONNTRACK_EXP_DESTROY = 6,
|
|
NFNLGRP_NFTABLES = 7,
|
|
NFNLGRP_ACCT_QUOTA = 8,
|
|
NFNLGRP_NFTRACE = 9,
|
|
__NFNLGRP_MAX = 10,
|
|
};
|
|
|
|
enum ctattr_type {
|
|
CTA_UNSPEC = 0,
|
|
CTA_TUPLE_ORIG = 1,
|
|
CTA_TUPLE_REPLY = 2,
|
|
CTA_STATUS = 3,
|
|
CTA_PROTOINFO = 4,
|
|
CTA_HELP = 5,
|
|
CTA_NAT_SRC = 6,
|
|
CTA_TIMEOUT = 7,
|
|
CTA_MARK = 8,
|
|
CTA_COUNTERS_ORIG = 9,
|
|
CTA_COUNTERS_REPLY = 10,
|
|
CTA_USE = 11,
|
|
CTA_ID = 12,
|
|
CTA_NAT_DST = 13,
|
|
CTA_TUPLE_MASTER = 14,
|
|
CTA_SEQ_ADJ_ORIG = 15,
|
|
CTA_NAT_SEQ_ADJ_ORIG = 15,
|
|
CTA_SEQ_ADJ_REPLY = 16,
|
|
CTA_NAT_SEQ_ADJ_REPLY = 16,
|
|
CTA_SECMARK = 17,
|
|
CTA_ZONE = 18,
|
|
CTA_SECCTX = 19,
|
|
CTA_TIMESTAMP = 20,
|
|
CTA_MARK_MASK = 21,
|
|
CTA_LABELS = 22,
|
|
CTA_LABELS_MASK = 23,
|
|
CTA_SYNPROXY = 24,
|
|
CTA_FILTER = 25,
|
|
CTA_STATUS_MASK = 26,
|
|
__CTA_MAX = 27,
|
|
};
|
|
|
|
enum ctattr_tuple {
|
|
CTA_TUPLE_UNSPEC = 0,
|
|
CTA_TUPLE_IP = 1,
|
|
CTA_TUPLE_PROTO = 2,
|
|
CTA_TUPLE_ZONE = 3,
|
|
__CTA_TUPLE_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_ip {
|
|
CTA_IP_UNSPEC = 0,
|
|
CTA_IP_V4_SRC = 1,
|
|
CTA_IP_V4_DST = 2,
|
|
CTA_IP_V6_SRC = 3,
|
|
CTA_IP_V6_DST = 4,
|
|
__CTA_IP_MAX = 5,
|
|
};
|
|
|
|
enum ctattr_counters {
|
|
CTA_COUNTERS_UNSPEC = 0,
|
|
CTA_COUNTERS_PACKETS = 1,
|
|
CTA_COUNTERS_BYTES = 2,
|
|
CTA_COUNTERS32_PACKETS = 3,
|
|
CTA_COUNTERS32_BYTES = 4,
|
|
CTA_COUNTERS_PAD = 5,
|
|
__CTA_COUNTERS_MAX = 6,
|
|
};
|
|
|
|
enum ctattr_tstamp {
|
|
CTA_TIMESTAMP_UNSPEC = 0,
|
|
CTA_TIMESTAMP_START = 1,
|
|
CTA_TIMESTAMP_STOP = 2,
|
|
CTA_TIMESTAMP_PAD = 3,
|
|
__CTA_TIMESTAMP_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_help {
|
|
CTA_HELP_UNSPEC = 0,
|
|
CTA_HELP_NAME = 1,
|
|
CTA_HELP_INFO = 2,
|
|
__CTA_HELP_MAX = 3,
|
|
};
|
|
|
|
enum ctattr_secctx {
|
|
CTA_SECCTX_UNSPEC = 0,
|
|
CTA_SECCTX_NAME = 1,
|
|
__CTA_SECCTX_MAX = 2,
|
|
};
|
|
|
|
enum ctattr_seqadj {
|
|
CTA_SEQADJ_UNSPEC = 0,
|
|
CTA_SEQADJ_CORRECTION_POS = 1,
|
|
CTA_SEQADJ_OFFSET_BEFORE = 2,
|
|
CTA_SEQADJ_OFFSET_AFTER = 3,
|
|
__CTA_SEQADJ_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_synproxy {
|
|
CTA_SYNPROXY_UNSPEC = 0,
|
|
CTA_SYNPROXY_ISN = 1,
|
|
CTA_SYNPROXY_ITS = 2,
|
|
CTA_SYNPROXY_TSOFF = 3,
|
|
__CTA_SYNPROXY_MAX = 4,
|
|
};
|
|
|
|
enum ip_conntrack_expect_events {
|
|
IPEXP_NEW = 0,
|
|
IPEXP_DESTROY = 1,
|
|
};
|
|
|
|
enum ctnl_exp_msg_types {
|
|
IPCTNL_MSG_EXP_NEW = 0,
|
|
IPCTNL_MSG_EXP_GET = 1,
|
|
IPCTNL_MSG_EXP_DELETE = 2,
|
|
IPCTNL_MSG_EXP_GET_STATS_CPU = 3,
|
|
IPCTNL_MSG_EXP_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_expect {
|
|
CTA_EXPECT_UNSPEC = 0,
|
|
CTA_EXPECT_MASTER = 1,
|
|
CTA_EXPECT_TUPLE = 2,
|
|
CTA_EXPECT_MASK = 3,
|
|
CTA_EXPECT_TIMEOUT = 4,
|
|
CTA_EXPECT_ID = 5,
|
|
CTA_EXPECT_HELP_NAME = 6,
|
|
CTA_EXPECT_ZONE = 7,
|
|
CTA_EXPECT_FLAGS = 8,
|
|
CTA_EXPECT_CLASS = 9,
|
|
CTA_EXPECT_NAT = 10,
|
|
CTA_EXPECT_FN = 11,
|
|
__CTA_EXPECT_MAX = 12,
|
|
};
|
|
|
|
enum ctattr_expect_nat {
|
|
CTA_EXPECT_NAT_UNSPEC = 0,
|
|
CTA_EXPECT_NAT_DIR = 1,
|
|
CTA_EXPECT_NAT_TUPLE = 2,
|
|
__CTA_EXPECT_NAT_MAX = 3,
|
|
};
|
|
|
|
enum ctattr_expect_stats {
|
|
CTA_STATS_EXP_UNSPEC = 0,
|
|
CTA_STATS_EXP_NEW = 1,
|
|
CTA_STATS_EXP_CREATE = 2,
|
|
CTA_STATS_EXP_DELETE = 3,
|
|
__CTA_STATS_EXP_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_protoinfo {
|
|
CTA_PROTOINFO_UNSPEC = 0,
|
|
CTA_PROTOINFO_TCP = 1,
|
|
CTA_PROTOINFO_DCCP = 2,
|
|
CTA_PROTOINFO_SCTP = 3,
|
|
__CTA_PROTOINFO_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_filter {
|
|
CTA_FILTER_UNSPEC = 0,
|
|
CTA_FILTER_ORIG_FLAGS = 1,
|
|
CTA_FILTER_REPLY_FLAGS = 2,
|
|
__CTA_FILTER_MAX = 3,
|
|
};
|
|
|
|
enum ctattr_stats_cpu {
|
|
CTA_STATS_UNSPEC = 0,
|
|
CTA_STATS_SEARCHED = 1,
|
|
CTA_STATS_FOUND = 2,
|
|
CTA_STATS_NEW = 3,
|
|
CTA_STATS_INVALID = 4,
|
|
CTA_STATS_IGNORE = 5,
|
|
CTA_STATS_DELETE = 6,
|
|
CTA_STATS_DELETE_LIST = 7,
|
|
CTA_STATS_INSERT = 8,
|
|
CTA_STATS_INSERT_FAILED = 9,
|
|
CTA_STATS_DROP = 10,
|
|
CTA_STATS_EARLY_DROP = 11,
|
|
CTA_STATS_ERROR = 12,
|
|
CTA_STATS_SEARCH_RESTART = 13,
|
|
CTA_STATS_CLASH_RESOLVE = 14,
|
|
CTA_STATS_CHAIN_TOOLONG = 15,
|
|
__CTA_STATS_MAX = 16,
|
|
};
|
|
|
|
enum ctattr_stats_global {
|
|
CTA_STATS_GLOBAL_UNSPEC = 0,
|
|
CTA_STATS_GLOBAL_ENTRIES = 1,
|
|
CTA_STATS_GLOBAL_MAX_ENTRIES = 2,
|
|
__CTA_STATS_GLOBAL_MAX = 3,
|
|
};
|
|
|
|
struct ctnetlink_filter_u32 {
|
|
u32 val;
|
|
u32 mask;
|
|
};
|
|
|
|
struct ctnetlink_filter {
|
|
u8 family;
|
|
u_int32_t orig_flags;
|
|
u_int32_t reply_flags;
|
|
struct nf_conntrack_tuple orig;
|
|
struct nf_conntrack_tuple reply;
|
|
struct nf_conntrack_zone zone;
|
|
struct ctnetlink_filter_u32 mark;
|
|
struct ctnetlink_filter_u32 status;
|
|
};
|
|
|
|
struct ctnetlink_list_dump_ctx {
|
|
struct nf_conn *last;
|
|
unsigned int cpu;
|
|
bool done;
|
|
};
|
|
|
|
struct fib_prop {
|
|
int error;
|
|
u8 scope;
|
|
};
|
|
|
|
struct fib_nh_notifier_info {
|
|
struct fib_notifier_info info;
|
|
struct fib_nh *fib_nh;
|
|
};
|
|
|
|
struct rtvia {
|
|
__kernel_sa_family_t rtvia_family;
|
|
__u8 rtvia_addr[0];
|
|
};
|
|
|
|
struct cipso_v4_map_cache_bkt {
|
|
spinlock_t lock;
|
|
u32 size;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct cipso_v4_map_cache_entry {
|
|
u32 hash;
|
|
unsigned char *key;
|
|
size_t key_len;
|
|
struct netlbl_lsm_cache *lsm_data;
|
|
u32 activity;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct cipso_v4_std_map_tbl;
|
|
|
|
struct cipso_v4_doi {
|
|
u32 doi;
|
|
u32 type;
|
|
union {
|
|
struct cipso_v4_std_map_tbl *std;
|
|
} map;
|
|
u8 tags[5];
|
|
refcount_t refcount;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct cipso_v4_std_map_tbl {
|
|
struct {
|
|
u32 *cipso;
|
|
u32 *local;
|
|
u32 cipso_size;
|
|
u32 local_size;
|
|
} lvl;
|
|
struct {
|
|
u32 *cipso;
|
|
u32 *local;
|
|
u32 cipso_size;
|
|
u32 local_size;
|
|
} cat;
|
|
};
|
|
|
|
struct ioam6_hdr {
|
|
__u8 opt_type;
|
|
__u8 opt_len;
|
|
char: 8;
|
|
__u8 type;
|
|
};
|
|
|
|
enum ieee80211_packet_rx_flags {
|
|
IEEE80211_RX_AMSDU = 8,
|
|
IEEE80211_RX_MALFORMED_ACTION_FRM = 16,
|
|
IEEE80211_RX_DEFERRED_RELEASE = 32,
|
|
};
|
|
|
|
enum ieee80211_rx_flags {
|
|
IEEE80211_RX_CMNTR = 1,
|
|
IEEE80211_RX_BEACON_REPORTED = 2,
|
|
};
|
|
|
|
enum ieee80211_ht_chanwidth_values {
|
|
IEEE80211_HT_CHANWIDTH_20MHZ = 0,
|
|
IEEE80211_HT_CHANWIDTH_ANY = 1,
|
|
};
|
|
|
|
enum ieee80211_vht_actioncode {
|
|
WLAN_VHT_ACTION_COMPRESSED_BF = 0,
|
|
WLAN_VHT_ACTION_GROUPID_MGMT = 1,
|
|
WLAN_VHT_ACTION_OPMODE_NOTIF = 2,
|
|
};
|
|
|
|
enum ieee80211_self_protected_actioncode {
|
|
WLAN_SP_RESERVED = 0,
|
|
WLAN_SP_MESH_PEERING_OPEN = 1,
|
|
WLAN_SP_MESH_PEERING_CONFIRM = 2,
|
|
WLAN_SP_MESH_PEERING_CLOSE = 3,
|
|
WLAN_SP_MGK_INFORM = 4,
|
|
WLAN_SP_MGK_ACK = 5,
|
|
};
|
|
|
|
enum ieee80211_sa_query_action {
|
|
WLAN_ACTION_SA_QUERY_REQUEST = 0,
|
|
WLAN_ACTION_SA_QUERY_RESPONSE = 1,
|
|
};
|
|
|
|
enum ieee80211_radiotap_channel_flags {
|
|
IEEE80211_CHAN_CCK = 32,
|
|
IEEE80211_CHAN_OFDM = 64,
|
|
IEEE80211_CHAN_2GHZ = 128,
|
|
IEEE80211_CHAN_5GHZ = 256,
|
|
IEEE80211_CHAN_DYN = 1024,
|
|
IEEE80211_CHAN_HALF = 16384,
|
|
IEEE80211_CHAN_QUARTER = 32768,
|
|
};
|
|
|
|
enum ieee80211_radiotap_rx_flags {
|
|
IEEE80211_RADIOTAP_F_RX_BADPLCP = 2,
|
|
};
|
|
|
|
enum ieee80211_radiotap_ampdu_flags {
|
|
IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN = 1,
|
|
IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN = 2,
|
|
IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN = 4,
|
|
IEEE80211_RADIOTAP_AMPDU_IS_LAST = 8,
|
|
IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR = 16,
|
|
IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN = 32,
|
|
IEEE80211_RADIOTAP_AMPDU_EOF = 64,
|
|
IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN = 128,
|
|
};
|
|
|
|
enum ieee80211_radiotap_vht_coding {
|
|
IEEE80211_RADIOTAP_CODING_LDPC_USER0 = 1,
|
|
IEEE80211_RADIOTAP_CODING_LDPC_USER1 = 2,
|
|
IEEE80211_RADIOTAP_CODING_LDPC_USER2 = 4,
|
|
IEEE80211_RADIOTAP_CODING_LDPC_USER3 = 8,
|
|
};
|
|
|
|
enum ieee80211_radiotap_timestamp_flags {
|
|
IEEE80211_RADIOTAP_TIMESTAMP_FLAG_64BIT = 0,
|
|
IEEE80211_RADIOTAP_TIMESTAMP_FLAG_32BIT = 1,
|
|
IEEE80211_RADIOTAP_TIMESTAMP_FLAG_ACCURACY = 2,
|
|
};
|
|
|
|
enum nl80211_plink_state {
|
|
NL80211_PLINK_LISTEN = 0,
|
|
NL80211_PLINK_OPN_SNT = 1,
|
|
NL80211_PLINK_OPN_RCVD = 2,
|
|
NL80211_PLINK_CNF_RCVD = 3,
|
|
NL80211_PLINK_ESTAB = 4,
|
|
NL80211_PLINK_HOLDING = 5,
|
|
NL80211_PLINK_BLOCKED = 6,
|
|
NUM_NL80211_PLINK_STATES = 7,
|
|
MAX_NL80211_PLINK_STATES = 6,
|
|
};
|
|
|
|
struct ieee80211_radiotap_he_mu {
|
|
__le16 flags1;
|
|
__le16 flags2;
|
|
u8 ru_ch1[4];
|
|
u8 ru_ch2[4];
|
|
};
|
|
|
|
struct ieee80211_radiotap_lsig {
|
|
__le16 data1;
|
|
__le16 data2;
|
|
};
|
|
|
|
struct ieee80211_vendor_radiotap {
|
|
u32 present;
|
|
u8 align;
|
|
u8 oui[3];
|
|
u8 subns;
|
|
u8 pad;
|
|
u16 len;
|
|
u8 data[0];
|
|
};
|
|
|
|
enum {
|
|
Rworksched = 1,
|
|
Rpending = 2,
|
|
Wworksched = 4,
|
|
Wpending = 8,
|
|
};
|
|
|
|
enum {
|
|
Opt_port = 0,
|
|
Opt_rfdno = 1,
|
|
Opt_wfdno = 2,
|
|
Opt_err___6 = 3,
|
|
Opt_privport = 4,
|
|
};
|
|
|
|
struct p9_conn;
|
|
|
|
struct p9_poll_wait {
|
|
struct p9_conn *conn;
|
|
wait_queue_entry_t wait;
|
|
wait_queue_head_t *wait_addr;
|
|
};
|
|
|
|
struct p9_conn {
|
|
struct list_head mux_list;
|
|
struct p9_client *client;
|
|
int err;
|
|
spinlock_t req_lock;
|
|
struct list_head req_list;
|
|
struct list_head unsent_req_list;
|
|
struct p9_req_t *rreq;
|
|
struct p9_req_t *wreq;
|
|
char tmp_buf[7];
|
|
struct p9_fcall rc;
|
|
int wpos;
|
|
int wsize;
|
|
char *wbuf;
|
|
struct list_head poll_pending_link;
|
|
struct p9_poll_wait poll_wait[2];
|
|
poll_table pt;
|
|
struct work_struct rq;
|
|
struct work_struct wq;
|
|
unsigned long wsched;
|
|
};
|
|
|
|
typedef unsigned short ushort;
|
|
|
|
struct p9_trans_fd {
|
|
struct file *rd;
|
|
struct file *wr;
|
|
struct p9_conn conn;
|
|
};
|
|
|
|
struct p9_fd_opts {
|
|
int rfd;
|
|
int wfd;
|
|
u16 port;
|
|
bool privport;
|
|
};
|
|
|
|
struct pci_extra_dev {
|
|
struct pci_dev *dev[4];
|
|
};
|
|
|
|
struct intel_uncore_init_fun {
|
|
void (*cpu_init)();
|
|
int (*pci_init)();
|
|
void (*mmio_init)();
|
|
bool use_discovery;
|
|
int *uncore_units_ignore;
|
|
};
|
|
|
|
struct _cache_table {
|
|
unsigned char descriptor;
|
|
char cache_type;
|
|
short size;
|
|
};
|
|
|
|
enum cache_type {
|
|
CACHE_TYPE_NOCACHE = 0,
|
|
CACHE_TYPE_INST = 1,
|
|
CACHE_TYPE_DATA = 2,
|
|
CACHE_TYPE_SEPARATE = 3,
|
|
CACHE_TYPE_UNIFIED = 4,
|
|
};
|
|
|
|
enum _cache_type {
|
|
CTYPE_NULL = 0,
|
|
CTYPE_DATA = 1,
|
|
CTYPE_INST = 2,
|
|
CTYPE_UNIFIED = 3,
|
|
};
|
|
|
|
union _cpuid4_leaf_eax {
|
|
struct {
|
|
enum _cache_type type: 5;
|
|
unsigned int level: 3;
|
|
unsigned int is_self_initializing: 1;
|
|
unsigned int is_fully_associative: 1;
|
|
unsigned int reserved: 4;
|
|
unsigned int num_threads_sharing: 12;
|
|
unsigned int num_cores_on_die: 6;
|
|
} split;
|
|
u32 full;
|
|
};
|
|
|
|
union _cpuid4_leaf_ebx {
|
|
struct {
|
|
unsigned int coherency_line_size: 12;
|
|
unsigned int physical_line_partition: 10;
|
|
unsigned int ways_of_associativity: 10;
|
|
} split;
|
|
u32 full;
|
|
};
|
|
|
|
union _cpuid4_leaf_ecx {
|
|
struct {
|
|
unsigned int number_of_sets: 32;
|
|
} split;
|
|
u32 full;
|
|
};
|
|
|
|
union l1_cache {
|
|
struct {
|
|
unsigned int line_size: 8;
|
|
unsigned int lines_per_tag: 8;
|
|
unsigned int assoc: 8;
|
|
unsigned int size_in_kb: 8;
|
|
};
|
|
unsigned int val;
|
|
};
|
|
|
|
union l2_cache {
|
|
struct {
|
|
unsigned int line_size: 8;
|
|
unsigned int lines_per_tag: 4;
|
|
unsigned int assoc: 4;
|
|
unsigned int size_in_kb: 16;
|
|
};
|
|
unsigned int val;
|
|
};
|
|
|
|
union l3_cache {
|
|
struct {
|
|
unsigned int line_size: 8;
|
|
unsigned int lines_per_tag: 4;
|
|
unsigned int assoc: 4;
|
|
unsigned int res: 2;
|
|
unsigned int size_encoded: 14;
|
|
};
|
|
unsigned int val;
|
|
};
|
|
|
|
struct cacheinfo;
|
|
|
|
struct cpu_cacheinfo {
|
|
struct cacheinfo *info_list;
|
|
unsigned int num_levels;
|
|
unsigned int num_leaves;
|
|
bool cpu_map_populated;
|
|
};
|
|
|
|
struct cacheinfo {
|
|
unsigned int id;
|
|
enum cache_type type;
|
|
unsigned int level;
|
|
unsigned int coherency_line_size;
|
|
unsigned int number_of_sets;
|
|
unsigned int ways_of_associativity;
|
|
unsigned int physical_line_partition;
|
|
unsigned int size;
|
|
cpumask_t shared_cpu_map;
|
|
unsigned int attributes;
|
|
void *fw_token;
|
|
bool disable_sysfs;
|
|
void *priv;
|
|
};
|
|
|
|
struct _cpuid4_info_regs {
|
|
union _cpuid4_leaf_eax eax;
|
|
union _cpuid4_leaf_ebx ebx;
|
|
union _cpuid4_leaf_ecx ecx;
|
|
unsigned int id;
|
|
unsigned long size;
|
|
struct amd_northbridge *nb;
|
|
};
|
|
|
|
typedef __s64 Elf64_Sxword;
|
|
|
|
struct elf64_rela {
|
|
Elf64_Addr r_offset;
|
|
Elf64_Xword r_info;
|
|
Elf64_Sxword r_addend;
|
|
};
|
|
|
|
typedef struct elf64_rela Elf64_Rela;
|
|
|
|
struct callthunk_sites {
|
|
s32 *call_start;
|
|
s32 *call_end;
|
|
struct paravirt_patch_site *pv_start;
|
|
struct paravirt_patch_site *pv_end;
|
|
};
|
|
|
|
struct va_alignment {
|
|
int flags;
|
|
unsigned long mask;
|
|
unsigned long bits;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int));
|
|
|
|
typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *);
|
|
|
|
typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int);
|
|
|
|
enum cpuhp_smt_control {
|
|
CPU_SMT_ENABLED = 0,
|
|
CPU_SMT_DISABLED = 1,
|
|
CPU_SMT_FORCE_DISABLED = 2,
|
|
CPU_SMT_NOT_SUPPORTED = 3,
|
|
CPU_SMT_NOT_IMPLEMENTED = 4,
|
|
};
|
|
|
|
struct cpuhp_cpu_state {
|
|
enum cpuhp_state state;
|
|
enum cpuhp_state target;
|
|
enum cpuhp_state fail;
|
|
struct task_struct *thread;
|
|
bool should_run;
|
|
bool rollback;
|
|
bool single;
|
|
bool bringup;
|
|
struct hlist_node *node;
|
|
struct hlist_node *last;
|
|
enum cpuhp_state cb_state;
|
|
int result;
|
|
struct completion done_up;
|
|
struct completion done_down;
|
|
};
|
|
|
|
struct cpuhp_step {
|
|
const char *name;
|
|
union {
|
|
int (*single)(unsigned int);
|
|
int (*multi)(unsigned int, struct hlist_node *);
|
|
} startup;
|
|
union {
|
|
int (*single)(unsigned int);
|
|
int (*multi)(unsigned int, struct hlist_node *);
|
|
} teardown;
|
|
struct hlist_head list;
|
|
bool cant_stop;
|
|
bool multi_instance;
|
|
};
|
|
|
|
enum cpu_mitigations {
|
|
CPU_MITIGATIONS_OFF = 0,
|
|
CPU_MITIGATIONS_AUTO = 1,
|
|
CPU_MITIGATIONS_AUTO_NOSMT = 2,
|
|
};
|
|
|
|
struct trace_event_raw_cpuhp_enter {
|
|
struct trace_entry ent;
|
|
unsigned int cpu;
|
|
int target;
|
|
int idx;
|
|
void *fun;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cpuhp_multi_enter {
|
|
struct trace_entry ent;
|
|
unsigned int cpu;
|
|
int target;
|
|
int idx;
|
|
void *fun;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cpuhp_exit {
|
|
struct trace_entry ent;
|
|
unsigned int cpu;
|
|
int state;
|
|
int idx;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_cpuhp_enter {};
|
|
|
|
struct trace_event_data_offsets_cpuhp_multi_enter {};
|
|
|
|
struct trace_event_data_offsets_cpuhp_exit {};
|
|
|
|
enum {
|
|
FLAGS_FILL_FULL = 268435456,
|
|
FLAGS_FILL_START = 536870912,
|
|
FLAGS_FILL_END = 805306368,
|
|
};
|
|
|
|
struct fgraph_cpu_data {
|
|
pid_t last_pid;
|
|
int depth;
|
|
int depth_irq;
|
|
int ignore;
|
|
unsigned long enter_funcs[50];
|
|
};
|
|
|
|
struct ftrace_graph_ent_entry {
|
|
struct trace_entry ent;
|
|
struct ftrace_graph_ent graph_ent;
|
|
} __attribute__((packed));
|
|
|
|
struct ftrace_graph_ret_entry {
|
|
struct trace_entry ent;
|
|
struct ftrace_graph_ret ret;
|
|
};
|
|
|
|
struct fgraph_data {
|
|
struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data;
|
|
struct ftrace_graph_ent_entry ent;
|
|
struct ftrace_graph_ret_entry ret;
|
|
int failed;
|
|
int cpu;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct prog_poke_elem {
|
|
struct list_head list;
|
|
struct bpf_prog_aux *aux;
|
|
};
|
|
|
|
struct bpf_event_entry {
|
|
struct perf_event *event;
|
|
struct file *perf_file;
|
|
struct file *map_file;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct bpf_iter__bpf_map_elem {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct bpf_map *map;
|
|
};
|
|
union {
|
|
void *key;
|
|
};
|
|
union {
|
|
void *value;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_array_map_info {
|
|
struct bpf_map *map;
|
|
void *percpu_value_buf;
|
|
u32 index;
|
|
};
|
|
|
|
enum jump_label_type {
|
|
JUMP_LABEL_NOP = 0,
|
|
JUMP_LABEL_JMP = 1,
|
|
};
|
|
|
|
struct static_key_deferred {
|
|
struct static_key key;
|
|
unsigned long timeout;
|
|
struct delayed_work work;
|
|
};
|
|
|
|
struct static_key_mod {
|
|
struct static_key_mod *next;
|
|
struct jump_entry *entries;
|
|
struct module *mod;
|
|
};
|
|
|
|
typedef void compound_page_dtor(struct page *);
|
|
|
|
enum meminit_context {
|
|
MEMINIT_EARLY = 0,
|
|
MEMINIT_HOTPLUG = 1,
|
|
};
|
|
|
|
typedef int fpi_t;
|
|
|
|
struct alloc_context {
|
|
struct zonelist *zonelist;
|
|
nodemask_t *nodemask;
|
|
struct zoneref *preferred_zoneref;
|
|
int migratetype;
|
|
enum zone_type highest_zoneidx;
|
|
bool spread_dirty_pages;
|
|
};
|
|
|
|
struct page_frag_cache {
|
|
void *va;
|
|
__u16 offset;
|
|
__u16 size;
|
|
unsigned int pagecnt_bias;
|
|
bool pfmemalloc;
|
|
};
|
|
|
|
struct userfaultfd_ctx {
|
|
wait_queue_head_t fault_pending_wqh;
|
|
wait_queue_head_t fault_wqh;
|
|
wait_queue_head_t fd_wqh;
|
|
wait_queue_head_t event_wqh;
|
|
seqcount_spinlock_t refile_seq;
|
|
refcount_t refcount;
|
|
unsigned int flags;
|
|
unsigned int features;
|
|
bool released;
|
|
atomic_t mmap_changing;
|
|
struct mm_struct *mm;
|
|
};
|
|
|
|
struct userfaultfd_fork_ctx {
|
|
struct userfaultfd_ctx *orig;
|
|
struct userfaultfd_ctx *new;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct userfaultfd_unmap_ctx {
|
|
struct userfaultfd_ctx *ctx;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct uffd_msg {
|
|
__u8 event;
|
|
__u8 reserved1;
|
|
__u16 reserved2;
|
|
__u32 reserved3;
|
|
union {
|
|
struct {
|
|
__u64 flags;
|
|
__u64 address;
|
|
union {
|
|
__u32 ptid;
|
|
} feat;
|
|
} pagefault;
|
|
struct {
|
|
__u32 ufd;
|
|
} fork;
|
|
struct {
|
|
__u64 from;
|
|
__u64 to;
|
|
__u64 len;
|
|
} remap;
|
|
struct {
|
|
__u64 start;
|
|
__u64 end;
|
|
} remove;
|
|
struct {
|
|
__u64 reserved1;
|
|
__u64 reserved2;
|
|
__u64 reserved3;
|
|
} reserved;
|
|
} arg;
|
|
};
|
|
|
|
struct userfaultfd_wait_queue {
|
|
struct uffd_msg msg;
|
|
wait_queue_entry_t wq;
|
|
struct userfaultfd_ctx *ctx;
|
|
bool waken;
|
|
};
|
|
|
|
struct uffdio_range {
|
|
__u64 start;
|
|
__u64 len;
|
|
};
|
|
|
|
struct uffdio_register {
|
|
struct uffdio_range range;
|
|
__u64 mode;
|
|
__u64 ioctls;
|
|
};
|
|
|
|
struct uffdio_copy {
|
|
__u64 dst;
|
|
__u64 src;
|
|
__u64 len;
|
|
__u64 mode;
|
|
__s64 copy;
|
|
};
|
|
|
|
struct uffdio_zeropage {
|
|
struct uffdio_range range;
|
|
__u64 mode;
|
|
__s64 zeropage;
|
|
};
|
|
|
|
struct uffdio_writeprotect {
|
|
struct uffdio_range range;
|
|
__u64 mode;
|
|
};
|
|
|
|
struct uffdio_continue {
|
|
struct uffdio_range range;
|
|
__u64 mode;
|
|
__s64 mapped;
|
|
};
|
|
|
|
struct uffdio_api {
|
|
__u64 api;
|
|
__u64 features;
|
|
__u64 ioctls;
|
|
};
|
|
|
|
struct userfaultfd_wake_range {
|
|
unsigned long start;
|
|
unsigned long len;
|
|
};
|
|
|
|
struct fat_cache {
|
|
struct list_head cache_list;
|
|
int nr_contig;
|
|
int fcluster;
|
|
int dcluster;
|
|
};
|
|
|
|
struct fat_cache_id {
|
|
unsigned int id;
|
|
int nr_contig;
|
|
int fcluster;
|
|
int dcluster;
|
|
};
|
|
|
|
struct nfs_subversion {
|
|
struct module *owner;
|
|
struct file_system_type *nfs_fs;
|
|
const struct rpc_version *rpc_vers;
|
|
const struct nfs_rpc_ops *rpc_ops;
|
|
const struct super_operations *sops;
|
|
const struct xattr_handler **xattr;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct nfs_clone_mount {
|
|
struct super_block *sb;
|
|
struct dentry *dentry;
|
|
struct nfs_fattr *fattr;
|
|
unsigned int inherited_bsize;
|
|
};
|
|
|
|
struct nfs_fs_context {
|
|
bool internal;
|
|
bool skip_reconfig_option_check;
|
|
bool need_mount;
|
|
bool sloppy;
|
|
unsigned int flags;
|
|
unsigned int rsize;
|
|
unsigned int wsize;
|
|
unsigned int timeo;
|
|
unsigned int retrans;
|
|
unsigned int acregmin;
|
|
unsigned int acregmax;
|
|
unsigned int acdirmin;
|
|
unsigned int acdirmax;
|
|
unsigned int namlen;
|
|
unsigned int options;
|
|
unsigned int bsize;
|
|
struct nfs_auth_info auth_info;
|
|
rpc_authflavor_t selected_flavor;
|
|
char *client_address;
|
|
unsigned int version;
|
|
unsigned int minorversion;
|
|
char *fscache_uniq;
|
|
unsigned short protofamily;
|
|
unsigned short mountfamily;
|
|
bool has_sec_mnt_opts;
|
|
struct {
|
|
union {
|
|
struct sockaddr address;
|
|
struct __kernel_sockaddr_storage _address;
|
|
};
|
|
size_t addrlen;
|
|
char *hostname;
|
|
u32 version;
|
|
int port;
|
|
unsigned short protocol;
|
|
} mount_server;
|
|
struct {
|
|
union {
|
|
struct sockaddr address;
|
|
struct __kernel_sockaddr_storage _address;
|
|
};
|
|
size_t addrlen;
|
|
char *hostname;
|
|
char *export_path;
|
|
int port;
|
|
unsigned short protocol;
|
|
unsigned short nconnect;
|
|
unsigned short max_connect;
|
|
unsigned short export_path_len;
|
|
} nfs_server;
|
|
struct nfs_fh *mntfh;
|
|
struct nfs_server *server;
|
|
struct nfs_subversion *nfs_mod;
|
|
struct nfs_clone_mount clone_data;
|
|
};
|
|
|
|
enum header_fields {
|
|
HDR_PCR = 0,
|
|
HDR_DIGEST = 1,
|
|
HDR_TEMPLATE_NAME = 2,
|
|
HDR_TEMPLATE_DATA = 3,
|
|
HDR__LAST = 4,
|
|
};
|
|
|
|
struct ima_kexec_hdr {
|
|
u16 version;
|
|
u16 _reserved0;
|
|
u32 _reserved1;
|
|
u64 buffer_size;
|
|
u64 count;
|
|
};
|
|
|
|
struct scomp_scratch {
|
|
spinlock_t lock;
|
|
void *src;
|
|
void *dst;
|
|
};
|
|
|
|
struct acomp_req;
|
|
|
|
struct crypto_acomp {
|
|
int (*compress)(struct acomp_req *);
|
|
int (*decompress)(struct acomp_req *);
|
|
void (*dst_free)(struct scatterlist *);
|
|
unsigned int reqsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct acomp_req {
|
|
struct crypto_async_request base;
|
|
struct scatterlist *src;
|
|
struct scatterlist *dst;
|
|
unsigned int slen;
|
|
unsigned int dlen;
|
|
u32 flags;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct crypto_scomp;
|
|
|
|
struct scomp_alg {
|
|
void * (*alloc_ctx)(struct crypto_scomp *);
|
|
void (*free_ctx)(struct crypto_scomp *, void *);
|
|
int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
|
|
int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct crypto_scomp {
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct crypto_report_comp {
|
|
char type[64];
|
|
};
|
|
|
|
struct blk_mq_hw_ctx_sysfs_entry {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct blk_mq_hw_ctx *, char *);
|
|
};
|
|
|
|
struct bd_holder_disk {
|
|
struct list_head list;
|
|
struct kobject *holder_dir;
|
|
int refcnt;
|
|
};
|
|
|
|
enum {
|
|
IO_SQ_THREAD_SHOULD_STOP = 0,
|
|
IO_SQ_THREAD_SHOULD_PARK = 1,
|
|
};
|
|
|
|
struct io_sqring_offsets {
|
|
__u32 head;
|
|
__u32 tail;
|
|
__u32 ring_mask;
|
|
__u32 ring_entries;
|
|
__u32 flags;
|
|
__u32 dropped;
|
|
__u32 array;
|
|
__u32 resv1;
|
|
__u64 resv2;
|
|
};
|
|
|
|
struct io_cqring_offsets {
|
|
__u32 head;
|
|
__u32 tail;
|
|
__u32 ring_mask;
|
|
__u32 ring_entries;
|
|
__u32 overflow;
|
|
__u32 cqes;
|
|
__u32 flags;
|
|
__u32 resv1;
|
|
__u64 resv2;
|
|
};
|
|
|
|
struct io_uring_params {
|
|
__u32 sq_entries;
|
|
__u32 cq_entries;
|
|
__u32 flags;
|
|
__u32 sq_thread_cpu;
|
|
__u32 sq_thread_idle;
|
|
__u32 features;
|
|
__u32 wq_fd;
|
|
__u32 resv[3];
|
|
struct io_sqring_offsets sq_off;
|
|
struct io_cqring_offsets cq_off;
|
|
};
|
|
|
|
typedef struct {
|
|
U32 tableTime;
|
|
U32 decode256Time;
|
|
} algo_time_t;
|
|
|
|
typedef struct {
|
|
BYTE nbBits;
|
|
BYTE byte;
|
|
} HUF_DEltX1;
|
|
|
|
typedef struct {
|
|
U32 rankVal[13];
|
|
U32 rankStart[13];
|
|
U32 statsWksp[218];
|
|
BYTE symbols[256];
|
|
BYTE huffWeight[256];
|
|
} HUF_ReadDTableX1_Workspace;
|
|
|
|
typedef struct {
|
|
U16 sequence;
|
|
BYTE nbBits;
|
|
BYTE length;
|
|
} HUF_DEltX2;
|
|
|
|
typedef U32 rankValCol_t[13];
|
|
|
|
typedef struct {
|
|
BYTE symbol;
|
|
} sortedSymbol_t;
|
|
|
|
typedef struct {
|
|
rankValCol_t rankVal[12];
|
|
U32 rankStats[13];
|
|
U32 rankStart0[15];
|
|
sortedSymbol_t sortedSymbol[256];
|
|
BYTE weightList[256];
|
|
U32 calleeWksp[218];
|
|
} HUF_ReadDTableX2_Workspace;
|
|
|
|
typedef struct {
|
|
BYTE maxTableLog;
|
|
BYTE tableType;
|
|
BYTE tableLog;
|
|
BYTE reserved;
|
|
} DTableDesc;
|
|
|
|
typedef U32 HUF_DTable;
|
|
|
|
struct acpi_device_properties {
|
|
const guid_t *guid;
|
|
union acpi_object *properties;
|
|
struct list_head list;
|
|
void **bufs;
|
|
};
|
|
|
|
struct acpi_fadt_info {
|
|
const char *name;
|
|
u16 address64;
|
|
u16 address32;
|
|
u16 length;
|
|
u8 default_length;
|
|
u8 flags;
|
|
};
|
|
|
|
struct acpi_fadt_pm_info {
|
|
struct acpi_generic_address *target;
|
|
u16 source;
|
|
u8 register_num;
|
|
};
|
|
|
|
struct acpi_table_cdat {
|
|
u32 length;
|
|
u8 revision;
|
|
u8 checksum;
|
|
u8 reserved[6];
|
|
u32 sequence;
|
|
};
|
|
|
|
struct acpi_comment_node {
|
|
char *comment;
|
|
struct acpi_comment_node *next;
|
|
};
|
|
|
|
struct acpi_predefined_names {
|
|
const char *name;
|
|
u8 type;
|
|
char *val;
|
|
};
|
|
|
|
struct acpi_fixed_event_info {
|
|
u8 status_register_id;
|
|
u8 enable_register_id;
|
|
u16 status_bit_mask;
|
|
u16 enable_bit_mask;
|
|
};
|
|
|
|
struct acpi_table_fadt {
|
|
struct acpi_table_header header;
|
|
u32 facs;
|
|
u32 dsdt;
|
|
u8 model;
|
|
u8 preferred_profile;
|
|
u16 sci_interrupt;
|
|
u32 smi_command;
|
|
u8 acpi_enable;
|
|
u8 acpi_disable;
|
|
u8 s4_bios_request;
|
|
u8 pstate_control;
|
|
u32 pm1a_event_block;
|
|
u32 pm1b_event_block;
|
|
u32 pm1a_control_block;
|
|
u32 pm1b_control_block;
|
|
u32 pm2_control_block;
|
|
u32 pm_timer_block;
|
|
u32 gpe0_block;
|
|
u32 gpe1_block;
|
|
u8 pm1_event_length;
|
|
u8 pm1_control_length;
|
|
u8 pm2_control_length;
|
|
u8 pm_timer_length;
|
|
u8 gpe0_block_length;
|
|
u8 gpe1_block_length;
|
|
u8 gpe1_base;
|
|
u8 cst_control;
|
|
u16 c2_latency;
|
|
u16 c3_latency;
|
|
u16 flush_size;
|
|
u16 flush_stride;
|
|
u8 duty_offset;
|
|
u8 duty_width;
|
|
u8 day_alarm;
|
|
u8 month_alarm;
|
|
u8 century;
|
|
u16 boot_flags;
|
|
u8 reserved;
|
|
u32 flags;
|
|
struct acpi_generic_address reset_register;
|
|
u8 reset_value;
|
|
u16 arm_boot_flags;
|
|
u8 minor_revision;
|
|
u64 Xfacs;
|
|
u64 Xdsdt;
|
|
struct acpi_generic_address xpm1a_event_block;
|
|
struct acpi_generic_address xpm1b_event_block;
|
|
struct acpi_generic_address xpm1a_control_block;
|
|
struct acpi_generic_address xpm1b_control_block;
|
|
struct acpi_generic_address xpm2_control_block;
|
|
struct acpi_generic_address xpm_timer_block;
|
|
struct acpi_generic_address xgpe0_block;
|
|
struct acpi_generic_address xgpe1_block;
|
|
struct acpi_generic_address sleep_control;
|
|
struct acpi_generic_address sleep_status;
|
|
u64 hypervisor_id;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_table_list {
|
|
struct acpi_table_desc *tables;
|
|
u32 current_table_count;
|
|
u32 max_table_count;
|
|
u8 flags;
|
|
};
|
|
|
|
struct acpi_mutex_info {
|
|
void *mutex;
|
|
u32 use_count;
|
|
u64 thread_id;
|
|
};
|
|
|
|
struct acpi_rw_lock {
|
|
void *writer_mutex;
|
|
void *reader_mutex;
|
|
u32 num_readers;
|
|
};
|
|
|
|
typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *);
|
|
|
|
typedef acpi_status (*acpi_init_handler)(acpi_handle, u32);
|
|
|
|
struct acpi_fixed_event_handler {
|
|
acpi_event_handler handler;
|
|
void *context;
|
|
};
|
|
|
|
struct vt_event {
|
|
unsigned int event;
|
|
unsigned int oldev;
|
|
unsigned int newev;
|
|
unsigned int pad[4];
|
|
};
|
|
|
|
struct vt_event_wait {
|
|
struct list_head list;
|
|
struct vt_event event;
|
|
int done;
|
|
};
|
|
|
|
struct vc {
|
|
struct vc_data *d;
|
|
struct work_struct SAK_work;
|
|
};
|
|
|
|
struct compat_console_font_op {
|
|
compat_uint_t op;
|
|
compat_uint_t flags;
|
|
compat_uint_t width;
|
|
compat_uint_t height;
|
|
compat_uint_t charcount;
|
|
compat_caddr_t data;
|
|
};
|
|
|
|
struct kbd_repeat {
|
|
int delay;
|
|
int period;
|
|
};
|
|
|
|
struct console_font_op {
|
|
unsigned int op;
|
|
unsigned int flags;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned int charcount;
|
|
unsigned char __attribute__((btf_type_tag("user"))) *data;
|
|
};
|
|
|
|
struct unipair;
|
|
|
|
struct unimapdesc {
|
|
unsigned short entry_ct;
|
|
struct unipair __attribute__((btf_type_tag("user"))) *entries;
|
|
};
|
|
|
|
struct unipair {
|
|
unsigned short unicode;
|
|
unsigned short fontpos;
|
|
};
|
|
|
|
struct kbkeycode {
|
|
unsigned int scancode;
|
|
unsigned int keycode;
|
|
};
|
|
|
|
struct kbsentry {
|
|
unsigned char kb_func;
|
|
unsigned char kb_string[512];
|
|
};
|
|
|
|
struct kbentry {
|
|
unsigned char kb_table;
|
|
unsigned char kb_index;
|
|
unsigned short kb_value;
|
|
};
|
|
|
|
struct compat_unimapdesc {
|
|
unsigned short entry_ct;
|
|
compat_caddr_t entries;
|
|
};
|
|
|
|
struct vt_stat {
|
|
unsigned short v_active;
|
|
unsigned short v_signal;
|
|
unsigned short v_state;
|
|
};
|
|
|
|
struct vt_sizes {
|
|
unsigned short v_rows;
|
|
unsigned short v_cols;
|
|
unsigned short v_scrollsize;
|
|
};
|
|
|
|
struct vt_setactivate {
|
|
unsigned int console;
|
|
struct vt_mode mode;
|
|
};
|
|
|
|
struct vt_consize {
|
|
unsigned short v_rows;
|
|
unsigned short v_cols;
|
|
unsigned short v_vlin;
|
|
unsigned short v_clin;
|
|
unsigned short v_vcol;
|
|
unsigned short v_ccol;
|
|
};
|
|
|
|
struct drm_print_iterator {
|
|
void *data;
|
|
ssize_t start;
|
|
ssize_t remain;
|
|
ssize_t offset;
|
|
};
|
|
|
|
struct debugfs_reg32;
|
|
|
|
struct debugfs_regset32 {
|
|
const struct debugfs_reg32 *regs;
|
|
int nregs;
|
|
void *base;
|
|
struct device *dev;
|
|
};
|
|
|
|
struct debugfs_reg32 {
|
|
char *name;
|
|
unsigned long offset;
|
|
};
|
|
|
|
struct drm_encoder_slave;
|
|
|
|
struct drm_i2c_encoder_driver {
|
|
struct i2c_driver i2c_driver;
|
|
int (*encoder_init)(struct i2c_client *, struct drm_device *, struct drm_encoder_slave *);
|
|
};
|
|
|
|
struct drm_encoder_slave_funcs;
|
|
|
|
struct drm_encoder_slave {
|
|
struct drm_encoder base;
|
|
const struct drm_encoder_slave_funcs *slave_funcs;
|
|
void *slave_priv;
|
|
void *bus_priv;
|
|
};
|
|
|
|
struct drm_encoder_slave_funcs {
|
|
void (*set_config)(struct drm_encoder *, void *);
|
|
void (*destroy)(struct drm_encoder *);
|
|
void (*dpms)(struct drm_encoder *, int);
|
|
void (*save)(struct drm_encoder *);
|
|
void (*restore)(struct drm_encoder *);
|
|
bool (*mode_fixup)(struct drm_encoder *, const struct drm_display_mode *, struct drm_display_mode *);
|
|
int (*mode_valid)(struct drm_encoder *, struct drm_display_mode *);
|
|
void (*mode_set)(struct drm_encoder *, struct drm_display_mode *, struct drm_display_mode *);
|
|
enum drm_connector_status (*detect)(struct drm_encoder *, struct drm_connector *);
|
|
int (*get_modes)(struct drm_encoder *, struct drm_connector *);
|
|
int (*create_resources)(struct drm_encoder *, struct drm_connector *);
|
|
int (*set_property)(struct drm_encoder *, struct drm_connector *, struct drm_property *, uint64_t);
|
|
};
|
|
|
|
enum {
|
|
CLEAR_RESIDUALS = 0,
|
|
};
|
|
|
|
struct clflush {
|
|
struct dma_fence_work base;
|
|
struct drm_i915_gem_object *obj;
|
|
};
|
|
|
|
typedef void (*btf_trace_i915_gem_object_create)(void *, struct drm_i915_gem_object *);
|
|
|
|
typedef void (*btf_trace_i915_gem_shrink)(void *, struct drm_i915_private___3 *, unsigned long, unsigned int);
|
|
|
|
typedef void (*btf_trace_i915_vma_bind)(void *, struct i915_vma *, unsigned int);
|
|
|
|
typedef void (*btf_trace_i915_vma_unbind)(void *, struct i915_vma *);
|
|
|
|
typedef void (*btf_trace_i915_gem_object_pwrite)(void *, struct drm_i915_gem_object *, u64, u64);
|
|
|
|
typedef void (*btf_trace_i915_gem_object_pread)(void *, struct drm_i915_gem_object *, u64, u64);
|
|
|
|
typedef void (*btf_trace_i915_gem_object_fault)(void *, struct drm_i915_gem_object *, u64, bool, bool);
|
|
|
|
typedef void (*btf_trace_i915_gem_object_clflush)(void *, struct drm_i915_gem_object *);
|
|
|
|
typedef void (*btf_trace_i915_gem_object_destroy)(void *, struct drm_i915_gem_object *);
|
|
|
|
typedef void (*btf_trace_i915_gem_evict)(void *, struct i915_address_space *, u64, u64, unsigned int);
|
|
|
|
typedef void (*btf_trace_i915_gem_evict_node)(void *, struct i915_address_space *, struct drm_mm_node *, unsigned int);
|
|
|
|
typedef void (*btf_trace_i915_gem_evict_vm)(void *, struct i915_address_space *);
|
|
|
|
typedef void (*btf_trace_i915_request_queue)(void *, struct i915_request *, u32);
|
|
|
|
typedef void (*btf_trace_i915_request_add)(void *, struct i915_request *);
|
|
|
|
typedef void (*btf_trace_i915_request_retire)(void *, struct i915_request *);
|
|
|
|
typedef void (*btf_trace_i915_request_wait_begin)(void *, struct i915_request *, unsigned int);
|
|
|
|
typedef void (*btf_trace_i915_request_wait_end)(void *, struct i915_request *);
|
|
|
|
typedef void (*btf_trace_i915_reg_rw)(void *, bool, i915_reg_t, u64, int, bool);
|
|
|
|
typedef void (*btf_trace_i915_ppgtt_create)(void *, struct i915_address_space *);
|
|
|
|
typedef void (*btf_trace_i915_ppgtt_release)(void *, struct i915_address_space *);
|
|
|
|
typedef void (*btf_trace_i915_context_create)(void *, struct i915_gem_context *);
|
|
|
|
typedef void (*btf_trace_i915_context_free)(void *, struct i915_gem_context *);
|
|
|
|
struct trace_event_raw_i915_gem_object_create {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
u64 size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_shrink {
|
|
struct trace_entry ent;
|
|
int dev;
|
|
unsigned long target;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_vma_bind {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
struct i915_address_space *vm;
|
|
u64 offset;
|
|
u64 size;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_vma_unbind {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
struct i915_address_space *vm;
|
|
u64 offset;
|
|
u64 size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_object_pwrite {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
u64 offset;
|
|
u64 len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_object_pread {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
u64 offset;
|
|
u64 len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_object_fault {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
u64 index;
|
|
bool gtt;
|
|
bool write;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_object {
|
|
struct trace_entry ent;
|
|
struct drm_i915_gem_object *obj;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_evict {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
struct i915_address_space *vm;
|
|
u64 size;
|
|
u64 align;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_evict_node {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
struct i915_address_space *vm;
|
|
u64 start;
|
|
u64 size;
|
|
unsigned long color;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_gem_evict_vm {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
struct i915_address_space *vm;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_request_queue {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
u64 ctx;
|
|
u16 class;
|
|
u16 instance;
|
|
u32 seqno;
|
|
u32 flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_request {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
u64 ctx;
|
|
u16 class;
|
|
u16 instance;
|
|
u32 seqno;
|
|
u32 tail;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_request_wait_begin {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
u64 ctx;
|
|
u16 class;
|
|
u16 instance;
|
|
u32 seqno;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_reg_rw {
|
|
struct trace_entry ent;
|
|
u64 val;
|
|
u32 reg;
|
|
u16 write;
|
|
u16 len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_ppgtt {
|
|
struct trace_entry ent;
|
|
struct i915_address_space *vm;
|
|
u32 dev;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_i915_context {
|
|
struct trace_entry ent;
|
|
u32 dev;
|
|
struct i915_gem_context *ctx;
|
|
struct i915_address_space *vm;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_i915_gem_object_create {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_shrink {};
|
|
|
|
struct trace_event_data_offsets_i915_vma_bind {};
|
|
|
|
struct trace_event_data_offsets_i915_vma_unbind {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_object_pwrite {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_object_pread {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_object_fault {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_object {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_evict {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_evict_node {};
|
|
|
|
struct trace_event_data_offsets_i915_gem_evict_vm {};
|
|
|
|
struct trace_event_data_offsets_i915_request_queue {};
|
|
|
|
struct trace_event_data_offsets_i915_request {};
|
|
|
|
struct trace_event_data_offsets_i915_request_wait_begin {};
|
|
|
|
struct trace_event_data_offsets_i915_reg_rw {};
|
|
|
|
struct trace_event_data_offsets_i915_ppgtt {};
|
|
|
|
struct trace_event_data_offsets_i915_context {};
|
|
|
|
enum hdcp_port_type {
|
|
HDCP_PORT_TYPE_INVALID = 0,
|
|
HDCP_PORT_TYPE_INTEGRATED = 1,
|
|
HDCP_PORT_TYPE_LSPCON = 2,
|
|
HDCP_PORT_TYPE_CPDP = 3,
|
|
};
|
|
|
|
enum check_link_response {
|
|
HDCP_LINK_PROTECTED = 0,
|
|
HDCP_TOPOLOGY_CHANGE = 1,
|
|
HDCP_LINK_INTEGRITY_FAILURE = 2,
|
|
HDCP_REAUTH_REQUEST = 3,
|
|
};
|
|
|
|
struct hdcp2_rep_stream_manage {
|
|
u8 msg_id;
|
|
u8 seq_num_m[3];
|
|
__be16 k;
|
|
struct hdcp2_streamid_type streams[4];
|
|
};
|
|
|
|
struct intel_engine_capture_vma {
|
|
struct intel_engine_capture_vma *next;
|
|
struct i915_vma_resource *vma_res;
|
|
char name[16];
|
|
bool lockdep_cookie;
|
|
};
|
|
|
|
struct i915_vma_compress {
|
|
struct pagevec pool;
|
|
struct z_stream_s zstream;
|
|
void *tmp;
|
|
};
|
|
|
|
struct internal_state {
|
|
int dummy;
|
|
};
|
|
|
|
enum {
|
|
Lo_unbound = 0,
|
|
Lo_bound = 1,
|
|
Lo_rundown = 2,
|
|
Lo_deleting = 3,
|
|
};
|
|
|
|
enum {
|
|
LO_FLAGS_READ_ONLY = 1,
|
|
LO_FLAGS_AUTOCLEAR = 4,
|
|
LO_FLAGS_PARTSCAN = 8,
|
|
LO_FLAGS_DIRECT_IO = 16,
|
|
};
|
|
|
|
struct loop_device {
|
|
int lo_number;
|
|
loff_t lo_offset;
|
|
loff_t lo_sizelimit;
|
|
int lo_flags;
|
|
char lo_file_name[64];
|
|
struct file *lo_backing_file;
|
|
struct block_device *lo_device;
|
|
gfp_t old_gfp_mask;
|
|
spinlock_t lo_lock;
|
|
int lo_state;
|
|
spinlock_t lo_work_lock;
|
|
struct workqueue_struct *workqueue;
|
|
struct work_struct rootcg_work;
|
|
struct list_head rootcg_cmd_list;
|
|
struct list_head idle_worker_list;
|
|
struct rb_root worker_tree;
|
|
struct timer_list timer;
|
|
bool use_dio;
|
|
bool sysfs_inited;
|
|
struct request_queue *lo_queue;
|
|
struct blk_mq_tag_set tag_set;
|
|
struct gendisk *lo_disk;
|
|
struct mutex lo_mutex;
|
|
bool idr_visible;
|
|
};
|
|
|
|
struct loop_worker {
|
|
struct rb_node rb_node;
|
|
struct work_struct work;
|
|
struct list_head cmd_list;
|
|
struct list_head idle_list;
|
|
struct loop_device *lo;
|
|
struct cgroup_subsys_state *blkcg_css;
|
|
unsigned long last_ran_at;
|
|
};
|
|
|
|
struct loop_cmd {
|
|
struct list_head list_entry;
|
|
bool use_aio;
|
|
atomic_t ref;
|
|
long ret;
|
|
struct kiocb iocb;
|
|
struct bio_vec *bvec;
|
|
struct cgroup_subsys_state *blkcg_css;
|
|
struct cgroup_subsys_state *memcg_css;
|
|
};
|
|
|
|
typedef u16 compat_dev_t;
|
|
|
|
struct compat_loop_info {
|
|
compat_int_t lo_number;
|
|
compat_dev_t lo_device;
|
|
compat_ulong_t lo_inode;
|
|
compat_dev_t lo_rdevice;
|
|
compat_int_t lo_offset;
|
|
compat_int_t lo_encrypt_type;
|
|
compat_int_t lo_encrypt_key_size;
|
|
compat_int_t lo_flags;
|
|
char lo_name[64];
|
|
unsigned char lo_encrypt_key[32];
|
|
compat_ulong_t lo_init[2];
|
|
char reserved[4];
|
|
};
|
|
|
|
typedef __kernel_rwf_t rwf_t;
|
|
|
|
struct loop_info64 {
|
|
__u64 lo_device;
|
|
__u64 lo_inode;
|
|
__u64 lo_rdevice;
|
|
__u64 lo_offset;
|
|
__u64 lo_sizelimit;
|
|
__u32 lo_number;
|
|
__u32 lo_encrypt_type;
|
|
__u32 lo_encrypt_key_size;
|
|
__u32 lo_flags;
|
|
__u8 lo_file_name[64];
|
|
__u8 lo_crypt_name[64];
|
|
__u8 lo_encrypt_key[32];
|
|
__u64 lo_init[2];
|
|
};
|
|
|
|
typedef unsigned long __kernel_old_dev_t;
|
|
|
|
struct loop_info {
|
|
int lo_number;
|
|
__kernel_old_dev_t lo_device;
|
|
unsigned long lo_inode;
|
|
__kernel_old_dev_t lo_rdevice;
|
|
int lo_offset;
|
|
int lo_encrypt_type;
|
|
int lo_encrypt_key_size;
|
|
int lo_flags;
|
|
char lo_name[64];
|
|
unsigned char lo_encrypt_key[32];
|
|
unsigned long lo_init[2];
|
|
char reserved[4];
|
|
};
|
|
|
|
struct loop_config {
|
|
__u32 fd;
|
|
__u32 block_size;
|
|
struct loop_info64 info;
|
|
__u64 __reserved[8];
|
|
};
|
|
|
|
enum {
|
|
AHCI_PCI_BAR_STA2X11 = 0,
|
|
AHCI_PCI_BAR_CAVIUM = 0,
|
|
AHCI_PCI_BAR_LOONGSON = 0,
|
|
AHCI_PCI_BAR_ENMOTUS = 2,
|
|
AHCI_PCI_BAR_CAVIUM_GEN5 = 4,
|
|
AHCI_PCI_BAR_STANDARD = 5,
|
|
};
|
|
|
|
enum {
|
|
AHCI_MAX_PORTS = 32,
|
|
AHCI_MAX_SG = 168,
|
|
AHCI_DMA_BOUNDARY = 4294967295,
|
|
AHCI_MAX_CMDS = 32,
|
|
AHCI_CMD_SZ = 32,
|
|
AHCI_CMD_SLOT_SZ = 1024,
|
|
AHCI_RX_FIS_SZ = 256,
|
|
AHCI_CMD_TBL_CDB = 64,
|
|
AHCI_CMD_TBL_HDR_SZ = 128,
|
|
AHCI_CMD_TBL_SZ = 2816,
|
|
AHCI_CMD_TBL_AR_SZ = 90112,
|
|
AHCI_PORT_PRIV_DMA_SZ = 91392,
|
|
AHCI_PORT_PRIV_FBS_DMA_SZ = 95232,
|
|
AHCI_IRQ_ON_SG = 2147483648,
|
|
AHCI_CMD_ATAPI = 32,
|
|
AHCI_CMD_WRITE = 64,
|
|
AHCI_CMD_PREFETCH = 128,
|
|
AHCI_CMD_RESET = 256,
|
|
AHCI_CMD_CLR_BUSY = 1024,
|
|
RX_FIS_PIO_SETUP = 32,
|
|
RX_FIS_D2H_REG = 64,
|
|
RX_FIS_SDB = 88,
|
|
RX_FIS_UNK = 96,
|
|
HOST_CAP = 0,
|
|
HOST_CTL = 4,
|
|
HOST_IRQ_STAT = 8,
|
|
HOST_PORTS_IMPL = 12,
|
|
HOST_VERSION = 16,
|
|
HOST_EM_LOC = 28,
|
|
HOST_EM_CTL = 32,
|
|
HOST_CAP2 = 36,
|
|
HOST_RESET = 1,
|
|
HOST_IRQ_EN = 2,
|
|
HOST_MRSM = 4,
|
|
HOST_AHCI_EN = 2147483648,
|
|
HOST_CAP_SXS = 32,
|
|
HOST_CAP_EMS = 64,
|
|
HOST_CAP_CCC = 128,
|
|
HOST_CAP_PART = 8192,
|
|
HOST_CAP_SSC = 16384,
|
|
HOST_CAP_PIO_MULTI = 32768,
|
|
HOST_CAP_FBS = 65536,
|
|
HOST_CAP_PMP = 131072,
|
|
HOST_CAP_ONLY = 262144,
|
|
HOST_CAP_CLO = 16777216,
|
|
HOST_CAP_LED = 33554432,
|
|
HOST_CAP_ALPM = 67108864,
|
|
HOST_CAP_SSS = 134217728,
|
|
HOST_CAP_MPS = 268435456,
|
|
HOST_CAP_SNTF = 536870912,
|
|
HOST_CAP_NCQ = 1073741824,
|
|
HOST_CAP_64 = 2147483648,
|
|
HOST_CAP2_BOH = 1,
|
|
HOST_CAP2_NVMHCI = 2,
|
|
HOST_CAP2_APST = 4,
|
|
HOST_CAP2_SDS = 8,
|
|
HOST_CAP2_SADM = 16,
|
|
HOST_CAP2_DESO = 32,
|
|
PORT_LST_ADDR = 0,
|
|
PORT_LST_ADDR_HI = 4,
|
|
PORT_FIS_ADDR = 8,
|
|
PORT_FIS_ADDR_HI = 12,
|
|
PORT_IRQ_STAT = 16,
|
|
PORT_IRQ_MASK = 20,
|
|
PORT_CMD = 24,
|
|
PORT_TFDATA = 32,
|
|
PORT_SIG = 36,
|
|
PORT_CMD_ISSUE = 56,
|
|
PORT_SCR_STAT = 40,
|
|
PORT_SCR_CTL = 44,
|
|
PORT_SCR_ERR = 48,
|
|
PORT_SCR_ACT = 52,
|
|
PORT_SCR_NTF = 60,
|
|
PORT_FBS = 64,
|
|
PORT_DEVSLP = 68,
|
|
PORT_IRQ_COLD_PRES = 2147483648,
|
|
PORT_IRQ_TF_ERR = 1073741824,
|
|
PORT_IRQ_HBUS_ERR = 536870912,
|
|
PORT_IRQ_HBUS_DATA_ERR = 268435456,
|
|
PORT_IRQ_IF_ERR = 134217728,
|
|
PORT_IRQ_IF_NONFATAL = 67108864,
|
|
PORT_IRQ_OVERFLOW = 16777216,
|
|
PORT_IRQ_BAD_PMP = 8388608,
|
|
PORT_IRQ_PHYRDY = 4194304,
|
|
PORT_IRQ_DMPS = 128,
|
|
PORT_IRQ_CONNECT = 64,
|
|
PORT_IRQ_SG_DONE = 32,
|
|
PORT_IRQ_UNK_FIS = 16,
|
|
PORT_IRQ_SDB_FIS = 8,
|
|
PORT_IRQ_DMAS_FIS = 4,
|
|
PORT_IRQ_PIOS_FIS = 2,
|
|
PORT_IRQ_D2H_REG_FIS = 1,
|
|
PORT_IRQ_FREEZE = 683671632,
|
|
PORT_IRQ_ERROR = 2025848912,
|
|
DEF_PORT_IRQ = 2025848959,
|
|
PORT_CMD_ASP = 134217728,
|
|
PORT_CMD_ALPE = 67108864,
|
|
PORT_CMD_ATAPI = 16777216,
|
|
PORT_CMD_FBSCP = 4194304,
|
|
PORT_CMD_ESP = 2097152,
|
|
PORT_CMD_CPD = 1048576,
|
|
PORT_CMD_MPSP = 524288,
|
|
PORT_CMD_HPCP = 262144,
|
|
PORT_CMD_PMP = 131072,
|
|
PORT_CMD_LIST_ON = 32768,
|
|
PORT_CMD_FIS_ON = 16384,
|
|
PORT_CMD_FIS_RX = 16,
|
|
PORT_CMD_CLO = 8,
|
|
PORT_CMD_POWER_ON = 4,
|
|
PORT_CMD_SPIN_UP = 2,
|
|
PORT_CMD_START = 1,
|
|
PORT_CMD_ICC_MASK = 4026531840,
|
|
PORT_CMD_ICC_ACTIVE = 268435456,
|
|
PORT_CMD_ICC_PARTIAL = 536870912,
|
|
PORT_CMD_ICC_SLUMBER = 1610612736,
|
|
PORT_CMD_CAP = 8126464,
|
|
PORT_FBS_DWE_OFFSET = 16,
|
|
PORT_FBS_ADO_OFFSET = 12,
|
|
PORT_FBS_DEV_OFFSET = 8,
|
|
PORT_FBS_DEV_MASK = 3840,
|
|
PORT_FBS_SDE = 4,
|
|
PORT_FBS_DEC = 2,
|
|
PORT_FBS_EN = 1,
|
|
PORT_DEVSLP_DM_OFFSET = 25,
|
|
PORT_DEVSLP_DM_MASK = 503316480,
|
|
PORT_DEVSLP_DITO_OFFSET = 15,
|
|
PORT_DEVSLP_MDAT_OFFSET = 10,
|
|
PORT_DEVSLP_DETO_OFFSET = 2,
|
|
PORT_DEVSLP_DSP = 2,
|
|
PORT_DEVSLP_ADSE = 1,
|
|
AHCI_HFLAG_NO_NCQ = 1,
|
|
AHCI_HFLAG_IGN_IRQ_IF_ERR = 2,
|
|
AHCI_HFLAG_IGN_SERR_INTERNAL = 4,
|
|
AHCI_HFLAG_32BIT_ONLY = 8,
|
|
AHCI_HFLAG_MV_PATA = 16,
|
|
AHCI_HFLAG_NO_MSI = 32,
|
|
AHCI_HFLAG_NO_PMP = 64,
|
|
AHCI_HFLAG_SECT255 = 256,
|
|
AHCI_HFLAG_YES_NCQ = 512,
|
|
AHCI_HFLAG_NO_SUSPEND = 1024,
|
|
AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = 2048,
|
|
AHCI_HFLAG_NO_SNTF = 4096,
|
|
AHCI_HFLAG_NO_FPDMA_AA = 8192,
|
|
AHCI_HFLAG_YES_FBS = 16384,
|
|
AHCI_HFLAG_DELAY_ENGINE = 32768,
|
|
AHCI_HFLAG_NO_DEVSLP = 131072,
|
|
AHCI_HFLAG_NO_FBS = 262144,
|
|
AHCI_HFLAG_MULTI_MSI = 1048576,
|
|
AHCI_HFLAG_WAKE_BEFORE_STOP = 4194304,
|
|
AHCI_HFLAG_YES_ALPM = 8388608,
|
|
AHCI_HFLAG_NO_WRITE_TO_RO = 16777216,
|
|
AHCI_HFLAG_USE_LPM_POLICY = 33554432,
|
|
AHCI_HFLAG_SUSPEND_PHYS = 67108864,
|
|
AHCI_HFLAG_NO_SXS = 268435456,
|
|
AHCI_FLAG_COMMON = 393346,
|
|
ICH_MAP = 144,
|
|
PCS_6 = 146,
|
|
PCS_7 = 148,
|
|
EM_MAX_SLOTS = 15,
|
|
EM_MAX_RETRY = 5,
|
|
EM_CTL_RST = 512,
|
|
EM_CTL_TM = 256,
|
|
EM_CTL_MR = 1,
|
|
EM_CTL_ALHD = 67108864,
|
|
EM_CTL_XMT = 33554432,
|
|
EM_CTL_SMB = 16777216,
|
|
EM_CTL_SGPIO = 524288,
|
|
EM_CTL_SES = 262144,
|
|
EM_CTL_SAFTE = 131072,
|
|
EM_CTL_LED = 65536,
|
|
EM_MSG_TYPE_LED = 1,
|
|
EM_MSG_TYPE_SAFTE = 2,
|
|
EM_MSG_TYPE_SES2 = 4,
|
|
EM_MSG_TYPE_SGPIO = 8,
|
|
};
|
|
|
|
enum board_ids {
|
|
board_ahci = 0,
|
|
board_ahci_ign_iferr = 1,
|
|
board_ahci_low_power = 2,
|
|
board_ahci_no_debounce_delay = 3,
|
|
board_ahci_nomsi = 4,
|
|
board_ahci_noncq = 5,
|
|
board_ahci_nosntf = 6,
|
|
board_ahci_yes_fbs = 7,
|
|
board_ahci_al = 8,
|
|
board_ahci_avn = 9,
|
|
board_ahci_mcp65 = 10,
|
|
board_ahci_mcp77 = 11,
|
|
board_ahci_mcp89 = 12,
|
|
board_ahci_mv = 13,
|
|
board_ahci_sb600 = 14,
|
|
board_ahci_sb700 = 15,
|
|
board_ahci_vt8251 = 16,
|
|
board_ahci_pcs7 = 17,
|
|
board_ahci_mcp_linux = 10,
|
|
board_ahci_mcp67 = 10,
|
|
board_ahci_mcp73 = 10,
|
|
board_ahci_mcp79 = 11,
|
|
};
|
|
|
|
struct clk_bulk_data;
|
|
|
|
struct ahci_host_priv {
|
|
unsigned int flags;
|
|
u32 mask_port_map;
|
|
void *mmio;
|
|
u32 cap;
|
|
u32 cap2;
|
|
u32 version;
|
|
u32 port_map;
|
|
u32 saved_cap;
|
|
u32 saved_cap2;
|
|
u32 saved_port_map;
|
|
u32 saved_port_cap[32];
|
|
u32 em_loc;
|
|
u32 em_buf_sz;
|
|
u32 em_msg_type;
|
|
u32 remapped_nvme;
|
|
bool got_runtime_pm;
|
|
unsigned int n_clks;
|
|
struct clk_bulk_data *clks;
|
|
unsigned int f_rsts;
|
|
struct reset_control *rsts;
|
|
struct regulator **target_pwrs;
|
|
struct regulator *ahci_regulator;
|
|
struct regulator *phy_regulator;
|
|
struct phy **phys;
|
|
unsigned int nports;
|
|
void *plat_data;
|
|
unsigned int irq;
|
|
void (*start_engine)(struct ata_port *);
|
|
int (*stop_engine)(struct ata_port *);
|
|
irqreturn_t (*irq_handler)(int, void *);
|
|
int (*get_irq_vector)(struct ata_host *, int);
|
|
};
|
|
|
|
struct clk_bulk_data {
|
|
const char *id;
|
|
struct clk *clk;
|
|
};
|
|
|
|
struct ahci_em_priv {
|
|
enum sw_activity blink_policy;
|
|
struct timer_list timer;
|
|
unsigned long saved_activity;
|
|
unsigned long activity;
|
|
unsigned long led_state;
|
|
struct ata_link *link;
|
|
};
|
|
|
|
struct ahci_cmd_hdr;
|
|
|
|
struct ahci_port_priv {
|
|
struct ata_link *active_link;
|
|
struct ahci_cmd_hdr *cmd_slot;
|
|
dma_addr_t cmd_slot_dma;
|
|
void *cmd_tbl;
|
|
dma_addr_t cmd_tbl_dma;
|
|
void *rx_fis;
|
|
dma_addr_t rx_fis_dma;
|
|
unsigned int ncq_saw_d2h: 1;
|
|
unsigned int ncq_saw_dmas: 1;
|
|
unsigned int ncq_saw_sdb: 1;
|
|
spinlock_t lock;
|
|
u32 intr_mask;
|
|
bool fbs_supported;
|
|
bool fbs_enabled;
|
|
int fbs_last_dev;
|
|
struct ahci_em_priv em_priv[15];
|
|
char *irq_desc;
|
|
};
|
|
|
|
struct ahci_cmd_hdr {
|
|
__le32 opts;
|
|
__le32 status;
|
|
__le32 tbl_addr;
|
|
__le32 tbl_addr_hi;
|
|
__le32 reserved[4];
|
|
};
|
|
|
|
enum hub_led_mode {
|
|
INDICATOR_AUTO = 0,
|
|
INDICATOR_CYCLE = 1,
|
|
INDICATOR_GREEN_BLINK = 2,
|
|
INDICATOR_GREEN_BLINK_OFF = 3,
|
|
INDICATOR_AMBER_BLINK = 4,
|
|
INDICATOR_AMBER_BLINK_OFF = 5,
|
|
INDICATOR_ALT_BLINK = 6,
|
|
INDICATOR_ALT_BLINK_OFF = 7,
|
|
};
|
|
|
|
enum hub_quiescing_type {
|
|
HUB_DISCONNECT = 0,
|
|
HUB_PRE_RESET = 1,
|
|
HUB_SUSPEND = 2,
|
|
};
|
|
|
|
enum hub_activation_type {
|
|
HUB_INIT = 0,
|
|
HUB_INIT2 = 1,
|
|
HUB_INIT3 = 2,
|
|
HUB_POST_RESET = 3,
|
|
HUB_RESUME = 4,
|
|
HUB_RESET_RESUME = 5,
|
|
};
|
|
|
|
struct usb_tt_clear {
|
|
struct list_head clear_list;
|
|
unsigned int tt;
|
|
u16 devinfo;
|
|
struct usb_hcd *hcd;
|
|
struct usb_host_endpoint *ep;
|
|
};
|
|
|
|
struct usb_qualifier_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__le16 bcdUSB;
|
|
__u8 bDeviceClass;
|
|
__u8 bDeviceSubClass;
|
|
__u8 bDeviceProtocol;
|
|
__u8 bMaxPacketSize0;
|
|
__u8 bNumConfigurations;
|
|
__u8 bRESERVED;
|
|
};
|
|
|
|
struct usbdevfs_hub_portinfo {
|
|
char nports;
|
|
char port[127];
|
|
};
|
|
|
|
struct usb_set_sel_req {
|
|
__u8 u1_sel;
|
|
__u8 u1_pel;
|
|
__le16 u2_sel;
|
|
__le16 u2_pel;
|
|
};
|
|
|
|
struct mc146818_get_time_callback_param {
|
|
struct rtc_time *time;
|
|
unsigned char ctrl;
|
|
unsigned char century;
|
|
};
|
|
|
|
struct dm_kcopyd_client;
|
|
|
|
struct kcopyd_job {
|
|
struct dm_kcopyd_client *kc;
|
|
struct list_head list;
|
|
unsigned int flags;
|
|
int read_err;
|
|
unsigned long write_err;
|
|
enum req_op op;
|
|
struct dm_io_region source;
|
|
unsigned int num_dests;
|
|
struct dm_io_region dests[8];
|
|
struct page_list *pages;
|
|
dm_kcopyd_notify_fn fn;
|
|
void *context;
|
|
struct mutex lock;
|
|
atomic_t sub_jobs;
|
|
sector_t progress;
|
|
sector_t write_offset;
|
|
struct kcopyd_job *master_job;
|
|
};
|
|
|
|
struct dm_kcopyd_client {
|
|
struct page_list *pages;
|
|
unsigned int nr_reserved_pages;
|
|
unsigned int nr_free_pages;
|
|
unsigned int sub_job_size;
|
|
struct dm_io_client *io_client;
|
|
wait_queue_head_t destroyq;
|
|
mempool_t job_pool;
|
|
struct workqueue_struct *kcopyd_wq;
|
|
struct work_struct kcopyd_work;
|
|
struct dm_kcopyd_throttle *throttle;
|
|
atomic_t nr_jobs;
|
|
spinlock_t job_lock;
|
|
struct list_head callback_jobs;
|
|
struct list_head complete_jobs;
|
|
struct list_head io_jobs;
|
|
struct list_head pages_jobs;
|
|
};
|
|
|
|
struct efi_system_resource_table {
|
|
u32 fw_resource_count;
|
|
u32 fw_resource_count_max;
|
|
u64 fw_resource_version;
|
|
u8 entries[0];
|
|
};
|
|
|
|
struct esre_entry;
|
|
|
|
struct esre_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct esre_entry *, char *);
|
|
ssize_t (*store)(struct esre_entry *, const char *, size_t);
|
|
};
|
|
|
|
struct efi_system_resource_entry_v1;
|
|
|
|
struct esre_entry {
|
|
union {
|
|
struct efi_system_resource_entry_v1 *esre1;
|
|
} esre;
|
|
struct kobject kobj;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct efi_system_resource_entry_v1 {
|
|
efi_guid_t fw_class;
|
|
u32 fw_type;
|
|
u32 fw_version;
|
|
u32 lowest_supported_fw_version;
|
|
u32 capsule_flags;
|
|
u32 last_attempt_version;
|
|
u32 last_attempt_status;
|
|
};
|
|
|
|
struct snd_seq_fifo;
|
|
|
|
struct snd_seq_user_client {
|
|
struct file *file;
|
|
struct pid *owner;
|
|
struct snd_seq_fifo *fifo;
|
|
int fifo_pool_size;
|
|
};
|
|
|
|
struct snd_seq_kernel_client {
|
|
struct snd_card *card;
|
|
};
|
|
|
|
typedef int snd_seq_client_type_t;
|
|
|
|
struct snd_seq_client {
|
|
snd_seq_client_type_t type;
|
|
unsigned int accept_input: 1;
|
|
unsigned int accept_output: 1;
|
|
char name[64];
|
|
int number;
|
|
unsigned int filter;
|
|
unsigned long event_filter[4];
|
|
snd_use_lock_t use_lock;
|
|
int event_lost;
|
|
int num_ports;
|
|
struct list_head ports_list_head;
|
|
rwlock_t ports_lock;
|
|
struct mutex ports_mutex;
|
|
struct mutex ioctl_mutex;
|
|
int convert32;
|
|
struct snd_seq_pool *pool;
|
|
union {
|
|
struct snd_seq_user_client user;
|
|
struct snd_seq_kernel_client kernel;
|
|
} data;
|
|
};
|
|
|
|
struct snd_seq_fifo {
|
|
struct snd_seq_pool *pool;
|
|
struct snd_seq_event_cell *head;
|
|
struct snd_seq_event_cell *tail;
|
|
int cells;
|
|
spinlock_t lock;
|
|
snd_use_lock_t use_lock;
|
|
wait_queue_head_t input_sleep;
|
|
atomic_t overflow;
|
|
};
|
|
|
|
struct snd_seq_usage {
|
|
int cur;
|
|
int peak;
|
|
};
|
|
|
|
struct ioctl_handler {
|
|
unsigned int cmd;
|
|
int (*func)(struct snd_seq_client *, void *);
|
|
};
|
|
|
|
enum {
|
|
SNDRV_SEQ_IOCTL_CREATE_PORT32 = 3231994656,
|
|
SNDRV_SEQ_IOCTL_DELETE_PORT32 = 1084511009,
|
|
SNDRV_SEQ_IOCTL_GET_PORT_INFO32 = 3231994658,
|
|
SNDRV_SEQ_IOCTL_SET_PORT_INFO32 = 1084511011,
|
|
SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT32 = 3231994706,
|
|
};
|
|
|
|
struct snd_seq_port_subscribe {
|
|
struct snd_seq_addr sender;
|
|
struct snd_seq_addr dest;
|
|
unsigned int voices;
|
|
unsigned int flags;
|
|
unsigned char queue;
|
|
unsigned char pad[3];
|
|
char reserved[64];
|
|
};
|
|
|
|
struct snd_seq_subscribers {
|
|
struct snd_seq_port_subscribe info;
|
|
struct list_head src_list;
|
|
struct list_head dest_list;
|
|
atomic_t ref_count;
|
|
};
|
|
|
|
struct snd_seq_port_subs_info {
|
|
struct list_head list_head;
|
|
unsigned int count;
|
|
unsigned int exclusive: 1;
|
|
struct rw_semaphore list_mutex;
|
|
rwlock_t list_lock;
|
|
int (*open)(void *, struct snd_seq_port_subscribe *);
|
|
int (*close)(void *, struct snd_seq_port_subscribe *);
|
|
};
|
|
|
|
struct snd_seq_client_port {
|
|
struct snd_seq_addr addr;
|
|
struct module *owner;
|
|
char name[64];
|
|
struct list_head list;
|
|
snd_use_lock_t use_lock;
|
|
struct snd_seq_port_subs_info c_src;
|
|
struct snd_seq_port_subs_info c_dest;
|
|
int (*event_input)(struct snd_seq_event *, int, void *, int, int);
|
|
void (*private_free)(void *);
|
|
void *private_data;
|
|
unsigned int closing: 1;
|
|
unsigned int timestamping: 1;
|
|
unsigned int time_real: 1;
|
|
int time_queue;
|
|
unsigned int capability;
|
|
unsigned int type;
|
|
int midi_channels;
|
|
int midi_voices;
|
|
int synth_voices;
|
|
};
|
|
|
|
struct snd_seq_client_info {
|
|
int client;
|
|
snd_seq_client_type_t type;
|
|
char name[64];
|
|
unsigned int filter;
|
|
unsigned char multicast_filter[8];
|
|
unsigned char event_filter[32];
|
|
int num_ports;
|
|
int event_lost;
|
|
int card;
|
|
int pid;
|
|
char reserved[56];
|
|
};
|
|
|
|
struct snd_seq_port_info {
|
|
struct snd_seq_addr addr;
|
|
char name[64];
|
|
unsigned int capability;
|
|
unsigned int type;
|
|
int midi_channels;
|
|
int midi_voices;
|
|
int synth_voices;
|
|
int read_use;
|
|
int write_use;
|
|
void *kernel;
|
|
unsigned int flags;
|
|
unsigned char time_queue;
|
|
char reserved[59];
|
|
};
|
|
|
|
struct snd_seq_queue_client {
|
|
int queue;
|
|
int client;
|
|
int used;
|
|
char reserved[64];
|
|
};
|
|
|
|
struct snd_seq_client_pool {
|
|
int client;
|
|
int output_pool;
|
|
int input_pool;
|
|
int output_room;
|
|
int output_free;
|
|
int input_free;
|
|
char reserved[64];
|
|
};
|
|
|
|
struct snd_seq_system_info {
|
|
int queues;
|
|
int clients;
|
|
int ports;
|
|
int channels;
|
|
int cur_clients;
|
|
int cur_queues;
|
|
char reserved[24];
|
|
};
|
|
|
|
struct snd_seq_running_info {
|
|
unsigned char client;
|
|
unsigned char big_endian;
|
|
unsigned char cpu_mode;
|
|
unsigned char pad;
|
|
unsigned char reserved[12];
|
|
};
|
|
|
|
struct snd_seq_queue_info {
|
|
int queue;
|
|
int owner;
|
|
unsigned int locked: 1;
|
|
char name[64];
|
|
unsigned int flags;
|
|
char reserved[60];
|
|
};
|
|
|
|
struct snd_seq_queue_status {
|
|
int queue;
|
|
int events;
|
|
snd_seq_tick_time_t tick;
|
|
struct snd_seq_real_time time;
|
|
int running;
|
|
int flags;
|
|
char reserved[64];
|
|
};
|
|
|
|
struct snd_seq_queue_timer {
|
|
int queue;
|
|
int type;
|
|
union {
|
|
struct {
|
|
struct snd_timer_id id;
|
|
unsigned int resolution;
|
|
} alsa;
|
|
} u;
|
|
char reserved[64];
|
|
};
|
|
|
|
struct snd_seq_query_subs {
|
|
struct snd_seq_addr root;
|
|
int type;
|
|
int index;
|
|
int num_subs;
|
|
struct snd_seq_addr addr;
|
|
unsigned char queue;
|
|
unsigned int flags;
|
|
char reserved[64];
|
|
};
|
|
|
|
struct snd_seq_port_callback {
|
|
struct module *owner;
|
|
void *private_data;
|
|
int (*subscribe)(void *, struct snd_seq_port_subscribe *);
|
|
int (*unsubscribe)(void *, struct snd_seq_port_subscribe *);
|
|
int (*use)(void *, struct snd_seq_port_subscribe *);
|
|
int (*unuse)(void *, struct snd_seq_port_subscribe *);
|
|
int (*event_input)(struct snd_seq_event *, int, void *, int, int);
|
|
void (*private_free)(void *);
|
|
};
|
|
|
|
struct snd_seq_port_info32 {
|
|
struct snd_seq_addr addr;
|
|
char name[64];
|
|
u32 capability;
|
|
u32 type;
|
|
s32 midi_channels;
|
|
s32 midi_voices;
|
|
s32 synth_voices;
|
|
s32 read_use;
|
|
s32 write_use;
|
|
u32 kernel;
|
|
u32 flags;
|
|
unsigned char time_queue;
|
|
char reserved[59];
|
|
};
|
|
|
|
typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason);
|
|
|
|
typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *);
|
|
|
|
typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int);
|
|
|
|
typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *);
|
|
|
|
typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int);
|
|
|
|
typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int);
|
|
|
|
typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_napi_gro_frags_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_napi_gro_receive_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_netif_receive_skb_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_netif_rx_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int);
|
|
|
|
typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int);
|
|
|
|
typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int);
|
|
|
|
typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int);
|
|
|
|
typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *);
|
|
|
|
typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *);
|
|
|
|
typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int);
|
|
|
|
typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int);
|
|
|
|
typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *);
|
|
|
|
typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *);
|
|
|
|
typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *);
|
|
|
|
typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *);
|
|
|
|
typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *);
|
|
|
|
typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8);
|
|
|
|
typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int);
|
|
|
|
typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *);
|
|
|
|
typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *);
|
|
|
|
typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *);
|
|
|
|
typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32);
|
|
|
|
typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32);
|
|
|
|
typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32);
|
|
|
|
typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32);
|
|
|
|
typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int);
|
|
|
|
typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool);
|
|
|
|
typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32);
|
|
|
|
typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int);
|
|
|
|
typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int);
|
|
|
|
typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int);
|
|
|
|
typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int);
|
|
|
|
typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int);
|
|
|
|
struct trace_event_raw_kfree_skb {
|
|
struct trace_entry ent;
|
|
void *skbaddr;
|
|
void *location;
|
|
unsigned short protocol;
|
|
enum skb_drop_reason reason;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_consume_skb {
|
|
struct trace_entry ent;
|
|
void *skbaddr;
|
|
void *location;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_skb_copy_datagram_iovec {
|
|
struct trace_entry ent;
|
|
const void *skbaddr;
|
|
int len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_net_dev_start_xmit {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u16 queue_mapping;
|
|
const void *skbaddr;
|
|
bool vlan_tagged;
|
|
u16 vlan_proto;
|
|
u16 vlan_tci;
|
|
u16 protocol;
|
|
u8 ip_summed;
|
|
unsigned int len;
|
|
unsigned int data_len;
|
|
int network_offset;
|
|
bool transport_offset_valid;
|
|
int transport_offset;
|
|
u8 tx_flags;
|
|
u16 gso_size;
|
|
u16 gso_segs;
|
|
u16 gso_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_net_dev_xmit {
|
|
struct trace_entry ent;
|
|
void *skbaddr;
|
|
unsigned int len;
|
|
int rc;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_net_dev_xmit_timeout {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u32 __data_loc_driver;
|
|
int queue_index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_net_dev_template {
|
|
struct trace_entry ent;
|
|
void *skbaddr;
|
|
unsigned int len;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_net_dev_rx_verbose_template {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
unsigned int napi_id;
|
|
u16 queue_mapping;
|
|
const void *skbaddr;
|
|
bool vlan_tagged;
|
|
u16 vlan_proto;
|
|
u16 vlan_tci;
|
|
u16 protocol;
|
|
u8 ip_summed;
|
|
u32 hash;
|
|
bool l4_hash;
|
|
unsigned int len;
|
|
unsigned int data_len;
|
|
unsigned int truesize;
|
|
bool mac_header_valid;
|
|
int mac_header;
|
|
unsigned char nr_frags;
|
|
u16 gso_size;
|
|
u16 gso_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_net_dev_rx_exit_template {
|
|
struct trace_entry ent;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_napi_poll {
|
|
struct trace_entry ent;
|
|
struct napi_struct *napi;
|
|
u32 __data_loc_dev_name;
|
|
int work;
|
|
int budget;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sock_rcvqueue_full {
|
|
struct trace_entry ent;
|
|
int rmem_alloc;
|
|
unsigned int truesize;
|
|
int sk_rcvbuf;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sock_exceed_buf_limit {
|
|
struct trace_entry ent;
|
|
char name[32];
|
|
long sysctl_mem[3];
|
|
long allocated;
|
|
int sysctl_rmem;
|
|
int rmem_alloc;
|
|
int sysctl_wmem;
|
|
int wmem_alloc;
|
|
int wmem_queued;
|
|
int kind;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_inet_sock_set_state {
|
|
struct trace_entry ent;
|
|
const void *skaddr;
|
|
int oldstate;
|
|
int newstate;
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u16 protocol;
|
|
__u8 saddr[4];
|
|
__u8 daddr[4];
|
|
__u8 saddr_v6[16];
|
|
__u8 daddr_v6[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_inet_sk_error_report {
|
|
struct trace_entry ent;
|
|
int error;
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u16 protocol;
|
|
__u8 saddr[4];
|
|
__u8 daddr[4];
|
|
__u8 saddr_v6[16];
|
|
__u8 daddr_v6[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sk_data_ready {
|
|
struct trace_entry ent;
|
|
const void *skaddr;
|
|
__u16 family;
|
|
__u16 protocol;
|
|
unsigned long ip;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sock_msg_length {
|
|
struct trace_entry ent;
|
|
void *sk;
|
|
__u16 family;
|
|
__u16 protocol;
|
|
int ret;
|
|
int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_udp_fail_queue_rcv_skb {
|
|
struct trace_entry ent;
|
|
int rc;
|
|
__u16 lport;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tcp_event_sk_skb {
|
|
struct trace_entry ent;
|
|
const void *skbaddr;
|
|
const void *skaddr;
|
|
int state;
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u8 saddr[4];
|
|
__u8 daddr[4];
|
|
__u8 saddr_v6[16];
|
|
__u8 daddr_v6[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tcp_event_sk {
|
|
struct trace_entry ent;
|
|
const void *skaddr;
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u8 saddr[4];
|
|
__u8 daddr[4];
|
|
__u8 saddr_v6[16];
|
|
__u8 daddr_v6[16];
|
|
__u64 sock_cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tcp_retransmit_synack {
|
|
struct trace_entry ent;
|
|
const void *skaddr;
|
|
const void *req;
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u8 saddr[4];
|
|
__u8 daddr[4];
|
|
__u8 saddr_v6[16];
|
|
__u8 daddr_v6[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tcp_probe {
|
|
struct trace_entry ent;
|
|
__u8 saddr[28];
|
|
__u8 daddr[28];
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u16 family;
|
|
__u32 mark;
|
|
__u16 data_len;
|
|
__u32 snd_nxt;
|
|
__u32 snd_una;
|
|
__u32 snd_cwnd;
|
|
__u32 ssthresh;
|
|
__u32 snd_wnd;
|
|
__u32 srtt;
|
|
__u32 rcv_wnd;
|
|
__u64 sock_cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tcp_event_skb {
|
|
struct trace_entry ent;
|
|
const void *skbaddr;
|
|
__u8 saddr[28];
|
|
__u8 daddr[28];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tcp_cong_state_set {
|
|
struct trace_entry ent;
|
|
const void *skaddr;
|
|
__u16 sport;
|
|
__u16 dport;
|
|
__u8 saddr[4];
|
|
__u8 daddr[4];
|
|
__u8 saddr_v6[16];
|
|
__u8 daddr_v6[16];
|
|
__u8 cong_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_fib_table_lookup {
|
|
struct trace_entry ent;
|
|
u32 tb_id;
|
|
int err;
|
|
int oif;
|
|
int iif;
|
|
u8 proto;
|
|
__u8 tos;
|
|
__u8 scope;
|
|
__u8 flags;
|
|
__u8 src[4];
|
|
__u8 dst[4];
|
|
__u8 gw4[4];
|
|
__u8 gw6[16];
|
|
u16 sport;
|
|
u16 dport;
|
|
char name[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_qdisc_dequeue {
|
|
struct trace_entry ent;
|
|
struct Qdisc *qdisc;
|
|
const struct netdev_queue *txq;
|
|
int packets;
|
|
void *skbaddr;
|
|
int ifindex;
|
|
u32 handle;
|
|
u32 parent;
|
|
unsigned long txq_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_qdisc_enqueue {
|
|
struct trace_entry ent;
|
|
struct Qdisc *qdisc;
|
|
const struct netdev_queue *txq;
|
|
void *skbaddr;
|
|
int ifindex;
|
|
u32 handle;
|
|
u32 parent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_qdisc_reset {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_kind;
|
|
u32 parent;
|
|
u32 handle;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_qdisc_destroy {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_kind;
|
|
u32 parent;
|
|
u32 handle;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_qdisc_create {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_kind;
|
|
u32 parent;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_page_pool_release {
|
|
struct trace_entry ent;
|
|
const struct page_pool *pool;
|
|
s32 inflight;
|
|
u32 hold;
|
|
u32 release;
|
|
u64 cnt;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_page_pool_state_release {
|
|
struct trace_entry ent;
|
|
const struct page_pool *pool;
|
|
const struct page *page;
|
|
u32 release;
|
|
unsigned long pfn;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_page_pool_state_hold {
|
|
struct trace_entry ent;
|
|
const struct page_pool *pool;
|
|
const struct page *page;
|
|
u32 hold;
|
|
unsigned long pfn;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_page_pool_update_nid {
|
|
struct trace_entry ent;
|
|
const struct page_pool *pool;
|
|
int pool_nid;
|
|
int new_nid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_neigh_create {
|
|
struct trace_entry ent;
|
|
u32 family;
|
|
u32 __data_loc_dev;
|
|
int entries;
|
|
u8 created;
|
|
u8 gc_exempt;
|
|
u8 primary_key4[4];
|
|
u8 primary_key6[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_neigh_update {
|
|
struct trace_entry ent;
|
|
u32 family;
|
|
u32 __data_loc_dev;
|
|
u8 lladdr[32];
|
|
u8 lladdr_len;
|
|
u8 flags;
|
|
u8 nud_state;
|
|
u8 type;
|
|
u8 dead;
|
|
int refcnt;
|
|
__u8 primary_key4[4];
|
|
__u8 primary_key6[16];
|
|
unsigned long confirmed;
|
|
unsigned long updated;
|
|
unsigned long used;
|
|
u8 new_lladdr[32];
|
|
u8 new_state;
|
|
u32 update_flags;
|
|
u32 pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_neigh__update {
|
|
struct trace_entry ent;
|
|
u32 family;
|
|
u32 __data_loc_dev;
|
|
u8 lladdr[32];
|
|
u8 lladdr_len;
|
|
u8 flags;
|
|
u8 nud_state;
|
|
u8 type;
|
|
u8 dead;
|
|
int refcnt;
|
|
__u8 primary_key4[4];
|
|
__u8 primary_key6[16];
|
|
unsigned long confirmed;
|
|
unsigned long updated;
|
|
unsigned long used;
|
|
u32 err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_net_dev_start_xmit {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_net_dev_xmit {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_net_dev_xmit_timeout {
|
|
u32 name;
|
|
u32 driver;
|
|
};
|
|
|
|
struct trace_event_data_offsets_net_dev_template {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_net_dev_rx_verbose_template {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_napi_poll {
|
|
u32 dev_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_qdisc_reset {
|
|
u32 dev;
|
|
u32 kind;
|
|
};
|
|
|
|
struct trace_event_data_offsets_qdisc_destroy {
|
|
u32 dev;
|
|
u32 kind;
|
|
};
|
|
|
|
struct trace_event_data_offsets_qdisc_create {
|
|
u32 dev;
|
|
u32 kind;
|
|
};
|
|
|
|
struct trace_event_data_offsets_neigh_create {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_neigh_update {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_neigh__update {
|
|
u32 dev;
|
|
};
|
|
|
|
struct trace_event_data_offsets_kfree_skb {};
|
|
|
|
struct trace_event_data_offsets_consume_skb {};
|
|
|
|
struct trace_event_data_offsets_skb_copy_datagram_iovec {};
|
|
|
|
struct trace_event_data_offsets_net_dev_rx_exit_template {};
|
|
|
|
struct trace_event_data_offsets_sock_rcvqueue_full {};
|
|
|
|
struct trace_event_data_offsets_sock_exceed_buf_limit {};
|
|
|
|
struct trace_event_data_offsets_inet_sock_set_state {};
|
|
|
|
struct trace_event_data_offsets_inet_sk_error_report {};
|
|
|
|
struct trace_event_data_offsets_sk_data_ready {};
|
|
|
|
struct trace_event_data_offsets_sock_msg_length {};
|
|
|
|
struct trace_event_data_offsets_udp_fail_queue_rcv_skb {};
|
|
|
|
struct trace_event_data_offsets_tcp_event_sk_skb {};
|
|
|
|
struct trace_event_data_offsets_tcp_event_sk {};
|
|
|
|
struct trace_event_data_offsets_tcp_retransmit_synack {};
|
|
|
|
struct trace_event_data_offsets_tcp_probe {};
|
|
|
|
struct trace_event_data_offsets_tcp_event_skb {};
|
|
|
|
struct trace_event_data_offsets_tcp_cong_state_set {};
|
|
|
|
struct trace_event_data_offsets_fib_table_lookup {};
|
|
|
|
struct trace_event_data_offsets_qdisc_dequeue {};
|
|
|
|
struct trace_event_data_offsets_qdisc_enqueue {};
|
|
|
|
struct trace_event_data_offsets_page_pool_release {};
|
|
|
|
struct trace_event_data_offsets_page_pool_state_release {};
|
|
|
|
struct trace_event_data_offsets_page_pool_state_hold {};
|
|
|
|
struct trace_event_data_offsets_page_pool_update_nid {};
|
|
|
|
enum {
|
|
ETHTOOL_A_PAUSE_UNSPEC = 0,
|
|
ETHTOOL_A_PAUSE_HEADER = 1,
|
|
ETHTOOL_A_PAUSE_AUTONEG = 2,
|
|
ETHTOOL_A_PAUSE_RX = 3,
|
|
ETHTOOL_A_PAUSE_TX = 4,
|
|
ETHTOOL_A_PAUSE_STATS = 5,
|
|
ETHTOOL_A_PAUSE_STATS_SRC = 6,
|
|
__ETHTOOL_A_PAUSE_CNT = 7,
|
|
ETHTOOL_A_PAUSE_MAX = 6,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_PAUSE_STAT_UNSPEC = 0,
|
|
ETHTOOL_A_PAUSE_STAT_PAD = 1,
|
|
ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2,
|
|
ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3,
|
|
__ETHTOOL_A_PAUSE_STAT_CNT = 4,
|
|
ETHTOOL_A_PAUSE_STAT_MAX = 3,
|
|
};
|
|
|
|
struct pause_req_info {
|
|
struct ethnl_req_info base;
|
|
enum ethtool_mac_stats_src src;
|
|
};
|
|
|
|
struct pause_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_pauseparam pauseparam;
|
|
struct ethtool_pause_stats pausestat;
|
|
};
|
|
|
|
enum sctp_cid {
|
|
SCTP_CID_DATA = 0,
|
|
SCTP_CID_INIT = 1,
|
|
SCTP_CID_INIT_ACK = 2,
|
|
SCTP_CID_SACK = 3,
|
|
SCTP_CID_HEARTBEAT = 4,
|
|
SCTP_CID_HEARTBEAT_ACK = 5,
|
|
SCTP_CID_ABORT = 6,
|
|
SCTP_CID_SHUTDOWN = 7,
|
|
SCTP_CID_SHUTDOWN_ACK = 8,
|
|
SCTP_CID_ERROR = 9,
|
|
SCTP_CID_COOKIE_ECHO = 10,
|
|
SCTP_CID_COOKIE_ACK = 11,
|
|
SCTP_CID_ECN_ECNE = 12,
|
|
SCTP_CID_ECN_CWR = 13,
|
|
SCTP_CID_SHUTDOWN_COMPLETE = 14,
|
|
SCTP_CID_AUTH = 15,
|
|
SCTP_CID_I_DATA = 64,
|
|
SCTP_CID_FWD_TSN = 192,
|
|
SCTP_CID_ASCONF = 193,
|
|
SCTP_CID_I_FWD_TSN = 194,
|
|
SCTP_CID_ASCONF_ACK = 128,
|
|
SCTP_CID_RECONF = 130,
|
|
SCTP_CID_PAD = 132,
|
|
};
|
|
|
|
enum {
|
|
SCTP_CHUNK_FLAG_T = 1,
|
|
};
|
|
|
|
enum ctattr_protoinfo_sctp {
|
|
CTA_PROTOINFO_SCTP_UNSPEC = 0,
|
|
CTA_PROTOINFO_SCTP_STATE = 1,
|
|
CTA_PROTOINFO_SCTP_VTAG_ORIGINAL = 2,
|
|
CTA_PROTOINFO_SCTP_VTAG_REPLY = 3,
|
|
__CTA_PROTOINFO_SCTP_MAX = 4,
|
|
};
|
|
|
|
enum ctattr_timeout_sctp {
|
|
CTA_TIMEOUT_SCTP_UNSPEC = 0,
|
|
CTA_TIMEOUT_SCTP_CLOSED = 1,
|
|
CTA_TIMEOUT_SCTP_COOKIE_WAIT = 2,
|
|
CTA_TIMEOUT_SCTP_COOKIE_ECHOED = 3,
|
|
CTA_TIMEOUT_SCTP_ESTABLISHED = 4,
|
|
CTA_TIMEOUT_SCTP_SHUTDOWN_SENT = 5,
|
|
CTA_TIMEOUT_SCTP_SHUTDOWN_RECD = 6,
|
|
CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT = 7,
|
|
CTA_TIMEOUT_SCTP_HEARTBEAT_SENT = 8,
|
|
CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED = 9,
|
|
__CTA_TIMEOUT_SCTP_MAX = 10,
|
|
};
|
|
|
|
struct sctphdr {
|
|
__be16 source;
|
|
__be16 dest;
|
|
__be32 vtag;
|
|
__le32 checksum;
|
|
};
|
|
|
|
struct sctp_chunkhdr {
|
|
__u8 type;
|
|
__u8 flags;
|
|
__be16 length;
|
|
};
|
|
|
|
struct sctp_inithdr {
|
|
__be32 init_tag;
|
|
__be32 a_rwnd;
|
|
__be16 num_outbound_streams;
|
|
__be16 num_inbound_streams;
|
|
__be32 initial_tsn;
|
|
__u8 params[0];
|
|
};
|
|
|
|
struct ip_frag_state {
|
|
bool DF;
|
|
unsigned int hlen;
|
|
unsigned int ll_rs;
|
|
unsigned int mtu;
|
|
unsigned int left;
|
|
int offset;
|
|
int ptr;
|
|
__be16 not_last_frag;
|
|
};
|
|
|
|
struct ip_fraglist_iter {
|
|
struct sk_buff *frag;
|
|
struct iphdr *iph;
|
|
int offset;
|
|
unsigned int hlen;
|
|
};
|
|
|
|
struct br_input_skb_cb {
|
|
struct net_device *brdev;
|
|
u16 frag_max_size;
|
|
u8 proxyarp_replied: 1;
|
|
u8 src_port_isolated: 1;
|
|
};
|
|
|
|
struct nf_bridge_frag_data;
|
|
|
|
struct rpcb_info {
|
|
u32 rpc_vers;
|
|
const struct rpc_procinfo *rpc_proc;
|
|
};
|
|
|
|
enum {
|
|
RPCBPROC_NULL = 0,
|
|
RPCBPROC_SET = 1,
|
|
RPCBPROC_UNSET = 2,
|
|
RPCBPROC_GETPORT = 3,
|
|
RPCBPROC_GETADDR = 3,
|
|
RPCBPROC_DUMP = 4,
|
|
RPCBPROC_CALLIT = 5,
|
|
RPCBPROC_BCAST = 5,
|
|
RPCBPROC_GETTIME = 6,
|
|
RPCBPROC_UADDR2TADDR = 7,
|
|
RPCBPROC_TADDR2UADDR = 8,
|
|
RPCBPROC_GETVERSADDR = 9,
|
|
RPCBPROC_INDIRECT = 10,
|
|
RPCBPROC_GETADDRLIST = 11,
|
|
RPCBPROC_GETSTAT = 12,
|
|
};
|
|
|
|
struct rpcbind_args {
|
|
struct rpc_xprt *r_xprt;
|
|
u32 r_prog;
|
|
u32 r_vers;
|
|
u32 r_prot;
|
|
unsigned short r_port;
|
|
const char *r_netid;
|
|
const char *r_addr;
|
|
const char *r_owner;
|
|
int r_status;
|
|
};
|
|
|
|
struct fwdb_country {
|
|
u8 alpha2[2];
|
|
__be16 coll_ptr;
|
|
};
|
|
|
|
struct fwdb_header {
|
|
__be32 magic;
|
|
__be32 version;
|
|
struct fwdb_country country[0];
|
|
};
|
|
|
|
enum nl80211_reg_rule_flags {
|
|
NL80211_RRF_NO_OFDM = 1,
|
|
NL80211_RRF_NO_CCK = 2,
|
|
NL80211_RRF_NO_INDOOR = 4,
|
|
NL80211_RRF_NO_OUTDOOR = 8,
|
|
NL80211_RRF_DFS = 16,
|
|
NL80211_RRF_PTP_ONLY = 32,
|
|
NL80211_RRF_PTMP_ONLY = 64,
|
|
NL80211_RRF_NO_IR = 128,
|
|
__NL80211_RRF_NO_IBSS = 256,
|
|
NL80211_RRF_AUTO_BW = 2048,
|
|
NL80211_RRF_IR_CONCURRENT = 4096,
|
|
NL80211_RRF_NO_HT40MINUS = 8192,
|
|
NL80211_RRF_NO_HT40PLUS = 16384,
|
|
NL80211_RRF_NO_80MHZ = 32768,
|
|
NL80211_RRF_NO_160MHZ = 65536,
|
|
NL80211_RRF_NO_HE = 131072,
|
|
NL80211_RRF_NO_320MHZ = 262144,
|
|
};
|
|
|
|
enum reg_request_treatment {
|
|
REG_REQ_OK = 0,
|
|
REG_REQ_IGNORE = 1,
|
|
REG_REQ_INTERSECT = 2,
|
|
REG_REQ_ALREADY_SET = 3,
|
|
};
|
|
|
|
enum fwdb_flags {
|
|
FWDB_FLAG_NO_OFDM = 1,
|
|
FWDB_FLAG_NO_OUTDOOR = 2,
|
|
FWDB_FLAG_DFS = 4,
|
|
FWDB_FLAG_NO_IR = 8,
|
|
FWDB_FLAG_AUTO_BW = 16,
|
|
};
|
|
|
|
struct reg_beacon {
|
|
struct list_head list;
|
|
struct ieee80211_channel chan;
|
|
};
|
|
|
|
struct fwdb_wmm_ac {
|
|
u8 ecw;
|
|
u8 aifsn;
|
|
__be16 cot;
|
|
};
|
|
|
|
struct reg_regdb_apply_request {
|
|
struct list_head list;
|
|
const struct ieee80211_regdomain *regdom;
|
|
};
|
|
|
|
struct fwdb_collection {
|
|
u8 len;
|
|
u8 n_rules;
|
|
u8 dfs_region;
|
|
char: 8;
|
|
};
|
|
|
|
struct fwdb_rule {
|
|
u8 len;
|
|
u8 flags;
|
|
__be16 max_eirp;
|
|
__be32 start;
|
|
__be32 end;
|
|
__be32 max_bw;
|
|
__be16 cac_timeout;
|
|
__be16 wmm_ptr;
|
|
};
|
|
|
|
struct fwdb_wmm_rule {
|
|
struct fwdb_wmm_ac client[4];
|
|
struct fwdb_wmm_ac ap[4];
|
|
};
|
|
|
|
struct mptcp_pernet {
|
|
struct ctl_table_header *ctl_table_hdr;
|
|
unsigned int add_addr_timeout;
|
|
unsigned int stale_loss_cnt;
|
|
u8 mptcp_enabled;
|
|
u8 checksum_enabled;
|
|
u8 allow_join_initial_addr_port;
|
|
u8 pm_type;
|
|
};
|
|
|
|
struct uevent_sock {
|
|
struct list_head list;
|
|
struct sock *sk;
|
|
};
|
|
|
|
typedef long (*sys_call_ptr_t)(const struct pt_regs *);
|
|
|
|
struct pt_filter {
|
|
unsigned long msr_a;
|
|
unsigned long msr_b;
|
|
unsigned long config;
|
|
};
|
|
|
|
struct pt_filters {
|
|
struct pt_filter filter[4];
|
|
unsigned int nr_filters;
|
|
};
|
|
|
|
struct pt {
|
|
struct perf_output_handle handle;
|
|
struct pt_filters filters;
|
|
int handle_nmi;
|
|
int vmx_on;
|
|
u64 output_base;
|
|
u64 output_mask;
|
|
};
|
|
|
|
struct pt_pmu {
|
|
struct pmu pmu;
|
|
u32 caps[8];
|
|
bool vmx;
|
|
bool branch_en_always_on;
|
|
unsigned long max_nonturbo_ratio;
|
|
unsigned int tsc_art_num;
|
|
unsigned int tsc_art_den;
|
|
};
|
|
|
|
struct pt_cap_desc {
|
|
const char *name;
|
|
u32 leaf;
|
|
u8 reg;
|
|
u32 mask;
|
|
};
|
|
|
|
struct pt_address_range {
|
|
unsigned long msr_a;
|
|
unsigned long msr_b;
|
|
unsigned int reg_off;
|
|
};
|
|
|
|
enum pt_capabilities {
|
|
PT_CAP_max_subleaf = 0,
|
|
PT_CAP_cr3_filtering = 1,
|
|
PT_CAP_psb_cyc = 2,
|
|
PT_CAP_ip_filtering = 3,
|
|
PT_CAP_mtc = 4,
|
|
PT_CAP_ptwrite = 5,
|
|
PT_CAP_power_event_trace = 6,
|
|
PT_CAP_event_trace = 7,
|
|
PT_CAP_tnt_disable = 8,
|
|
PT_CAP_topa_output = 9,
|
|
PT_CAP_topa_multiple_entries = 10,
|
|
PT_CAP_single_range_output = 11,
|
|
PT_CAP_output_subsys = 12,
|
|
PT_CAP_payloads_lip = 13,
|
|
PT_CAP_num_address_ranges = 14,
|
|
PT_CAP_mtc_periods = 15,
|
|
PT_CAP_cycle_thresholds = 16,
|
|
PT_CAP_psb_periods = 17,
|
|
};
|
|
|
|
enum {
|
|
x86_lbr_exclusive_lbr = 0,
|
|
x86_lbr_exclusive_bts = 1,
|
|
x86_lbr_exclusive_pt = 2,
|
|
x86_lbr_exclusive_max = 3,
|
|
};
|
|
|
|
enum perf_addr_filter_action_t {
|
|
PERF_ADDR_FILTER_ACTION_STOP = 0,
|
|
PERF_ADDR_FILTER_ACTION_START = 1,
|
|
PERF_ADDR_FILTER_ACTION_FILTER = 2,
|
|
};
|
|
|
|
struct topa {
|
|
struct list_head list;
|
|
u64 offset;
|
|
size_t size;
|
|
int last;
|
|
unsigned int z_count;
|
|
};
|
|
|
|
struct topa_entry {
|
|
u64 end: 1;
|
|
u64 rsvd0: 1;
|
|
u64 intr: 1;
|
|
u64 rsvd1: 1;
|
|
u64 stop: 1;
|
|
u64 rsvd2: 1;
|
|
u64 size: 4;
|
|
u64 rsvd3: 2;
|
|
u64 base: 36;
|
|
u64 rsvd4: 16;
|
|
};
|
|
|
|
struct topa_page {
|
|
struct topa_entry table[507];
|
|
struct topa topa;
|
|
};
|
|
|
|
struct perf_addr_filter {
|
|
struct list_head entry;
|
|
struct path path;
|
|
unsigned long offset;
|
|
unsigned long size;
|
|
enum perf_addr_filter_action_t action;
|
|
};
|
|
|
|
struct pt_buffer {
|
|
struct list_head tables;
|
|
struct topa *first;
|
|
struct topa *last;
|
|
struct topa *cur;
|
|
unsigned int cur_idx;
|
|
size_t output_off;
|
|
unsigned long nr_pages;
|
|
local_t data_size;
|
|
local64_t head;
|
|
bool snapshot;
|
|
bool single;
|
|
long stop_pos;
|
|
long intr_pos;
|
|
struct topa_entry *stop_te;
|
|
struct topa_entry *intr_te;
|
|
void **data_pages;
|
|
};
|
|
|
|
struct jump_label_patch {
|
|
const void *code;
|
|
int size;
|
|
};
|
|
|
|
struct stat64 {
|
|
unsigned long long st_dev;
|
|
unsigned char __pad0[4];
|
|
unsigned int __st_ino;
|
|
unsigned int st_mode;
|
|
unsigned int st_nlink;
|
|
unsigned int st_uid;
|
|
unsigned int st_gid;
|
|
unsigned long long st_rdev;
|
|
unsigned char __pad3[4];
|
|
long long st_size;
|
|
unsigned int st_blksize;
|
|
long long st_blocks;
|
|
unsigned int st_atime;
|
|
unsigned int st_atime_nsec;
|
|
unsigned int st_mtime;
|
|
unsigned int st_mtime_nsec;
|
|
unsigned int st_ctime;
|
|
unsigned int st_ctime_nsec;
|
|
unsigned long long st_ino;
|
|
} __attribute__((packed));
|
|
|
|
struct mmap_arg_struct32 {
|
|
unsigned int addr;
|
|
unsigned int len;
|
|
unsigned int prot;
|
|
unsigned int flags;
|
|
unsigned int fd;
|
|
unsigned int offset;
|
|
};
|
|
|
|
struct kernel_clone_args {
|
|
u64 flags;
|
|
int __attribute__((btf_type_tag("user"))) *pidfd;
|
|
int __attribute__((btf_type_tag("user"))) *child_tid;
|
|
int __attribute__((btf_type_tag("user"))) *parent_tid;
|
|
int exit_signal;
|
|
unsigned long stack;
|
|
unsigned long stack_size;
|
|
unsigned long tls;
|
|
pid_t *set_tid;
|
|
size_t set_tid_size;
|
|
int cgroup;
|
|
int io_thread;
|
|
int kthread;
|
|
int idle;
|
|
int (*fn)(void *);
|
|
void *fn_arg;
|
|
struct cgroup *cgrp;
|
|
struct css_set *cset;
|
|
};
|
|
|
|
struct tsc_adjust {
|
|
s64 bootval;
|
|
s64 adjusted;
|
|
unsigned long nextcheck;
|
|
bool warned;
|
|
};
|
|
|
|
struct ftrace_rec_iter;
|
|
|
|
union ftrace_op_code_union {
|
|
char code[7];
|
|
struct {
|
|
char op[3];
|
|
int offset;
|
|
} __attribute__((packed));
|
|
};
|
|
|
|
typedef struct {
|
|
efi_guid_t guid;
|
|
u64 table;
|
|
} efi_config_table_64_t;
|
|
|
|
struct kprobe_insn_cache {
|
|
struct mutex mutex;
|
|
void * (*alloc)();
|
|
void (*free)(void *);
|
|
const char *sym;
|
|
struct list_head pages;
|
|
size_t insn_size;
|
|
int nr_garbage;
|
|
};
|
|
|
|
struct param_attribute {
|
|
struct module_attribute mattr;
|
|
const struct kernel_param *param;
|
|
};
|
|
|
|
struct module_param_attrs {
|
|
unsigned int num;
|
|
struct attribute_group grp;
|
|
struct param_attribute attrs[0];
|
|
};
|
|
|
|
enum {
|
|
KERNEL_PARAM_OPS_FL_NOARG = 1,
|
|
};
|
|
|
|
enum {
|
|
KERNEL_PARAM_FL_UNSAFE = 1,
|
|
KERNEL_PARAM_FL_HWPARAM = 2,
|
|
};
|
|
|
|
struct kmalloced_param {
|
|
struct list_head list;
|
|
char val[0];
|
|
};
|
|
|
|
struct pm_vt_switch {
|
|
struct list_head head;
|
|
struct device *dev;
|
|
bool required;
|
|
};
|
|
|
|
struct irqchip_fwid {
|
|
struct fwnode_handle fwnode;
|
|
unsigned int type;
|
|
char *name;
|
|
phys_addr_t *pa;
|
|
};
|
|
|
|
enum audit_ntp_type {
|
|
AUDIT_NTP_OFFSET = 0,
|
|
AUDIT_NTP_FREQ = 1,
|
|
AUDIT_NTP_STATUS = 2,
|
|
AUDIT_NTP_TAI = 3,
|
|
AUDIT_NTP_TICK = 4,
|
|
AUDIT_NTP_ADJUST = 5,
|
|
AUDIT_NTP_NVALS = 6,
|
|
};
|
|
|
|
struct kexec_load_limit {
|
|
struct mutex mutex;
|
|
int limit;
|
|
};
|
|
|
|
enum kmsg_dump_reason {
|
|
KMSG_DUMP_UNDEF = 0,
|
|
KMSG_DUMP_PANIC = 1,
|
|
KMSG_DUMP_OOPS = 2,
|
|
KMSG_DUMP_EMERG = 3,
|
|
KMSG_DUMP_SHUTDOWN = 4,
|
|
KMSG_DUMP_MAX = 5,
|
|
};
|
|
|
|
struct bpf_cpu_map_entry;
|
|
|
|
struct xdp_bulk_queue {
|
|
void *q[8];
|
|
struct list_head flush_node;
|
|
struct bpf_cpu_map_entry *obj;
|
|
unsigned int count;
|
|
};
|
|
|
|
struct bpf_cpumap_val {
|
|
__u32 qsize;
|
|
union {
|
|
int fd;
|
|
__u32 id;
|
|
} bpf_prog;
|
|
};
|
|
|
|
struct bpf_cpu_map;
|
|
|
|
struct bpf_cpu_map_entry {
|
|
u32 cpu;
|
|
int map_id;
|
|
struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq;
|
|
struct bpf_cpu_map *cmap;
|
|
struct ptr_ring *queue;
|
|
struct task_struct *kthread;
|
|
struct bpf_cpumap_val value;
|
|
struct bpf_prog *prog;
|
|
atomic_t refcnt;
|
|
struct callback_head rcu;
|
|
struct work_struct kthread_stop_wq;
|
|
};
|
|
|
|
struct bpf_cpu_map {
|
|
struct bpf_map map;
|
|
struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct xdp_cpumap_stats {
|
|
unsigned int redirect;
|
|
unsigned int pass;
|
|
unsigned int drop;
|
|
};
|
|
|
|
enum pgt_entry {
|
|
NORMAL_PMD = 0,
|
|
HPAGE_PMD = 1,
|
|
NORMAL_PUD = 2,
|
|
HPAGE_PUD = 3,
|
|
};
|
|
|
|
struct user_arg_ptr {
|
|
bool is_compat;
|
|
union {
|
|
const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native;
|
|
const compat_uptr_t __attribute__((btf_type_tag("user"))) *compat;
|
|
} ptr;
|
|
};
|
|
|
|
struct timerfd_ctx {
|
|
union {
|
|
struct hrtimer tmr;
|
|
struct alarm alarm;
|
|
} t;
|
|
ktime_t tintv;
|
|
ktime_t moffs;
|
|
wait_queue_head_t wqh;
|
|
u64 ticks;
|
|
int clockid;
|
|
unsigned short expired;
|
|
unsigned short settime_flags;
|
|
struct callback_head rcu;
|
|
struct list_head clist;
|
|
spinlock_t cancel_lock;
|
|
bool might_cancel;
|
|
};
|
|
|
|
struct ext4_attr {
|
|
struct attribute attr;
|
|
short attr_id;
|
|
short attr_ptr;
|
|
unsigned short attr_size;
|
|
union {
|
|
int offset;
|
|
void *explicit_ptr;
|
|
} u;
|
|
};
|
|
|
|
enum {
|
|
attr_noop = 0,
|
|
attr_delayed_allocation_blocks = 1,
|
|
attr_session_write_kbytes = 2,
|
|
attr_lifetime_write_kbytes = 3,
|
|
attr_reserved_clusters = 4,
|
|
attr_sra_exceeded_retry_limit = 5,
|
|
attr_inode_readahead = 6,
|
|
attr_trigger_test_error = 7,
|
|
attr_first_error_time = 8,
|
|
attr_last_error_time = 9,
|
|
attr_feature = 10,
|
|
attr_pointer_ui = 11,
|
|
attr_pointer_ul = 12,
|
|
attr_pointer_u64 = 13,
|
|
attr_pointer_u8 = 14,
|
|
attr_pointer_string = 15,
|
|
attr_pointer_atomic = 16,
|
|
attr_journal_task = 17,
|
|
};
|
|
|
|
enum {
|
|
ptr_explicit = 0,
|
|
ptr_ext4_sb_info_offset = 1,
|
|
ptr_ext4_super_block_offset = 2,
|
|
};
|
|
|
|
struct nfs_callback_data {
|
|
unsigned int users;
|
|
struct svc_serv *serv;
|
|
};
|
|
|
|
enum nfs4_callback_procnum {
|
|
CB_NULL = 0,
|
|
CB_COMPOUND = 1,
|
|
};
|
|
|
|
struct sem_undo_list {
|
|
refcount_t refcnt;
|
|
spinlock_t lock;
|
|
struct list_head list_proc;
|
|
};
|
|
|
|
struct sem_undo {
|
|
struct list_head list_proc;
|
|
struct callback_head rcu;
|
|
struct sem_undo_list *ulp;
|
|
struct list_head list_id;
|
|
int semid;
|
|
short *semadj;
|
|
};
|
|
|
|
struct sem {
|
|
int semval;
|
|
struct pid *sempid;
|
|
spinlock_t lock;
|
|
struct list_head pending_alter;
|
|
struct list_head pending_const;
|
|
time64_t sem_otime;
|
|
};
|
|
|
|
struct sem_array {
|
|
struct kern_ipc_perm sem_perm;
|
|
time64_t sem_ctime;
|
|
struct list_head pending_alter;
|
|
struct list_head pending_const;
|
|
struct list_head list_id;
|
|
int sem_nsems;
|
|
int complex_count;
|
|
unsigned int use_global_lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct sem sems[0];
|
|
};
|
|
|
|
struct sem_queue {
|
|
struct list_head list;
|
|
struct task_struct *sleeper;
|
|
struct sem_undo *undo;
|
|
struct pid *pid;
|
|
int status;
|
|
struct sembuf *sops;
|
|
struct sembuf *blocking;
|
|
int nsops;
|
|
bool alter;
|
|
bool dupsop;
|
|
};
|
|
|
|
struct semid64_ds {
|
|
struct ipc64_perm sem_perm;
|
|
__kernel_long_t sem_otime;
|
|
__kernel_ulong_t __unused1;
|
|
__kernel_long_t sem_ctime;
|
|
__kernel_ulong_t __unused2;
|
|
__kernel_ulong_t sem_nsems;
|
|
__kernel_ulong_t __unused3;
|
|
__kernel_ulong_t __unused4;
|
|
};
|
|
|
|
struct semid_ds {
|
|
struct ipc_perm sem_perm;
|
|
__kernel_old_time_t sem_otime;
|
|
__kernel_old_time_t sem_ctime;
|
|
struct sem *sem_base;
|
|
struct sem_queue *sem_pending;
|
|
struct sem_queue **sem_pending_last;
|
|
struct sem_undo *undo;
|
|
unsigned short sem_nsems;
|
|
};
|
|
|
|
struct compat_semid64_ds {
|
|
struct compat_ipc64_perm sem_perm;
|
|
compat_ulong_t sem_otime;
|
|
compat_ulong_t sem_otime_high;
|
|
compat_ulong_t sem_ctime;
|
|
compat_ulong_t sem_ctime_high;
|
|
compat_ulong_t sem_nsems;
|
|
compat_ulong_t __unused3;
|
|
compat_ulong_t __unused4;
|
|
};
|
|
|
|
struct compat_semid_ds {
|
|
struct compat_ipc_perm sem_perm;
|
|
old_time32_t sem_otime;
|
|
old_time32_t sem_ctime;
|
|
compat_uptr_t sem_base;
|
|
compat_uptr_t sem_pending;
|
|
compat_uptr_t sem_pending_last;
|
|
compat_uptr_t undo;
|
|
unsigned short sem_nsems;
|
|
};
|
|
|
|
struct seminfo {
|
|
int semmap;
|
|
int semmni;
|
|
int semmns;
|
|
int semmnu;
|
|
int semmsl;
|
|
int semopm;
|
|
int semume;
|
|
int semusz;
|
|
int semvmx;
|
|
int semaem;
|
|
};
|
|
|
|
struct dccp_hdr {
|
|
__be16 dccph_sport;
|
|
__be16 dccph_dport;
|
|
__u8 dccph_doff;
|
|
__u8 dccph_cscov: 4;
|
|
__u8 dccph_ccval: 4;
|
|
__sum16 dccph_checksum;
|
|
__u8 dccph_x: 1;
|
|
__u8 dccph_type: 4;
|
|
__u8 dccph_reserved: 3;
|
|
__u8 dccph_seq2;
|
|
__be16 dccph_seq;
|
|
};
|
|
|
|
struct rand_data {
|
|
__u64 data;
|
|
__u64 old_data;
|
|
__u64 prev_time;
|
|
__u64 last_delta;
|
|
__s64 last_delta2;
|
|
unsigned int osr;
|
|
unsigned char *mem;
|
|
unsigned int memlocation;
|
|
unsigned int memblocks;
|
|
unsigned int memblocksize;
|
|
unsigned int memaccessloops;
|
|
int rct_count;
|
|
unsigned int apt_observations;
|
|
unsigned int apt_count;
|
|
unsigned int apt_base;
|
|
unsigned int apt_base_set: 1;
|
|
unsigned int health_failure: 1;
|
|
};
|
|
|
|
struct io_cancel {
|
|
struct file *file;
|
|
u64 addr;
|
|
u32 flags;
|
|
s32 fd;
|
|
};
|
|
|
|
struct io_tctx_node {
|
|
struct list_head ctx_node;
|
|
struct task_struct *task;
|
|
struct io_ring_ctx *ctx;
|
|
};
|
|
|
|
struct io_uring_sync_cancel_reg {
|
|
__u64 addr;
|
|
__s32 fd;
|
|
__u32 flags;
|
|
struct __kernel_timespec timeout;
|
|
__u64 pad[4];
|
|
};
|
|
|
|
typedef uint8_t U8;
|
|
|
|
typedef struct {
|
|
U16 nextState;
|
|
BYTE nbAdditionalBits;
|
|
BYTE nbBits;
|
|
U32 baseValue;
|
|
} ZSTD_seqSymbol;
|
|
|
|
typedef enum {
|
|
bt_raw = 0,
|
|
bt_rle = 1,
|
|
bt_compressed = 2,
|
|
bt_reserved = 3,
|
|
} blockType_e;
|
|
|
|
typedef enum {
|
|
set_basic = 0,
|
|
set_rle = 1,
|
|
set_compressed = 2,
|
|
set_repeat = 3,
|
|
} symbolEncodingType_e;
|
|
|
|
typedef enum {
|
|
ZSTD_lo_isRegularOffset = 0,
|
|
ZSTD_lo_isLongOffset = 1,
|
|
} ZSTD_longOffset_e;
|
|
|
|
typedef struct {
|
|
U32 fastMode;
|
|
U32 tableLog;
|
|
} ZSTD_seqSymbol_header;
|
|
|
|
typedef struct {
|
|
ZSTD_seqSymbol LLTable[513];
|
|
ZSTD_seqSymbol OFTable[257];
|
|
ZSTD_seqSymbol MLTable[513];
|
|
HUF_DTable hufTable[4097];
|
|
U32 rep[3];
|
|
U32 workspace[157];
|
|
} ZSTD_entropyDTables_t;
|
|
|
|
typedef enum {
|
|
ZSTDds_getFrameHeaderSize = 0,
|
|
ZSTDds_decodeFrameHeader = 1,
|
|
ZSTDds_decodeBlockHeader = 2,
|
|
ZSTDds_decompressBlock = 3,
|
|
ZSTDds_decompressLastBlock = 4,
|
|
ZSTDds_checkChecksum = 5,
|
|
ZSTDds_decodeSkippableHeader = 6,
|
|
ZSTDds_skipFrame = 7,
|
|
} ZSTD_dStage;
|
|
|
|
typedef enum {
|
|
ZSTD_f_zstd1 = 0,
|
|
ZSTD_f_zstd1_magicless = 1,
|
|
} ZSTD_format_e;
|
|
|
|
typedef enum {
|
|
ZSTD_d_validateChecksum = 0,
|
|
ZSTD_d_ignoreChecksum = 1,
|
|
} ZSTD_forceIgnoreChecksum_e;
|
|
|
|
typedef void * (*ZSTD_allocFunction)(void *, size_t);
|
|
|
|
typedef void (*ZSTD_freeFunction)(void *, void *);
|
|
|
|
typedef struct {
|
|
ZSTD_allocFunction customAlloc;
|
|
ZSTD_freeFunction customFree;
|
|
void *opaque;
|
|
} ZSTD_customMem;
|
|
|
|
typedef enum {
|
|
ZSTD_use_indefinitely = -1,
|
|
ZSTD_dont_use = 0,
|
|
ZSTD_use_once = 1,
|
|
} ZSTD_dictUses_e;
|
|
|
|
struct ZSTD_DDict_s;
|
|
|
|
typedef struct ZSTD_DDict_s ZSTD_DDict;
|
|
|
|
typedef struct {
|
|
const ZSTD_DDict **ddictPtrTable;
|
|
size_t ddictPtrTableSize;
|
|
size_t ddictPtrCount;
|
|
} ZSTD_DDictHashSet;
|
|
|
|
typedef enum {
|
|
ZSTD_rmd_refSingleDDict = 0,
|
|
ZSTD_rmd_refMultipleDDicts = 1,
|
|
} ZSTD_refMultipleDDicts_e;
|
|
|
|
typedef enum {
|
|
zdss_init = 0,
|
|
zdss_loadHeader = 1,
|
|
zdss_read = 2,
|
|
zdss_load = 3,
|
|
zdss_flush = 4,
|
|
} ZSTD_dStreamStage;
|
|
|
|
typedef enum {
|
|
ZSTD_bm_buffered = 0,
|
|
ZSTD_bm_stable = 1,
|
|
} ZSTD_bufferMode_e;
|
|
|
|
typedef enum {
|
|
ZSTD_not_in_dst = 0,
|
|
ZSTD_in_dst = 1,
|
|
ZSTD_split = 2,
|
|
} ZSTD_litLocation_e;
|
|
|
|
struct ZSTD_DCtx_s {
|
|
const ZSTD_seqSymbol *LLTptr;
|
|
const ZSTD_seqSymbol *MLTptr;
|
|
const ZSTD_seqSymbol *OFTptr;
|
|
const HUF_DTable *HUFptr;
|
|
ZSTD_entropyDTables_t entropy;
|
|
U32 workspace[640];
|
|
const void *previousDstEnd;
|
|
const void *prefixStart;
|
|
const void *virtualStart;
|
|
const void *dictEnd;
|
|
size_t expected;
|
|
ZSTD_frameHeader fParams;
|
|
U64 processedCSize;
|
|
U64 decodedSize;
|
|
blockType_e bType;
|
|
ZSTD_dStage stage;
|
|
U32 litEntropy;
|
|
U32 fseEntropy;
|
|
struct xxh64_state xxhState;
|
|
size_t headerSize;
|
|
ZSTD_format_e format;
|
|
ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum;
|
|
U32 validateChecksum;
|
|
const BYTE *litPtr;
|
|
ZSTD_customMem customMem;
|
|
size_t litSize;
|
|
size_t rleSize;
|
|
size_t staticSize;
|
|
int bmi2;
|
|
ZSTD_DDict *ddictLocal;
|
|
const ZSTD_DDict *ddict;
|
|
U32 dictID;
|
|
int ddictIsCold;
|
|
ZSTD_dictUses_e dictUses;
|
|
ZSTD_DDictHashSet *ddictSet;
|
|
ZSTD_refMultipleDDicts_e refMultipleDDicts;
|
|
ZSTD_dStreamStage streamStage;
|
|
char *inBuff;
|
|
size_t inBuffSize;
|
|
size_t inPos;
|
|
size_t maxWindowSize;
|
|
char *outBuff;
|
|
size_t outBuffSize;
|
|
size_t outStart;
|
|
size_t outEnd;
|
|
size_t lhSize;
|
|
U32 hostageByte;
|
|
int noForwardProgress;
|
|
ZSTD_bufferMode_e outBufferMode;
|
|
ZSTD_outBuffer expectedOutBuffer;
|
|
BYTE *litBuffer;
|
|
const BYTE *litBufferEnd;
|
|
ZSTD_litLocation_e litBufferLocation;
|
|
BYTE litExtraBuffer[65568];
|
|
BYTE headerBuffer[18];
|
|
size_t oversizedDuration;
|
|
};
|
|
|
|
typedef struct ZSTD_DCtx_s ZSTD_DCtx___2;
|
|
|
|
struct ZSTD_DDict_s {
|
|
void *dictBuffer;
|
|
const void *dictContent;
|
|
size_t dictSize;
|
|
ZSTD_entropyDTables_t entropy;
|
|
U32 dictID;
|
|
U32 entropyPresent;
|
|
ZSTD_customMem cMem;
|
|
};
|
|
|
|
typedef enum {
|
|
not_streaming = 0,
|
|
is_streaming = 1,
|
|
} streaming_operation;
|
|
|
|
typedef struct {
|
|
size_t litLength;
|
|
size_t matchLength;
|
|
size_t offset;
|
|
} seq_t;
|
|
|
|
typedef struct {
|
|
size_t state;
|
|
const ZSTD_seqSymbol *table;
|
|
} ZSTD_fseState;
|
|
|
|
typedef struct {
|
|
BIT_DStream_t DStream;
|
|
ZSTD_fseState stateLL;
|
|
ZSTD_fseState stateOffb;
|
|
ZSTD_fseState stateML;
|
|
size_t prevOffset[3];
|
|
} seqState_t;
|
|
|
|
typedef enum {
|
|
ZSTD_no_overlap = 0,
|
|
ZSTD_overlap_src_before_dst = 1,
|
|
} ZSTD_overlap_e;
|
|
|
|
typedef struct {
|
|
blockType_e blockType;
|
|
U32 lastBlock;
|
|
U32 origSize;
|
|
} blockProperties_t;
|
|
|
|
struct portdrv_service_data {
|
|
struct pcie_port_service_driver *drv;
|
|
struct device *dev;
|
|
u32 service;
|
|
};
|
|
|
|
typedef int (*pcie_callback_t)(struct pcie_device *);
|
|
|
|
struct acpi_probe_entry;
|
|
|
|
typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *);
|
|
|
|
struct acpi_probe_entry {
|
|
__u8 id[5];
|
|
__u8 type;
|
|
acpi_probe_entry_validate_subtbl subtable_valid;
|
|
union {
|
|
acpi_tbl_table_handler probe_table;
|
|
acpi_tbl_entry_handler probe_subtbl;
|
|
};
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
struct acpi_dep_data {
|
|
struct list_head node;
|
|
acpi_handle supplier;
|
|
acpi_handle consumer;
|
|
bool honor_dep;
|
|
};
|
|
|
|
struct acpi_scan_clear_dep_work {
|
|
struct work_struct work;
|
|
struct acpi_device *adev;
|
|
};
|
|
|
|
struct acpi_table_stao {
|
|
struct acpi_table_header header;
|
|
u8 ignore_uart;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_table_spcr {
|
|
struct acpi_table_header header;
|
|
u8 interface_type;
|
|
u8 reserved[3];
|
|
struct acpi_generic_address serial_port;
|
|
u8 interrupt_type;
|
|
u8 pc_interrupt;
|
|
u32 interrupt;
|
|
u8 baud_rate;
|
|
u8 parity;
|
|
u8 stop_bits;
|
|
u8 flow_control;
|
|
u8 terminal_type;
|
|
u8 reserved1;
|
|
u16 pci_device_id;
|
|
u16 pci_vendor_id;
|
|
u8 pci_bus;
|
|
u8 pci_device;
|
|
u8 pci_function;
|
|
u32 pci_flags;
|
|
u8 pci_segment;
|
|
u32 reserved2;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_vendor_walk_info {
|
|
struct acpi_vendor_uuid *uuid;
|
|
struct acpi_buffer *buffer;
|
|
acpi_status status;
|
|
};
|
|
|
|
struct kbdiacruc {
|
|
unsigned int diacr;
|
|
unsigned int base;
|
|
unsigned int result;
|
|
};
|
|
|
|
struct uart_driver {
|
|
struct module *owner;
|
|
const char *driver_name;
|
|
const char *dev_name;
|
|
int major;
|
|
int minor;
|
|
int nr;
|
|
struct console *cons;
|
|
struct uart_state *state;
|
|
struct tty_driver *tty_driver;
|
|
};
|
|
|
|
struct uart_match {
|
|
struct uart_port *port;
|
|
struct uart_driver *driver;
|
|
};
|
|
|
|
struct tpmrm_priv {
|
|
struct file_priv priv;
|
|
struct tpm_space space;
|
|
};
|
|
|
|
struct drm_auth {
|
|
drm_magic_t magic;
|
|
};
|
|
|
|
struct ttm_bo_kmap_obj {
|
|
void *virtual;
|
|
struct page *page;
|
|
enum {
|
|
ttm_bo_map_iomap = 129,
|
|
ttm_bo_map_vmap = 2,
|
|
ttm_bo_map_kmap = 3,
|
|
ttm_bo_map_premapped = 132,
|
|
} bo_kmap_type;
|
|
struct ttm_buffer_object___2 *bo;
|
|
};
|
|
|
|
struct ttm_transfer_obj {
|
|
struct ttm_buffer_object___2 base;
|
|
struct ttm_buffer_object___2 *bo;
|
|
};
|
|
|
|
struct ttm_kmap_iter_linear_io {
|
|
struct ttm_kmap_iter base;
|
|
struct iosys_map dmap;
|
|
bool needs_unmap;
|
|
};
|
|
|
|
struct active_node {
|
|
struct rb_node node;
|
|
struct i915_active_fence base;
|
|
struct i915_active *ref;
|
|
u64 timeline;
|
|
};
|
|
|
|
struct auto_active {
|
|
struct i915_active base;
|
|
struct kref ref;
|
|
};
|
|
|
|
struct wait_barrier {
|
|
struct wait_queue_entry base;
|
|
struct i915_active *ref;
|
|
};
|
|
|
|
struct bxt_ddi_phy_info {
|
|
bool dual_channel;
|
|
enum dpio_phy rcomp_phy;
|
|
int reset_delay;
|
|
u32 pwron_mask;
|
|
struct {
|
|
enum port port;
|
|
} channel[2];
|
|
};
|
|
|
|
struct regmap_range_cfg;
|
|
|
|
struct regmap_config {
|
|
const char *name;
|
|
int reg_bits;
|
|
int reg_stride;
|
|
int reg_downshift;
|
|
unsigned int reg_base;
|
|
int pad_bits;
|
|
int val_bits;
|
|
bool (*writeable_reg)(struct device *, unsigned int);
|
|
bool (*readable_reg)(struct device *, unsigned int);
|
|
bool (*volatile_reg)(struct device *, unsigned int);
|
|
bool (*precious_reg)(struct device *, unsigned int);
|
|
bool (*writeable_noinc_reg)(struct device *, unsigned int);
|
|
bool (*readable_noinc_reg)(struct device *, unsigned int);
|
|
bool disable_locking;
|
|
regmap_lock lock;
|
|
regmap_unlock unlock;
|
|
void *lock_arg;
|
|
int (*reg_read)(void *, unsigned int, unsigned int *);
|
|
int (*reg_write)(void *, unsigned int, unsigned int);
|
|
int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int);
|
|
int (*read)(void *, const void *, size_t, void *, size_t);
|
|
int (*write)(void *, const void *, size_t);
|
|
size_t max_raw_read;
|
|
size_t max_raw_write;
|
|
bool fast_io;
|
|
bool io_port;
|
|
unsigned int max_register;
|
|
const struct regmap_access_table *wr_table;
|
|
const struct regmap_access_table *rd_table;
|
|
const struct regmap_access_table *volatile_table;
|
|
const struct regmap_access_table *precious_table;
|
|
const struct regmap_access_table *wr_noinc_table;
|
|
const struct regmap_access_table *rd_noinc_table;
|
|
const struct reg_default *reg_defaults;
|
|
unsigned int num_reg_defaults;
|
|
enum regcache_type cache_type;
|
|
const void *reg_defaults_raw;
|
|
unsigned int num_reg_defaults_raw;
|
|
unsigned long read_flag_mask;
|
|
unsigned long write_flag_mask;
|
|
bool zero_flag_mask;
|
|
bool use_single_read;
|
|
bool use_single_write;
|
|
bool use_relaxed_mmio;
|
|
bool can_multi_write;
|
|
enum regmap_endian reg_format_endian;
|
|
enum regmap_endian val_format_endian;
|
|
const struct regmap_range_cfg *ranges;
|
|
unsigned int num_ranges;
|
|
bool use_hwlock;
|
|
bool use_raw_spinlock;
|
|
unsigned int hwlock_id;
|
|
unsigned int hwlock_mode;
|
|
bool can_sleep;
|
|
};
|
|
|
|
struct regmap_range_cfg {
|
|
const char *name;
|
|
unsigned int range_min;
|
|
unsigned int range_max;
|
|
unsigned int selector_reg;
|
|
unsigned int selector_mask;
|
|
int selector_shift;
|
|
unsigned int window_start;
|
|
unsigned int window_len;
|
|
};
|
|
|
|
struct scsi_lun {
|
|
__u8 scsi_lun[8];
|
|
};
|
|
|
|
enum pr_status {
|
|
PR_STS_SUCCESS = 0,
|
|
PR_STS_IOERR = 2,
|
|
PR_STS_RESERVATION_CONFLICT = 24,
|
|
PR_STS_RETRY_PATH_FAILURE = 917504,
|
|
PR_STS_PATH_FAST_FAILED = 983040,
|
|
PR_STS_PATH_FAILED = 65536,
|
|
};
|
|
|
|
enum {
|
|
SD_DEF_XFER_BLOCKS = 65535,
|
|
SD_MAX_XFER_BLOCKS = 4294967295,
|
|
SD_MAX_WS10_BLOCKS = 65535,
|
|
SD_MAX_WS16_BLOCKS = 8388607,
|
|
};
|
|
|
|
enum {
|
|
SD_LBP_FULL = 0,
|
|
SD_LBP_UNMAP = 1,
|
|
SD_LBP_WS16 = 2,
|
|
SD_LBP_WS10 = 3,
|
|
SD_LBP_ZERO = 4,
|
|
SD_LBP_DISABLE = 5,
|
|
};
|
|
|
|
enum t10_dif_type {
|
|
T10_PI_TYPE0_PROTECTION = 0,
|
|
T10_PI_TYPE1_PROTECTION = 1,
|
|
T10_PI_TYPE2_PROTECTION = 2,
|
|
T10_PI_TYPE3_PROTECTION = 3,
|
|
};
|
|
|
|
enum {
|
|
SD_ZERO_WRITE = 0,
|
|
SD_ZERO_WS = 1,
|
|
SD_ZERO_WS16_UNMAP = 2,
|
|
SD_ZERO_WS10_UNMAP = 3,
|
|
};
|
|
|
|
enum bip_flags {
|
|
BIP_BLOCK_INTEGRITY = 1,
|
|
BIP_MAPPED_INTEGRITY = 2,
|
|
BIP_CTRL_NOCHECK = 4,
|
|
BIP_DISK_NOCHECK = 8,
|
|
BIP_IP_CHECKSUM = 16,
|
|
};
|
|
|
|
enum scsi_prot_flags {
|
|
SCSI_PROT_TRANSFER_PI = 1,
|
|
SCSI_PROT_GUARD_CHECK = 2,
|
|
SCSI_PROT_REF_CHECK = 4,
|
|
SCSI_PROT_REF_INCREMENT = 8,
|
|
SCSI_PROT_IP_CHECKSUM = 16,
|
|
};
|
|
|
|
enum {
|
|
SD_EXT_CDB_SIZE = 32,
|
|
SD_MEMPOOL_SIZE = 2,
|
|
};
|
|
|
|
struct virtnet_stat_desc {
|
|
char desc[32];
|
|
size_t offset;
|
|
};
|
|
|
|
enum {
|
|
ETH_RSS_HASH_TOP_BIT = 0,
|
|
ETH_RSS_HASH_XOR_BIT = 1,
|
|
ETH_RSS_HASH_CRC32_BIT = 2,
|
|
ETH_RSS_HASH_FUNCS_COUNT = 3,
|
|
};
|
|
|
|
struct send_queue;
|
|
|
|
struct receive_queue;
|
|
|
|
struct control_buf;
|
|
|
|
struct failover;
|
|
|
|
struct virtnet_info {
|
|
struct virtio_device *vdev;
|
|
struct virtqueue *cvq;
|
|
struct net_device *dev;
|
|
struct send_queue *sq;
|
|
struct receive_queue *rq;
|
|
unsigned int status;
|
|
u16 max_queue_pairs;
|
|
u16 curr_queue_pairs;
|
|
u16 xdp_queue_pairs;
|
|
bool xdp_enabled;
|
|
bool big_packets;
|
|
unsigned int big_packets_num_skbfrags;
|
|
bool mergeable_rx_bufs;
|
|
bool has_rss;
|
|
bool has_rss_hash_report;
|
|
u8 rss_key_size;
|
|
u16 rss_indir_table_size;
|
|
u32 rss_hash_types_supported;
|
|
u32 rss_hash_types_saved;
|
|
bool has_cvq;
|
|
bool any_header_sg;
|
|
u8 hdr_len;
|
|
struct delayed_work refill;
|
|
bool refill_enabled;
|
|
spinlock_t refill_lock;
|
|
struct work_struct config_work;
|
|
bool affinity_hint_set;
|
|
struct hlist_node node;
|
|
struct hlist_node node_dead;
|
|
struct control_buf *ctrl;
|
|
u8 duplex;
|
|
u32 speed;
|
|
u32 tx_usecs;
|
|
u32 rx_usecs;
|
|
u32 tx_max_packets;
|
|
u32 rx_max_packets;
|
|
unsigned long guest_offloads;
|
|
unsigned long guest_offloads_capable;
|
|
struct failover *failover;
|
|
};
|
|
|
|
struct virtnet_sq_stats {
|
|
struct u64_stats_sync syncp;
|
|
u64 packets;
|
|
u64 bytes;
|
|
u64 xdp_tx;
|
|
u64 xdp_tx_drops;
|
|
u64 kicks;
|
|
u64 tx_timeouts;
|
|
};
|
|
|
|
struct send_queue {
|
|
struct virtqueue *vq;
|
|
struct scatterlist sg[19];
|
|
char name[16];
|
|
struct virtnet_sq_stats stats;
|
|
struct napi_struct napi;
|
|
bool reset;
|
|
};
|
|
|
|
struct virtnet_rq_stats {
|
|
struct u64_stats_sync syncp;
|
|
u64 packets;
|
|
u64 bytes;
|
|
u64 drops;
|
|
u64 xdp_packets;
|
|
u64 xdp_tx;
|
|
u64 xdp_redirects;
|
|
u64 xdp_drops;
|
|
u64 kicks;
|
|
};
|
|
|
|
struct ewma_pkt_len {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct receive_queue {
|
|
struct virtqueue *vq;
|
|
struct napi_struct napi;
|
|
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog;
|
|
struct virtnet_rq_stats stats;
|
|
struct page *pages;
|
|
struct ewma_pkt_len mrg_avg_pkt_len;
|
|
struct page_frag alloc_frag;
|
|
struct scatterlist sg[19];
|
|
unsigned int min_buf_len;
|
|
char name[16];
|
|
long: 32;
|
|
long: 64;
|
|
struct xdp_rxq_info xdp_rxq;
|
|
};
|
|
|
|
struct virtio_net_ctrl_hdr {
|
|
__u8 class;
|
|
__u8 cmd;
|
|
};
|
|
|
|
typedef __u8 virtio_net_ctrl_ack;
|
|
|
|
struct virtio_net_ctrl_mq {
|
|
__virtio16 virtqueue_pairs;
|
|
};
|
|
|
|
struct virtio_net_ctrl_rss {
|
|
u32 hash_types;
|
|
u16 indirection_table_mask;
|
|
u16 unclassified_queue;
|
|
u16 indirection_table[128];
|
|
u16 max_tx_vq;
|
|
u8 hash_key_length;
|
|
u8 key[40];
|
|
};
|
|
|
|
struct control_buf {
|
|
struct virtio_net_ctrl_hdr hdr;
|
|
virtio_net_ctrl_ack status;
|
|
struct virtio_net_ctrl_mq mq;
|
|
u8 promisc;
|
|
u8 allmulti;
|
|
__virtio16 vid;
|
|
__virtio64 offloads;
|
|
struct virtio_net_ctrl_rss rss;
|
|
};
|
|
|
|
struct failover_ops;
|
|
|
|
struct failover {
|
|
struct list_head list;
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *failover_dev;
|
|
netdevice_tracker dev_tracker;
|
|
struct failover_ops __attribute__((btf_type_tag("rcu"))) *ops;
|
|
};
|
|
|
|
struct failover_ops {
|
|
int (*slave_pre_register)(struct net_device *, struct net_device *);
|
|
int (*slave_register)(struct net_device *, struct net_device *);
|
|
int (*slave_pre_unregister)(struct net_device *, struct net_device *);
|
|
int (*slave_unregister)(struct net_device *, struct net_device *);
|
|
int (*slave_link_change)(struct net_device *, struct net_device *);
|
|
int (*slave_name_change)(struct net_device *, struct net_device *);
|
|
rx_handler_result_t (*slave_handle_frame)(struct sk_buff **);
|
|
};
|
|
|
|
struct virtio_net_hdr_mrg_rxbuf {
|
|
struct virtio_net_hdr hdr;
|
|
__virtio16 num_buffers;
|
|
};
|
|
|
|
struct virtio_net_hdr_v1 {
|
|
__u8 flags;
|
|
__u8 gso_type;
|
|
__virtio16 hdr_len;
|
|
__virtio16 gso_size;
|
|
union {
|
|
struct {
|
|
__virtio16 csum_start;
|
|
__virtio16 csum_offset;
|
|
};
|
|
struct {
|
|
__virtio16 start;
|
|
__virtio16 offset;
|
|
} csum;
|
|
struct {
|
|
__le16 segments;
|
|
__le16 dup_acks;
|
|
} rsc;
|
|
};
|
|
__virtio16 num_buffers;
|
|
};
|
|
|
|
struct virtio_net_hdr_v1_hash {
|
|
struct virtio_net_hdr_v1 hdr;
|
|
__le32 hash_value;
|
|
__le16 hash_report;
|
|
__le16 padding;
|
|
};
|
|
|
|
struct virtio_net_ctrl_coal_tx {
|
|
__le32 tx_max_packets;
|
|
__le32 tx_usecs;
|
|
};
|
|
|
|
struct virtio_net_ctrl_coal_rx {
|
|
__le32 rx_max_packets;
|
|
__le32 rx_usecs;
|
|
};
|
|
|
|
struct virtio_net_ctrl_mac {
|
|
__virtio32 entries;
|
|
__u8 macs[0];
|
|
};
|
|
|
|
struct usb_mon_operations {
|
|
void (*urb_submit)(struct usb_bus *, struct urb *);
|
|
void (*urb_submit_error)(struct usb_bus *, struct urb *, int);
|
|
void (*urb_complete)(struct usb_bus *, struct urb *, int);
|
|
};
|
|
|
|
enum usb_led_event {
|
|
USB_LED_EVENT_HOST = 0,
|
|
USB_LED_EVENT_GADGET = 1,
|
|
};
|
|
|
|
struct quirk_printer_struct {
|
|
__u16 vendorId;
|
|
__u16 productId;
|
|
unsigned int quirks;
|
|
};
|
|
|
|
struct usblp {
|
|
struct usb_device *dev;
|
|
struct mutex wmut;
|
|
struct mutex mut;
|
|
spinlock_t lock;
|
|
char *readbuf;
|
|
char *statusbuf;
|
|
struct usb_anchor urbs;
|
|
wait_queue_head_t rwait;
|
|
wait_queue_head_t wwait;
|
|
int readcount;
|
|
int ifnum;
|
|
struct usb_interface *intf;
|
|
struct {
|
|
int alt_setting;
|
|
struct usb_endpoint_descriptor *epwrite;
|
|
struct usb_endpoint_descriptor *epread;
|
|
} protocol[4];
|
|
int current_protocol;
|
|
int minor;
|
|
int wcomplete;
|
|
int rcomplete;
|
|
int wstatus;
|
|
int rstatus;
|
|
unsigned int quirks;
|
|
unsigned int flags;
|
|
unsigned char used;
|
|
unsigned char present;
|
|
unsigned char bidir;
|
|
unsigned char no_paper;
|
|
unsigned char *device_id_string;
|
|
};
|
|
|
|
enum input_clock_type {
|
|
INPUT_CLK_REAL = 0,
|
|
INPUT_CLK_MONO = 1,
|
|
INPUT_CLK_BOOT = 2,
|
|
INPUT_CLK_MAX = 3,
|
|
};
|
|
|
|
struct evdev;
|
|
|
|
struct evdev_client {
|
|
unsigned int head;
|
|
unsigned int tail;
|
|
unsigned int packet_head;
|
|
spinlock_t buffer_lock;
|
|
wait_queue_head_t wait;
|
|
struct fasync_struct *fasync;
|
|
struct evdev *evdev;
|
|
struct list_head node;
|
|
enum input_clock_type clk_type;
|
|
bool revoked;
|
|
unsigned long *evmasks[32];
|
|
unsigned int bufsize;
|
|
struct input_event buffer[0];
|
|
};
|
|
|
|
struct evdev {
|
|
int open;
|
|
struct input_handle handle;
|
|
struct evdev_client __attribute__((btf_type_tag("rcu"))) *grab;
|
|
struct list_head client_list;
|
|
spinlock_t client_lock;
|
|
struct mutex mutex;
|
|
struct device dev;
|
|
struct cdev cdev;
|
|
bool exist;
|
|
};
|
|
|
|
struct input_mask {
|
|
__u32 type;
|
|
__u32 codes_size;
|
|
__u64 codes_ptr;
|
|
};
|
|
|
|
enum blk_crypto_mode_num {
|
|
BLK_ENCRYPTION_MODE_INVALID = 0,
|
|
BLK_ENCRYPTION_MODE_AES_256_XTS = 1,
|
|
BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2,
|
|
BLK_ENCRYPTION_MODE_ADIANTUM = 3,
|
|
BLK_ENCRYPTION_MODE_SM4_XTS = 4,
|
|
BLK_ENCRYPTION_MODE_MAX = 5,
|
|
};
|
|
|
|
enum suspend_mode {
|
|
PRESUSPEND = 0,
|
|
PRESUSPEND_UNDO = 1,
|
|
POSTSUSPEND = 2,
|
|
};
|
|
|
|
struct dm_arg {
|
|
unsigned int min;
|
|
unsigned int max;
|
|
char *error;
|
|
};
|
|
|
|
struct blk_crypto_profile;
|
|
|
|
struct blk_crypto_key;
|
|
|
|
struct blk_crypto_ll_ops {
|
|
int (*keyslot_program)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int);
|
|
int (*keyslot_evict)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int);
|
|
};
|
|
|
|
struct blk_crypto_keyslot;
|
|
|
|
struct blk_crypto_profile {
|
|
struct blk_crypto_ll_ops ll_ops;
|
|
unsigned int max_dun_bytes_supported;
|
|
unsigned int modes_supported[5];
|
|
struct device *dev;
|
|
unsigned int num_slots;
|
|
struct rw_semaphore lock;
|
|
wait_queue_head_t idle_slots_wait_queue;
|
|
struct list_head idle_slots;
|
|
spinlock_t idle_slots_lock;
|
|
struct hlist_head *slot_hashtable;
|
|
unsigned int log_slot_ht_size;
|
|
struct blk_crypto_keyslot *slots;
|
|
};
|
|
|
|
struct blk_crypto_config {
|
|
enum blk_crypto_mode_num crypto_mode;
|
|
unsigned int data_unit_size;
|
|
unsigned int dun_bytes;
|
|
};
|
|
|
|
struct blk_crypto_key {
|
|
struct blk_crypto_config crypto_cfg;
|
|
unsigned int data_unit_size_bits;
|
|
unsigned int size;
|
|
u8 raw[64];
|
|
};
|
|
|
|
struct pidff_usage {
|
|
struct hid_field *field;
|
|
s32 *value;
|
|
};
|
|
|
|
struct pidff_device {
|
|
struct hid_device *hid;
|
|
struct hid_report *reports[13];
|
|
struct pidff_usage set_effect[7];
|
|
struct pidff_usage set_envelope[5];
|
|
struct pidff_usage set_condition[8];
|
|
struct pidff_usage set_periodic[5];
|
|
struct pidff_usage set_constant[2];
|
|
struct pidff_usage set_ramp[3];
|
|
struct pidff_usage device_gain[1];
|
|
struct pidff_usage block_load[2];
|
|
struct pidff_usage pool[3];
|
|
struct pidff_usage effect_operation[2];
|
|
struct pidff_usage block_free[1];
|
|
struct hid_field *create_new_effect_type;
|
|
struct hid_field *set_effect_type;
|
|
struct hid_field *effect_direction;
|
|
struct hid_field *device_control;
|
|
struct hid_field *block_load_status;
|
|
struct hid_field *effect_operation_status;
|
|
int control_id[2];
|
|
int type_id[11];
|
|
int status_id[2];
|
|
int operation_id[2];
|
|
int pid_id[64];
|
|
};
|
|
|
|
enum {
|
|
NHLT_CONFIG_TYPE_GENERIC = 0,
|
|
NHLT_CONFIG_TYPE_MIC_ARRAY = 1,
|
|
};
|
|
|
|
enum {
|
|
NHLT_MIC_ARRAY_2CH_SMALL = 10,
|
|
NHLT_MIC_ARRAY_2CH_BIG = 11,
|
|
NHLT_MIC_ARRAY_4CH_1ST_GEOM = 12,
|
|
NHLT_MIC_ARRAY_4CH_L_SHAPED = 13,
|
|
NHLT_MIC_ARRAY_4CH_2ND_GEOM = 14,
|
|
NHLT_MIC_ARRAY_VENDOR_DEFINED = 15,
|
|
};
|
|
|
|
enum nhlt_device_type {
|
|
NHLT_DEVICE_BT = 0,
|
|
NHLT_DEVICE_DMIC = 1,
|
|
NHLT_DEVICE_I2S = 4,
|
|
NHLT_DEVICE_INVALID = 5,
|
|
};
|
|
|
|
struct nhlt_device_specific_config {
|
|
u8 virtual_slot;
|
|
u8 config_type;
|
|
};
|
|
|
|
struct nhlt_dmic_array_config {
|
|
struct nhlt_device_specific_config device_config;
|
|
u8 array_type;
|
|
};
|
|
|
|
struct wav_fmt {
|
|
u16 fmt_tag;
|
|
u16 channels;
|
|
u32 samples_per_sec;
|
|
u32 avg_bytes_per_sec;
|
|
u16 block_align;
|
|
u16 bits_per_sample;
|
|
u16 cb_size;
|
|
} __attribute__((packed));
|
|
|
|
union samples {
|
|
u16 valid_bits_per_sample;
|
|
u16 samples_per_block;
|
|
u16 reserved;
|
|
};
|
|
|
|
struct wav_fmt_ext {
|
|
struct wav_fmt fmt;
|
|
union samples sample;
|
|
u32 channel_mask;
|
|
u8 sub_fmt[16];
|
|
};
|
|
|
|
struct nhlt_specific_cfg {
|
|
u32 size;
|
|
u8 caps[0];
|
|
};
|
|
|
|
struct nhlt_fmt_cfg {
|
|
struct wav_fmt_ext fmt_ext;
|
|
struct nhlt_specific_cfg config;
|
|
};
|
|
|
|
struct nhlt_fmt {
|
|
u8 fmt_count;
|
|
struct nhlt_fmt_cfg fmt_config[0];
|
|
} __attribute__((packed));
|
|
|
|
struct nhlt_vendor_dmic_array_config {
|
|
struct nhlt_dmic_array_config dmic_config;
|
|
u8 nb_mics;
|
|
};
|
|
|
|
struct nhlt_endpoint {
|
|
u32 length;
|
|
u8 linktype;
|
|
u8 instance_id;
|
|
u16 vendor_id;
|
|
u16 device_id;
|
|
u16 revision_id;
|
|
u32 subsystem_id;
|
|
u8 device_type;
|
|
u8 direction;
|
|
u8 virtual_bus_id;
|
|
struct nhlt_specific_cfg config;
|
|
} __attribute__((packed));
|
|
|
|
struct nhlt_acpi_table {
|
|
struct acpi_table_header header;
|
|
u8 endpoint_count;
|
|
struct nhlt_endpoint desc[0];
|
|
} __attribute__((packed));
|
|
|
|
enum __sk_action {
|
|
__SK_DROP = 0,
|
|
__SK_PASS = 1,
|
|
__SK_REDIRECT = 2,
|
|
__SK_NONE = 3,
|
|
};
|
|
|
|
enum sk_psock_state_bits {
|
|
SK_PSOCK_TX_ENABLED = 0,
|
|
};
|
|
|
|
struct sk_psock_link {
|
|
struct list_head list;
|
|
struct bpf_map *map;
|
|
void *link_raw;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_COALESCE_UNSPEC = 0,
|
|
ETHTOOL_A_COALESCE_HEADER = 1,
|
|
ETHTOOL_A_COALESCE_RX_USECS = 2,
|
|
ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 3,
|
|
ETHTOOL_A_COALESCE_RX_USECS_IRQ = 4,
|
|
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 5,
|
|
ETHTOOL_A_COALESCE_TX_USECS = 6,
|
|
ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 7,
|
|
ETHTOOL_A_COALESCE_TX_USECS_IRQ = 8,
|
|
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 9,
|
|
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 10,
|
|
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 11,
|
|
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 12,
|
|
ETHTOOL_A_COALESCE_PKT_RATE_LOW = 13,
|
|
ETHTOOL_A_COALESCE_RX_USECS_LOW = 14,
|
|
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 15,
|
|
ETHTOOL_A_COALESCE_TX_USECS_LOW = 16,
|
|
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 17,
|
|
ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 18,
|
|
ETHTOOL_A_COALESCE_RX_USECS_HIGH = 19,
|
|
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 20,
|
|
ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21,
|
|
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22,
|
|
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23,
|
|
ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24,
|
|
ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25,
|
|
ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES = 26,
|
|
ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES = 27,
|
|
ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS = 28,
|
|
__ETHTOOL_A_COALESCE_CNT = 29,
|
|
ETHTOOL_A_COALESCE_MAX = 28,
|
|
};
|
|
|
|
struct coalesce_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_coalesce coalesce;
|
|
struct kernel_ethtool_coalesce kernel_coalesce;
|
|
u32 supported_params;
|
|
};
|
|
|
|
enum ctattr_timeout_udp {
|
|
CTA_TIMEOUT_UDP_UNSPEC = 0,
|
|
CTA_TIMEOUT_UDP_UNREPLIED = 1,
|
|
CTA_TIMEOUT_UDP_REPLIED = 2,
|
|
__CTA_TIMEOUT_UDP_MAX = 3,
|
|
};
|
|
|
|
struct xt_state_info {
|
|
unsigned int statemask;
|
|
};
|
|
|
|
struct tcp_metrics_block;
|
|
|
|
struct tcpm_hash_bucket {
|
|
struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain;
|
|
};
|
|
|
|
struct tcp_fastopen_metrics {
|
|
u16 mss;
|
|
u16 syn_loss: 10;
|
|
u16 try_exp: 2;
|
|
unsigned long last_syn_loss;
|
|
struct tcp_fastopen_cookie cookie;
|
|
};
|
|
|
|
struct tcp_metrics_block {
|
|
struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next;
|
|
possible_net_t tcpm_net;
|
|
struct inetpeer_addr tcpm_saddr;
|
|
struct inetpeer_addr tcpm_daddr;
|
|
unsigned long tcpm_stamp;
|
|
u32 tcpm_lock;
|
|
u32 tcpm_vals[5];
|
|
struct tcp_fastopen_metrics tcpm_fastopen;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
enum tcp_metric_index {
|
|
TCP_METRIC_RTT = 0,
|
|
TCP_METRIC_RTTVAR = 1,
|
|
TCP_METRIC_SSTHRESH = 2,
|
|
TCP_METRIC_CWND = 3,
|
|
TCP_METRIC_REORDERING = 4,
|
|
TCP_METRIC_RTT_US = 5,
|
|
TCP_METRIC_RTTVAR_US = 6,
|
|
__TCP_METRIC_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
TCP_METRICS_ATTR_UNSPEC = 0,
|
|
TCP_METRICS_ATTR_ADDR_IPV4 = 1,
|
|
TCP_METRICS_ATTR_ADDR_IPV6 = 2,
|
|
TCP_METRICS_ATTR_AGE = 3,
|
|
TCP_METRICS_ATTR_TW_TSVAL = 4,
|
|
TCP_METRICS_ATTR_TW_TS_STAMP = 5,
|
|
TCP_METRICS_ATTR_VALS = 6,
|
|
TCP_METRICS_ATTR_FOPEN_MSS = 7,
|
|
TCP_METRICS_ATTR_FOPEN_SYN_DROPS = 8,
|
|
TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS = 9,
|
|
TCP_METRICS_ATTR_FOPEN_COOKIE = 10,
|
|
TCP_METRICS_ATTR_SADDR_IPV4 = 11,
|
|
TCP_METRICS_ATTR_SADDR_IPV6 = 12,
|
|
TCP_METRICS_ATTR_PAD = 13,
|
|
__TCP_METRICS_ATTR_MAX = 14,
|
|
};
|
|
|
|
enum {
|
|
TCP_METRICS_CMD_UNSPEC = 0,
|
|
TCP_METRICS_CMD_GET = 1,
|
|
TCP_METRICS_CMD_DEL = 2,
|
|
__TCP_METRICS_CMD_MAX = 3,
|
|
};
|
|
|
|
struct xfrm_migrate;
|
|
|
|
struct xfrm_kmaddress;
|
|
|
|
struct xfrm_mgr {
|
|
struct list_head list;
|
|
int (*notify)(struct xfrm_state *, const struct km_event *);
|
|
int (*acquire)(struct xfrm_state *, struct xfrm_tmpl *, struct xfrm_policy *);
|
|
struct xfrm_policy * (*compile_policy)(struct sock *, int, u8 *, int, int *);
|
|
int (*new_mapping)(struct xfrm_state *, xfrm_address_t *, __be16);
|
|
int (*notify_policy)(struct xfrm_policy *, int, const struct km_event *);
|
|
int (*report)(struct net *, u8, struct xfrm_selector *, xfrm_address_t *);
|
|
int (*migrate)(const struct xfrm_selector *, u8, u8, const struct xfrm_migrate *, int, const struct xfrm_kmaddress *, const struct xfrm_encap_tmpl *);
|
|
bool (*is_alive)(const struct km_event *);
|
|
};
|
|
|
|
struct xfrm_migrate {
|
|
xfrm_address_t old_daddr;
|
|
xfrm_address_t old_saddr;
|
|
xfrm_address_t new_daddr;
|
|
xfrm_address_t new_saddr;
|
|
u8 proto;
|
|
u8 mode;
|
|
u16 reserved;
|
|
u32 reqid;
|
|
u16 old_family;
|
|
u16 new_family;
|
|
};
|
|
|
|
struct xfrm_kmaddress {
|
|
xfrm_address_t local;
|
|
xfrm_address_t remote;
|
|
u32 reserved;
|
|
u16 family;
|
|
};
|
|
|
|
struct xfrmk_sadinfo {
|
|
u32 sadhcnt;
|
|
u32 sadhmcnt;
|
|
u32 sadcnt;
|
|
};
|
|
|
|
struct xfrm_translator {
|
|
int (*alloc_compat)(struct sk_buff *, const struct nlmsghdr *);
|
|
struct nlmsghdr * (*rcv_msg_compat)(const struct nlmsghdr *, int, const struct nla_policy *, struct netlink_ext_ack *);
|
|
int (*xlate_user_policy_sockptr)(u8 **, int);
|
|
struct module *owner;
|
|
};
|
|
|
|
struct ipv6_tlv_tnl_enc_lim {
|
|
__u8 type;
|
|
__u8 length;
|
|
__u8 encap_limit;
|
|
};
|
|
|
|
struct ip6gre_net {
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *tunnels[128];
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *collect_md_tun;
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *collect_md_tun_erspan;
|
|
struct net_device *fb_tunnel_dev;
|
|
};
|
|
|
|
struct ip6_tnl_parm2 {
|
|
char name[16];
|
|
int link;
|
|
__u8 proto;
|
|
__u8 encap_limit;
|
|
__u8 hop_limit;
|
|
__be32 flowinfo;
|
|
__u32 flags;
|
|
struct in6_addr laddr;
|
|
struct in6_addr raddr;
|
|
__be16 i_flags;
|
|
__be16 o_flags;
|
|
__be32 i_key;
|
|
__be32 o_key;
|
|
};
|
|
|
|
struct gss_pipe;
|
|
|
|
struct gss_auth {
|
|
struct kref kref;
|
|
struct hlist_node hash;
|
|
struct rpc_auth rpc_auth;
|
|
struct gss_api_mech *mech;
|
|
enum rpc_gss_svc service;
|
|
struct rpc_clnt *client;
|
|
struct net *net;
|
|
netns_tracker ns_tracker;
|
|
struct gss_pipe *gss_pipe[2];
|
|
const char *target_name;
|
|
};
|
|
|
|
struct gss_pipe {
|
|
struct rpc_pipe_dir_object pdo;
|
|
struct rpc_pipe *pipe;
|
|
struct rpc_clnt *clnt;
|
|
const char *name;
|
|
struct kref kref;
|
|
};
|
|
|
|
struct gss_upcall_msg {
|
|
refcount_t count;
|
|
kuid_t uid;
|
|
const char *service_name;
|
|
struct rpc_pipe_msg msg;
|
|
struct list_head list;
|
|
struct gss_auth *auth;
|
|
struct rpc_pipe *pipe;
|
|
struct rpc_wait_queue rpc_waitqueue;
|
|
wait_queue_head_t waitqueue;
|
|
struct gss_cl_ctx *ctx;
|
|
char databuf[256];
|
|
};
|
|
|
|
struct gss_alloc_pdo {
|
|
struct rpc_clnt *clnt;
|
|
const char *name;
|
|
const struct rpc_pipe_ops *upcall_ops;
|
|
};
|
|
|
|
enum ocb_deferred_task_flags {
|
|
OCB_WORK_HOUSEKEEPING = 0,
|
|
};
|
|
|
|
enum perf_branch_sample_type {
|
|
PERF_SAMPLE_BRANCH_USER = 1,
|
|
PERF_SAMPLE_BRANCH_KERNEL = 2,
|
|
PERF_SAMPLE_BRANCH_HV = 4,
|
|
PERF_SAMPLE_BRANCH_ANY = 8,
|
|
PERF_SAMPLE_BRANCH_ANY_CALL = 16,
|
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 32,
|
|
PERF_SAMPLE_BRANCH_IND_CALL = 64,
|
|
PERF_SAMPLE_BRANCH_ABORT_TX = 128,
|
|
PERF_SAMPLE_BRANCH_IN_TX = 256,
|
|
PERF_SAMPLE_BRANCH_NO_TX = 512,
|
|
PERF_SAMPLE_BRANCH_COND = 1024,
|
|
PERF_SAMPLE_BRANCH_CALL_STACK = 2048,
|
|
PERF_SAMPLE_BRANCH_IND_JUMP = 4096,
|
|
PERF_SAMPLE_BRANCH_CALL = 8192,
|
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 16384,
|
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 32768,
|
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536,
|
|
PERF_SAMPLE_BRANCH_HW_INDEX = 131072,
|
|
PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144,
|
|
PERF_SAMPLE_BRANCH_MAX = 524288,
|
|
};
|
|
|
|
enum perf_hw_cache_id {
|
|
PERF_COUNT_HW_CACHE_L1D = 0,
|
|
PERF_COUNT_HW_CACHE_L1I = 1,
|
|
PERF_COUNT_HW_CACHE_LL = 2,
|
|
PERF_COUNT_HW_CACHE_DTLB = 3,
|
|
PERF_COUNT_HW_CACHE_ITLB = 4,
|
|
PERF_COUNT_HW_CACHE_BPU = 5,
|
|
PERF_COUNT_HW_CACHE_NODE = 6,
|
|
PERF_COUNT_HW_CACHE_MAX = 7,
|
|
};
|
|
|
|
enum perf_hw_cache_op_id {
|
|
PERF_COUNT_HW_CACHE_OP_READ = 0,
|
|
PERF_COUNT_HW_CACHE_OP_WRITE = 1,
|
|
PERF_COUNT_HW_CACHE_OP_PREFETCH = 2,
|
|
PERF_COUNT_HW_CACHE_OP_MAX = 3,
|
|
};
|
|
|
|
enum perf_hw_cache_op_result_id {
|
|
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0,
|
|
PERF_COUNT_HW_CACHE_RESULT_MISS = 1,
|
|
PERF_COUNT_HW_CACHE_RESULT_MAX = 2,
|
|
};
|
|
|
|
enum hybrid_pmu_type {
|
|
hybrid_big = 64,
|
|
hybrid_small = 32,
|
|
hybrid_big_small = 96,
|
|
};
|
|
|
|
enum {
|
|
X86_PERF_KFREE_SHARED = 0,
|
|
X86_PERF_KFREE_EXCL = 1,
|
|
X86_PERF_KFREE_MAX = 2,
|
|
};
|
|
|
|
struct perf_pmu_events_ht_attr {
|
|
struct device_attribute attr;
|
|
u64 id;
|
|
const char *event_str_ht;
|
|
const char *event_str_noht;
|
|
};
|
|
|
|
struct perf_pmu_events_hybrid_attr {
|
|
struct device_attribute attr;
|
|
u64 id;
|
|
const char *event_str;
|
|
u64 pmu_type;
|
|
};
|
|
|
|
struct stack_frame {
|
|
struct stack_frame *next_frame;
|
|
unsigned long return_address;
|
|
};
|
|
|
|
struct sched_state {
|
|
int weight;
|
|
int event;
|
|
int counter;
|
|
int unassigned;
|
|
int nr_gp;
|
|
u64 used;
|
|
};
|
|
|
|
struct perf_sched {
|
|
int max_weight;
|
|
int max_events;
|
|
int max_gp;
|
|
int saved_states;
|
|
struct event_constraint **constraints;
|
|
struct sched_state state;
|
|
struct sched_state saved[2];
|
|
};
|
|
|
|
struct cyc2ns_data {
|
|
u32 cyc2ns_mul;
|
|
u32 cyc2ns_shift;
|
|
u64 cyc2ns_offset;
|
|
};
|
|
|
|
struct stack_frame_ia32 {
|
|
u32 next_frame;
|
|
u32 return_address;
|
|
};
|
|
|
|
struct x86_pmu_capability {
|
|
int version;
|
|
int num_counters_gp;
|
|
int num_counters_fixed;
|
|
int bit_width_gp;
|
|
int bit_width_fixed;
|
|
unsigned int events_mask;
|
|
int events_mask_len;
|
|
unsigned int pebs_ept: 1;
|
|
};
|
|
|
|
struct x86_init_resources {
|
|
void (*probe_roms)();
|
|
void (*reserve_resources)();
|
|
char * (*memory_setup)();
|
|
};
|
|
|
|
struct x86_init_mpparse {
|
|
void (*setup_ioapic_ids)();
|
|
void (*find_smp_config)();
|
|
void (*get_smp_config)(unsigned int);
|
|
};
|
|
|
|
struct x86_init_irqs {
|
|
void (*pre_vector_init)();
|
|
void (*intr_init)();
|
|
void (*intr_mode_select)();
|
|
void (*intr_mode_init)();
|
|
struct irq_domain * (*create_pci_msi_domain)();
|
|
};
|
|
|
|
struct x86_init_oem {
|
|
void (*arch_setup)();
|
|
void (*banner)();
|
|
};
|
|
|
|
struct x86_init_paging {
|
|
void (*pagetable_init)();
|
|
};
|
|
|
|
struct x86_init_timers {
|
|
void (*setup_percpu_clockev)();
|
|
void (*timer_init)();
|
|
void (*wallclock_init)();
|
|
};
|
|
|
|
struct x86_init_iommu {
|
|
int (*iommu_init)();
|
|
};
|
|
|
|
struct x86_init_pci {
|
|
int (*arch_init)();
|
|
int (*init)();
|
|
void (*init_irq)();
|
|
void (*fixup_irqs)();
|
|
};
|
|
|
|
struct x86_hyper_init {
|
|
void (*init_platform)();
|
|
void (*guest_late_init)();
|
|
bool (*x2apic_available)();
|
|
bool (*msi_ext_dest_id)();
|
|
void (*init_mem_mapping)();
|
|
void (*init_after_bootmem)();
|
|
};
|
|
|
|
struct x86_init_acpi {
|
|
void (*set_root_pointer)(u64);
|
|
u64 (*get_root_pointer)();
|
|
void (*reduced_hw_early_init)();
|
|
};
|
|
|
|
struct x86_init_ops {
|
|
struct x86_init_resources resources;
|
|
struct x86_init_mpparse mpparse;
|
|
struct x86_init_irqs irqs;
|
|
struct x86_init_oem oem;
|
|
struct x86_init_paging paging;
|
|
struct x86_init_timers timers;
|
|
struct x86_init_iommu iommu;
|
|
struct x86_init_pci pci;
|
|
struct x86_hyper_init hyper;
|
|
struct x86_init_acpi acpi;
|
|
};
|
|
|
|
struct x86_cpuinit_ops {
|
|
void (*setup_percpu_clockev)();
|
|
void (*early_percpu_clock_init)();
|
|
void (*fixup_cpu_id)(struct cpuinfo_x86 *, int);
|
|
};
|
|
|
|
struct x86_legacy_devices {
|
|
int pnpbios;
|
|
};
|
|
|
|
struct x86_legacy_features {
|
|
enum x86_legacy_i8042_state i8042;
|
|
int rtc;
|
|
int warm_reset;
|
|
int no_vga;
|
|
int reserve_bios_regions;
|
|
struct x86_legacy_devices devices;
|
|
};
|
|
|
|
struct ghcb;
|
|
|
|
struct x86_hyper_runtime {
|
|
void (*pin_vcpu)(int);
|
|
void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *);
|
|
bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *);
|
|
};
|
|
|
|
struct x86_guest {
|
|
void (*enc_status_change_prepare)(unsigned long, int, bool);
|
|
bool (*enc_status_change_finish)(unsigned long, int, bool);
|
|
bool (*enc_tlb_flush_required)(bool);
|
|
bool (*enc_cache_flush_required)();
|
|
};
|
|
|
|
struct x86_platform_ops {
|
|
unsigned long (*calibrate_cpu)();
|
|
unsigned long (*calibrate_tsc)();
|
|
void (*get_wallclock)(struct timespec64 *);
|
|
int (*set_wallclock)(const struct timespec64 *);
|
|
void (*iommu_shutdown)();
|
|
bool (*is_untracked_pat_range)(u64, u64);
|
|
void (*nmi_init)();
|
|
unsigned char (*get_nmi_reason)();
|
|
void (*save_sched_clock_state)();
|
|
void (*restore_sched_clock_state)();
|
|
void (*apic_post_init)();
|
|
struct x86_legacy_features legacy;
|
|
void (*set_legacy_features)();
|
|
void (*realmode_reserve)();
|
|
void (*realmode_init)();
|
|
struct x86_hyper_runtime hyper;
|
|
struct x86_guest guest;
|
|
};
|
|
|
|
struct x86_apic_ops {
|
|
unsigned int (*io_apic_read)(unsigned int, unsigned int);
|
|
void (*restore)();
|
|
};
|
|
|
|
struct smp_ops {
|
|
void (*smp_prepare_boot_cpu)();
|
|
void (*smp_prepare_cpus)(unsigned int);
|
|
void (*smp_cpus_done)(unsigned int);
|
|
void (*stop_other_cpus)(int);
|
|
void (*crash_stop_other_cpus)();
|
|
void (*smp_send_reschedule)(int);
|
|
int (*cpu_up)(unsigned int, struct task_struct *);
|
|
int (*cpu_disable)();
|
|
void (*cpu_die)(unsigned int);
|
|
void (*play_dead)();
|
|
void (*send_call_func_ipi)(const struct cpumask *);
|
|
void (*send_call_func_single_ipi)(int);
|
|
};
|
|
|
|
enum {
|
|
MEMTYPE_EXACT_MATCH = 0,
|
|
MEMTYPE_END_MATCH = 1,
|
|
};
|
|
|
|
struct ptrace_rseq_configuration {
|
|
__u64 rseq_abi_pointer;
|
|
__u32 rseq_abi_size;
|
|
__u32 signature;
|
|
__u32 flags;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct ptrace_syscall_info {
|
|
__u8 op;
|
|
__u8 pad[3];
|
|
__u32 arch;
|
|
__u64 instruction_pointer;
|
|
__u64 stack_pointer;
|
|
union {
|
|
struct {
|
|
__u64 nr;
|
|
__u64 args[6];
|
|
} entry;
|
|
struct {
|
|
__s64 rval;
|
|
__u8 is_error;
|
|
} exit;
|
|
struct {
|
|
__u64 nr;
|
|
__u64 args[6];
|
|
__u32 ret_data;
|
|
} seccomp;
|
|
};
|
|
};
|
|
|
|
struct ptrace_peeksiginfo_args {
|
|
__u64 off;
|
|
__u32 flags;
|
|
__s32 nr;
|
|
};
|
|
|
|
typedef struct compat_siginfo compat_siginfo_t;
|
|
|
|
enum {
|
|
GP_IDLE = 0,
|
|
GP_ENTER = 1,
|
|
GP_PASSED = 2,
|
|
GP_EXIT = 3,
|
|
GP_REPLAY = 4,
|
|
};
|
|
|
|
struct klp_ops {
|
|
struct list_head node;
|
|
struct list_head func_stack;
|
|
struct ftrace_ops fops;
|
|
};
|
|
|
|
struct ce_unbind {
|
|
struct clock_event_device *ce;
|
|
int res;
|
|
};
|
|
|
|
union futex_key {
|
|
struct {
|
|
u64 i_seq;
|
|
unsigned long pgoff;
|
|
unsigned int offset;
|
|
} shared;
|
|
struct {
|
|
union {
|
|
struct mm_struct *mm;
|
|
u64 __tmp;
|
|
};
|
|
unsigned long address;
|
|
unsigned int offset;
|
|
} private;
|
|
struct {
|
|
u64 ptr;
|
|
unsigned long word;
|
|
unsigned int offset;
|
|
} both;
|
|
};
|
|
|
|
struct futex_q {
|
|
struct plist_node list;
|
|
struct task_struct *task;
|
|
spinlock_t *lock_ptr;
|
|
union futex_key key;
|
|
struct futex_pi_state *pi_state;
|
|
struct rt_mutex_waiter *rt_waiter;
|
|
union futex_key *requeue_pi_key;
|
|
u32 bitset;
|
|
atomic_t requeue_state;
|
|
};
|
|
|
|
struct futex_pi_state {
|
|
struct list_head list;
|
|
struct rt_mutex_base pi_mutex;
|
|
struct task_struct *owner;
|
|
refcount_t refcount;
|
|
union futex_key key;
|
|
};
|
|
|
|
enum futex_access {
|
|
FUTEX_READ = 0,
|
|
FUTEX_WRITE = 1,
|
|
};
|
|
|
|
enum {
|
|
Q_REQUEUE_PI_NONE = 0,
|
|
Q_REQUEUE_PI_IGNORE = 1,
|
|
Q_REQUEUE_PI_IN_PROGRESS = 2,
|
|
Q_REQUEUE_PI_WAIT = 3,
|
|
Q_REQUEUE_PI_DONE = 4,
|
|
Q_REQUEUE_PI_LOCKED = 5,
|
|
};
|
|
|
|
struct futex_hash_bucket {
|
|
atomic_t waiters;
|
|
spinlock_t lock;
|
|
struct plist_head chain;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *);
|
|
|
|
typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *);
|
|
|
|
typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *);
|
|
|
|
typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *);
|
|
|
|
typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *);
|
|
|
|
typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *);
|
|
|
|
typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *);
|
|
|
|
typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *);
|
|
|
|
typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *);
|
|
|
|
typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool);
|
|
|
|
typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool);
|
|
|
|
typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int);
|
|
|
|
typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int);
|
|
|
|
struct cgroup_fs_context {
|
|
struct kernfs_fs_context kfc;
|
|
struct cgroup_root *root;
|
|
struct cgroup_namespace *ns;
|
|
unsigned int flags;
|
|
bool cpuset_clone_children;
|
|
bool none;
|
|
bool all_ss;
|
|
u16 subsys_mask;
|
|
char *name;
|
|
char *release_agent;
|
|
};
|
|
|
|
enum {
|
|
CGRP_ROOT_NOPREFIX = 2,
|
|
CGRP_ROOT_XATTR = 4,
|
|
CGRP_ROOT_NS_DELEGATE = 8,
|
|
CGRP_ROOT_FAVOR_DYNMODS = 16,
|
|
CGRP_ROOT_CPUSET_V2_MODE = 65536,
|
|
CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072,
|
|
CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144,
|
|
};
|
|
|
|
enum cgroup2_param {
|
|
Opt_nsdelegate = 0,
|
|
Opt_favordynmods = 1,
|
|
Opt_memory_localevents = 2,
|
|
Opt_memory_recursiveprot = 3,
|
|
nr__cgroup2_params = 4,
|
|
};
|
|
|
|
enum cgroup_opt_features {
|
|
OPT_FEATURE_COUNT = 0,
|
|
};
|
|
|
|
struct cgrp_cset_link {
|
|
struct cgroup *cgrp;
|
|
struct css_set *cset;
|
|
struct list_head cset_link;
|
|
struct list_head cgrp_link;
|
|
};
|
|
|
|
struct trace_event_raw_cgroup_root {
|
|
struct trace_entry ent;
|
|
int root;
|
|
u16 ss_mask;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cgroup {
|
|
struct trace_entry ent;
|
|
int root;
|
|
int level;
|
|
u64 id;
|
|
u32 __data_loc_path;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cgroup_migrate {
|
|
struct trace_entry ent;
|
|
int dst_root;
|
|
int dst_level;
|
|
u64 dst_id;
|
|
int pid;
|
|
u32 __data_loc_dst_path;
|
|
u32 __data_loc_comm;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cgroup_event {
|
|
struct trace_entry ent;
|
|
int root;
|
|
int level;
|
|
u64 id;
|
|
u32 __data_loc_path;
|
|
int val;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_cgroup_root {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cgroup {
|
|
u32 path;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cgroup_migrate {
|
|
u32 dst_path;
|
|
u32 comm;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cgroup_event {
|
|
u32 path;
|
|
};
|
|
|
|
struct cgroup_mgctx {
|
|
struct list_head preloaded_src_csets;
|
|
struct list_head preloaded_dst_csets;
|
|
struct cgroup_taskset tset;
|
|
u16 ss_mask;
|
|
};
|
|
|
|
struct cgroup_pidlist;
|
|
|
|
struct cgroup_file_ctx {
|
|
struct cgroup_namespace *ns;
|
|
struct {
|
|
void *trigger;
|
|
} psi;
|
|
struct {
|
|
bool started;
|
|
struct css_task_iter iter;
|
|
} procs;
|
|
struct {
|
|
struct cgroup_pidlist *pidlist;
|
|
} procs1;
|
|
};
|
|
|
|
typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *);
|
|
|
|
typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *);
|
|
|
|
struct lru_rotate {
|
|
local_lock_t lock;
|
|
struct folio_batch fbatch;
|
|
};
|
|
|
|
struct cpu_fbatches {
|
|
local_lock_t lock;
|
|
struct folio_batch lru_add;
|
|
struct folio_batch lru_deactivate_file;
|
|
struct folio_batch lru_deactivate;
|
|
struct folio_batch lru_lazyfree;
|
|
struct folio_batch activate;
|
|
};
|
|
|
|
struct trace_event_raw_mm_lru_insertion {
|
|
struct trace_entry ent;
|
|
struct folio *folio;
|
|
unsigned long pfn;
|
|
enum lru_list lru;
|
|
unsigned long flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_lru_activate {
|
|
struct trace_entry ent;
|
|
struct folio *folio;
|
|
unsigned long pfn;
|
|
char __data[0];
|
|
};
|
|
|
|
typedef void (*move_fn_t)(struct lruvec *, struct folio *);
|
|
|
|
struct trace_event_data_offsets_mm_lru_insertion {};
|
|
|
|
struct trace_event_data_offsets_mm_lru_activate {};
|
|
|
|
enum poll_time_type {
|
|
PT_TIMEVAL = 0,
|
|
PT_OLD_TIMEVAL = 1,
|
|
PT_TIMESPEC = 2,
|
|
PT_OLD_TIMESPEC = 3,
|
|
};
|
|
|
|
struct poll_table_entry {
|
|
struct file *filp;
|
|
__poll_t key;
|
|
wait_queue_entry_t wait;
|
|
wait_queue_head_t *wait_address;
|
|
};
|
|
|
|
struct poll_table_page;
|
|
|
|
struct poll_wqueues {
|
|
poll_table pt;
|
|
struct poll_table_page *table;
|
|
struct task_struct *polling_task;
|
|
int triggered;
|
|
int error;
|
|
int inline_index;
|
|
struct poll_table_entry inline_entries[8];
|
|
};
|
|
|
|
struct poll_table_page {
|
|
struct poll_table_page *next;
|
|
struct poll_table_entry *entry;
|
|
struct poll_table_entry entries[0];
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long fds_bits[16];
|
|
} __kernel_fd_set;
|
|
|
|
typedef __kernel_fd_set fd_set;
|
|
|
|
struct poll_list {
|
|
struct poll_list *next;
|
|
int len;
|
|
struct pollfd entries[0];
|
|
};
|
|
|
|
struct compat_sel_arg_struct {
|
|
compat_ulong_t n;
|
|
compat_uptr_t inp;
|
|
compat_uptr_t outp;
|
|
compat_uptr_t exp;
|
|
compat_uptr_t tvp;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long *in;
|
|
unsigned long *out;
|
|
unsigned long *ex;
|
|
unsigned long *res_in;
|
|
unsigned long *res_out;
|
|
unsigned long *res_ex;
|
|
} fd_set_bits;
|
|
|
|
struct sigset_argpack {
|
|
sigset_t __attribute__((btf_type_tag("user"))) *p;
|
|
size_t size;
|
|
};
|
|
|
|
struct compat_sigset_argpack {
|
|
compat_uptr_t p;
|
|
compat_size_t size;
|
|
};
|
|
|
|
enum {
|
|
Enabled = 0,
|
|
Magic = 1,
|
|
};
|
|
|
|
typedef struct {
|
|
struct list_head list;
|
|
unsigned long flags;
|
|
int offset;
|
|
int size;
|
|
char *magic;
|
|
char *mask;
|
|
const char *interpreter;
|
|
char *name;
|
|
struct dentry *dentry;
|
|
struct file *interp_file;
|
|
} Node;
|
|
|
|
typedef struct {
|
|
__le32 *p;
|
|
__le32 key;
|
|
struct buffer_head *bh;
|
|
} Indirect;
|
|
|
|
struct journal_block_tag3_s {
|
|
__be32 t_blocknr;
|
|
__be32 t_flags;
|
|
__be32 t_blocknr_high;
|
|
__be32 t_checksum;
|
|
};
|
|
|
|
typedef struct journal_block_tag3_s journal_block_tag3_t;
|
|
|
|
struct commit_header {
|
|
__be32 h_magic;
|
|
__be32 h_blocktype;
|
|
__be32 h_sequence;
|
|
unsigned char h_chksum_type;
|
|
unsigned char h_chksum_size;
|
|
unsigned char h_padding[2];
|
|
__be32 h_chksum[8];
|
|
__be64 h_commit_sec;
|
|
__be32 h_commit_nsec;
|
|
};
|
|
|
|
struct jbd2_journal_block_tail {
|
|
__be32 t_checksum;
|
|
};
|
|
|
|
struct jbd2_journal_revoke_header_s {
|
|
journal_header_t r_header;
|
|
__be32 r_count;
|
|
};
|
|
|
|
typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t;
|
|
|
|
struct recovery_info {
|
|
tid_t start_transaction;
|
|
tid_t end_transaction;
|
|
int nr_replays;
|
|
int nr_revokes;
|
|
int nr_revoke_hits;
|
|
};
|
|
|
|
struct journal_block_tag_s {
|
|
__be32 t_blocknr;
|
|
__be16 t_checksum;
|
|
__be16 t_flags;
|
|
__be32 t_blocknr_high;
|
|
};
|
|
|
|
typedef struct journal_block_tag_s journal_block_tag_t;
|
|
|
|
struct sk_security_struct {
|
|
enum {
|
|
NLBL_UNSET = 0,
|
|
NLBL_REQUIRE = 1,
|
|
NLBL_LABELED = 2,
|
|
NLBL_REQSKB = 3,
|
|
NLBL_CONNLABELED = 4,
|
|
} nlbl_state;
|
|
struct netlbl_lsm_secattr *nlbl_secattr;
|
|
u32 sid;
|
|
u32 peer_sid;
|
|
u16 sclass;
|
|
enum {
|
|
SCTP_ASSOC_UNSET = 0,
|
|
SCTP_ASSOC_SET = 1,
|
|
} sctp_assoc_state;
|
|
};
|
|
|
|
enum sctp_endpoint_type {
|
|
SCTP_EP_TYPE_SOCKET = 0,
|
|
SCTP_EP_TYPE_ASSOCIATION = 1,
|
|
};
|
|
|
|
enum sctp_socket_type {
|
|
SCTP_SOCKET_UDP = 0,
|
|
SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1,
|
|
SCTP_SOCKET_TCP = 2,
|
|
};
|
|
|
|
enum sctp_scope {
|
|
SCTP_SCOPE_GLOBAL = 0,
|
|
SCTP_SCOPE_PRIVATE = 1,
|
|
SCTP_SCOPE_LINK = 2,
|
|
SCTP_SCOPE_LOOPBACK = 3,
|
|
SCTP_SCOPE_UNUSABLE = 4,
|
|
};
|
|
|
|
enum sctp_state {
|
|
SCTP_STATE_CLOSED = 0,
|
|
SCTP_STATE_COOKIE_WAIT = 1,
|
|
SCTP_STATE_COOKIE_ECHOED = 2,
|
|
SCTP_STATE_ESTABLISHED = 3,
|
|
SCTP_STATE_SHUTDOWN_PENDING = 4,
|
|
SCTP_STATE_SHUTDOWN_SENT = 5,
|
|
SCTP_STATE_SHUTDOWN_RECEIVED = 6,
|
|
SCTP_STATE_SHUTDOWN_ACK_SENT = 7,
|
|
};
|
|
|
|
union sctp_addr {
|
|
struct sockaddr_in v4;
|
|
struct sockaddr_in6 v6;
|
|
struct sockaddr sa;
|
|
};
|
|
|
|
struct sctp_tsnmap {
|
|
unsigned long *tsn_map;
|
|
__u32 base_tsn;
|
|
__u32 cumulative_tsn_ack_point;
|
|
__u32 max_tsn_seen;
|
|
__u16 len;
|
|
__u16 pending_data;
|
|
__u16 num_dup_tsns;
|
|
__be32 dup_tsns[16];
|
|
};
|
|
|
|
struct sctp_inithdr_host {
|
|
__u32 init_tag;
|
|
__u32 a_rwnd;
|
|
__u16 num_outbound_streams;
|
|
__u16 num_inbound_streams;
|
|
__u32 initial_tsn;
|
|
};
|
|
|
|
struct sctp_chunk;
|
|
|
|
struct sctp_inq {
|
|
struct list_head in_chunk_list;
|
|
struct sctp_chunk *in_progress;
|
|
struct work_struct immediate;
|
|
};
|
|
|
|
struct sctp_bind_addr {
|
|
__u16 port;
|
|
struct list_head address_list;
|
|
};
|
|
|
|
struct sctp_ep_common {
|
|
enum sctp_endpoint_type type;
|
|
refcount_t refcnt;
|
|
bool dead;
|
|
struct sock *sk;
|
|
struct net *net;
|
|
struct sctp_inq inqueue;
|
|
struct sctp_bind_addr bind_addr;
|
|
};
|
|
|
|
typedef __s32 sctp_assoc_t;
|
|
|
|
struct sctp_init_chunk {
|
|
struct sctp_chunkhdr chunk_hdr;
|
|
struct sctp_inithdr init_hdr;
|
|
};
|
|
|
|
struct sctp_cookie {
|
|
__u32 my_vtag;
|
|
__u32 peer_vtag;
|
|
__u32 my_ttag;
|
|
__u32 peer_ttag;
|
|
ktime_t expiration;
|
|
__u16 sinit_num_ostreams;
|
|
__u16 sinit_max_instreams;
|
|
__u32 initial_tsn;
|
|
union sctp_addr peer_addr;
|
|
__u16 my_port;
|
|
__u8 prsctp_capable;
|
|
__u8 padding;
|
|
__u32 adaptation_ind;
|
|
__u8 auth_random[36];
|
|
__u8 auth_hmacs[10];
|
|
__u8 auth_chunks[20];
|
|
__u32 raw_addr_list_len;
|
|
struct sctp_init_chunk peer_init[0];
|
|
};
|
|
|
|
struct sctp_stream_out_ext;
|
|
|
|
struct sctp_stream_out {
|
|
union {
|
|
__u32 mid;
|
|
__u16 ssn;
|
|
};
|
|
__u32 mid_uo;
|
|
struct sctp_stream_out_ext *ext;
|
|
__u8 state;
|
|
};
|
|
|
|
struct sctp_stream_in {
|
|
union {
|
|
__u32 mid;
|
|
__u16 ssn;
|
|
};
|
|
__u32 mid_uo;
|
|
__u32 fsn;
|
|
__u32 fsn_uo;
|
|
char pd_mode;
|
|
char pd_mode_uo;
|
|
};
|
|
|
|
struct sctp_stream_interleave;
|
|
|
|
struct sctp_stream {
|
|
struct {
|
|
struct __genradix tree;
|
|
struct sctp_stream_out type[0];
|
|
} out;
|
|
struct {
|
|
struct __genradix tree;
|
|
struct sctp_stream_in type[0];
|
|
} in;
|
|
__u16 outcnt;
|
|
__u16 incnt;
|
|
struct sctp_stream_out *out_curr;
|
|
union {
|
|
struct {
|
|
struct list_head prio_list;
|
|
};
|
|
struct {
|
|
struct list_head rr_list;
|
|
struct sctp_stream_out_ext *rr_next;
|
|
};
|
|
};
|
|
struct sctp_stream_interleave *si;
|
|
};
|
|
|
|
struct sctp_sched_ops;
|
|
|
|
struct sctp_outq {
|
|
struct sctp_association *asoc;
|
|
struct list_head out_chunk_list;
|
|
struct sctp_sched_ops *sched;
|
|
unsigned int out_qlen;
|
|
unsigned int error;
|
|
struct list_head control_chunk_list;
|
|
struct list_head sacked;
|
|
struct list_head retransmit;
|
|
struct list_head abandoned;
|
|
__u32 outstanding_bytes;
|
|
char fast_rtx;
|
|
char cork;
|
|
};
|
|
|
|
struct sctp_ulpq {
|
|
char pd_mode;
|
|
struct sctp_association *asoc;
|
|
struct sk_buff_head reasm;
|
|
struct sk_buff_head reasm_uo;
|
|
struct sk_buff_head lobby;
|
|
};
|
|
|
|
struct sctp_priv_assoc_stats {
|
|
struct __kernel_sockaddr_storage obs_rto_ipaddr;
|
|
__u64 max_obs_rto;
|
|
__u64 isacks;
|
|
__u64 osacks;
|
|
__u64 opackets;
|
|
__u64 ipackets;
|
|
__u64 rtxchunks;
|
|
__u64 outofseqtsns;
|
|
__u64 idupchunks;
|
|
__u64 gapcnt;
|
|
__u64 ouodchunks;
|
|
__u64 iuodchunks;
|
|
__u64 oodchunks;
|
|
__u64 iodchunks;
|
|
__u64 octrlchunks;
|
|
__u64 ictrlchunks;
|
|
};
|
|
|
|
struct sctp_endpoint;
|
|
|
|
struct sctp_transport;
|
|
|
|
struct sctp_random_param;
|
|
|
|
struct sctp_chunks_param;
|
|
|
|
struct sctp_hmac_algo_param;
|
|
|
|
struct sctp_auth_bytes;
|
|
|
|
struct sctp_shared_key;
|
|
|
|
struct sctp_association {
|
|
struct sctp_ep_common base;
|
|
struct list_head asocs;
|
|
sctp_assoc_t assoc_id;
|
|
struct sctp_endpoint *ep;
|
|
struct sctp_cookie c;
|
|
struct {
|
|
struct list_head transport_addr_list;
|
|
__u32 rwnd;
|
|
__u16 transport_count;
|
|
__u16 port;
|
|
struct sctp_transport *primary_path;
|
|
union sctp_addr primary_addr;
|
|
struct sctp_transport *active_path;
|
|
struct sctp_transport *retran_path;
|
|
struct sctp_transport *last_sent_to;
|
|
struct sctp_transport *last_data_from;
|
|
struct sctp_tsnmap tsn_map;
|
|
__be16 addip_disabled_mask;
|
|
__u16 ecn_capable: 1;
|
|
__u16 ipv4_address: 1;
|
|
__u16 ipv6_address: 1;
|
|
__u16 hostname_address: 1;
|
|
__u16 asconf_capable: 1;
|
|
__u16 prsctp_capable: 1;
|
|
__u16 reconf_capable: 1;
|
|
__u16 intl_capable: 1;
|
|
__u16 auth_capable: 1;
|
|
__u16 sack_needed: 1;
|
|
__u16 sack_generation: 1;
|
|
__u16 zero_window_announced: 1;
|
|
__u32 sack_cnt;
|
|
__u32 adaptation_ind;
|
|
struct sctp_inithdr_host i;
|
|
void *cookie;
|
|
int cookie_len;
|
|
__u32 addip_serial;
|
|
struct sctp_random_param *peer_random;
|
|
struct sctp_chunks_param *peer_chunks;
|
|
struct sctp_hmac_algo_param *peer_hmacs;
|
|
} peer;
|
|
enum sctp_state state;
|
|
int overall_error_count;
|
|
ktime_t cookie_life;
|
|
unsigned long rto_initial;
|
|
unsigned long rto_max;
|
|
unsigned long rto_min;
|
|
int max_burst;
|
|
int max_retrans;
|
|
__u16 pf_retrans;
|
|
__u16 ps_retrans;
|
|
__u16 max_init_attempts;
|
|
__u16 init_retries;
|
|
unsigned long max_init_timeo;
|
|
unsigned long hbinterval;
|
|
unsigned long probe_interval;
|
|
__be16 encap_port;
|
|
__u16 pathmaxrxt;
|
|
__u32 flowlabel;
|
|
__u8 dscp;
|
|
__u8 pmtu_pending;
|
|
__u32 pathmtu;
|
|
__u32 param_flags;
|
|
__u32 sackfreq;
|
|
unsigned long sackdelay;
|
|
unsigned long timeouts[12];
|
|
struct timer_list timers[12];
|
|
struct sctp_transport *shutdown_last_sent_to;
|
|
struct sctp_transport *init_last_sent_to;
|
|
int shutdown_retries;
|
|
__u32 next_tsn;
|
|
__u32 ctsn_ack_point;
|
|
__u32 adv_peer_ack_point;
|
|
__u32 highest_sacked;
|
|
__u32 fast_recovery_exit;
|
|
__u8 fast_recovery;
|
|
__u16 unack_data;
|
|
__u32 rtx_data_chunks;
|
|
__u32 rwnd;
|
|
__u32 a_rwnd;
|
|
__u32 rwnd_over;
|
|
__u32 rwnd_press;
|
|
int sndbuf_used;
|
|
atomic_t rmem_alloc;
|
|
wait_queue_head_t wait;
|
|
__u32 frag_point;
|
|
__u32 user_frag;
|
|
int init_err_counter;
|
|
int init_cycle;
|
|
__u16 default_stream;
|
|
__u16 default_flags;
|
|
__u32 default_ppid;
|
|
__u32 default_context;
|
|
__u32 default_timetolive;
|
|
__u32 default_rcv_context;
|
|
struct sctp_stream stream;
|
|
struct sctp_outq outqueue;
|
|
struct sctp_ulpq ulpq;
|
|
__u32 last_ecne_tsn;
|
|
__u32 last_cwr_tsn;
|
|
int numduptsns;
|
|
struct sctp_chunk *addip_last_asconf;
|
|
struct list_head asconf_ack_list;
|
|
struct list_head addip_chunk_list;
|
|
__u32 addip_serial;
|
|
int src_out_of_asoc_ok;
|
|
union sctp_addr *asconf_addr_del_pending;
|
|
struct sctp_transport *new_transport;
|
|
struct list_head endpoint_shared_keys;
|
|
struct sctp_auth_bytes *asoc_shared_key;
|
|
struct sctp_shared_key *shkey;
|
|
__u16 default_hmac_id;
|
|
__u16 active_key_id;
|
|
__u8 need_ecne: 1;
|
|
__u8 temp: 1;
|
|
__u8 pf_expose: 2;
|
|
__u8 force_delay: 1;
|
|
__u8 strreset_enable;
|
|
__u8 strreset_outstanding;
|
|
__u32 strreset_outseq;
|
|
__u32 strreset_inseq;
|
|
__u32 strreset_result[2];
|
|
struct sctp_chunk *strreset_chunk;
|
|
struct sctp_priv_assoc_stats stats;
|
|
int sent_cnt_removable;
|
|
__u16 subscribe;
|
|
__u64 abandoned_unsent[3];
|
|
__u64 abandoned_sent[3];
|
|
u32 secid;
|
|
u32 peer_secid;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct sctp_paramhdr;
|
|
|
|
struct sctp_cookie_preserve_param;
|
|
|
|
struct sctp_hostname_param;
|
|
|
|
struct sctp_cookie_param;
|
|
|
|
struct sctp_supported_addrs_param;
|
|
|
|
struct sctp_ipv4addr_param;
|
|
|
|
struct sctp_ipv6addr_param;
|
|
|
|
union sctp_addr_param;
|
|
|
|
struct sctp_adaptation_ind_param;
|
|
|
|
struct sctp_supported_ext_param;
|
|
|
|
struct sctp_addip_param;
|
|
|
|
union sctp_params {
|
|
void *v;
|
|
struct sctp_paramhdr *p;
|
|
struct sctp_cookie_preserve_param *life;
|
|
struct sctp_hostname_param *dns;
|
|
struct sctp_cookie_param *cookie;
|
|
struct sctp_supported_addrs_param *sat;
|
|
struct sctp_ipv4addr_param *v4;
|
|
struct sctp_ipv6addr_param *v6;
|
|
union sctp_addr_param *addr;
|
|
struct sctp_adaptation_ind_param *aind;
|
|
struct sctp_supported_ext_param *ext;
|
|
struct sctp_random_param *random;
|
|
struct sctp_chunks_param *chunks;
|
|
struct sctp_hmac_algo_param *hmac_algo;
|
|
struct sctp_addip_param *addip;
|
|
};
|
|
|
|
struct sctp_sndrcvinfo {
|
|
__u16 sinfo_stream;
|
|
__u16 sinfo_ssn;
|
|
__u16 sinfo_flags;
|
|
__u32 sinfo_ppid;
|
|
__u32 sinfo_context;
|
|
__u32 sinfo_timetolive;
|
|
__u32 sinfo_tsn;
|
|
__u32 sinfo_cumtsn;
|
|
sctp_assoc_t sinfo_assoc_id;
|
|
};
|
|
|
|
struct sctp_datahdr;
|
|
|
|
struct sctp_sackhdr;
|
|
|
|
struct sctp_heartbeathdr;
|
|
|
|
struct sctp_sender_hb_info;
|
|
|
|
struct sctp_shutdownhdr;
|
|
|
|
struct sctp_signed_cookie;
|
|
|
|
struct sctp_ecnehdr;
|
|
|
|
struct sctp_cwrhdr;
|
|
|
|
struct sctp_errhdr;
|
|
|
|
struct sctp_addiphdr;
|
|
|
|
struct sctp_fwdtsn_hdr;
|
|
|
|
struct sctp_authhdr;
|
|
|
|
struct sctp_idatahdr;
|
|
|
|
struct sctp_ifwdtsn_hdr;
|
|
|
|
struct sctp_datamsg;
|
|
|
|
struct sctp_chunk {
|
|
struct list_head list;
|
|
refcount_t refcnt;
|
|
int sent_count;
|
|
union {
|
|
struct list_head transmitted_list;
|
|
struct list_head stream_list;
|
|
};
|
|
struct list_head frag_list;
|
|
struct sk_buff *skb;
|
|
union {
|
|
struct sk_buff *head_skb;
|
|
struct sctp_shared_key *shkey;
|
|
};
|
|
union sctp_params param_hdr;
|
|
union {
|
|
__u8 *v;
|
|
struct sctp_datahdr *data_hdr;
|
|
struct sctp_inithdr *init_hdr;
|
|
struct sctp_sackhdr *sack_hdr;
|
|
struct sctp_heartbeathdr *hb_hdr;
|
|
struct sctp_sender_hb_info *hbs_hdr;
|
|
struct sctp_shutdownhdr *shutdown_hdr;
|
|
struct sctp_signed_cookie *cookie_hdr;
|
|
struct sctp_ecnehdr *ecne_hdr;
|
|
struct sctp_cwrhdr *ecn_cwr_hdr;
|
|
struct sctp_errhdr *err_hdr;
|
|
struct sctp_addiphdr *addip_hdr;
|
|
struct sctp_fwdtsn_hdr *fwdtsn_hdr;
|
|
struct sctp_authhdr *auth_hdr;
|
|
struct sctp_idatahdr *idata_hdr;
|
|
struct sctp_ifwdtsn_hdr *ifwdtsn_hdr;
|
|
} subh;
|
|
__u8 *chunk_end;
|
|
struct sctp_chunkhdr *chunk_hdr;
|
|
struct sctphdr *sctp_hdr;
|
|
struct sctp_sndrcvinfo sinfo;
|
|
struct sctp_association *asoc;
|
|
struct sctp_ep_common *rcvr;
|
|
unsigned long sent_at;
|
|
union sctp_addr source;
|
|
union sctp_addr dest;
|
|
struct sctp_datamsg *msg;
|
|
struct sctp_transport *transport;
|
|
struct sk_buff *auth_chunk;
|
|
__u16 rtt_in_progress: 1;
|
|
__u16 has_tsn: 1;
|
|
__u16 has_ssn: 1;
|
|
__u16 singleton: 1;
|
|
__u16 end_of_packet: 1;
|
|
__u16 ecn_ce_done: 1;
|
|
__u16 pdiscard: 1;
|
|
__u16 tsn_gap_acked: 1;
|
|
__u16 data_accepted: 1;
|
|
__u16 auth: 1;
|
|
__u16 has_asconf: 1;
|
|
__u16 pmtu_probe: 1;
|
|
__u16 tsn_missing_report: 2;
|
|
__u16 fast_retransmit: 2;
|
|
};
|
|
|
|
struct sctp_shared_key {
|
|
struct list_head key_list;
|
|
struct sctp_auth_bytes *key;
|
|
refcount_t refcnt;
|
|
__u16 key_id;
|
|
__u8 deactivated;
|
|
};
|
|
|
|
struct sctp_auth_bytes {
|
|
refcount_t refcnt;
|
|
__u32 len;
|
|
__u8 data[0];
|
|
};
|
|
|
|
struct sctp_paramhdr {
|
|
__be16 type;
|
|
__be16 length;
|
|
};
|
|
|
|
struct sctp_cookie_preserve_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__be32 lifespan_increment;
|
|
};
|
|
|
|
struct sctp_hostname_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
uint8_t hostname[0];
|
|
};
|
|
|
|
struct sctp_cookie_param {
|
|
struct sctp_paramhdr p;
|
|
__u8 body[0];
|
|
};
|
|
|
|
struct sctp_supported_addrs_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__be16 types[0];
|
|
};
|
|
|
|
struct sctp_ipv4addr_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
struct in_addr addr;
|
|
};
|
|
|
|
struct sctp_ipv6addr_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
struct in6_addr addr;
|
|
};
|
|
|
|
union sctp_addr_param {
|
|
struct sctp_paramhdr p;
|
|
struct sctp_ipv4addr_param v4;
|
|
struct sctp_ipv6addr_param v6;
|
|
};
|
|
|
|
struct sctp_adaptation_ind_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__be32 adaptation_ind;
|
|
};
|
|
|
|
struct sctp_supported_ext_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__u8 chunks[0];
|
|
};
|
|
|
|
struct sctp_random_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__u8 random_val[0];
|
|
};
|
|
|
|
struct sctp_chunks_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__u8 chunks[0];
|
|
};
|
|
|
|
struct sctp_hmac_algo_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__be16 hmac_ids[0];
|
|
};
|
|
|
|
struct sctp_addip_param {
|
|
struct sctp_paramhdr param_hdr;
|
|
__be32 crr_id;
|
|
};
|
|
|
|
struct sctp_datahdr {
|
|
__be32 tsn;
|
|
__be16 stream;
|
|
__be16 ssn;
|
|
__u32 ppid;
|
|
__u8 payload[0];
|
|
};
|
|
|
|
struct sctp_gap_ack_block {
|
|
__be16 start;
|
|
__be16 end;
|
|
};
|
|
|
|
union sctp_sack_variable {
|
|
struct sctp_gap_ack_block gab;
|
|
__be32 dup;
|
|
};
|
|
|
|
struct sctp_sackhdr {
|
|
__be32 cum_tsn_ack;
|
|
__be32 a_rwnd;
|
|
__be16 num_gap_ack_blocks;
|
|
__be16 num_dup_tsns;
|
|
union sctp_sack_variable variable[0];
|
|
};
|
|
|
|
struct sctp_heartbeathdr {
|
|
struct sctp_paramhdr info;
|
|
};
|
|
|
|
struct sctp_sender_hb_info {
|
|
struct sctp_paramhdr param_hdr;
|
|
union sctp_addr daddr;
|
|
unsigned long sent_at;
|
|
__u64 hb_nonce;
|
|
__u32 probe_size;
|
|
};
|
|
|
|
struct sctp_shutdownhdr {
|
|
__be32 cum_tsn_ack;
|
|
};
|
|
|
|
struct sctp_signed_cookie {
|
|
__u8 signature[32];
|
|
__u32 __pad;
|
|
struct sctp_cookie c;
|
|
} __attribute__((packed));
|
|
|
|
struct sctp_ecnehdr {
|
|
__be32 lowest_tsn;
|
|
};
|
|
|
|
struct sctp_cwrhdr {
|
|
__be32 lowest_tsn;
|
|
};
|
|
|
|
struct sctp_errhdr {
|
|
__be16 cause;
|
|
__be16 length;
|
|
__u8 variable[0];
|
|
};
|
|
|
|
struct sctp_addiphdr {
|
|
__be32 serial;
|
|
__u8 params[0];
|
|
};
|
|
|
|
struct sctp_fwdtsn_skip {
|
|
__be16 stream;
|
|
__be16 ssn;
|
|
};
|
|
|
|
struct sctp_fwdtsn_hdr {
|
|
__be32 new_cum_tsn;
|
|
struct sctp_fwdtsn_skip skip[0];
|
|
};
|
|
|
|
struct sctp_authhdr {
|
|
__be16 shkey_id;
|
|
__be16 hmac_id;
|
|
__u8 hmac[0];
|
|
};
|
|
|
|
struct sctp_idatahdr {
|
|
__be32 tsn;
|
|
__be16 stream;
|
|
__be16 reserved;
|
|
__be32 mid;
|
|
union {
|
|
__u32 ppid;
|
|
__be32 fsn;
|
|
};
|
|
__u8 payload[0];
|
|
};
|
|
|
|
struct sctp_ifwdtsn_skip {
|
|
__be16 stream;
|
|
__u8 reserved;
|
|
__u8 flags;
|
|
__be32 mid;
|
|
};
|
|
|
|
struct sctp_ifwdtsn_hdr {
|
|
__be32 new_cum_tsn;
|
|
struct sctp_ifwdtsn_skip skip[0];
|
|
};
|
|
|
|
struct sctp_datamsg {
|
|
struct list_head chunks;
|
|
refcount_t refcnt;
|
|
unsigned long expires_at;
|
|
int send_error;
|
|
u8 send_failed: 1;
|
|
u8 can_delay: 1;
|
|
u8 abandoned: 1;
|
|
};
|
|
|
|
struct sctp_packet {
|
|
__u16 source_port;
|
|
__u16 destination_port;
|
|
__u32 vtag;
|
|
struct list_head chunk_list;
|
|
size_t overhead;
|
|
size_t size;
|
|
size_t max_size;
|
|
struct sctp_transport *transport;
|
|
struct sctp_chunk *auth;
|
|
u8 has_cookie_echo: 1;
|
|
u8 has_sack: 1;
|
|
u8 has_auth: 1;
|
|
u8 has_data: 1;
|
|
u8 ipfragok: 1;
|
|
};
|
|
|
|
struct sctp_af;
|
|
|
|
struct sctp_transport {
|
|
struct list_head transports;
|
|
struct rhlist_head node;
|
|
refcount_t refcnt;
|
|
__u32 rto_pending: 1;
|
|
__u32 hb_sent: 1;
|
|
__u32 pmtu_pending: 1;
|
|
__u32 dst_pending_confirm: 1;
|
|
__u32 sack_generation: 1;
|
|
u32 dst_cookie;
|
|
struct flowi fl;
|
|
union sctp_addr ipaddr;
|
|
struct sctp_af *af_specific;
|
|
struct sctp_association *asoc;
|
|
unsigned long rto;
|
|
__u32 rtt;
|
|
__u32 rttvar;
|
|
__u32 srtt;
|
|
__u32 cwnd;
|
|
__u32 ssthresh;
|
|
__u32 partial_bytes_acked;
|
|
__u32 flight_size;
|
|
__u32 burst_limited;
|
|
struct dst_entry *dst;
|
|
union sctp_addr saddr;
|
|
unsigned long hbinterval;
|
|
unsigned long probe_interval;
|
|
unsigned long sackdelay;
|
|
__u32 sackfreq;
|
|
atomic_t mtu_info;
|
|
ktime_t last_time_heard;
|
|
unsigned long last_time_sent;
|
|
unsigned long last_time_ecne_reduced;
|
|
__be16 encap_port;
|
|
__u16 pathmaxrxt;
|
|
__u32 flowlabel;
|
|
__u8 dscp;
|
|
__u16 pf_retrans;
|
|
__u16 ps_retrans;
|
|
__u32 pathmtu;
|
|
__u32 param_flags;
|
|
int init_sent_count;
|
|
int state;
|
|
unsigned short error_count;
|
|
struct timer_list T3_rtx_timer;
|
|
struct timer_list hb_timer;
|
|
struct timer_list proto_unreach_timer;
|
|
struct timer_list reconf_timer;
|
|
struct timer_list probe_timer;
|
|
struct list_head transmitted;
|
|
struct sctp_packet packet;
|
|
struct list_head send_ready;
|
|
struct {
|
|
__u32 next_tsn_at_change;
|
|
char changeover_active;
|
|
char cycling_changeover;
|
|
char cacc_saw_newack;
|
|
} cacc;
|
|
struct {
|
|
__u16 pmtu;
|
|
__u16 probe_size;
|
|
__u16 probe_high;
|
|
__u8 probe_count;
|
|
__u8 state;
|
|
} pl;
|
|
__u64 hb_nonce;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct sctp_sock;
|
|
|
|
struct sctp_af {
|
|
int (*sctp_xmit)(struct sk_buff *, struct sctp_transport *);
|
|
int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
|
|
int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
|
|
void (*get_dst)(struct sctp_transport *, union sctp_addr *, struct flowi *, struct sock *);
|
|
void (*get_saddr)(struct sctp_sock *, struct sctp_transport *, struct flowi *);
|
|
void (*copy_addrlist)(struct list_head *, struct net_device *);
|
|
int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *);
|
|
void (*addr_copy)(union sctp_addr *, union sctp_addr *);
|
|
void (*from_skb)(union sctp_addr *, struct sk_buff *, int);
|
|
void (*from_sk)(union sctp_addr *, struct sock *);
|
|
bool (*from_addr_param)(union sctp_addr *, union sctp_addr_param *, __be16, int);
|
|
int (*to_addr_param)(const union sctp_addr *, union sctp_addr_param *);
|
|
int (*addr_valid)(union sctp_addr *, struct sctp_sock *, const struct sk_buff *);
|
|
enum sctp_scope (*scope)(union sctp_addr *);
|
|
void (*inaddr_any)(union sctp_addr *, __be16);
|
|
int (*is_any)(const union sctp_addr *);
|
|
int (*available)(union sctp_addr *, struct sctp_sock *);
|
|
int (*skb_iif)(const struct sk_buff *);
|
|
int (*skb_sdif)(const struct sk_buff *);
|
|
int (*is_ce)(const struct sk_buff *);
|
|
void (*seq_dump_addr)(struct seq_file *, union sctp_addr *);
|
|
void (*ecn_capable)(struct sock *);
|
|
__u16 net_header_len;
|
|
int sockaddr_len;
|
|
int (*ip_options_len)(struct sock *);
|
|
sa_family_t sa_family;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct sctp_rtoinfo {
|
|
sctp_assoc_t srto_assoc_id;
|
|
__u32 srto_initial;
|
|
__u32 srto_max;
|
|
__u32 srto_min;
|
|
};
|
|
|
|
struct sctp_paddrparams {
|
|
sctp_assoc_t spp_assoc_id;
|
|
struct __kernel_sockaddr_storage spp_address;
|
|
__u32 spp_hbinterval;
|
|
__u16 spp_pathmaxrxt;
|
|
__u32 spp_pathmtu;
|
|
__u32 spp_sackdelay;
|
|
__u32 spp_flags;
|
|
__u32 spp_ipv6_flowlabel;
|
|
__u8 spp_dscp;
|
|
char: 8;
|
|
} __attribute__((packed));
|
|
|
|
struct sctp_assocparams {
|
|
sctp_assoc_t sasoc_assoc_id;
|
|
__u16 sasoc_asocmaxrxt;
|
|
__u16 sasoc_number_peer_destinations;
|
|
__u32 sasoc_peer_rwnd;
|
|
__u32 sasoc_local_rwnd;
|
|
__u32 sasoc_cookie_life;
|
|
};
|
|
|
|
struct sctp_initmsg {
|
|
__u16 sinit_num_ostreams;
|
|
__u16 sinit_max_instreams;
|
|
__u16 sinit_max_attempts;
|
|
__u16 sinit_max_init_timeo;
|
|
};
|
|
|
|
struct sctp_pf;
|
|
|
|
struct sctp_bind_bucket;
|
|
|
|
struct sctp_sock {
|
|
struct inet_sock inet;
|
|
enum sctp_socket_type type;
|
|
int: 32;
|
|
struct sctp_pf *pf;
|
|
struct crypto_shash *hmac;
|
|
char *sctp_hmac_alg;
|
|
struct sctp_endpoint *ep;
|
|
struct sctp_bind_bucket *bind_hash;
|
|
__u16 default_stream;
|
|
short: 16;
|
|
__u32 default_ppid;
|
|
__u16 default_flags;
|
|
short: 16;
|
|
__u32 default_context;
|
|
__u32 default_timetolive;
|
|
__u32 default_rcv_context;
|
|
int max_burst;
|
|
__u32 hbinterval;
|
|
__u32 probe_interval;
|
|
__be16 udp_port;
|
|
__be16 encap_port;
|
|
__u16 pathmaxrxt;
|
|
short: 16;
|
|
__u32 flowlabel;
|
|
__u8 dscp;
|
|
char: 8;
|
|
__u16 pf_retrans;
|
|
__u16 ps_retrans;
|
|
short: 16;
|
|
__u32 pathmtu;
|
|
__u32 sackdelay;
|
|
__u32 sackfreq;
|
|
__u32 param_flags;
|
|
__u32 default_ss;
|
|
struct sctp_rtoinfo rtoinfo;
|
|
struct sctp_paddrparams paddrparam;
|
|
struct sctp_assocparams assocparams;
|
|
__u16 subscribe;
|
|
struct sctp_initmsg initmsg;
|
|
short: 16;
|
|
int user_frag;
|
|
__u32 autoclose;
|
|
__u32 adaptation_ind;
|
|
__u32 pd_point;
|
|
__u16 nodelay: 1;
|
|
__u16 pf_expose: 2;
|
|
__u16 reuse: 1;
|
|
__u16 disable_fragments: 1;
|
|
__u16 v4mapped: 1;
|
|
__u16 frag_interleave: 1;
|
|
__u16 recvrcvinfo: 1;
|
|
__u16 recvnxtinfo: 1;
|
|
__u16 data_ready_signalled: 1;
|
|
int: 22;
|
|
atomic_t pd_mode;
|
|
struct sk_buff_head pd_lobby;
|
|
struct list_head auto_asconf_list;
|
|
int do_auto_asconf;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct sctp_ulpevent;
|
|
|
|
struct sctp_pf {
|
|
void (*event_msgname)(struct sctp_ulpevent *, char *, int *);
|
|
void (*skb_msgname)(struct sk_buff *, char *, int *);
|
|
int (*af_supported)(sa_family_t, struct sctp_sock *);
|
|
int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *, struct sctp_sock *);
|
|
int (*bind_verify)(struct sctp_sock *, union sctp_addr *);
|
|
int (*send_verify)(struct sctp_sock *, union sctp_addr *);
|
|
int (*supported_addrs)(const struct sctp_sock *, __be16 *);
|
|
struct sock * (*create_accept_sk)(struct sock *, struct sctp_association *, bool);
|
|
int (*addr_to_user)(struct sctp_sock *, union sctp_addr *);
|
|
void (*to_sk_saddr)(union sctp_addr *, struct sock *);
|
|
void (*to_sk_daddr)(union sctp_addr *, struct sock *);
|
|
void (*copy_ip_options)(struct sock *, struct sock *);
|
|
struct sctp_af *af;
|
|
};
|
|
|
|
struct sctp_ulpevent {
|
|
struct sctp_association *asoc;
|
|
struct sctp_chunk *chunk;
|
|
unsigned int rmem_len;
|
|
union {
|
|
__u32 mid;
|
|
__u16 ssn;
|
|
};
|
|
union {
|
|
__u32 ppid;
|
|
__u32 fsn;
|
|
};
|
|
__u32 tsn;
|
|
__u32 cumtsn;
|
|
__u16 stream;
|
|
__u16 flags;
|
|
__u16 msg_flags;
|
|
} __attribute__((packed));
|
|
|
|
struct sctp_endpoint {
|
|
struct sctp_ep_common base;
|
|
struct hlist_node node;
|
|
int hashent;
|
|
struct list_head asocs;
|
|
__u8 secret_key[32];
|
|
__u8 *digest;
|
|
__u32 sndbuf_policy;
|
|
__u32 rcvbuf_policy;
|
|
struct crypto_shash **auth_hmacs;
|
|
struct sctp_hmac_algo_param *auth_hmacs_list;
|
|
struct sctp_chunks_param *auth_chunk_list;
|
|
struct list_head endpoint_shared_keys;
|
|
__u16 active_key_id;
|
|
__u8 ecn_enable: 1;
|
|
__u8 auth_enable: 1;
|
|
__u8 intl_enable: 1;
|
|
__u8 prsctp_enable: 1;
|
|
__u8 asconf_enable: 1;
|
|
__u8 reconf_enable: 1;
|
|
__u8 strreset_enable;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct sctp_bind_bucket {
|
|
unsigned short port;
|
|
signed char fastreuse;
|
|
signed char fastreuseport;
|
|
kuid_t fastuid;
|
|
struct hlist_node node;
|
|
struct hlist_head owner;
|
|
struct net *net;
|
|
};
|
|
|
|
struct sctp_stream_priorities;
|
|
|
|
struct sctp_stream_out_ext {
|
|
__u64 abandoned_unsent[3];
|
|
__u64 abandoned_sent[3];
|
|
struct list_head outq;
|
|
union {
|
|
struct {
|
|
struct list_head prio_list;
|
|
struct sctp_stream_priorities *prio_head;
|
|
};
|
|
struct {
|
|
struct list_head rr_list;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct sctp_stream_priorities {
|
|
struct list_head prio_sched;
|
|
struct list_head active;
|
|
struct sctp_stream_out_ext *next;
|
|
__u16 prio;
|
|
__u16 users;
|
|
};
|
|
|
|
struct sctp_stream_interleave {
|
|
__u16 data_chunk_len;
|
|
__u16 ftsn_chunk_len;
|
|
struct sctp_chunk * (*make_datafrag)(const struct sctp_association *, const struct sctp_sndrcvinfo *, int, __u8, gfp_t);
|
|
void (*assign_number)(struct sctp_chunk *);
|
|
bool (*validate_data)(struct sctp_chunk *);
|
|
int (*ulpevent_data)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
|
|
int (*enqueue_event)(struct sctp_ulpq *, struct sctp_ulpevent *);
|
|
void (*renege_events)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t);
|
|
void (*start_pd)(struct sctp_ulpq *, gfp_t);
|
|
void (*abort_pd)(struct sctp_ulpq *, gfp_t);
|
|
void (*generate_ftsn)(struct sctp_outq *, __u32);
|
|
bool (*validate_ftsn)(struct sctp_chunk *);
|
|
void (*report_ftsn)(struct sctp_ulpq *, __u32);
|
|
void (*handle_ftsn)(struct sctp_ulpq *, struct sctp_chunk *);
|
|
};
|
|
|
|
struct _gpt_header {
|
|
__le64 signature;
|
|
__le32 revision;
|
|
__le32 header_size;
|
|
__le32 header_crc32;
|
|
__le32 reserved1;
|
|
__le64 my_lba;
|
|
__le64 alternate_lba;
|
|
__le64 first_usable_lba;
|
|
__le64 last_usable_lba;
|
|
efi_guid_t disk_guid;
|
|
__le64 partition_entry_lba;
|
|
__le32 num_partition_entries;
|
|
__le32 sizeof_partition_entry;
|
|
__le32 partition_entry_array_crc32;
|
|
} __attribute__((packed));
|
|
|
|
typedef struct _gpt_header gpt_header;
|
|
|
|
struct _gpt_entry_attributes {
|
|
u64 required_to_function: 1;
|
|
u64 reserved: 47;
|
|
u64 type_guid_specific: 16;
|
|
};
|
|
|
|
typedef struct _gpt_entry_attributes gpt_entry_attributes;
|
|
|
|
struct _gpt_entry {
|
|
efi_guid_t partition_type_guid;
|
|
efi_guid_t unique_partition_guid;
|
|
__le64 starting_lba;
|
|
__le64 ending_lba;
|
|
gpt_entry_attributes attributes;
|
|
__le16 partition_name[36];
|
|
};
|
|
|
|
typedef struct _gpt_entry gpt_entry;
|
|
|
|
struct _gpt_mbr_record {
|
|
u8 boot_indicator;
|
|
u8 start_head;
|
|
u8 start_sector;
|
|
u8 start_track;
|
|
u8 os_type;
|
|
u8 end_head;
|
|
u8 end_sector;
|
|
u8 end_track;
|
|
__le32 starting_lba;
|
|
__le32 size_in_lba;
|
|
};
|
|
|
|
typedef struct _gpt_mbr_record gpt_mbr_record;
|
|
|
|
struct _legacy_mbr {
|
|
u8 boot_code[440];
|
|
__le32 unique_mbr_signature;
|
|
__le16 unknown;
|
|
gpt_mbr_record partition_record[4];
|
|
__le16 signature;
|
|
} __attribute__((packed));
|
|
|
|
typedef struct _legacy_mbr legacy_mbr;
|
|
|
|
enum {
|
|
REQ_F_FIXED_FILE_BIT = 0,
|
|
REQ_F_IO_DRAIN_BIT = 1,
|
|
REQ_F_LINK_BIT = 2,
|
|
REQ_F_HARDLINK_BIT = 3,
|
|
REQ_F_FORCE_ASYNC_BIT = 4,
|
|
REQ_F_BUFFER_SELECT_BIT = 5,
|
|
REQ_F_CQE_SKIP_BIT = 6,
|
|
REQ_F_FAIL_BIT = 8,
|
|
REQ_F_INFLIGHT_BIT = 9,
|
|
REQ_F_CUR_POS_BIT = 10,
|
|
REQ_F_NOWAIT_BIT = 11,
|
|
REQ_F_LINK_TIMEOUT_BIT = 12,
|
|
REQ_F_NEED_CLEANUP_BIT = 13,
|
|
REQ_F_POLLED_BIT = 14,
|
|
REQ_F_BUFFER_SELECTED_BIT = 15,
|
|
REQ_F_BUFFER_RING_BIT = 16,
|
|
REQ_F_REISSUE_BIT = 17,
|
|
REQ_F_CREDS_BIT = 18,
|
|
REQ_F_REFCOUNT_BIT = 19,
|
|
REQ_F_ARM_LTIMEOUT_BIT = 20,
|
|
REQ_F_ASYNC_DATA_BIT = 21,
|
|
REQ_F_SKIP_LINK_CQES_BIT = 22,
|
|
REQ_F_SINGLE_POLL_BIT = 23,
|
|
REQ_F_DOUBLE_POLL_BIT = 24,
|
|
REQ_F_PARTIAL_IO_BIT = 25,
|
|
REQ_F_CQE32_INIT_BIT = 26,
|
|
REQ_F_APOLL_MULTISHOT_BIT = 27,
|
|
REQ_F_CLEAR_POLLIN_BIT = 28,
|
|
REQ_F_HASH_LOCKED_BIT = 29,
|
|
REQ_F_SUPPORT_NOWAIT_BIT = 30,
|
|
REQ_F_ISREG_BIT = 31,
|
|
__REQ_F_LAST_BIT = 32,
|
|
};
|
|
|
|
struct io_rw {
|
|
struct kiocb kiocb;
|
|
u64 addr;
|
|
u32 len;
|
|
rwf_t flags;
|
|
};
|
|
|
|
struct io_rw_state {
|
|
struct iov_iter iter;
|
|
struct iov_iter_state iter_state;
|
|
struct iovec fast_iov[8];
|
|
};
|
|
|
|
struct io_async_rw {
|
|
struct io_rw_state s;
|
|
const struct iovec *free_iovec;
|
|
size_t bytes_done;
|
|
struct wait_page_queue wpq;
|
|
};
|
|
|
|
struct vga_device {
|
|
struct list_head list;
|
|
struct pci_dev *pdev;
|
|
unsigned int decodes;
|
|
unsigned int owns;
|
|
unsigned int locks;
|
|
unsigned int io_lock_cnt;
|
|
unsigned int mem_lock_cnt;
|
|
unsigned int io_norm_cnt;
|
|
unsigned int mem_norm_cnt;
|
|
bool bridge_has_one_vga;
|
|
bool is_firmware_default;
|
|
unsigned int (*set_decode)(struct pci_dev *, bool);
|
|
};
|
|
|
|
struct vga_arb_user_card {
|
|
struct pci_dev *pdev;
|
|
unsigned int mem_cnt;
|
|
unsigned int io_cnt;
|
|
};
|
|
|
|
struct vga_arb_private {
|
|
struct list_head list;
|
|
struct pci_dev *target;
|
|
struct vga_arb_user_card cards[16];
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct event_counter {
|
|
u32 count;
|
|
u32 flags;
|
|
};
|
|
|
|
struct acpi_data_attr;
|
|
|
|
struct acpi_data_obj {
|
|
char *name;
|
|
int (*fn)(void *, struct acpi_data_attr *);
|
|
};
|
|
|
|
struct acpi_data_attr {
|
|
struct bin_attribute attr;
|
|
u64 addr;
|
|
};
|
|
|
|
struct acpi_table_attr {
|
|
struct bin_attribute attr;
|
|
char name[4];
|
|
int instance;
|
|
char filename[8];
|
|
struct list_head node;
|
|
};
|
|
|
|
struct acpi_table_bert {
|
|
struct acpi_table_header header;
|
|
u32 region_length;
|
|
u64 address;
|
|
};
|
|
|
|
struct dw_dma_irq_regs {
|
|
u32 XFER;
|
|
u32 __pad_XFER;
|
|
u32 BLOCK;
|
|
u32 __pad_BLOCK;
|
|
u32 SRC_TRAN;
|
|
u32 __pad_SRC_TRAN;
|
|
u32 DST_TRAN;
|
|
u32 __pad_DST_TRAN;
|
|
u32 ERROR;
|
|
u32 __pad_ERROR;
|
|
};
|
|
|
|
struct dw_dma_regs {
|
|
struct dw_dma_chan_regs CHAN[8];
|
|
struct dw_dma_irq_regs RAW;
|
|
struct dw_dma_irq_regs STATUS;
|
|
struct dw_dma_irq_regs MASK;
|
|
struct dw_dma_irq_regs CLEAR;
|
|
u32 STATUS_INT;
|
|
u32 __pad_STATUS_INT;
|
|
u32 REQ_SRC;
|
|
u32 __pad_REQ_SRC;
|
|
u32 REQ_DST;
|
|
u32 __pad_REQ_DST;
|
|
u32 SGL_REQ_SRC;
|
|
u32 __pad_SGL_REQ_SRC;
|
|
u32 SGL_REQ_DST;
|
|
u32 __pad_SGL_REQ_DST;
|
|
u32 LAST_SRC;
|
|
u32 __pad_LAST_SRC;
|
|
u32 LAST_DST;
|
|
u32 __pad_LAST_DST;
|
|
u32 CFG;
|
|
u32 __pad_CFG;
|
|
u32 CH_EN;
|
|
u32 __pad_CH_EN;
|
|
u32 ID;
|
|
u32 __pad_ID;
|
|
u32 TEST;
|
|
u32 __pad_TEST;
|
|
u32 CLASS_PRIORITY0;
|
|
u32 __pad_CLASS_PRIORITY0;
|
|
u32 CLASS_PRIORITY1;
|
|
u32 __pad_CLASS_PRIORITY1;
|
|
u32 __reserved;
|
|
u32 DWC_PARAMS[8];
|
|
u32 MULTI_BLK_TYPE;
|
|
u32 MAX_BLK_SIZE;
|
|
u32 DW_PARAMS;
|
|
u32 COMP_TYPE;
|
|
u32 COMP_VERSION;
|
|
u32 FIFO_PARTITION0;
|
|
u32 __pad_FIFO_PARTITION0;
|
|
u32 FIFO_PARTITION1;
|
|
u32 __pad_FIFO_PARTITION1;
|
|
u32 SAI_ERR;
|
|
u32 __pad_SAI_ERR;
|
|
u32 GLOBAL_CFG;
|
|
u32 __pad_GLOBAL_CFG;
|
|
};
|
|
|
|
struct vt_spawn_console {
|
|
spinlock_t lock;
|
|
struct pid *pid;
|
|
int sig;
|
|
};
|
|
|
|
struct kbd_struct {
|
|
unsigned char lockstate;
|
|
unsigned char slockstate;
|
|
unsigned char ledmode: 1;
|
|
unsigned char ledflagstate: 4;
|
|
char: 3;
|
|
unsigned char default_ledflagstate: 4;
|
|
unsigned char kbdmode: 3;
|
|
char: 1;
|
|
unsigned char modeflags: 5;
|
|
};
|
|
|
|
typedef void k_handler_fn(struct vc_data *, unsigned char, char);
|
|
|
|
typedef void fn_handler_fn(struct vc_data *);
|
|
|
|
struct kbd_led_trigger {
|
|
struct led_trigger trigger;
|
|
unsigned int mask;
|
|
};
|
|
|
|
struct getset_keycode_data {
|
|
struct input_keymap_entry ke;
|
|
int error;
|
|
};
|
|
|
|
struct keyboard_notifier_param {
|
|
struct vc_data *vc;
|
|
int down;
|
|
int shift;
|
|
int ledstate;
|
|
unsigned int value;
|
|
};
|
|
|
|
struct kbdiacr {
|
|
unsigned char diacr;
|
|
unsigned char base;
|
|
unsigned char result;
|
|
};
|
|
|
|
struct kbdiacrs {
|
|
unsigned int kb_cnt;
|
|
struct kbdiacr kbdiacr[256];
|
|
};
|
|
|
|
struct kbdiacrsuc {
|
|
unsigned int kb_cnt;
|
|
struct kbdiacruc kbdiacruc[256];
|
|
};
|
|
|
|
struct tpm1_get_random_out {
|
|
__be32 rng_data_len;
|
|
u8 rng_data[128];
|
|
};
|
|
|
|
struct drm_mode_crtc {
|
|
__u64 set_connectors_ptr;
|
|
__u32 count_connectors;
|
|
__u32 crtc_id;
|
|
__u32 fb_id;
|
|
__u32 x;
|
|
__u32 y;
|
|
__u32 gamma_size;
|
|
__u32 mode_valid;
|
|
struct drm_mode_modeinfo mode;
|
|
};
|
|
|
|
struct drm_dmi_panel_orientation_data {
|
|
int width;
|
|
int height;
|
|
const char * const *bios_dates;
|
|
int orientation;
|
|
};
|
|
|
|
struct uc_fw_blob {
|
|
const char *path;
|
|
bool legacy;
|
|
u8 major;
|
|
u8 minor;
|
|
u8 patch;
|
|
bool loaded_via_gsc;
|
|
} __attribute__((packed));
|
|
|
|
struct uc_fw_platform_requirement {
|
|
enum intel_platform p;
|
|
u8 rev;
|
|
const struct uc_fw_blob blob;
|
|
} __attribute__((packed));
|
|
|
|
struct fw_blobs_by_type {
|
|
const struct uc_fw_platform_requirement *blobs;
|
|
u32 count;
|
|
};
|
|
|
|
struct uc_css_header {
|
|
u32 module_type;
|
|
u32 header_size_dw;
|
|
u32 header_version;
|
|
u32 module_id;
|
|
u32 module_vendor;
|
|
u32 date;
|
|
u32 size_dw;
|
|
u32 key_size_dw;
|
|
u32 modulus_size_dw;
|
|
u32 exponent_size_dw;
|
|
u32 time;
|
|
char username[8];
|
|
char buildnumber[12];
|
|
u32 sw_version;
|
|
u32 vf_version;
|
|
u32 reserved0[12];
|
|
union {
|
|
u32 private_data_size;
|
|
u32 reserved1;
|
|
};
|
|
u32 header_info;
|
|
};
|
|
|
|
struct dbuf_slice_conf_entry {
|
|
u8 active_pipes;
|
|
u8 dbuf_mask[4];
|
|
bool join_mbus;
|
|
};
|
|
|
|
struct skl_hw_state {
|
|
struct skl_ddb_entry ddb[8];
|
|
struct skl_ddb_entry ddb_y[8];
|
|
struct skl_pipe_wm wm;
|
|
};
|
|
|
|
typedef struct {
|
|
u32 val;
|
|
} uint_fixed_16_16_t;
|
|
|
|
struct skl_wm_params {
|
|
bool x_tiled;
|
|
bool y_tiled;
|
|
bool rc_surface;
|
|
bool is_planar;
|
|
u32 width;
|
|
u8 cpp;
|
|
u32 plane_pixel_rate;
|
|
u32 y_min_scanlines;
|
|
u32 plane_bytes_per_line;
|
|
uint_fixed_16_16_t plane_blocks_per_line;
|
|
uint_fixed_16_16_t y_tile_minimum;
|
|
u32 linetime_us;
|
|
u32 dbuf_block_size;
|
|
};
|
|
|
|
struct skl_plane_ddb_iter {
|
|
u64 data_rate;
|
|
u16 start;
|
|
u16 size;
|
|
};
|
|
|
|
enum drm_i915_perf_property_id {
|
|
DRM_I915_PERF_PROP_CTX_HANDLE = 1,
|
|
DRM_I915_PERF_PROP_SAMPLE_OA = 2,
|
|
DRM_I915_PERF_PROP_OA_METRICS_SET = 3,
|
|
DRM_I915_PERF_PROP_OA_FORMAT = 4,
|
|
DRM_I915_PERF_PROP_OA_EXPONENT = 5,
|
|
DRM_I915_PERF_PROP_HOLD_PREEMPTION = 6,
|
|
DRM_I915_PERF_PROP_GLOBAL_SSEU = 7,
|
|
DRM_I915_PERF_PROP_POLL_OA_PERIOD = 8,
|
|
DRM_I915_PERF_PROP_MAX = 9,
|
|
};
|
|
|
|
enum drm_i915_oa_format {
|
|
I915_OA_FORMAT_A13 = 1,
|
|
I915_OA_FORMAT_A29 = 2,
|
|
I915_OA_FORMAT_A13_B8_C8 = 3,
|
|
I915_OA_FORMAT_B4_C8 = 4,
|
|
I915_OA_FORMAT_A45_B8_C8 = 5,
|
|
I915_OA_FORMAT_B4_C8_A16 = 6,
|
|
I915_OA_FORMAT_C4_B8 = 7,
|
|
I915_OA_FORMAT_A12 = 8,
|
|
I915_OA_FORMAT_A12_B8_C8 = 9,
|
|
I915_OA_FORMAT_A32u40_A4u32_B8_C8 = 10,
|
|
I915_OAR_FORMAT_A32u40_A4u32_B8_C8 = 11,
|
|
I915_OA_FORMAT_A24u40_A14u32_B8_C8 = 12,
|
|
I915_OA_FORMAT_MAX = 13,
|
|
};
|
|
|
|
enum slpc_gucrc_mode {
|
|
SLPC_GUCRC_MODE_HW = 0,
|
|
SLPC_GUCRC_MODE_GUCRC_NO_RC6 = 1,
|
|
SLPC_GUCRC_MODE_GUCRC_STATIC_TIMEOUT = 2,
|
|
SLPC_GUCRC_MODE_GUCRC_DYNAMIC_HYSTERESIS = 3,
|
|
SLPC_GUCRC_MODE_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
START_TS = 0,
|
|
NOW_TS = 1,
|
|
DELTA_TS = 2,
|
|
JUMP_PREDICATE = 3,
|
|
DELTA_TARGET = 4,
|
|
N_CS_GPR = 5,
|
|
};
|
|
|
|
enum drm_i915_perf_record_type {
|
|
DRM_I915_PERF_RECORD_SAMPLE = 1,
|
|
DRM_I915_PERF_RECORD_OA_REPORT_LOST = 2,
|
|
DRM_I915_PERF_RECORD_OA_BUFFER_LOST = 3,
|
|
DRM_I915_PERF_RECORD_MAX = 4,
|
|
};
|
|
|
|
struct i915_oa_config_bo {
|
|
struct llist_node node;
|
|
struct i915_oa_config *oa_config;
|
|
struct i915_vma *vma;
|
|
};
|
|
|
|
struct perf_open_properties {
|
|
u32 sample_flags;
|
|
u64 single_context: 1;
|
|
u64 hold_preemption: 1;
|
|
u64 ctx_handle;
|
|
int metrics_set;
|
|
int oa_format;
|
|
bool oa_periodic;
|
|
int oa_period_exponent;
|
|
struct intel_engine_cs *engine;
|
|
bool has_sseu;
|
|
struct intel_sseu sseu;
|
|
u64 poll_oa_period;
|
|
};
|
|
|
|
struct drm_i915_perf_open_param {
|
|
__u32 flags;
|
|
__u32 num_properties;
|
|
__u64 properties_ptr;
|
|
};
|
|
|
|
struct drm_i915_perf_record_header {
|
|
__u32 type;
|
|
__u16 pad;
|
|
__u16 size;
|
|
};
|
|
|
|
struct flex {
|
|
i915_reg_t reg;
|
|
u32 offset;
|
|
u32 value;
|
|
};
|
|
|
|
typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *);
|
|
|
|
enum ata_lpm_hints {
|
|
ATA_LPM_EMPTY = 1,
|
|
ATA_LPM_HIPM = 2,
|
|
ATA_LPM_WAKE_ONLY = 4,
|
|
};
|
|
|
|
struct ahci_sg {
|
|
__le32 addr;
|
|
__le32 addr_hi;
|
|
__le32 reserved;
|
|
__le32 flags_size;
|
|
};
|
|
|
|
enum rtl_fw_opcode {
|
|
PHY_READ = 0,
|
|
PHY_DATA_OR = 1,
|
|
PHY_DATA_AND = 2,
|
|
PHY_BJMPN = 3,
|
|
PHY_MDIO_CHG = 4,
|
|
PHY_CLEAR_READCOUNT = 7,
|
|
PHY_WRITE = 8,
|
|
PHY_READCOUNT_EQ_SKIP = 9,
|
|
PHY_COMP_EQ_SKIPN = 10,
|
|
PHY_COMP_NEQ_SKIPN = 11,
|
|
PHY_WRITE_PREVIOUS = 12,
|
|
PHY_SKIPN = 13,
|
|
PHY_DELAY_MS = 14,
|
|
};
|
|
|
|
struct fw_info {
|
|
u32 magic;
|
|
char version[32];
|
|
__le32 fw_start;
|
|
__le32 fw_len;
|
|
u8 chksum;
|
|
} __attribute__((packed));
|
|
|
|
typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *);
|
|
|
|
struct phy_reg {
|
|
u16 reg;
|
|
u16 val;
|
|
};
|
|
|
|
struct netdev_lag_lower_state_info {
|
|
u8 link_up: 1;
|
|
u8 tx_enabled: 1;
|
|
};
|
|
|
|
struct net_failover_info {
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *primary_dev;
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *standby_dev;
|
|
struct rtnl_link_stats64 primary_stats;
|
|
struct rtnl_link_stats64 standby_stats;
|
|
struct rtnl_link_stats64 failover_stats;
|
|
spinlock_t stats_lock;
|
|
};
|
|
|
|
struct ps2pp_info {
|
|
u8 model;
|
|
u8 kind;
|
|
u16 features;
|
|
};
|
|
|
|
enum {
|
|
SNDRV_HWDEP_IOCTL_DSP_LOAD32 = 1079003139,
|
|
};
|
|
|
|
struct snd_hwdep_info {
|
|
unsigned int device;
|
|
int card;
|
|
unsigned char id[64];
|
|
unsigned char name[80];
|
|
int iface;
|
|
unsigned char reserved[64];
|
|
};
|
|
|
|
struct snd_hwdep_dsp_image32 {
|
|
u32 index;
|
|
unsigned char name[64];
|
|
u32 image;
|
|
u32 length;
|
|
u32 driver_data;
|
|
};
|
|
|
|
struct neigh_sysctl_table {
|
|
struct ctl_table_header *sysctl_header;
|
|
struct ctl_table neigh_vars[22];
|
|
};
|
|
|
|
enum {
|
|
NDA_UNSPEC = 0,
|
|
NDA_DST = 1,
|
|
NDA_LLADDR = 2,
|
|
NDA_CACHEINFO = 3,
|
|
NDA_PROBES = 4,
|
|
NDA_VLAN = 5,
|
|
NDA_PORT = 6,
|
|
NDA_VNI = 7,
|
|
NDA_IFINDEX = 8,
|
|
NDA_MASTER = 9,
|
|
NDA_LINK_NETNSID = 10,
|
|
NDA_SRC_VNI = 11,
|
|
NDA_PROTOCOL = 12,
|
|
NDA_NH_ID = 13,
|
|
NDA_FDB_EXT_ATTRS = 14,
|
|
NDA_FLAGS_EXT = 15,
|
|
NDA_NDM_STATE_MASK = 16,
|
|
NDA_NDM_FLAGS_MASK = 17,
|
|
__NDA_MAX = 18,
|
|
};
|
|
|
|
enum {
|
|
NDTA_UNSPEC = 0,
|
|
NDTA_NAME = 1,
|
|
NDTA_THRESH1 = 2,
|
|
NDTA_THRESH2 = 3,
|
|
NDTA_THRESH3 = 4,
|
|
NDTA_CONFIG = 5,
|
|
NDTA_PARMS = 6,
|
|
NDTA_STATS = 7,
|
|
NDTA_GC_INTERVAL = 8,
|
|
NDTA_PAD = 9,
|
|
__NDTA_MAX = 10,
|
|
};
|
|
|
|
enum {
|
|
NDTPA_UNSPEC = 0,
|
|
NDTPA_IFINDEX = 1,
|
|
NDTPA_REFCNT = 2,
|
|
NDTPA_REACHABLE_TIME = 3,
|
|
NDTPA_BASE_REACHABLE_TIME = 4,
|
|
NDTPA_RETRANS_TIME = 5,
|
|
NDTPA_GC_STALETIME = 6,
|
|
NDTPA_DELAY_PROBE_TIME = 7,
|
|
NDTPA_QUEUE_LEN = 8,
|
|
NDTPA_APP_PROBES = 9,
|
|
NDTPA_UCAST_PROBES = 10,
|
|
NDTPA_MCAST_PROBES = 11,
|
|
NDTPA_ANYCAST_DELAY = 12,
|
|
NDTPA_PROXY_DELAY = 13,
|
|
NDTPA_PROXY_QLEN = 14,
|
|
NDTPA_LOCKTIME = 15,
|
|
NDTPA_QUEUE_LENBYTES = 16,
|
|
NDTPA_MCAST_REPROBES = 17,
|
|
NDTPA_PAD = 18,
|
|
NDTPA_INTERVAL_PROBE_TIME_MS = 19,
|
|
__NDTPA_MAX = 20,
|
|
};
|
|
|
|
struct neigh_dump_filter {
|
|
int master_idx;
|
|
int dev_idx;
|
|
};
|
|
|
|
struct ndtmsg {
|
|
__u8 ndtm_family;
|
|
__u8 ndtm_pad1;
|
|
__u16 ndtm_pad2;
|
|
};
|
|
|
|
struct ndt_config {
|
|
__u16 ndtc_key_len;
|
|
__u16 ndtc_entry_size;
|
|
__u32 ndtc_entries;
|
|
__u32 ndtc_last_flush;
|
|
__u32 ndtc_last_rand;
|
|
__u32 ndtc_hash_rnd;
|
|
__u32 ndtc_hash_mask;
|
|
__u32 ndtc_hash_chain_gc;
|
|
__u32 ndtc_proxy_qlen;
|
|
};
|
|
|
|
struct ndt_stats {
|
|
__u64 ndts_allocs;
|
|
__u64 ndts_destroys;
|
|
__u64 ndts_hash_grows;
|
|
__u64 ndts_res_failed;
|
|
__u64 ndts_lookups;
|
|
__u64 ndts_hits;
|
|
__u64 ndts_rcv_probes_mcast;
|
|
__u64 ndts_rcv_probes_ucast;
|
|
__u64 ndts_periodic_gc_runs;
|
|
__u64 ndts_forced_gc_runs;
|
|
__u64 ndts_table_fulls;
|
|
};
|
|
|
|
struct nda_cacheinfo {
|
|
__u32 ndm_confirmed;
|
|
__u32 ndm_used;
|
|
__u32 ndm_updated;
|
|
__u32 ndm_refcnt;
|
|
};
|
|
|
|
enum offload_act_command {
|
|
FLOW_ACT_REPLACE = 0,
|
|
FLOW_ACT_DESTROY = 1,
|
|
FLOW_ACT_STATS = 2,
|
|
};
|
|
|
|
enum {
|
|
TCA_ACT_UNSPEC = 0,
|
|
TCA_ACT_KIND = 1,
|
|
TCA_ACT_OPTIONS = 2,
|
|
TCA_ACT_INDEX = 3,
|
|
TCA_ACT_STATS = 4,
|
|
TCA_ACT_PAD = 5,
|
|
TCA_ACT_COOKIE = 6,
|
|
TCA_ACT_FLAGS = 7,
|
|
TCA_ACT_HW_STATS = 8,
|
|
TCA_ACT_USED_HW_STATS = 9,
|
|
TCA_ACT_IN_HW_COUNT = 10,
|
|
__TCA_ACT_MAX = 11,
|
|
};
|
|
|
|
enum pedit_header_type {
|
|
TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
|
|
TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
|
|
TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
|
|
TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
|
|
TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
|
|
TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
|
|
__PEDIT_HDR_TYPE_MAX = 6,
|
|
};
|
|
|
|
enum pedit_cmd {
|
|
TCA_PEDIT_KEY_EX_CMD_SET = 0,
|
|
TCA_PEDIT_KEY_EX_CMD_ADD = 1,
|
|
__PEDIT_CMD_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
TCA_ROOT_UNSPEC = 0,
|
|
TCA_ROOT_TAB = 1,
|
|
TCA_ROOT_FLAGS = 2,
|
|
TCA_ROOT_COUNT = 3,
|
|
TCA_ROOT_TIME_DELTA = 4,
|
|
__TCA_ROOT_MAX = 5,
|
|
};
|
|
|
|
struct tc_act_pernet_id {
|
|
struct list_head list;
|
|
unsigned int id;
|
|
};
|
|
|
|
struct tc_pedit_key;
|
|
|
|
struct tcf_pedit_key_ex;
|
|
|
|
struct tcf_pedit_parms {
|
|
struct tc_pedit_key *tcfp_keys;
|
|
struct tcf_pedit_key_ex *tcfp_keys_ex;
|
|
u32 tcfp_off_max_hint;
|
|
unsigned char tcfp_nkeys;
|
|
unsigned char tcfp_flags;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct tc_pedit_key {
|
|
__u32 mask;
|
|
__u32 val;
|
|
__u32 off;
|
|
__u32 at;
|
|
__u32 offmask;
|
|
__u32 shift;
|
|
};
|
|
|
|
struct tcf_pedit_key_ex {
|
|
enum pedit_header_type htype;
|
|
enum pedit_cmd cmd;
|
|
};
|
|
|
|
struct tcf_pedit {
|
|
struct tc_action common;
|
|
struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms;
|
|
long: 64;
|
|
};
|
|
|
|
struct tcamsg {
|
|
unsigned char tca_family;
|
|
unsigned char tca__pad1;
|
|
unsigned short tca__pad2;
|
|
};
|
|
|
|
struct flow_stats {
|
|
u64 pkts;
|
|
u64 bytes;
|
|
u64 drops;
|
|
u64 lastused;
|
|
enum flow_action_hw_stats used_hw_stats;
|
|
bool used_hw_stats_valid;
|
|
};
|
|
|
|
struct flow_offload_action {
|
|
struct netlink_ext_ack *extack;
|
|
enum offload_act_command command;
|
|
enum flow_action_id id;
|
|
u32 index;
|
|
unsigned long cookie;
|
|
struct flow_stats stats;
|
|
struct flow_action action;
|
|
};
|
|
|
|
struct flow_block_cb;
|
|
|
|
typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *));
|
|
|
|
struct flow_block_indr {
|
|
struct list_head list;
|
|
struct net_device *dev;
|
|
struct Qdisc *sch;
|
|
enum flow_block_binder_type binder_type;
|
|
void *data;
|
|
void *cb_priv;
|
|
void (*cleanup)(struct flow_block_cb *);
|
|
};
|
|
|
|
struct flow_block_cb {
|
|
struct list_head driver_list;
|
|
struct list_head list;
|
|
flow_setup_cb_t *cb;
|
|
void *cb_ident;
|
|
void *cb_priv;
|
|
void (*release)(void *);
|
|
struct flow_block_indr indr;
|
|
unsigned int refcnt;
|
|
};
|
|
|
|
struct tc_action_net {
|
|
struct tcf_idrinfo *idrinfo;
|
|
const struct tc_action_ops *ops;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0,
|
|
ETHTOOL_A_MODULE_EEPROM_HEADER = 1,
|
|
ETHTOOL_A_MODULE_EEPROM_OFFSET = 2,
|
|
ETHTOOL_A_MODULE_EEPROM_LENGTH = 3,
|
|
ETHTOOL_A_MODULE_EEPROM_PAGE = 4,
|
|
ETHTOOL_A_MODULE_EEPROM_BANK = 5,
|
|
ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6,
|
|
ETHTOOL_A_MODULE_EEPROM_DATA = 7,
|
|
__ETHTOOL_A_MODULE_EEPROM_CNT = 8,
|
|
ETHTOOL_A_MODULE_EEPROM_MAX = 7,
|
|
};
|
|
|
|
struct eeprom_req_info {
|
|
struct ethnl_req_info base;
|
|
u32 offset;
|
|
u32 length;
|
|
u8 page;
|
|
u8 bank;
|
|
u8 i2c_address;
|
|
};
|
|
|
|
struct eeprom_reply_data {
|
|
struct ethnl_reply_data base;
|
|
u32 length;
|
|
u8 *data;
|
|
};
|
|
|
|
struct xfrm_if_decode_session_result;
|
|
|
|
struct xfrm_if_cb {
|
|
bool (*decode_session)(struct sk_buff *, unsigned short, struct xfrm_if_decode_session_result *);
|
|
};
|
|
|
|
struct xfrm_if_decode_session_result {
|
|
struct net *net;
|
|
u32 if_id;
|
|
};
|
|
|
|
enum {
|
|
XFRM_POLICY_TYPE_MAIN = 0,
|
|
XFRM_POLICY_TYPE_SUB = 1,
|
|
XFRM_POLICY_TYPE_MAX = 2,
|
|
XFRM_POLICY_TYPE_ANY = 255,
|
|
};
|
|
|
|
enum {
|
|
XFRM_LOOKUP_ICMP = 1,
|
|
XFRM_LOOKUP_QUEUE = 2,
|
|
XFRM_LOOKUP_KEEP_DST_REF = 4,
|
|
};
|
|
|
|
enum xfrm_pol_inexact_candidate_type {
|
|
XFRM_POL_CAND_BOTH = 0,
|
|
XFRM_POL_CAND_SADDR = 1,
|
|
XFRM_POL_CAND_DADDR = 2,
|
|
XFRM_POL_CAND_ANY = 3,
|
|
XFRM_POL_CAND_MAX = 4,
|
|
};
|
|
|
|
struct xfrm_pol_inexact_node {
|
|
struct rb_node node;
|
|
union {
|
|
xfrm_address_t addr;
|
|
struct callback_head rcu;
|
|
};
|
|
u8 prefixlen;
|
|
struct rb_root root;
|
|
struct hlist_head hhead;
|
|
};
|
|
|
|
struct xfrm_pol_inexact_key {
|
|
possible_net_t net;
|
|
u32 if_id;
|
|
u16 family;
|
|
u8 dir;
|
|
u8 type;
|
|
};
|
|
|
|
struct xfrm_pol_inexact_bin {
|
|
struct xfrm_pol_inexact_key k;
|
|
struct rhash_head head;
|
|
struct hlist_head hhead;
|
|
seqcount_spinlock_t count;
|
|
struct rb_root root_d;
|
|
struct rb_root root_s;
|
|
struct list_head inexact_bins;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct sk_buff_fclones {
|
|
struct sk_buff skb1;
|
|
struct sk_buff skb2;
|
|
refcount_t fclone_ref;
|
|
};
|
|
|
|
struct xfrm_pol_inexact_candidates {
|
|
struct hlist_head *res[4];
|
|
};
|
|
|
|
struct xfrm_flo {
|
|
struct dst_entry *dst_orig;
|
|
u8 flags;
|
|
};
|
|
|
|
struct xfrmk_spdinfo {
|
|
u32 incnt;
|
|
u32 outcnt;
|
|
u32 fwdcnt;
|
|
u32 inscnt;
|
|
u32 outscnt;
|
|
u32 fwdscnt;
|
|
u32 spdhcnt;
|
|
u32 spdhmcnt;
|
|
};
|
|
|
|
struct xfrm_policy_walk {
|
|
struct xfrm_policy_walk_entry walk;
|
|
u8 type;
|
|
u32 seq;
|
|
};
|
|
|
|
struct ib_core_device {
|
|
struct device dev;
|
|
possible_net_t rdma_net;
|
|
struct kobject *ports_kobj;
|
|
struct list_head port_list;
|
|
struct ib_device *owner;
|
|
};
|
|
|
|
enum rdma_driver_id {
|
|
RDMA_DRIVER_UNKNOWN = 0,
|
|
RDMA_DRIVER_MLX5 = 1,
|
|
RDMA_DRIVER_MLX4 = 2,
|
|
RDMA_DRIVER_CXGB3 = 3,
|
|
RDMA_DRIVER_CXGB4 = 4,
|
|
RDMA_DRIVER_MTHCA = 5,
|
|
RDMA_DRIVER_BNXT_RE = 6,
|
|
RDMA_DRIVER_OCRDMA = 7,
|
|
RDMA_DRIVER_NES = 8,
|
|
RDMA_DRIVER_I40IW = 9,
|
|
RDMA_DRIVER_IRDMA = 9,
|
|
RDMA_DRIVER_VMW_PVRDMA = 10,
|
|
RDMA_DRIVER_QEDR = 11,
|
|
RDMA_DRIVER_HNS = 12,
|
|
RDMA_DRIVER_USNIC = 13,
|
|
RDMA_DRIVER_RXE = 14,
|
|
RDMA_DRIVER_HFI1 = 15,
|
|
RDMA_DRIVER_QIB = 16,
|
|
RDMA_DRIVER_EFA = 17,
|
|
RDMA_DRIVER_SIW = 18,
|
|
RDMA_DRIVER_ERDMA = 19,
|
|
RDMA_DRIVER_MANA = 20,
|
|
};
|
|
|
|
enum ib_cq_notify_flags {
|
|
IB_CQ_SOLICITED = 1,
|
|
IB_CQ_NEXT_COMP = 2,
|
|
IB_CQ_SOLICITED_MASK = 3,
|
|
IB_CQ_REPORT_MISSED_EVENTS = 4,
|
|
};
|
|
|
|
struct ib_mad;
|
|
|
|
enum rdma_link_layer {
|
|
IB_LINK_LAYER_UNSPECIFIED = 0,
|
|
IB_LINK_LAYER_INFINIBAND = 1,
|
|
IB_LINK_LAYER_ETHERNET = 2,
|
|
};
|
|
|
|
enum rdma_netdev_t {
|
|
RDMA_NETDEV_OPA_VNIC = 0,
|
|
RDMA_NETDEV_IPOIB = 1,
|
|
};
|
|
|
|
enum ib_srq_attr_mask {
|
|
IB_SRQ_MAX_WR = 1,
|
|
IB_SRQ_LIMIT = 2,
|
|
};
|
|
|
|
enum ib_mr_type {
|
|
IB_MR_TYPE_MEM_REG = 0,
|
|
IB_MR_TYPE_SG_GAPS = 1,
|
|
IB_MR_TYPE_DM = 2,
|
|
IB_MR_TYPE_USER = 3,
|
|
IB_MR_TYPE_DMA = 4,
|
|
IB_MR_TYPE_INTEGRITY = 5,
|
|
};
|
|
|
|
enum ib_uverbs_advise_mr_advice {
|
|
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH = 0,
|
|
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE = 1,
|
|
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT = 2,
|
|
};
|
|
|
|
struct uverbs_attr_bundle;
|
|
|
|
struct rdma_cm_id;
|
|
|
|
struct iw_cm_id;
|
|
|
|
struct iw_cm_conn_param;
|
|
|
|
struct ib_qp;
|
|
|
|
struct ib_send_wr;
|
|
|
|
struct ib_recv_wr;
|
|
|
|
struct ib_cq;
|
|
|
|
struct ib_wc;
|
|
|
|
struct ib_srq;
|
|
|
|
struct ib_grh;
|
|
|
|
struct ib_device_attr;
|
|
|
|
struct ib_udata;
|
|
|
|
struct ib_device_modify;
|
|
|
|
struct ib_port_attr;
|
|
|
|
struct ib_port_modify;
|
|
|
|
struct ib_port_immutable;
|
|
|
|
struct rdma_netdev_alloc_params;
|
|
|
|
union ib_gid;
|
|
|
|
struct ib_gid_attr;
|
|
|
|
struct ib_ucontext;
|
|
|
|
struct rdma_user_mmap_entry;
|
|
|
|
struct ib_pd;
|
|
|
|
struct ib_ah;
|
|
|
|
struct rdma_ah_init_attr;
|
|
|
|
struct rdma_ah_attr;
|
|
|
|
struct ib_srq_init_attr;
|
|
|
|
struct ib_srq_attr;
|
|
|
|
struct ib_qp_init_attr;
|
|
|
|
struct ib_qp_attr;
|
|
|
|
struct ib_cq_init_attr;
|
|
|
|
struct ib_mr;
|
|
|
|
struct ib_sge;
|
|
|
|
struct ib_mr_status;
|
|
|
|
struct ib_mw;
|
|
|
|
struct ib_xrcd;
|
|
|
|
struct ib_flow;
|
|
|
|
struct ib_flow_attr;
|
|
|
|
struct ib_flow_action;
|
|
|
|
struct ib_wq;
|
|
|
|
struct ib_wq_init_attr;
|
|
|
|
struct ib_wq_attr;
|
|
|
|
struct ib_rwq_ind_table;
|
|
|
|
struct ib_rwq_ind_table_init_attr;
|
|
|
|
struct ib_dm;
|
|
|
|
struct ib_dm_alloc_attr;
|
|
|
|
struct ib_dm_mr_attr;
|
|
|
|
struct ib_counters;
|
|
|
|
struct ib_counters_read_attr;
|
|
|
|
struct rdma_hw_stats;
|
|
|
|
struct rdma_counter;
|
|
|
|
struct ib_device_ops {
|
|
struct module *owner;
|
|
enum rdma_driver_id driver_id;
|
|
u32 uverbs_abi_ver;
|
|
unsigned int uverbs_no_driver_id_binding: 1;
|
|
const struct attribute_group *device_group;
|
|
const struct attribute_group **port_groups;
|
|
int (*post_send)(struct ib_qp *, const struct ib_send_wr *, const struct ib_send_wr **);
|
|
int (*post_recv)(struct ib_qp *, const struct ib_recv_wr *, const struct ib_recv_wr **);
|
|
void (*drain_rq)(struct ib_qp *);
|
|
void (*drain_sq)(struct ib_qp *);
|
|
int (*poll_cq)(struct ib_cq *, int, struct ib_wc *);
|
|
int (*peek_cq)(struct ib_cq *, int);
|
|
int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags);
|
|
int (*post_srq_recv)(struct ib_srq *, const struct ib_recv_wr *, const struct ib_recv_wr **);
|
|
int (*process_mad)(struct ib_device *, int, u32, const struct ib_wc *, const struct ib_grh *, const struct ib_mad *, struct ib_mad *, size_t *, u16 *);
|
|
int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *);
|
|
int (*modify_device)(struct ib_device *, int, struct ib_device_modify *);
|
|
void (*get_dev_fw_str)(struct ib_device *, char *);
|
|
const struct cpumask * (*get_vector_affinity)(struct ib_device *, int);
|
|
int (*query_port)(struct ib_device *, u32, struct ib_port_attr *);
|
|
int (*modify_port)(struct ib_device *, u32, int, struct ib_port_modify *);
|
|
int (*get_port_immutable)(struct ib_device *, u32, struct ib_port_immutable *);
|
|
enum rdma_link_layer (*get_link_layer)(struct ib_device *, u32);
|
|
struct net_device * (*get_netdev)(struct ib_device *, u32);
|
|
struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u32, enum rdma_netdev_t, const char *, unsigned char, void (*)(struct net_device *));
|
|
int (*rdma_netdev_get_params)(struct ib_device *, u32, enum rdma_netdev_t, struct rdma_netdev_alloc_params *);
|
|
int (*query_gid)(struct ib_device *, u32, int, union ib_gid *);
|
|
int (*add_gid)(const struct ib_gid_attr *, void **);
|
|
int (*del_gid)(const struct ib_gid_attr *, void **);
|
|
int (*query_pkey)(struct ib_device *, u32, u16, u16 *);
|
|
int (*alloc_ucontext)(struct ib_ucontext *, struct ib_udata *);
|
|
void (*dealloc_ucontext)(struct ib_ucontext *);
|
|
int (*mmap)(struct ib_ucontext *, struct vm_area_struct *);
|
|
void (*mmap_free)(struct rdma_user_mmap_entry *);
|
|
void (*disassociate_ucontext)(struct ib_ucontext *);
|
|
int (*alloc_pd)(struct ib_pd *, struct ib_udata *);
|
|
int (*dealloc_pd)(struct ib_pd *, struct ib_udata *);
|
|
int (*create_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *);
|
|
int (*create_user_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *);
|
|
int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *);
|
|
int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *);
|
|
int (*destroy_ah)(struct ib_ah *, u32);
|
|
int (*create_srq)(struct ib_srq *, struct ib_srq_init_attr *, struct ib_udata *);
|
|
int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *);
|
|
int (*query_srq)(struct ib_srq *, struct ib_srq_attr *);
|
|
int (*destroy_srq)(struct ib_srq *, struct ib_udata *);
|
|
int (*create_qp)(struct ib_qp *, struct ib_qp_init_attr *, struct ib_udata *);
|
|
int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *);
|
|
int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *);
|
|
int (*destroy_qp)(struct ib_qp *, struct ib_udata *);
|
|
int (*create_cq)(struct ib_cq *, const struct ib_cq_init_attr *, struct ib_udata *);
|
|
int (*modify_cq)(struct ib_cq *, u16, u16);
|
|
int (*destroy_cq)(struct ib_cq *, struct ib_udata *);
|
|
int (*resize_cq)(struct ib_cq *, int, struct ib_udata *);
|
|
struct ib_mr * (*get_dma_mr)(struct ib_pd *, int);
|
|
struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *);
|
|
struct ib_mr * (*reg_user_mr_dmabuf)(struct ib_pd *, u64, u64, u64, int, int, struct ib_udata *);
|
|
struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *);
|
|
int (*dereg_mr)(struct ib_mr *, struct ib_udata *);
|
|
struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32);
|
|
struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32);
|
|
int (*advise_mr)(struct ib_pd *, enum ib_uverbs_advise_mr_advice, u32, struct ib_sge *, u32, struct uverbs_attr_bundle *);
|
|
int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *);
|
|
int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *);
|
|
int (*alloc_mw)(struct ib_mw *, struct ib_udata *);
|
|
int (*dealloc_mw)(struct ib_mw *);
|
|
int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16);
|
|
int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16);
|
|
int (*alloc_xrcd)(struct ib_xrcd *, struct ib_udata *);
|
|
int (*dealloc_xrcd)(struct ib_xrcd *, struct ib_udata *);
|
|
struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, struct ib_udata *);
|
|
int (*destroy_flow)(struct ib_flow *);
|
|
int (*destroy_flow_action)(struct ib_flow_action *);
|
|
int (*set_vf_link_state)(struct ib_device *, int, u32, int);
|
|
int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *);
|
|
int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *);
|
|
int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *);
|
|
int (*set_vf_guid)(struct ib_device *, int, u32, u64, int);
|
|
struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *);
|
|
int (*destroy_wq)(struct ib_wq *, struct ib_udata *);
|
|
int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *);
|
|
int (*create_rwq_ind_table)(struct ib_rwq_ind_table *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *);
|
|
int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *);
|
|
struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *);
|
|
int (*dealloc_dm)(struct ib_dm *, struct uverbs_attr_bundle *);
|
|
struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *);
|
|
int (*create_counters)(struct ib_counters *, struct uverbs_attr_bundle *);
|
|
int (*destroy_counters)(struct ib_counters *);
|
|
int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *);
|
|
int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *);
|
|
struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *);
|
|
struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32);
|
|
int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int);
|
|
int (*modify_hw_stat)(struct ib_device *, u32, unsigned int, bool);
|
|
int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *);
|
|
int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *);
|
|
int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *);
|
|
int (*fill_res_cq_entry_raw)(struct sk_buff *, struct ib_cq *);
|
|
int (*fill_res_qp_entry)(struct sk_buff *, struct ib_qp *);
|
|
int (*fill_res_qp_entry_raw)(struct sk_buff *, struct ib_qp *);
|
|
int (*fill_res_cm_id_entry)(struct sk_buff *, struct rdma_cm_id *);
|
|
int (*enable_driver)(struct ib_device *);
|
|
void (*dealloc_driver)(struct ib_device *);
|
|
void (*iw_add_ref)(struct ib_qp *);
|
|
void (*iw_rem_ref)(struct ib_qp *);
|
|
struct ib_qp * (*iw_get_qp)(struct ib_device *, int);
|
|
int (*iw_connect)(struct iw_cm_id *, struct iw_cm_conn_param *);
|
|
int (*iw_accept)(struct iw_cm_id *, struct iw_cm_conn_param *);
|
|
int (*iw_reject)(struct iw_cm_id *, const void *, u8);
|
|
int (*iw_create_listen)(struct iw_cm_id *, int);
|
|
int (*iw_destroy_listen)(struct iw_cm_id *);
|
|
int (*counter_bind_qp)(struct rdma_counter *, struct ib_qp *);
|
|
int (*counter_unbind_qp)(struct ib_qp *);
|
|
int (*counter_dealloc)(struct rdma_counter *);
|
|
struct rdma_hw_stats * (*counter_alloc_stats)(struct rdma_counter *);
|
|
int (*counter_update_stats)(struct rdma_counter *);
|
|
int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *);
|
|
int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *);
|
|
int (*get_numa_node)(struct ib_device *);
|
|
size_t size_ib_ah;
|
|
size_t size_ib_counters;
|
|
size_t size_ib_cq;
|
|
size_t size_ib_mw;
|
|
size_t size_ib_pd;
|
|
size_t size_ib_qp;
|
|
size_t size_ib_rwq_ind_table;
|
|
size_t size_ib_srq;
|
|
size_t size_ib_ucontext;
|
|
size_t size_ib_xrcd;
|
|
};
|
|
|
|
enum ib_atomic_cap {
|
|
IB_ATOMIC_NONE = 0,
|
|
IB_ATOMIC_HCA = 1,
|
|
IB_ATOMIC_GLOB = 2,
|
|
};
|
|
|
|
struct ib_odp_caps {
|
|
uint64_t general_caps;
|
|
struct {
|
|
uint32_t rc_odp_caps;
|
|
uint32_t uc_odp_caps;
|
|
uint32_t ud_odp_caps;
|
|
uint32_t xrc_odp_caps;
|
|
} per_transport_caps;
|
|
};
|
|
|
|
struct ib_rss_caps {
|
|
u32 supported_qpts;
|
|
u32 max_rwq_indirection_tables;
|
|
u32 max_rwq_indirection_table_size;
|
|
};
|
|
|
|
struct ib_tm_caps {
|
|
u32 max_rndv_hdr_size;
|
|
u32 max_num_tags;
|
|
u32 flags;
|
|
u32 max_ops;
|
|
u32 max_sge;
|
|
};
|
|
|
|
struct ib_cq_caps {
|
|
u16 max_cq_moderation_count;
|
|
u16 max_cq_moderation_period;
|
|
};
|
|
|
|
struct ib_device_attr {
|
|
u64 fw_ver;
|
|
__be64 sys_image_guid;
|
|
u64 max_mr_size;
|
|
u64 page_size_cap;
|
|
u32 vendor_id;
|
|
u32 vendor_part_id;
|
|
u32 hw_ver;
|
|
int max_qp;
|
|
int max_qp_wr;
|
|
u64 device_cap_flags;
|
|
u64 kernel_cap_flags;
|
|
int max_send_sge;
|
|
int max_recv_sge;
|
|
int max_sge_rd;
|
|
int max_cq;
|
|
int max_cqe;
|
|
int max_mr;
|
|
int max_pd;
|
|
int max_qp_rd_atom;
|
|
int max_ee_rd_atom;
|
|
int max_res_rd_atom;
|
|
int max_qp_init_rd_atom;
|
|
int max_ee_init_rd_atom;
|
|
enum ib_atomic_cap atomic_cap;
|
|
enum ib_atomic_cap masked_atomic_cap;
|
|
int max_ee;
|
|
int max_rdd;
|
|
int max_mw;
|
|
int max_raw_ipv6_qp;
|
|
int max_raw_ethy_qp;
|
|
int max_mcast_grp;
|
|
int max_mcast_qp_attach;
|
|
int max_total_mcast_qp_attach;
|
|
int max_ah;
|
|
int max_srq;
|
|
int max_srq_wr;
|
|
int max_srq_sge;
|
|
unsigned int max_fast_reg_page_list_len;
|
|
unsigned int max_pi_fast_reg_page_list_len;
|
|
u16 max_pkeys;
|
|
u8 local_ca_ack_delay;
|
|
int sig_prot_cap;
|
|
int sig_guard_cap;
|
|
struct ib_odp_caps odp_caps;
|
|
uint64_t timestamp_mask;
|
|
uint64_t hca_core_clock;
|
|
struct ib_rss_caps rss_caps;
|
|
u32 max_wq_type_rq;
|
|
u32 raw_packet_caps;
|
|
struct ib_tm_caps tm_caps;
|
|
struct ib_cq_caps cq_caps;
|
|
u64 max_dm_size;
|
|
u32 max_sgl_rd;
|
|
};
|
|
|
|
struct hw_stats_device_data;
|
|
|
|
struct rdma_restrack_root;
|
|
|
|
struct uapi_definition;
|
|
|
|
struct ib_port_data;
|
|
|
|
struct rdma_link_ops;
|
|
|
|
struct ib_device {
|
|
struct device *dma_device;
|
|
struct ib_device_ops ops;
|
|
char name[64];
|
|
struct callback_head callback_head;
|
|
struct list_head event_handler_list;
|
|
struct rw_semaphore event_handler_rwsem;
|
|
spinlock_t qp_open_list_lock;
|
|
struct rw_semaphore client_data_rwsem;
|
|
struct xarray client_data;
|
|
struct mutex unregistration_lock;
|
|
rwlock_t cache_lock;
|
|
struct ib_port_data *port_data;
|
|
int num_comp_vectors;
|
|
union {
|
|
struct device dev;
|
|
struct ib_core_device coredev;
|
|
};
|
|
const struct attribute_group *groups[4];
|
|
u64 uverbs_cmd_mask;
|
|
char node_desc[64];
|
|
__be64 node_guid;
|
|
u32 local_dma_lkey;
|
|
u16 is_switch: 1;
|
|
u16 kverbs_provider: 1;
|
|
u16 use_cq_dim: 1;
|
|
u8 node_type;
|
|
u32 phys_port_cnt;
|
|
struct ib_device_attr attrs;
|
|
struct hw_stats_device_data *hw_stats_data;
|
|
struct rdmacg_device cg_device;
|
|
u32 index;
|
|
spinlock_t cq_pools_lock;
|
|
struct list_head cq_pools[3];
|
|
struct rdma_restrack_root *res;
|
|
const struct uapi_definition *driver_def;
|
|
refcount_t refcount;
|
|
struct completion unreg_completion;
|
|
struct work_struct unregistration_work;
|
|
const struct rdma_link_ops *link_ops;
|
|
struct mutex compat_devs_mutex;
|
|
struct xarray compat_devs;
|
|
char iw_ifname[16];
|
|
u32 iw_driver_flags;
|
|
u32 lag_flags;
|
|
};
|
|
|
|
struct ib_uqp_object;
|
|
|
|
enum ib_qp_type {
|
|
IB_QPT_SMI = 0,
|
|
IB_QPT_GSI = 1,
|
|
IB_QPT_RC = 2,
|
|
IB_QPT_UC = 3,
|
|
IB_QPT_UD = 4,
|
|
IB_QPT_RAW_IPV6 = 5,
|
|
IB_QPT_RAW_ETHERTYPE = 6,
|
|
IB_QPT_RAW_PACKET = 8,
|
|
IB_QPT_XRC_INI = 9,
|
|
IB_QPT_XRC_TGT = 10,
|
|
IB_QPT_MAX = 11,
|
|
IB_QPT_DRIVER = 255,
|
|
IB_QPT_RESERVED1 = 4096,
|
|
IB_QPT_RESERVED2 = 4097,
|
|
IB_QPT_RESERVED3 = 4098,
|
|
IB_QPT_RESERVED4 = 4099,
|
|
IB_QPT_RESERVED5 = 4100,
|
|
IB_QPT_RESERVED6 = 4101,
|
|
IB_QPT_RESERVED7 = 4102,
|
|
IB_QPT_RESERVED8 = 4103,
|
|
IB_QPT_RESERVED9 = 4104,
|
|
IB_QPT_RESERVED10 = 4105,
|
|
};
|
|
|
|
enum rdma_restrack_type {
|
|
RDMA_RESTRACK_PD = 0,
|
|
RDMA_RESTRACK_CQ = 1,
|
|
RDMA_RESTRACK_QP = 2,
|
|
RDMA_RESTRACK_CM_ID = 3,
|
|
RDMA_RESTRACK_MR = 4,
|
|
RDMA_RESTRACK_CTX = 5,
|
|
RDMA_RESTRACK_COUNTER = 6,
|
|
RDMA_RESTRACK_SRQ = 7,
|
|
RDMA_RESTRACK_MAX = 8,
|
|
};
|
|
|
|
struct rdma_restrack_entry {
|
|
bool valid;
|
|
u8 no_track: 1;
|
|
struct kref kref;
|
|
struct completion comp;
|
|
struct task_struct *task;
|
|
const char *kern_name;
|
|
enum rdma_restrack_type type;
|
|
bool user;
|
|
u32 id;
|
|
};
|
|
|
|
struct ib_event;
|
|
|
|
struct ib_qp_security;
|
|
|
|
struct ib_qp {
|
|
struct ib_device *device;
|
|
struct ib_pd *pd;
|
|
struct ib_cq *send_cq;
|
|
struct ib_cq *recv_cq;
|
|
spinlock_t mr_lock;
|
|
int mrs_used;
|
|
struct list_head rdma_mrs;
|
|
struct list_head sig_mrs;
|
|
struct ib_srq *srq;
|
|
struct ib_xrcd *xrcd;
|
|
struct list_head xrcd_list;
|
|
atomic_t usecnt;
|
|
struct list_head open_list;
|
|
struct ib_qp *real_qp;
|
|
struct ib_uqp_object *uobject;
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
void *qp_context;
|
|
const struct ib_gid_attr *av_sgid_attr;
|
|
const struct ib_gid_attr *alt_path_sgid_attr;
|
|
u32 qp_num;
|
|
u32 max_write_sge;
|
|
u32 max_read_sge;
|
|
enum ib_qp_type qp_type;
|
|
struct ib_rwq_ind_table *rwq_ind_tbl;
|
|
struct ib_qp_security *qp_sec;
|
|
u32 port;
|
|
bool integrity_en;
|
|
struct rdma_restrack_entry res;
|
|
struct rdma_counter *counter;
|
|
};
|
|
|
|
struct ib_uobject;
|
|
|
|
struct ib_pd {
|
|
u32 local_dma_lkey;
|
|
u32 flags;
|
|
struct ib_device *device;
|
|
struct ib_uobject *uobject;
|
|
atomic_t usecnt;
|
|
u32 unsafe_global_rkey;
|
|
struct ib_mr *__internal_mr;
|
|
struct rdma_restrack_entry res;
|
|
};
|
|
|
|
struct ib_uverbs_file;
|
|
|
|
struct ib_rdmacg_object {
|
|
struct rdma_cgroup *cg;
|
|
};
|
|
|
|
struct uverbs_api_object;
|
|
|
|
struct ib_uobject {
|
|
u64 user_handle;
|
|
struct ib_uverbs_file *ufile;
|
|
struct ib_ucontext *context;
|
|
void *object;
|
|
struct list_head list;
|
|
struct ib_rdmacg_object cg_obj;
|
|
int id;
|
|
struct kref ref;
|
|
atomic_t usecnt;
|
|
struct callback_head rcu;
|
|
const struct uverbs_api_object *uapi_object;
|
|
};
|
|
|
|
struct ib_ucontext {
|
|
struct ib_device *device;
|
|
struct ib_uverbs_file *ufile;
|
|
struct ib_rdmacg_object cg_obj;
|
|
struct rdma_restrack_entry res;
|
|
struct xarray mmap_xa;
|
|
};
|
|
|
|
struct ib_sig_attrs;
|
|
|
|
struct ib_mr {
|
|
struct ib_device *device;
|
|
struct ib_pd *pd;
|
|
u32 lkey;
|
|
u32 rkey;
|
|
u64 iova;
|
|
u64 length;
|
|
unsigned int page_size;
|
|
enum ib_mr_type type;
|
|
bool need_inval;
|
|
union {
|
|
struct ib_uobject *uobject;
|
|
struct list_head qp_entry;
|
|
};
|
|
struct ib_dm *dm;
|
|
struct ib_sig_attrs *sig_attrs;
|
|
struct rdma_restrack_entry res;
|
|
};
|
|
|
|
struct ib_dm {
|
|
struct ib_device *device;
|
|
u32 length;
|
|
u32 flags;
|
|
struct ib_uobject *uobject;
|
|
atomic_t usecnt;
|
|
};
|
|
|
|
enum ib_signature_type {
|
|
IB_SIG_TYPE_NONE = 0,
|
|
IB_SIG_TYPE_T10_DIF = 1,
|
|
};
|
|
|
|
enum ib_t10_dif_bg_type {
|
|
IB_T10DIF_CRC = 0,
|
|
IB_T10DIF_CSUM = 1,
|
|
};
|
|
|
|
struct ib_t10_dif_domain {
|
|
enum ib_t10_dif_bg_type bg_type;
|
|
u16 pi_interval;
|
|
u16 bg;
|
|
u16 app_tag;
|
|
u32 ref_tag;
|
|
bool ref_remap;
|
|
bool app_escape;
|
|
bool ref_escape;
|
|
u16 apptag_check_mask;
|
|
};
|
|
|
|
struct ib_sig_domain {
|
|
enum ib_signature_type sig_type;
|
|
union {
|
|
struct ib_t10_dif_domain dif;
|
|
} sig;
|
|
};
|
|
|
|
struct ib_sig_attrs {
|
|
u8 check_mask;
|
|
struct ib_sig_domain mem;
|
|
struct ib_sig_domain wire;
|
|
int meta_length;
|
|
};
|
|
|
|
struct irq_poll;
|
|
|
|
typedef int irq_poll_fn(struct irq_poll *, int);
|
|
|
|
struct irq_poll {
|
|
struct list_head list;
|
|
unsigned long state;
|
|
int weight;
|
|
irq_poll_fn *poll;
|
|
};
|
|
|
|
struct ib_ucq_object;
|
|
|
|
typedef void (*ib_comp_handler)(struct ib_cq *, void *);
|
|
|
|
enum ib_poll_context {
|
|
IB_POLL_SOFTIRQ = 0,
|
|
IB_POLL_WORKQUEUE = 1,
|
|
IB_POLL_UNBOUND_WORKQUEUE = 2,
|
|
IB_POLL_LAST_POOL_TYPE = 2,
|
|
IB_POLL_DIRECT = 3,
|
|
};
|
|
|
|
struct dim;
|
|
|
|
struct ib_cq {
|
|
struct ib_device *device;
|
|
struct ib_ucq_object *uobject;
|
|
ib_comp_handler comp_handler;
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
void *cq_context;
|
|
int cqe;
|
|
unsigned int cqe_used;
|
|
atomic_t usecnt;
|
|
enum ib_poll_context poll_ctx;
|
|
struct ib_wc *wc;
|
|
struct list_head pool_entry;
|
|
union {
|
|
struct irq_poll iop;
|
|
struct work_struct work;
|
|
};
|
|
struct workqueue_struct *comp_wq;
|
|
struct dim *dim;
|
|
ktime_t timestamp;
|
|
u8 interrupt: 1;
|
|
u8 shared: 1;
|
|
unsigned int comp_vector;
|
|
struct rdma_restrack_entry res;
|
|
};
|
|
|
|
enum ib_event_type {
|
|
IB_EVENT_CQ_ERR = 0,
|
|
IB_EVENT_QP_FATAL = 1,
|
|
IB_EVENT_QP_REQ_ERR = 2,
|
|
IB_EVENT_QP_ACCESS_ERR = 3,
|
|
IB_EVENT_COMM_EST = 4,
|
|
IB_EVENT_SQ_DRAINED = 5,
|
|
IB_EVENT_PATH_MIG = 6,
|
|
IB_EVENT_PATH_MIG_ERR = 7,
|
|
IB_EVENT_DEVICE_FATAL = 8,
|
|
IB_EVENT_PORT_ACTIVE = 9,
|
|
IB_EVENT_PORT_ERR = 10,
|
|
IB_EVENT_LID_CHANGE = 11,
|
|
IB_EVENT_PKEY_CHANGE = 12,
|
|
IB_EVENT_SM_CHANGE = 13,
|
|
IB_EVENT_SRQ_ERR = 14,
|
|
IB_EVENT_SRQ_LIMIT_REACHED = 15,
|
|
IB_EVENT_QP_LAST_WQE_REACHED = 16,
|
|
IB_EVENT_CLIENT_REREGISTER = 17,
|
|
IB_EVENT_GID_CHANGE = 18,
|
|
IB_EVENT_WQ_FATAL = 19,
|
|
};
|
|
|
|
struct ib_event {
|
|
struct ib_device *device;
|
|
union {
|
|
struct ib_cq *cq;
|
|
struct ib_qp *qp;
|
|
struct ib_srq *srq;
|
|
struct ib_wq *wq;
|
|
u32 port_num;
|
|
} element;
|
|
enum ib_event_type event;
|
|
};
|
|
|
|
struct ib_usrq_object;
|
|
|
|
enum ib_srq_type {
|
|
IB_SRQT_BASIC = 0,
|
|
IB_SRQT_XRC = 1,
|
|
IB_SRQT_TM = 2,
|
|
};
|
|
|
|
struct ib_srq {
|
|
struct ib_device *device;
|
|
struct ib_pd *pd;
|
|
struct ib_usrq_object *uobject;
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
void *srq_context;
|
|
enum ib_srq_type srq_type;
|
|
atomic_t usecnt;
|
|
struct {
|
|
struct ib_cq *cq;
|
|
union {
|
|
struct {
|
|
struct ib_xrcd *xrcd;
|
|
u32 srq_num;
|
|
} xrc;
|
|
};
|
|
} ext;
|
|
struct rdma_restrack_entry res;
|
|
};
|
|
|
|
struct ib_xrcd {
|
|
struct ib_device *device;
|
|
atomic_t usecnt;
|
|
struct inode *inode;
|
|
struct rw_semaphore tgt_qps_rwsem;
|
|
struct xarray tgt_qps;
|
|
};
|
|
|
|
struct ib_uwq_object;
|
|
|
|
enum ib_wq_state {
|
|
IB_WQS_RESET = 0,
|
|
IB_WQS_RDY = 1,
|
|
IB_WQS_ERR = 2,
|
|
};
|
|
|
|
enum ib_wq_type {
|
|
IB_WQT_RQ = 0,
|
|
};
|
|
|
|
struct ib_wq {
|
|
struct ib_device *device;
|
|
struct ib_uwq_object *uobject;
|
|
void *wq_context;
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
struct ib_pd *pd;
|
|
struct ib_cq *cq;
|
|
u32 wq_num;
|
|
enum ib_wq_state state;
|
|
enum ib_wq_type wq_type;
|
|
atomic_t usecnt;
|
|
};
|
|
|
|
enum ib_wc_status {
|
|
IB_WC_SUCCESS = 0,
|
|
IB_WC_LOC_LEN_ERR = 1,
|
|
IB_WC_LOC_QP_OP_ERR = 2,
|
|
IB_WC_LOC_EEC_OP_ERR = 3,
|
|
IB_WC_LOC_PROT_ERR = 4,
|
|
IB_WC_WR_FLUSH_ERR = 5,
|
|
IB_WC_MW_BIND_ERR = 6,
|
|
IB_WC_BAD_RESP_ERR = 7,
|
|
IB_WC_LOC_ACCESS_ERR = 8,
|
|
IB_WC_REM_INV_REQ_ERR = 9,
|
|
IB_WC_REM_ACCESS_ERR = 10,
|
|
IB_WC_REM_OP_ERR = 11,
|
|
IB_WC_RETRY_EXC_ERR = 12,
|
|
IB_WC_RNR_RETRY_EXC_ERR = 13,
|
|
IB_WC_LOC_RDD_VIOL_ERR = 14,
|
|
IB_WC_REM_INV_RD_REQ_ERR = 15,
|
|
IB_WC_REM_ABORT_ERR = 16,
|
|
IB_WC_INV_EECN_ERR = 17,
|
|
IB_WC_INV_EEC_STATE_ERR = 18,
|
|
IB_WC_FATAL_ERR = 19,
|
|
IB_WC_RESP_TIMEOUT_ERR = 20,
|
|
IB_WC_GENERAL_ERR = 21,
|
|
};
|
|
|
|
enum ib_wc_opcode {
|
|
IB_WC_SEND = 0,
|
|
IB_WC_RDMA_WRITE = 1,
|
|
IB_WC_RDMA_READ = 2,
|
|
IB_WC_COMP_SWAP = 3,
|
|
IB_WC_FETCH_ADD = 4,
|
|
IB_WC_BIND_MW = 5,
|
|
IB_WC_LOCAL_INV = 6,
|
|
IB_WC_LSO = 7,
|
|
IB_WC_ATOMIC_WRITE = 9,
|
|
IB_WC_REG_MR = 10,
|
|
IB_WC_MASKED_COMP_SWAP = 11,
|
|
IB_WC_MASKED_FETCH_ADD = 12,
|
|
IB_WC_FLUSH = 8,
|
|
IB_WC_RECV = 128,
|
|
IB_WC_RECV_RDMA_WITH_IMM = 129,
|
|
};
|
|
|
|
struct ib_cqe;
|
|
|
|
struct ib_wc {
|
|
union {
|
|
u64 wr_id;
|
|
struct ib_cqe *wr_cqe;
|
|
};
|
|
enum ib_wc_status status;
|
|
enum ib_wc_opcode opcode;
|
|
u32 vendor_err;
|
|
u32 byte_len;
|
|
struct ib_qp *qp;
|
|
union {
|
|
__be32 imm_data;
|
|
u32 invalidate_rkey;
|
|
} ex;
|
|
u32 src_qp;
|
|
u32 slid;
|
|
int wc_flags;
|
|
u16 pkey_index;
|
|
u8 sl;
|
|
u8 dlid_path_bits;
|
|
u32 port_num;
|
|
u8 smac[6];
|
|
u16 vlan_id;
|
|
u8 network_hdr_type;
|
|
};
|
|
|
|
struct ib_cqe {
|
|
void (*done)(struct ib_cq *, struct ib_wc *);
|
|
};
|
|
|
|
struct dim_stats {
|
|
int ppms;
|
|
int bpms;
|
|
int epms;
|
|
int cpms;
|
|
int cpe_ratio;
|
|
};
|
|
|
|
struct dim_sample {
|
|
ktime_t time;
|
|
u32 pkt_ctr;
|
|
u32 byte_ctr;
|
|
u16 event_ctr;
|
|
u32 comp_ctr;
|
|
};
|
|
|
|
struct dim {
|
|
u8 state;
|
|
struct dim_stats prev_stats;
|
|
struct dim_sample start_sample;
|
|
struct dim_sample measuring_sample;
|
|
struct work_struct work;
|
|
void *priv;
|
|
u8 profile_ix;
|
|
u8 mode;
|
|
u8 tune_state;
|
|
u8 steps_right;
|
|
u8 steps_left;
|
|
u8 tired;
|
|
};
|
|
|
|
union ib_gid {
|
|
u8 raw[16];
|
|
struct {
|
|
__be64 subnet_prefix;
|
|
__be64 interface_id;
|
|
} global;
|
|
};
|
|
|
|
enum ib_gid_type {
|
|
IB_GID_TYPE_IB = 0,
|
|
IB_GID_TYPE_ROCE = 1,
|
|
IB_GID_TYPE_ROCE_UDP_ENCAP = 2,
|
|
IB_GID_TYPE_SIZE = 3,
|
|
};
|
|
|
|
struct ib_gid_attr {
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *ndev;
|
|
struct ib_device *device;
|
|
union ib_gid gid;
|
|
enum ib_gid_type gid_type;
|
|
u16 index;
|
|
u32 port_num;
|
|
};
|
|
|
|
struct ib_rwq_ind_table {
|
|
struct ib_device *device;
|
|
struct ib_uobject *uobject;
|
|
atomic_t usecnt;
|
|
u32 ind_tbl_num;
|
|
u32 log_ind_tbl_size;
|
|
struct ib_wq **ind_tbl;
|
|
};
|
|
|
|
struct ib_ports_pkeys;
|
|
|
|
struct ib_qp_security {
|
|
struct ib_qp *qp;
|
|
struct ib_device *dev;
|
|
struct mutex mutex;
|
|
struct ib_ports_pkeys *ports_pkeys;
|
|
struct list_head shared_qp_list;
|
|
void *security;
|
|
bool destroying;
|
|
atomic_t error_list_count;
|
|
struct completion error_complete;
|
|
int error_comps_pending;
|
|
};
|
|
|
|
enum port_pkey_state {
|
|
IB_PORT_PKEY_NOT_VALID = 0,
|
|
IB_PORT_PKEY_VALID = 1,
|
|
IB_PORT_PKEY_LISTED = 2,
|
|
};
|
|
|
|
struct ib_port_pkey {
|
|
enum port_pkey_state state;
|
|
u16 pkey_index;
|
|
u32 port_num;
|
|
struct list_head qp_list;
|
|
struct list_head to_error_list;
|
|
struct ib_qp_security *sec;
|
|
};
|
|
|
|
struct ib_ports_pkeys {
|
|
struct ib_port_pkey main;
|
|
struct ib_port_pkey alt;
|
|
};
|
|
|
|
enum rdma_nl_counter_mode {
|
|
RDMA_COUNTER_MODE_NONE = 0,
|
|
RDMA_COUNTER_MODE_AUTO = 1,
|
|
RDMA_COUNTER_MODE_MANUAL = 2,
|
|
RDMA_COUNTER_MODE_MAX = 3,
|
|
};
|
|
|
|
enum rdma_nl_counter_mask {
|
|
RDMA_COUNTER_MASK_QP_TYPE = 1,
|
|
RDMA_COUNTER_MASK_PID = 2,
|
|
};
|
|
|
|
struct auto_mode_param {
|
|
int qp_type;
|
|
};
|
|
|
|
struct rdma_counter_mode {
|
|
enum rdma_nl_counter_mode mode;
|
|
enum rdma_nl_counter_mask mask;
|
|
struct auto_mode_param param;
|
|
};
|
|
|
|
struct rdma_counter {
|
|
struct rdma_restrack_entry res;
|
|
struct ib_device *device;
|
|
uint32_t id;
|
|
struct kref kref;
|
|
struct rdma_counter_mode mode;
|
|
struct mutex lock;
|
|
struct rdma_hw_stats *stats;
|
|
u32 port;
|
|
};
|
|
|
|
struct rdma_stat_desc;
|
|
|
|
struct rdma_hw_stats {
|
|
struct mutex lock;
|
|
unsigned long timestamp;
|
|
unsigned long lifespan;
|
|
const struct rdma_stat_desc *descs;
|
|
unsigned long *is_disabled;
|
|
int num_counters;
|
|
u64 value[0];
|
|
};
|
|
|
|
struct rdma_stat_desc {
|
|
const char *name;
|
|
unsigned int flags;
|
|
const void *priv;
|
|
};
|
|
|
|
enum ib_wr_opcode {
|
|
IB_WR_RDMA_WRITE = 0,
|
|
IB_WR_RDMA_WRITE_WITH_IMM = 1,
|
|
IB_WR_SEND = 2,
|
|
IB_WR_SEND_WITH_IMM = 3,
|
|
IB_WR_RDMA_READ = 4,
|
|
IB_WR_ATOMIC_CMP_AND_SWP = 5,
|
|
IB_WR_ATOMIC_FETCH_AND_ADD = 6,
|
|
IB_WR_BIND_MW = 8,
|
|
IB_WR_LSO = 10,
|
|
IB_WR_SEND_WITH_INV = 9,
|
|
IB_WR_RDMA_READ_WITH_INV = 11,
|
|
IB_WR_LOCAL_INV = 7,
|
|
IB_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
|
|
IB_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
|
|
IB_WR_FLUSH = 14,
|
|
IB_WR_ATOMIC_WRITE = 15,
|
|
IB_WR_REG_MR = 32,
|
|
IB_WR_REG_MR_INTEGRITY = 33,
|
|
IB_WR_RESERVED1 = 240,
|
|
IB_WR_RESERVED2 = 241,
|
|
IB_WR_RESERVED3 = 242,
|
|
IB_WR_RESERVED4 = 243,
|
|
IB_WR_RESERVED5 = 244,
|
|
IB_WR_RESERVED6 = 245,
|
|
IB_WR_RESERVED7 = 246,
|
|
IB_WR_RESERVED8 = 247,
|
|
IB_WR_RESERVED9 = 248,
|
|
IB_WR_RESERVED10 = 249,
|
|
};
|
|
|
|
struct ib_send_wr {
|
|
struct ib_send_wr *next;
|
|
union {
|
|
u64 wr_id;
|
|
struct ib_cqe *wr_cqe;
|
|
};
|
|
struct ib_sge *sg_list;
|
|
int num_sge;
|
|
enum ib_wr_opcode opcode;
|
|
int send_flags;
|
|
union {
|
|
__be32 imm_data;
|
|
u32 invalidate_rkey;
|
|
} ex;
|
|
};
|
|
|
|
struct ib_sge {
|
|
u64 addr;
|
|
u32 length;
|
|
u32 lkey;
|
|
};
|
|
|
|
struct ib_recv_wr {
|
|
struct ib_recv_wr *next;
|
|
union {
|
|
u64 wr_id;
|
|
struct ib_cqe *wr_cqe;
|
|
};
|
|
struct ib_sge *sg_list;
|
|
int num_sge;
|
|
};
|
|
|
|
struct ib_grh {
|
|
__be32 version_tclass_flow;
|
|
__be16 paylen;
|
|
u8 next_hdr;
|
|
u8 hop_limit;
|
|
union ib_gid sgid;
|
|
union ib_gid dgid;
|
|
};
|
|
|
|
struct ib_udata {
|
|
const void __attribute__((btf_type_tag("user"))) *inbuf;
|
|
void __attribute__((btf_type_tag("user"))) *outbuf;
|
|
size_t inlen;
|
|
size_t outlen;
|
|
};
|
|
|
|
struct ib_device_modify {
|
|
u64 sys_image_guid;
|
|
char node_desc[64];
|
|
};
|
|
|
|
enum ib_port_state {
|
|
IB_PORT_NOP = 0,
|
|
IB_PORT_DOWN = 1,
|
|
IB_PORT_INIT = 2,
|
|
IB_PORT_ARMED = 3,
|
|
IB_PORT_ACTIVE = 4,
|
|
IB_PORT_ACTIVE_DEFER = 5,
|
|
};
|
|
|
|
enum ib_mtu {
|
|
IB_MTU_256 = 1,
|
|
IB_MTU_512 = 2,
|
|
IB_MTU_1024 = 3,
|
|
IB_MTU_2048 = 4,
|
|
IB_MTU_4096 = 5,
|
|
};
|
|
|
|
struct ib_port_attr {
|
|
u64 subnet_prefix;
|
|
enum ib_port_state state;
|
|
enum ib_mtu max_mtu;
|
|
enum ib_mtu active_mtu;
|
|
u32 phys_mtu;
|
|
int gid_tbl_len;
|
|
unsigned int ip_gids: 1;
|
|
u32 port_cap_flags;
|
|
u32 max_msg_sz;
|
|
u32 bad_pkey_cntr;
|
|
u32 qkey_viol_cntr;
|
|
u16 pkey_tbl_len;
|
|
u32 sm_lid;
|
|
u32 lid;
|
|
u8 lmc;
|
|
u8 max_vl_num;
|
|
u8 sm_sl;
|
|
u8 subnet_timeout;
|
|
u8 init_type_reply;
|
|
u8 active_width;
|
|
u16 active_speed;
|
|
u8 phys_state;
|
|
u16 port_cap_flags2;
|
|
};
|
|
|
|
struct ib_port_modify {
|
|
u32 set_port_cap_mask;
|
|
u32 clr_port_cap_mask;
|
|
u8 init_type;
|
|
};
|
|
|
|
struct ib_port_immutable {
|
|
int pkey_tbl_len;
|
|
int gid_tbl_len;
|
|
u32 core_cap_flags;
|
|
u32 max_mad_size;
|
|
};
|
|
|
|
struct rdma_netdev_alloc_params {
|
|
size_t sizeof_priv;
|
|
unsigned int txqs;
|
|
unsigned int rxqs;
|
|
void *param;
|
|
int (*initialize_rdma_netdev)(struct ib_device *, u32, struct net_device *, void *);
|
|
};
|
|
|
|
struct rdma_user_mmap_entry {
|
|
struct kref ref;
|
|
struct ib_ucontext *ucontext;
|
|
unsigned long start_pgoff;
|
|
size_t npages;
|
|
bool driver_removed;
|
|
};
|
|
|
|
enum rdma_ah_attr_type {
|
|
RDMA_AH_ATTR_TYPE_UNDEFINED = 0,
|
|
RDMA_AH_ATTR_TYPE_IB = 1,
|
|
RDMA_AH_ATTR_TYPE_ROCE = 2,
|
|
RDMA_AH_ATTR_TYPE_OPA = 3,
|
|
};
|
|
|
|
struct ib_ah {
|
|
struct ib_device *device;
|
|
struct ib_pd *pd;
|
|
struct ib_uobject *uobject;
|
|
const struct ib_gid_attr *sgid_attr;
|
|
enum rdma_ah_attr_type type;
|
|
};
|
|
|
|
struct rdma_ah_init_attr {
|
|
struct rdma_ah_attr *ah_attr;
|
|
u32 flags;
|
|
struct net_device *xmit_slave;
|
|
};
|
|
|
|
struct ib_ah_attr {
|
|
u16 dlid;
|
|
u8 src_path_bits;
|
|
};
|
|
|
|
struct roce_ah_attr {
|
|
u8 dmac[6];
|
|
};
|
|
|
|
struct opa_ah_attr {
|
|
u32 dlid;
|
|
u8 src_path_bits;
|
|
bool make_grd;
|
|
};
|
|
|
|
struct ib_global_route {
|
|
const struct ib_gid_attr *sgid_attr;
|
|
union ib_gid dgid;
|
|
u32 flow_label;
|
|
u8 sgid_index;
|
|
u8 hop_limit;
|
|
u8 traffic_class;
|
|
};
|
|
|
|
struct rdma_ah_attr {
|
|
struct ib_global_route grh;
|
|
u8 sl;
|
|
u8 static_rate;
|
|
u32 port_num;
|
|
u8 ah_flags;
|
|
enum rdma_ah_attr_type type;
|
|
union {
|
|
struct ib_ah_attr ib;
|
|
struct roce_ah_attr roce;
|
|
struct opa_ah_attr opa;
|
|
};
|
|
};
|
|
|
|
struct ib_srq_attr {
|
|
u32 max_wr;
|
|
u32 max_sge;
|
|
u32 srq_limit;
|
|
};
|
|
|
|
struct ib_srq_init_attr {
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
void *srq_context;
|
|
struct ib_srq_attr attr;
|
|
enum ib_srq_type srq_type;
|
|
struct {
|
|
struct ib_cq *cq;
|
|
union {
|
|
struct {
|
|
struct ib_xrcd *xrcd;
|
|
} xrc;
|
|
struct {
|
|
u32 max_num_tags;
|
|
} tag_matching;
|
|
};
|
|
} ext;
|
|
};
|
|
|
|
struct ib_qp_cap {
|
|
u32 max_send_wr;
|
|
u32 max_recv_wr;
|
|
u32 max_send_sge;
|
|
u32 max_recv_sge;
|
|
u32 max_inline_data;
|
|
u32 max_rdma_ctxs;
|
|
};
|
|
|
|
enum ib_sig_type {
|
|
IB_SIGNAL_ALL_WR = 0,
|
|
IB_SIGNAL_REQ_WR = 1,
|
|
};
|
|
|
|
struct ib_qp_init_attr {
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
void *qp_context;
|
|
struct ib_cq *send_cq;
|
|
struct ib_cq *recv_cq;
|
|
struct ib_srq *srq;
|
|
struct ib_xrcd *xrcd;
|
|
struct ib_qp_cap cap;
|
|
enum ib_sig_type sq_sig_type;
|
|
enum ib_qp_type qp_type;
|
|
u32 create_flags;
|
|
u32 port_num;
|
|
struct ib_rwq_ind_table *rwq_ind_tbl;
|
|
u32 source_qpn;
|
|
};
|
|
|
|
enum ib_qp_state {
|
|
IB_QPS_RESET = 0,
|
|
IB_QPS_INIT = 1,
|
|
IB_QPS_RTR = 2,
|
|
IB_QPS_RTS = 3,
|
|
IB_QPS_SQD = 4,
|
|
IB_QPS_SQE = 5,
|
|
IB_QPS_ERR = 6,
|
|
};
|
|
|
|
enum ib_mig_state {
|
|
IB_MIG_MIGRATED = 0,
|
|
IB_MIG_REARM = 1,
|
|
IB_MIG_ARMED = 2,
|
|
};
|
|
|
|
struct ib_qp_attr {
|
|
enum ib_qp_state qp_state;
|
|
enum ib_qp_state cur_qp_state;
|
|
enum ib_mtu path_mtu;
|
|
enum ib_mig_state path_mig_state;
|
|
u32 qkey;
|
|
u32 rq_psn;
|
|
u32 sq_psn;
|
|
u32 dest_qp_num;
|
|
int qp_access_flags;
|
|
struct ib_qp_cap cap;
|
|
struct rdma_ah_attr ah_attr;
|
|
struct rdma_ah_attr alt_ah_attr;
|
|
u16 pkey_index;
|
|
u16 alt_pkey_index;
|
|
u8 en_sqd_async_notify;
|
|
u8 sq_draining;
|
|
u8 max_rd_atomic;
|
|
u8 max_dest_rd_atomic;
|
|
u8 min_rnr_timer;
|
|
u32 port_num;
|
|
u8 timeout;
|
|
u8 retry_cnt;
|
|
u8 rnr_retry;
|
|
u32 alt_port_num;
|
|
u8 alt_timeout;
|
|
u32 rate_limit;
|
|
struct net_device *xmit_slave;
|
|
};
|
|
|
|
struct ib_cq_init_attr {
|
|
unsigned int cqe;
|
|
u32 comp_vector;
|
|
u32 flags;
|
|
};
|
|
|
|
enum ib_sig_err_type {
|
|
IB_SIG_BAD_GUARD = 0,
|
|
IB_SIG_BAD_REFTAG = 1,
|
|
IB_SIG_BAD_APPTAG = 2,
|
|
};
|
|
|
|
struct ib_sig_err {
|
|
enum ib_sig_err_type err_type;
|
|
u32 expected;
|
|
u32 actual;
|
|
u64 sig_err_offset;
|
|
u32 key;
|
|
};
|
|
|
|
struct ib_mr_status {
|
|
u32 fail_status;
|
|
struct ib_sig_err sig_err;
|
|
};
|
|
|
|
enum ib_mw_type {
|
|
IB_MW_TYPE_1 = 1,
|
|
IB_MW_TYPE_2 = 2,
|
|
};
|
|
|
|
struct ib_mw {
|
|
struct ib_device *device;
|
|
struct ib_pd *pd;
|
|
struct ib_uobject *uobject;
|
|
u32 rkey;
|
|
enum ib_mw_type type;
|
|
};
|
|
|
|
struct ib_flow {
|
|
struct ib_qp *qp;
|
|
struct ib_device *device;
|
|
struct ib_uobject *uobject;
|
|
};
|
|
|
|
enum ib_flow_attr_type {
|
|
IB_FLOW_ATTR_NORMAL = 0,
|
|
IB_FLOW_ATTR_ALL_DEFAULT = 1,
|
|
IB_FLOW_ATTR_MC_DEFAULT = 2,
|
|
IB_FLOW_ATTR_SNIFFER = 3,
|
|
};
|
|
|
|
struct ib_flow_eth_filter {
|
|
u8 dst_mac[6];
|
|
u8 src_mac[6];
|
|
__be16 ether_type;
|
|
__be16 vlan_tag;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_eth {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_eth_filter val;
|
|
struct ib_flow_eth_filter mask;
|
|
};
|
|
|
|
struct ib_flow_ib_filter {
|
|
__be16 dlid;
|
|
__u8 sl;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_ib {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_ib_filter val;
|
|
struct ib_flow_ib_filter mask;
|
|
};
|
|
|
|
struct ib_flow_ipv4_filter {
|
|
__be32 src_ip;
|
|
__be32 dst_ip;
|
|
u8 proto;
|
|
u8 tos;
|
|
u8 ttl;
|
|
u8 flags;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_ipv4 {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_ipv4_filter val;
|
|
struct ib_flow_ipv4_filter mask;
|
|
};
|
|
|
|
struct ib_flow_tcp_udp_filter {
|
|
__be16 dst_port;
|
|
__be16 src_port;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_tcp_udp {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_tcp_udp_filter val;
|
|
struct ib_flow_tcp_udp_filter mask;
|
|
};
|
|
|
|
struct ib_flow_ipv6_filter {
|
|
u8 src_ip[16];
|
|
u8 dst_ip[16];
|
|
__be32 flow_label;
|
|
u8 next_hdr;
|
|
u8 traffic_class;
|
|
u8 hop_limit;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_ipv6 {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_ipv6_filter val;
|
|
struct ib_flow_ipv6_filter mask;
|
|
};
|
|
|
|
struct ib_flow_tunnel_filter {
|
|
__be32 tunnel_id;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_tunnel {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_tunnel_filter val;
|
|
struct ib_flow_tunnel_filter mask;
|
|
};
|
|
|
|
struct ib_flow_esp_filter {
|
|
__be32 spi;
|
|
__be32 seq;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_esp {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_esp_filter val;
|
|
struct ib_flow_esp_filter mask;
|
|
};
|
|
|
|
struct ib_flow_gre_filter {
|
|
__be16 c_ks_res0_ver;
|
|
__be16 protocol;
|
|
__be32 key;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_gre {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_gre_filter val;
|
|
struct ib_flow_gre_filter mask;
|
|
};
|
|
|
|
struct ib_flow_mpls_filter {
|
|
__be32 tag;
|
|
u8 real_sz[0];
|
|
};
|
|
|
|
struct ib_flow_spec_mpls {
|
|
u32 type;
|
|
u16 size;
|
|
struct ib_flow_mpls_filter val;
|
|
struct ib_flow_mpls_filter mask;
|
|
};
|
|
|
|
enum ib_flow_spec_type {
|
|
IB_FLOW_SPEC_ETH = 32,
|
|
IB_FLOW_SPEC_IB = 34,
|
|
IB_FLOW_SPEC_IPV4 = 48,
|
|
IB_FLOW_SPEC_IPV6 = 49,
|
|
IB_FLOW_SPEC_ESP = 52,
|
|
IB_FLOW_SPEC_TCP = 64,
|
|
IB_FLOW_SPEC_UDP = 65,
|
|
IB_FLOW_SPEC_VXLAN_TUNNEL = 80,
|
|
IB_FLOW_SPEC_GRE = 81,
|
|
IB_FLOW_SPEC_MPLS = 96,
|
|
IB_FLOW_SPEC_INNER = 256,
|
|
IB_FLOW_SPEC_ACTION_TAG = 4096,
|
|
IB_FLOW_SPEC_ACTION_DROP = 4097,
|
|
IB_FLOW_SPEC_ACTION_HANDLE = 4098,
|
|
IB_FLOW_SPEC_ACTION_COUNT = 4099,
|
|
};
|
|
|
|
struct ib_flow_spec_action_tag {
|
|
enum ib_flow_spec_type type;
|
|
u16 size;
|
|
u32 tag_id;
|
|
};
|
|
|
|
struct ib_flow_spec_action_drop {
|
|
enum ib_flow_spec_type type;
|
|
u16 size;
|
|
};
|
|
|
|
struct ib_flow_spec_action_handle {
|
|
enum ib_flow_spec_type type;
|
|
u16 size;
|
|
struct ib_flow_action *act;
|
|
};
|
|
|
|
struct ib_flow_spec_action_count {
|
|
enum ib_flow_spec_type type;
|
|
u16 size;
|
|
struct ib_counters *counters;
|
|
};
|
|
|
|
union ib_flow_spec {
|
|
struct {
|
|
u32 type;
|
|
u16 size;
|
|
};
|
|
struct ib_flow_spec_eth eth;
|
|
struct ib_flow_spec_ib ib;
|
|
struct ib_flow_spec_ipv4 ipv4;
|
|
struct ib_flow_spec_tcp_udp tcp_udp;
|
|
struct ib_flow_spec_ipv6 ipv6;
|
|
struct ib_flow_spec_tunnel tunnel;
|
|
struct ib_flow_spec_esp esp;
|
|
struct ib_flow_spec_gre gre;
|
|
struct ib_flow_spec_mpls mpls;
|
|
struct ib_flow_spec_action_tag flow_tag;
|
|
struct ib_flow_spec_action_drop drop;
|
|
struct ib_flow_spec_action_handle action;
|
|
struct ib_flow_spec_action_count flow_count;
|
|
};
|
|
|
|
struct ib_flow_attr {
|
|
enum ib_flow_attr_type type;
|
|
u16 size;
|
|
u16 priority;
|
|
u32 flags;
|
|
u8 num_of_specs;
|
|
u32 port;
|
|
union ib_flow_spec flows[0];
|
|
};
|
|
|
|
enum ib_flow_action_type {
|
|
IB_FLOW_ACTION_UNSPECIFIED = 0,
|
|
IB_FLOW_ACTION_ESP = 1,
|
|
};
|
|
|
|
struct ib_flow_action {
|
|
struct ib_device *device;
|
|
struct ib_uobject *uobject;
|
|
enum ib_flow_action_type type;
|
|
atomic_t usecnt;
|
|
};
|
|
|
|
struct ib_counters {
|
|
struct ib_device *device;
|
|
struct ib_uobject *uobject;
|
|
atomic_t usecnt;
|
|
};
|
|
|
|
struct ib_wq_init_attr {
|
|
void *wq_context;
|
|
enum ib_wq_type wq_type;
|
|
u32 max_wr;
|
|
u32 max_sge;
|
|
struct ib_cq *cq;
|
|
void (*event_handler)(struct ib_event *, void *);
|
|
u32 create_flags;
|
|
};
|
|
|
|
struct ib_wq_attr {
|
|
enum ib_wq_state wq_state;
|
|
enum ib_wq_state curr_wq_state;
|
|
u32 flags;
|
|
u32 flags_mask;
|
|
};
|
|
|
|
struct ib_rwq_ind_table_init_attr {
|
|
u32 log_ind_tbl_size;
|
|
struct ib_wq **ind_tbl;
|
|
};
|
|
|
|
struct ib_dm_alloc_attr {
|
|
u64 length;
|
|
u32 alignment;
|
|
u32 flags;
|
|
};
|
|
|
|
struct ib_dm_mr_attr {
|
|
u64 length;
|
|
u64 offset;
|
|
u32 access_flags;
|
|
};
|
|
|
|
struct ib_counters_read_attr {
|
|
u64 *counters_buff;
|
|
u32 ncounters;
|
|
u32 flags;
|
|
};
|
|
|
|
struct ib_pkey_cache;
|
|
|
|
struct ib_gid_table;
|
|
|
|
struct ib_port_cache {
|
|
u64 subnet_prefix;
|
|
struct ib_pkey_cache *pkey;
|
|
struct ib_gid_table *gid;
|
|
u8 lmc;
|
|
enum ib_port_state port_state;
|
|
};
|
|
|
|
struct rdma_port_counter {
|
|
struct rdma_counter_mode mode;
|
|
struct rdma_hw_stats *hstats;
|
|
unsigned int num_counters;
|
|
struct mutex lock;
|
|
};
|
|
|
|
struct ib_port;
|
|
|
|
struct ib_port_data {
|
|
struct ib_device *ib_dev;
|
|
struct ib_port_immutable immutable;
|
|
spinlock_t pkey_list_lock;
|
|
spinlock_t netdev_lock;
|
|
struct list_head pkey_list;
|
|
struct ib_port_cache cache;
|
|
struct net_device __attribute__((btf_type_tag("rcu"))) *netdev;
|
|
netdevice_tracker netdev_tracker;
|
|
struct hlist_node ndev_hash_link;
|
|
struct rdma_port_counter port_counter;
|
|
struct ib_port *sysfs;
|
|
};
|
|
|
|
struct rdma_link_ops {
|
|
struct list_head list;
|
|
const char *type;
|
|
int (*newlink)(const char *, struct net_device *);
|
|
};
|
|
|
|
enum devlink_linecard_state {
|
|
DEVLINK_LINECARD_STATE_UNSPEC = 0,
|
|
DEVLINK_LINECARD_STATE_UNPROVISIONED = 1,
|
|
DEVLINK_LINECARD_STATE_UNPROVISIONING = 2,
|
|
DEVLINK_LINECARD_STATE_PROVISIONING = 3,
|
|
DEVLINK_LINECARD_STATE_PROVISIONING_FAILED = 4,
|
|
DEVLINK_LINECARD_STATE_PROVISIONED = 5,
|
|
DEVLINK_LINECARD_STATE_ACTIVE = 6,
|
|
__DEVLINK_LINECARD_STATE_MAX = 7,
|
|
DEVLINK_LINECARD_STATE_MAX = 6,
|
|
};
|
|
|
|
struct devlink_linecard_ops;
|
|
|
|
struct devlink_linecard_type;
|
|
|
|
struct devlink_linecard {
|
|
struct list_head list;
|
|
struct devlink *devlink;
|
|
unsigned int index;
|
|
const struct devlink_linecard_ops *ops;
|
|
void *priv;
|
|
enum devlink_linecard_state state;
|
|
struct mutex state_lock;
|
|
const char *type;
|
|
struct devlink_linecard_type *types;
|
|
unsigned int types_count;
|
|
struct devlink *nested_devlink;
|
|
};
|
|
|
|
struct devlink_linecard_ops {
|
|
int (*provision)(struct devlink_linecard *, void *, const char *, const void *, struct netlink_ext_ack *);
|
|
int (*unprovision)(struct devlink_linecard *, void *, struct netlink_ext_ack *);
|
|
bool (*same_provision)(struct devlink_linecard *, void *, const char *, const void *);
|
|
unsigned int (*types_count)(struct devlink_linecard *, void *);
|
|
void (*types_get)(struct devlink_linecard *, void *, unsigned int, const char **, const void **);
|
|
};
|
|
|
|
struct devlink_linecard_type {
|
|
const char *type;
|
|
const void *priv;
|
|
};
|
|
|
|
typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, unsigned long, const u8 *, size_t);
|
|
|
|
typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *);
|
|
|
|
typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *);
|
|
|
|
typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64);
|
|
|
|
typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool);
|
|
|
|
struct devlink_trap_metadata;
|
|
|
|
typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *);
|
|
|
|
struct devlink_trap_metadata {
|
|
const char *trap_name;
|
|
const char *trap_group_name;
|
|
struct net_device *input_dev;
|
|
netdevice_tracker dev_tracker;
|
|
const struct flow_action_cookie *fa_cookie;
|
|
enum devlink_trap_type trap_type;
|
|
};
|
|
|
|
enum devlink_dpipe_match_type {
|
|
DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0,
|
|
};
|
|
|
|
enum devlink_dpipe_action_type {
|
|
DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0,
|
|
};
|
|
|
|
enum devlink_port_function_attr {
|
|
DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0,
|
|
DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1,
|
|
DEVLINK_PORT_FN_ATTR_STATE = 2,
|
|
DEVLINK_PORT_FN_ATTR_OPSTATE = 3,
|
|
DEVLINK_PORT_FN_ATTR_CAPS = 4,
|
|
__DEVLINK_PORT_FUNCTION_ATTR_MAX = 5,
|
|
DEVLINK_PORT_FUNCTION_ATTR_MAX = 4,
|
|
};
|
|
|
|
enum devlink_port_fn_attr_cap {
|
|
DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT = 0,
|
|
DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT = 1,
|
|
__DEVLINK_PORT_FN_ATTR_CAPS_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0,
|
|
DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1,
|
|
};
|
|
|
|
enum {
|
|
DEVLINK_ATTR_STATS_RX_PACKETS = 0,
|
|
DEVLINK_ATTR_STATS_RX_BYTES = 1,
|
|
DEVLINK_ATTR_STATS_RX_DROPPED = 2,
|
|
__DEVLINK_ATTR_STATS_MAX = 3,
|
|
DEVLINK_ATTR_STATS_MAX = 2,
|
|
};
|
|
|
|
enum devlink_trap_generic_id {
|
|
DEVLINK_TRAP_GENERIC_ID_SMAC_MC = 0,
|
|
DEVLINK_TRAP_GENERIC_ID_VLAN_TAG_MISMATCH = 1,
|
|
DEVLINK_TRAP_GENERIC_ID_INGRESS_VLAN_FILTER = 2,
|
|
DEVLINK_TRAP_GENERIC_ID_INGRESS_STP_FILTER = 3,
|
|
DEVLINK_TRAP_GENERIC_ID_EMPTY_TX_LIST = 4,
|
|
DEVLINK_TRAP_GENERIC_ID_PORT_LOOPBACK_FILTER = 5,
|
|
DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_ROUTE = 6,
|
|
DEVLINK_TRAP_GENERIC_ID_TTL_ERROR = 7,
|
|
DEVLINK_TRAP_GENERIC_ID_TAIL_DROP = 8,
|
|
DEVLINK_TRAP_GENERIC_ID_NON_IP_PACKET = 9,
|
|
DEVLINK_TRAP_GENERIC_ID_UC_DIP_MC_DMAC = 10,
|
|
DEVLINK_TRAP_GENERIC_ID_DIP_LB = 11,
|
|
DEVLINK_TRAP_GENERIC_ID_SIP_MC = 12,
|
|
DEVLINK_TRAP_GENERIC_ID_SIP_LB = 13,
|
|
DEVLINK_TRAP_GENERIC_ID_CORRUPTED_IP_HDR = 14,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_SIP_BC = 15,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_RESERVED_SCOPE = 16,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_INTERFACE_LOCAL_SCOPE = 17,
|
|
DEVLINK_TRAP_GENERIC_ID_MTU_ERROR = 18,
|
|
DEVLINK_TRAP_GENERIC_ID_UNRESOLVED_NEIGH = 19,
|
|
DEVLINK_TRAP_GENERIC_ID_RPF = 20,
|
|
DEVLINK_TRAP_GENERIC_ID_REJECT_ROUTE = 21,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_LPM_UNICAST_MISS = 22,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_LPM_UNICAST_MISS = 23,
|
|
DEVLINK_TRAP_GENERIC_ID_NON_ROUTABLE = 24,
|
|
DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR = 25,
|
|
DEVLINK_TRAP_GENERIC_ID_OVERLAY_SMAC_MC = 26,
|
|
DEVLINK_TRAP_GENERIC_ID_INGRESS_FLOW_ACTION_DROP = 27,
|
|
DEVLINK_TRAP_GENERIC_ID_EGRESS_FLOW_ACTION_DROP = 28,
|
|
DEVLINK_TRAP_GENERIC_ID_STP = 29,
|
|
DEVLINK_TRAP_GENERIC_ID_LACP = 30,
|
|
DEVLINK_TRAP_GENERIC_ID_LLDP = 31,
|
|
DEVLINK_TRAP_GENERIC_ID_IGMP_QUERY = 32,
|
|
DEVLINK_TRAP_GENERIC_ID_IGMP_V1_REPORT = 33,
|
|
DEVLINK_TRAP_GENERIC_ID_IGMP_V2_REPORT = 34,
|
|
DEVLINK_TRAP_GENERIC_ID_IGMP_V3_REPORT = 35,
|
|
DEVLINK_TRAP_GENERIC_ID_IGMP_V2_LEAVE = 36,
|
|
DEVLINK_TRAP_GENERIC_ID_MLD_QUERY = 37,
|
|
DEVLINK_TRAP_GENERIC_ID_MLD_V1_REPORT = 38,
|
|
DEVLINK_TRAP_GENERIC_ID_MLD_V2_REPORT = 39,
|
|
DEVLINK_TRAP_GENERIC_ID_MLD_V1_DONE = 40,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_DHCP = 41,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_DHCP = 42,
|
|
DEVLINK_TRAP_GENERIC_ID_ARP_REQUEST = 43,
|
|
DEVLINK_TRAP_GENERIC_ID_ARP_RESPONSE = 44,
|
|
DEVLINK_TRAP_GENERIC_ID_ARP_OVERLAY = 45,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_SOLICIT = 46,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_ADVERT = 47,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_BFD = 48,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_BFD = 49,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_OSPF = 50,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_OSPF = 51,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_BGP = 52,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_BGP = 53,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_VRRP = 54,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_VRRP = 55,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_PIM = 56,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_PIM = 57,
|
|
DEVLINK_TRAP_GENERIC_ID_UC_LB = 58,
|
|
DEVLINK_TRAP_GENERIC_ID_LOCAL_ROUTE = 59,
|
|
DEVLINK_TRAP_GENERIC_ID_EXTERNAL_ROUTE = 60,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_UC_DIP_LINK_LOCAL_SCOPE = 61,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_NODES = 62,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_ROUTERS = 63,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_SOLICIT = 64,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ADVERT = 65,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_REDIRECT = 66,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV4_ROUTER_ALERT = 67,
|
|
DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ALERT = 68,
|
|
DEVLINK_TRAP_GENERIC_ID_PTP_EVENT = 69,
|
|
DEVLINK_TRAP_GENERIC_ID_PTP_GENERAL = 70,
|
|
DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_SAMPLE = 71,
|
|
DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_TRAP = 72,
|
|
DEVLINK_TRAP_GENERIC_ID_EARLY_DROP = 73,
|
|
DEVLINK_TRAP_GENERIC_ID_VXLAN_PARSING = 74,
|
|
DEVLINK_TRAP_GENERIC_ID_LLC_SNAP_PARSING = 75,
|
|
DEVLINK_TRAP_GENERIC_ID_VLAN_PARSING = 76,
|
|
DEVLINK_TRAP_GENERIC_ID_PPPOE_PPP_PARSING = 77,
|
|
DEVLINK_TRAP_GENERIC_ID_MPLS_PARSING = 78,
|
|
DEVLINK_TRAP_GENERIC_ID_ARP_PARSING = 79,
|
|
DEVLINK_TRAP_GENERIC_ID_IP_1_PARSING = 80,
|
|
DEVLINK_TRAP_GENERIC_ID_IP_N_PARSING = 81,
|
|
DEVLINK_TRAP_GENERIC_ID_GRE_PARSING = 82,
|
|
DEVLINK_TRAP_GENERIC_ID_UDP_PARSING = 83,
|
|
DEVLINK_TRAP_GENERIC_ID_TCP_PARSING = 84,
|
|
DEVLINK_TRAP_GENERIC_ID_IPSEC_PARSING = 85,
|
|
DEVLINK_TRAP_GENERIC_ID_SCTP_PARSING = 86,
|
|
DEVLINK_TRAP_GENERIC_ID_DCCP_PARSING = 87,
|
|
DEVLINK_TRAP_GENERIC_ID_GTP_PARSING = 88,
|
|
DEVLINK_TRAP_GENERIC_ID_ESP_PARSING = 89,
|
|
DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_NEXTHOP = 90,
|
|
DEVLINK_TRAP_GENERIC_ID_DMAC_FILTER = 91,
|
|
DEVLINK_TRAP_GENERIC_ID_EAPOL = 92,
|
|
DEVLINK_TRAP_GENERIC_ID_LOCKED_PORT = 93,
|
|
__DEVLINK_TRAP_GENERIC_ID_MAX = 94,
|
|
DEVLINK_TRAP_GENERIC_ID_MAX = 93,
|
|
};
|
|
|
|
enum devlink_trap_group_generic_id {
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_L2_DROPS = 0,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_L3_DROPS = 1,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_L3_EXCEPTIONS = 2,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_BUFFER_DROPS = 3,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_TUNNEL_DROPS = 4,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_DROPS = 5,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_STP = 6,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_LACP = 7,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_LLDP = 8,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_MC_SNOOPING = 9,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_DHCP = 10,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_NEIGH_DISCOVERY = 11,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_BFD = 12,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_OSPF = 13,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_BGP = 14,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_VRRP = 15,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_PIM = 16,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_UC_LB = 17,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_LOCAL_DELIVERY = 18,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_EXTERNAL_DELIVERY = 19,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_IPV6 = 20,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_EVENT = 21,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_GENERAL = 22,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_SAMPLE = 23,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_TRAP = 24,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_PARSER_ERROR_DROPS = 25,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_EAPOL = 26,
|
|
__DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 27,
|
|
DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 26,
|
|
};
|
|
|
|
struct devlink_resource {
|
|
const char *name;
|
|
u64 id;
|
|
u64 size;
|
|
u64 size_new;
|
|
bool size_valid;
|
|
struct devlink_resource *parent;
|
|
struct devlink_resource_size_params size_params;
|
|
struct list_head list;
|
|
struct list_head resource_list;
|
|
devlink_resource_occ_get_t *occ_get;
|
|
void *occ_get_priv;
|
|
};
|
|
|
|
struct devlink_trap_policer_item {
|
|
const struct devlink_trap_policer *policer;
|
|
u64 rate;
|
|
u64 burst;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct devlink_stats;
|
|
|
|
struct devlink_trap_group_item {
|
|
const struct devlink_trap_group *group;
|
|
struct devlink_trap_policer_item *policer_item;
|
|
struct list_head list;
|
|
struct devlink_stats __attribute__((btf_type_tag("percpu"))) *stats;
|
|
};
|
|
|
|
struct devlink_stats {
|
|
u64_stats_t rx_bytes;
|
|
u64_stats_t rx_packets;
|
|
struct u64_stats_sync syncp;
|
|
};
|
|
|
|
struct devlink_trap_item {
|
|
const struct devlink_trap *trap;
|
|
struct devlink_trap_group_item *group_item;
|
|
struct list_head list;
|
|
enum devlink_trap_action action;
|
|
struct devlink_stats __attribute__((btf_type_tag("percpu"))) *stats;
|
|
void *priv;
|
|
};
|
|
|
|
struct devlink_port_region_ops;
|
|
|
|
struct devlink_region {
|
|
struct devlink *devlink;
|
|
struct devlink_port *port;
|
|
struct list_head list;
|
|
union {
|
|
const struct devlink_region_ops *ops;
|
|
const struct devlink_port_region_ops *port_ops;
|
|
};
|
|
struct mutex snapshot_lock;
|
|
struct list_head snapshot_list;
|
|
u32 max_snapshots;
|
|
u32 cur_snapshots;
|
|
u64 size;
|
|
};
|
|
|
|
struct devlink_port_region_ops {
|
|
const char *name;
|
|
void (*destructor)(const void *);
|
|
int (*snapshot)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u8 **);
|
|
int (*read)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u64, u32, u8 *);
|
|
void *priv;
|
|
};
|
|
|
|
struct devlink_snapshot {
|
|
struct list_head list;
|
|
struct devlink_region *region;
|
|
u8 *data;
|
|
u32 id;
|
|
};
|
|
|
|
struct trace_event_raw_devlink_hwmsg {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bus_name;
|
|
u32 __data_loc_dev_name;
|
|
u32 __data_loc_driver_name;
|
|
bool incoming;
|
|
unsigned long type;
|
|
u32 __data_loc_buf;
|
|
size_t len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_devlink_hwerr {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bus_name;
|
|
u32 __data_loc_dev_name;
|
|
u32 __data_loc_driver_name;
|
|
int err;
|
|
u32 __data_loc_msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_devlink_health_report {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bus_name;
|
|
u32 __data_loc_dev_name;
|
|
u32 __data_loc_driver_name;
|
|
u32 __data_loc_reporter_name;
|
|
u32 __data_loc_msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_devlink_health_recover_aborted {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bus_name;
|
|
u32 __data_loc_dev_name;
|
|
u32 __data_loc_driver_name;
|
|
u32 __data_loc_reporter_name;
|
|
bool health_state;
|
|
u64 time_since_last_recover;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_devlink_health_reporter_state_update {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bus_name;
|
|
u32 __data_loc_dev_name;
|
|
u32 __data_loc_driver_name;
|
|
u32 __data_loc_reporter_name;
|
|
u8 new_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_devlink_trap_report {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bus_name;
|
|
u32 __data_loc_dev_name;
|
|
u32 __data_loc_driver_name;
|
|
u32 __data_loc_trap_name;
|
|
u32 __data_loc_trap_group_name;
|
|
char input_dev_name[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct devlink_sb {
|
|
struct list_head list;
|
|
unsigned int index;
|
|
u32 size;
|
|
u16 ingress_pools_count;
|
|
u16 egress_pools_count;
|
|
u16 ingress_tc_count;
|
|
u16 egress_tc_count;
|
|
};
|
|
|
|
struct devlink_dpipe_table_ops;
|
|
|
|
struct devlink_dpipe_table {
|
|
void *priv;
|
|
struct list_head list;
|
|
const char *name;
|
|
bool counters_enabled;
|
|
bool counter_control_extern;
|
|
bool resource_valid;
|
|
u64 resource_id;
|
|
u64 resource_units;
|
|
struct devlink_dpipe_table_ops *table_ops;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct devlink_dpipe_dump_ctx;
|
|
|
|
struct devlink_dpipe_table_ops {
|
|
int (*actions_dump)(void *, struct sk_buff *);
|
|
int (*matches_dump)(void *, struct sk_buff *);
|
|
int (*entries_dump)(void *, bool, struct devlink_dpipe_dump_ctx *);
|
|
int (*counters_set_update)(void *, bool);
|
|
u64 (*size_get)(void *);
|
|
};
|
|
|
|
struct devlink_dpipe_dump_ctx {
|
|
struct genl_info *info;
|
|
enum devlink_command cmd;
|
|
struct sk_buff *skb;
|
|
struct nlattr *nest;
|
|
void *hdr;
|
|
};
|
|
|
|
struct devlink_dpipe_value;
|
|
|
|
struct devlink_dpipe_entry {
|
|
u64 index;
|
|
struct devlink_dpipe_value *match_values;
|
|
unsigned int match_values_count;
|
|
struct devlink_dpipe_value *action_values;
|
|
unsigned int action_values_count;
|
|
u64 counter;
|
|
bool counter_valid;
|
|
};
|
|
|
|
struct devlink_dpipe_action;
|
|
|
|
struct devlink_dpipe_match;
|
|
|
|
struct devlink_dpipe_value {
|
|
union {
|
|
struct devlink_dpipe_action *action;
|
|
struct devlink_dpipe_match *match;
|
|
};
|
|
unsigned int mapping_value;
|
|
bool mapping_valid;
|
|
unsigned int value_size;
|
|
void *value;
|
|
void *mask;
|
|
};
|
|
|
|
struct devlink_dpipe_action {
|
|
enum devlink_dpipe_action_type type;
|
|
unsigned int header_index;
|
|
struct devlink_dpipe_header *header;
|
|
unsigned int field_id;
|
|
};
|
|
|
|
struct devlink_dpipe_match {
|
|
enum devlink_dpipe_match_type type;
|
|
unsigned int header_index;
|
|
struct devlink_dpipe_header *header;
|
|
unsigned int field_id;
|
|
};
|
|
|
|
struct devlink_param_item {
|
|
struct list_head list;
|
|
const struct devlink_param *param;
|
|
union devlink_param_value driverinit_value;
|
|
bool driverinit_value_valid;
|
|
union devlink_param_value driverinit_value_new;
|
|
bool driverinit_value_new_valid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_devlink_hwmsg {
|
|
u32 bus_name;
|
|
u32 dev_name;
|
|
u32 driver_name;
|
|
u32 buf;
|
|
};
|
|
|
|
struct trace_event_data_offsets_devlink_hwerr {
|
|
u32 bus_name;
|
|
u32 dev_name;
|
|
u32 driver_name;
|
|
u32 msg;
|
|
};
|
|
|
|
struct trace_event_data_offsets_devlink_health_report {
|
|
u32 bus_name;
|
|
u32 dev_name;
|
|
u32 driver_name;
|
|
u32 reporter_name;
|
|
u32 msg;
|
|
};
|
|
|
|
struct trace_event_data_offsets_devlink_health_recover_aborted {
|
|
u32 bus_name;
|
|
u32 dev_name;
|
|
u32 driver_name;
|
|
u32 reporter_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_devlink_health_reporter_state_update {
|
|
u32 bus_name;
|
|
u32 dev_name;
|
|
u32 driver_name;
|
|
u32 reporter_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_devlink_trap_report {
|
|
u32 bus_name;
|
|
u32 dev_name;
|
|
u32 driver_name;
|
|
u32 trap_name;
|
|
u32 trap_group_name;
|
|
};
|
|
|
|
typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *);
|
|
|
|
struct pci_root_res {
|
|
struct list_head list;
|
|
struct resource res;
|
|
};
|
|
|
|
struct pci_root_info___2 {
|
|
struct list_head list;
|
|
char name[12];
|
|
struct list_head resources;
|
|
struct resource busn;
|
|
int node;
|
|
int link;
|
|
};
|
|
|
|
struct saved_msr;
|
|
|
|
struct saved_msrs {
|
|
unsigned int num;
|
|
struct saved_msr *array;
|
|
};
|
|
|
|
struct saved_context {
|
|
struct pt_regs regs;
|
|
u16 ds;
|
|
u16 es;
|
|
u16 fs;
|
|
u16 gs;
|
|
unsigned long kernelmode_gs_base;
|
|
unsigned long usermode_gs_base;
|
|
unsigned long fs_base;
|
|
unsigned long cr0;
|
|
unsigned long cr2;
|
|
unsigned long cr3;
|
|
unsigned long cr4;
|
|
u64 misc_enable;
|
|
struct saved_msrs saved_msrs;
|
|
unsigned long efer;
|
|
u16 gdt_pad;
|
|
struct desc_ptr gdt_desc;
|
|
u16 idt_pad;
|
|
struct desc_ptr idt;
|
|
u16 ldt;
|
|
u16 tss;
|
|
unsigned long tr;
|
|
unsigned long safety;
|
|
unsigned long return_address;
|
|
bool misc_enable_saved;
|
|
} __attribute__((packed));
|
|
|
|
struct saved_msr {
|
|
bool valid;
|
|
struct msr_info info;
|
|
};
|
|
|
|
typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *);
|
|
|
|
struct msr_enumeration {
|
|
u32 msr_no;
|
|
u32 feature;
|
|
};
|
|
|
|
enum {
|
|
EXTRA_REG_NHMEX_M_FILTER = 0,
|
|
EXTRA_REG_NHMEX_M_DSP = 1,
|
|
EXTRA_REG_NHMEX_M_ISS = 2,
|
|
EXTRA_REG_NHMEX_M_MAP = 3,
|
|
EXTRA_REG_NHMEX_M_MSC_THR = 4,
|
|
EXTRA_REG_NHMEX_M_PGT = 5,
|
|
EXTRA_REG_NHMEX_M_PLD = 6,
|
|
EXTRA_REG_NHMEX_M_ZDP_CTL_FVC = 7,
|
|
};
|
|
|
|
enum psc_op {
|
|
SNP_PAGE_STATE_PRIVATE = 1,
|
|
SNP_PAGE_STATE_SHARED = 2,
|
|
};
|
|
|
|
enum xstate_copy_mode {
|
|
XSTATE_COPY_FP = 0,
|
|
XSTATE_COPY_FX = 1,
|
|
XSTATE_COPY_XSAVE = 2,
|
|
};
|
|
|
|
struct fpu_guest {
|
|
u64 xfeatures;
|
|
u64 perm;
|
|
u64 xfd_err;
|
|
unsigned int uabi_size;
|
|
struct fpstate *fpstate;
|
|
};
|
|
|
|
struct pkru_state {
|
|
u32 pkru;
|
|
u32 pad;
|
|
};
|
|
|
|
struct machine_ops {
|
|
void (*restart)(char *);
|
|
void (*halt)();
|
|
void (*power_off)();
|
|
void (*shutdown)();
|
|
void (*crash_shutdown)(struct pt_regs *);
|
|
void (*emergency_restart)();
|
|
};
|
|
|
|
typedef void (*nmi_shootdown_cb)(int, struct pt_regs *);
|
|
|
|
enum reboot_type {
|
|
BOOT_TRIPLE = 116,
|
|
BOOT_KBD = 107,
|
|
BOOT_BIOS = 98,
|
|
BOOT_ACPI = 97,
|
|
BOOT_EFI = 101,
|
|
BOOT_CF9_FORCE = 112,
|
|
BOOT_CF9_SAFE = 113,
|
|
};
|
|
|
|
enum reboot_mode {
|
|
REBOOT_UNDEFINED = -1,
|
|
REBOOT_COLD = 0,
|
|
REBOOT_WARM = 1,
|
|
REBOOT_HARD = 2,
|
|
REBOOT_SOFT = 3,
|
|
REBOOT_GPIO = 4,
|
|
};
|
|
|
|
enum pcpu_fc {
|
|
PCPU_FC_AUTO = 0,
|
|
PCPU_FC_EMBED = 1,
|
|
PCPU_FC_PAGE = 2,
|
|
PCPU_FC_NR = 3,
|
|
};
|
|
|
|
typedef int pcpu_fc_cpu_to_node_fn_t(int);
|
|
|
|
typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int);
|
|
|
|
union apic_ir {
|
|
unsigned long map[4];
|
|
u32 regs[8];
|
|
};
|
|
|
|
typedef int (*wakeup_cpu_handler)(int, unsigned long);
|
|
|
|
struct cfs_rq {
|
|
struct load_weight load;
|
|
unsigned int nr_running;
|
|
unsigned int h_nr_running;
|
|
unsigned int idle_nr_running;
|
|
unsigned int idle_h_nr_running;
|
|
u64 exec_clock;
|
|
u64 min_vruntime;
|
|
struct rb_root_cached tasks_timeline;
|
|
struct sched_entity *curr;
|
|
struct sched_entity *next;
|
|
struct sched_entity *last;
|
|
struct sched_entity *skip;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct sched_avg avg;
|
|
struct {
|
|
raw_spinlock_t lock;
|
|
int nr;
|
|
unsigned long load_avg;
|
|
unsigned long util_avg;
|
|
unsigned long runnable_avg;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
} removed;
|
|
unsigned long tg_load_avg_contrib;
|
|
long propagate;
|
|
long prop_runnable_sum;
|
|
unsigned long h_load;
|
|
u64 last_h_load_update;
|
|
struct sched_entity *h_load_next;
|
|
struct rq *rq;
|
|
int on_list;
|
|
struct list_head leaf_cfs_rq_list;
|
|
struct task_group *tg;
|
|
int idle;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct rt_prio_array {
|
|
unsigned long bitmap[2];
|
|
struct list_head queue[100];
|
|
};
|
|
|
|
struct rt_rq {
|
|
struct rt_prio_array active;
|
|
unsigned int rt_nr_running;
|
|
unsigned int rr_nr_running;
|
|
struct {
|
|
int curr;
|
|
int next;
|
|
} highest_prio;
|
|
unsigned int rt_nr_migratory;
|
|
unsigned int rt_nr_total;
|
|
int overloaded;
|
|
struct plist_head pushable_tasks;
|
|
int rt_queued;
|
|
int rt_throttled;
|
|
u64 rt_time;
|
|
u64 rt_runtime;
|
|
raw_spinlock_t rt_runtime_lock;
|
|
};
|
|
|
|
struct dl_rq {
|
|
struct rb_root_cached root;
|
|
unsigned int dl_nr_running;
|
|
struct {
|
|
u64 curr;
|
|
u64 next;
|
|
} earliest_dl;
|
|
unsigned int dl_nr_migratory;
|
|
int overloaded;
|
|
struct rb_root_cached pushable_dl_tasks_root;
|
|
u64 running_bw;
|
|
u64 this_bw;
|
|
u64 extra_bw;
|
|
u64 bw_ratio;
|
|
};
|
|
|
|
struct root_domain;
|
|
|
|
struct balance_callback;
|
|
|
|
struct rq {
|
|
raw_spinlock_t __lock;
|
|
unsigned int nr_running;
|
|
unsigned long last_blocked_load_update_tick;
|
|
unsigned int has_blocked_load;
|
|
long: 32;
|
|
long: 64;
|
|
call_single_data_t nohz_csd;
|
|
unsigned int nohz_tick_stopped;
|
|
atomic_t nohz_flags;
|
|
unsigned int ttwu_pending;
|
|
u64 nr_switches;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct cfs_rq cfs;
|
|
struct rt_rq rt;
|
|
struct dl_rq dl;
|
|
struct list_head leaf_cfs_rq_list;
|
|
struct list_head *tmp_alone_branch;
|
|
unsigned int nr_uninterruptible;
|
|
struct task_struct __attribute__((btf_type_tag("rcu"))) *curr;
|
|
struct task_struct *idle;
|
|
struct task_struct *stop;
|
|
unsigned long next_balance;
|
|
struct mm_struct *prev_mm;
|
|
unsigned int clock_update_flags;
|
|
u64 clock;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u64 clock_task;
|
|
u64 clock_pelt;
|
|
unsigned long lost_idle_time;
|
|
u64 clock_pelt_idle;
|
|
u64 clock_idle;
|
|
atomic_t nr_iowait;
|
|
int membarrier_state;
|
|
struct root_domain *rd;
|
|
struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd;
|
|
unsigned long cpu_capacity;
|
|
unsigned long cpu_capacity_orig;
|
|
struct balance_callback *balance_callback;
|
|
unsigned char nohz_idle_balance;
|
|
unsigned char idle_balance;
|
|
unsigned long misfit_task_load;
|
|
int active_balance;
|
|
int push_cpu;
|
|
struct cpu_stop_work active_balance_work;
|
|
int cpu;
|
|
int online;
|
|
struct list_head cfs_tasks;
|
|
long: 64;
|
|
struct sched_avg avg_rt;
|
|
struct sched_avg avg_dl;
|
|
u64 idle_stamp;
|
|
u64 avg_idle;
|
|
unsigned long wake_stamp;
|
|
u64 wake_avg_idle;
|
|
u64 max_idle_balance_cost;
|
|
struct rcuwait hotplug_wait;
|
|
u64 prev_steal_time;
|
|
unsigned long calc_load_update;
|
|
long calc_load_active;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
call_single_data_t hrtick_csd;
|
|
struct hrtimer hrtick_timer;
|
|
ktime_t hrtick_time;
|
|
struct sched_info rq_sched_info;
|
|
unsigned long long rq_cpu_time;
|
|
unsigned int yld_count;
|
|
unsigned int sched_count;
|
|
unsigned int sched_goidle;
|
|
unsigned int ttwu_count;
|
|
unsigned int ttwu_local;
|
|
struct cpuidle_state *idle_state;
|
|
unsigned int nr_pinned;
|
|
unsigned int push_busy;
|
|
struct cpu_stop_work push_work;
|
|
cpumask_var_t scratch_mask;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct cfs_bandwidth {};
|
|
|
|
struct task_group {
|
|
struct cgroup_subsys_state css;
|
|
struct sched_entity **se;
|
|
struct cfs_rq **cfs_rq;
|
|
unsigned long shares;
|
|
int idle;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
atomic_long_t load_avg;
|
|
struct callback_head rcu;
|
|
struct list_head list;
|
|
struct task_group *parent;
|
|
struct list_head siblings;
|
|
struct list_head children;
|
|
struct cfs_bandwidth cfs_bandwidth;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct dl_bw {
|
|
raw_spinlock_t lock;
|
|
u64 bw;
|
|
u64 total_bw;
|
|
};
|
|
|
|
struct cpudl_item;
|
|
|
|
struct cpudl {
|
|
raw_spinlock_t lock;
|
|
int size;
|
|
cpumask_var_t free_cpus;
|
|
struct cpudl_item *elements;
|
|
};
|
|
|
|
struct cpupri_vec {
|
|
atomic_t count;
|
|
cpumask_var_t mask;
|
|
};
|
|
|
|
struct cpupri {
|
|
struct cpupri_vec pri_to_cpu[101];
|
|
int *cpu_to_pri;
|
|
};
|
|
|
|
struct perf_domain;
|
|
|
|
struct root_domain {
|
|
atomic_t refcount;
|
|
atomic_t rto_count;
|
|
struct callback_head rcu;
|
|
cpumask_var_t span;
|
|
cpumask_var_t online;
|
|
int overload;
|
|
int overutilized;
|
|
cpumask_var_t dlo_mask;
|
|
atomic_t dlo_count;
|
|
struct dl_bw dl_bw;
|
|
struct cpudl cpudl;
|
|
u64 visit_gen;
|
|
struct irq_work rto_push_work;
|
|
raw_spinlock_t rto_lock;
|
|
int rto_loop;
|
|
int rto_cpu;
|
|
atomic_t rto_loop_next;
|
|
atomic_t rto_loop_start;
|
|
cpumask_var_t rto_mask;
|
|
struct cpupri cpupri;
|
|
unsigned long max_cpu_capacity;
|
|
struct perf_domain __attribute__((btf_type_tag("rcu"))) *pd;
|
|
};
|
|
|
|
struct cpudl_item {
|
|
u64 dl;
|
|
int cpu;
|
|
int idx;
|
|
};
|
|
|
|
struct em_perf_domain;
|
|
|
|
struct perf_domain {
|
|
struct em_perf_domain *em_pd;
|
|
struct perf_domain *next;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct em_perf_state;
|
|
|
|
struct em_perf_domain {
|
|
struct em_perf_state *table;
|
|
int nr_perf_states;
|
|
unsigned long flags;
|
|
unsigned long cpus[0];
|
|
};
|
|
|
|
struct em_perf_state {
|
|
unsigned long frequency;
|
|
unsigned long power;
|
|
unsigned long cost;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct sched_group {
|
|
struct sched_group *next;
|
|
atomic_t ref;
|
|
unsigned int group_weight;
|
|
struct sched_group_capacity *sgc;
|
|
int asym_prefer_cpu;
|
|
int flags;
|
|
unsigned long cpumask[0];
|
|
};
|
|
|
|
struct sched_group_capacity {
|
|
atomic_t ref;
|
|
unsigned long capacity;
|
|
unsigned long min_capacity;
|
|
unsigned long max_capacity;
|
|
unsigned long next_update;
|
|
int imbalance;
|
|
unsigned long cpumask[0];
|
|
};
|
|
|
|
struct balance_callback {
|
|
struct balance_callback *next;
|
|
void (*func)(struct rq *);
|
|
};
|
|
|
|
struct rq_flags {
|
|
unsigned long flags;
|
|
struct pin_cookie cookie;
|
|
};
|
|
|
|
struct affinity_context {
|
|
const struct cpumask *new_mask;
|
|
struct cpumask *user_mask;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct rt_bandwidth {
|
|
raw_spinlock_t rt_runtime_lock;
|
|
ktime_t rt_period;
|
|
u64 rt_runtime;
|
|
struct hrtimer rt_period_timer;
|
|
unsigned int rt_period_active;
|
|
};
|
|
|
|
struct idle_timer {
|
|
struct hrtimer timer;
|
|
int done;
|
|
};
|
|
|
|
typedef struct rt_rq *rt_rq_iter_t;
|
|
|
|
struct dl_bandwidth {
|
|
raw_spinlock_t dl_runtime_lock;
|
|
u64 dl_runtime;
|
|
u64 dl_period;
|
|
};
|
|
|
|
struct sched_attr {
|
|
__u32 size;
|
|
__u32 sched_policy;
|
|
__u64 sched_flags;
|
|
__s32 sched_nice;
|
|
__u32 sched_priority;
|
|
__u64 sched_runtime;
|
|
__u64 sched_deadline;
|
|
__u64 sched_period;
|
|
__u32 sched_util_min;
|
|
__u32 sched_util_max;
|
|
};
|
|
|
|
enum bpf_struct_ops_state {
|
|
BPF_STRUCT_OPS_STATE_INIT = 0,
|
|
BPF_STRUCT_OPS_STATE_INUSE = 1,
|
|
BPF_STRUCT_OPS_STATE_TOBEFREE = 2,
|
|
};
|
|
|
|
struct bpf_dummy_ops {
|
|
int (*test_1)(struct bpf_dummy_ops_state *);
|
|
int (*test_2)(struct bpf_dummy_ops_state *, int, unsigned short, char, unsigned long);
|
|
int (*test_sleepable)(struct bpf_dummy_ops_state *);
|
|
};
|
|
|
|
struct bpf_struct_ops_bpf_dummy_ops {
|
|
refcount_t refcnt;
|
|
enum bpf_struct_ops_state state;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct bpf_dummy_ops data;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_struct_ops_tcp_congestion_ops {
|
|
refcount_t refcnt;
|
|
enum bpf_struct_ops_state state;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct tcp_congestion_ops data;
|
|
};
|
|
|
|
struct bpf_struct_ops_value {
|
|
refcount_t refcnt;
|
|
enum bpf_struct_ops_state state;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
char data[0];
|
|
};
|
|
|
|
struct bpf_struct_ops_map {
|
|
struct bpf_map map;
|
|
struct callback_head rcu;
|
|
const struct bpf_struct_ops *st_ops;
|
|
struct mutex lock;
|
|
struct bpf_link **links;
|
|
void *image;
|
|
struct bpf_struct_ops_value *uvalue;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct bpf_struct_ops_value kvalue;
|
|
};
|
|
|
|
struct dma_page {
|
|
struct list_head page_list;
|
|
void *vaddr;
|
|
dma_addr_t dma;
|
|
unsigned int in_use;
|
|
unsigned int offset;
|
|
};
|
|
|
|
struct dma_pool {
|
|
struct list_head page_list;
|
|
spinlock_t lock;
|
|
size_t size;
|
|
struct device *dev;
|
|
size_t allocation;
|
|
size_t boundary;
|
|
char name[32];
|
|
struct list_head pools;
|
|
};
|
|
|
|
struct files_stat_struct {
|
|
unsigned long nr_files;
|
|
unsigned long nr_free_files;
|
|
unsigned long max_files;
|
|
};
|
|
|
|
struct dio {
|
|
int flags;
|
|
blk_opf_t opf;
|
|
struct gendisk *bio_disk;
|
|
struct inode *inode;
|
|
loff_t i_size;
|
|
dio_iodone_t *end_io;
|
|
void *private;
|
|
spinlock_t bio_lock;
|
|
int page_errors;
|
|
int is_async;
|
|
bool defer_completion;
|
|
bool should_dirty;
|
|
int io_error;
|
|
unsigned long refcount;
|
|
struct bio *bio_list;
|
|
struct task_struct *waiter;
|
|
struct kiocb *iocb;
|
|
ssize_t result;
|
|
union {
|
|
struct page *pages[64];
|
|
struct work_struct complete_work;
|
|
};
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct dio_submit {
|
|
struct bio *bio;
|
|
unsigned int blkbits;
|
|
unsigned int blkfactor;
|
|
unsigned int start_zero_done;
|
|
int pages_in_io;
|
|
sector_t block_in_file;
|
|
unsigned int blocks_available;
|
|
int reap_counter;
|
|
sector_t final_block_in_request;
|
|
int boundary;
|
|
get_block_t *get_block;
|
|
dio_submit_t *submit_io;
|
|
loff_t logical_offset_in_bio;
|
|
sector_t final_block_in_bio;
|
|
sector_t next_block_for_io;
|
|
struct page *cur_page;
|
|
unsigned int cur_page_offset;
|
|
unsigned int cur_page_len;
|
|
sector_t cur_page_block;
|
|
loff_t cur_page_fs_offset;
|
|
struct iov_iter *iter;
|
|
unsigned int head;
|
|
unsigned int tail;
|
|
size_t from;
|
|
size_t to;
|
|
};
|
|
|
|
struct iomap_ioend {
|
|
struct list_head io_list;
|
|
u16 io_type;
|
|
u16 io_flags;
|
|
u32 io_folios;
|
|
struct inode *io_inode;
|
|
size_t io_size;
|
|
loff_t io_offset;
|
|
sector_t io_sector;
|
|
struct bio *io_bio;
|
|
struct bio io_inline_bio;
|
|
};
|
|
|
|
struct iomap_page {
|
|
atomic_t read_bytes_pending;
|
|
atomic_t write_bytes_pending;
|
|
spinlock_t uptodate_lock;
|
|
unsigned long uptodate[0];
|
|
};
|
|
|
|
struct iomap_readpage_ctx {
|
|
struct folio *cur_folio;
|
|
bool cur_folio_in_bio;
|
|
struct bio *bio;
|
|
struct readahead_control *rac;
|
|
};
|
|
|
|
struct folio_iter {
|
|
struct folio *folio;
|
|
size_t offset;
|
|
size_t length;
|
|
struct folio *_next;
|
|
size_t _seg_count;
|
|
int _i;
|
|
};
|
|
|
|
struct iomap_writeback_ops;
|
|
|
|
struct iomap_writepage_ctx {
|
|
struct iomap iomap;
|
|
struct iomap_ioend *ioend;
|
|
const struct iomap_writeback_ops *ops;
|
|
};
|
|
|
|
struct iomap_writeback_ops {
|
|
int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t);
|
|
int (*prepare_ioend)(struct iomap_ioend *, int);
|
|
void (*discard_folio)(struct folio *, loff_t);
|
|
};
|
|
|
|
typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int);
|
|
|
|
typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t);
|
|
|
|
typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t);
|
|
|
|
typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t);
|
|
|
|
typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *);
|
|
|
|
typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int);
|
|
|
|
typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int);
|
|
|
|
typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *);
|
|
|
|
typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int);
|
|
|
|
typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *);
|
|
|
|
typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int);
|
|
|
|
typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *);
|
|
|
|
typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int);
|
|
|
|
typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int);
|
|
|
|
typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *);
|
|
|
|
typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *);
|
|
|
|
typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *);
|
|
|
|
typedef void (*btf_trace_nfs_fscache_read_page)(void *, const struct inode *, struct page *);
|
|
|
|
typedef void (*btf_trace_nfs_fscache_read_page_exit)(void *, const struct inode *, struct page *, int);
|
|
|
|
typedef void (*btf_trace_nfs_fscache_write_page)(void *, const struct inode *, struct page *);
|
|
|
|
typedef void (*btf_trace_nfs_fscache_write_page_exit)(void *, const struct inode *, struct page *, int);
|
|
|
|
typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t);
|
|
|
|
typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *);
|
|
|
|
typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *);
|
|
|
|
typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int);
|
|
|
|
typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int);
|
|
|
|
typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int);
|
|
|
|
typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *);
|
|
|
|
typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *);
|
|
|
|
typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *);
|
|
|
|
typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *);
|
|
|
|
typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *);
|
|
|
|
typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *);
|
|
|
|
typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *);
|
|
|
|
typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *);
|
|
|
|
typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int);
|
|
|
|
typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *);
|
|
|
|
typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *);
|
|
|
|
typedef void (*btf_trace_nfs_mount_path)(void *, const char *);
|
|
|
|
typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int);
|
|
|
|
typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int);
|
|
|
|
struct trace_event_raw_nfs_inode_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 version;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_inode_event_done {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
unsigned char type;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t size;
|
|
unsigned long nfsi_flags;
|
|
unsigned long cache_validity;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_access_exit {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
unsigned char type;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t size;
|
|
unsigned long nfsi_flags;
|
|
unsigned long cache_validity;
|
|
unsigned int mask;
|
|
unsigned int permitted;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_update_size_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t cur_size;
|
|
loff_t new_size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_inode_range_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t range_start;
|
|
loff_t range_end;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_readdir_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 version;
|
|
char verifier[8];
|
|
u64 cookie;
|
|
unsigned long index;
|
|
unsigned int dtsize;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_lookup_event {
|
|
struct trace_entry ent;
|
|
unsigned long flags;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_lookup_event_done {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long flags;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_atomic_open_enter {
|
|
struct trace_entry ent;
|
|
unsigned long flags;
|
|
unsigned long fmode;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_atomic_open_exit {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long flags;
|
|
unsigned long fmode;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_create_enter {
|
|
struct trace_entry ent;
|
|
unsigned long flags;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_create_exit {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
unsigned long flags;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_directory_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_directory_event_done {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
dev_t dev;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_link_enter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 fileid;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_link_exit {
|
|
struct trace_entry ent;
|
|
unsigned long error;
|
|
dev_t dev;
|
|
u64 fileid;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_rename_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 old_dir;
|
|
u64 new_dir;
|
|
u32 __data_loc_old_name;
|
|
u32 __data_loc_new_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_rename_event_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long error;
|
|
u64 old_dir;
|
|
u32 __data_loc_old_name;
|
|
u64 new_dir;
|
|
u32 __data_loc_new_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_sillyrename_unlink {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long error;
|
|
u64 dir;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_folio_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t offset;
|
|
u32 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_folio_event_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
int ret;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t offset;
|
|
u32 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_aop_readahead {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t offset;
|
|
unsigned int nr_pages;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_aop_readahead_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
int ret;
|
|
u64 fileid;
|
|
u64 version;
|
|
loff_t offset;
|
|
unsigned int nr_pages;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_initiate_read {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_readpage_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 arg_count;
|
|
u32 res_count;
|
|
bool eof;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_readpage_short {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 arg_count;
|
|
u32 res_count;
|
|
bool eof;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_fscache_page_event {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_fscache_page_event_done {
|
|
struct trace_entry ent;
|
|
int error;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_pgio_error {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 arg_count;
|
|
u32 res_count;
|
|
loff_t pos;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_initiate_write {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 count;
|
|
unsigned long stable;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_writeback_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 arg_count;
|
|
u32 res_count;
|
|
int error;
|
|
unsigned long stable;
|
|
char verifier[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_page_error_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
unsigned int count;
|
|
int error;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_initiate_commit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
u32 count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_commit_done {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
loff_t offset;
|
|
int error;
|
|
unsigned long stable;
|
|
char verifier[8];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_direct_req_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 fileid;
|
|
u32 fhandle;
|
|
loff_t offset;
|
|
ssize_t count;
|
|
ssize_t bytes_left;
|
|
ssize_t error;
|
|
int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_fh_to_dentry {
|
|
struct trace_entry ent;
|
|
int error;
|
|
dev_t dev;
|
|
u32 fhandle;
|
|
u64 fileid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_mount_assign {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_option;
|
|
u32 __data_loc_value;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_mount_option {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_option;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_mount_path {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_path;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_nfs_xdr_event {
|
|
struct trace_entry ent;
|
|
unsigned int task_id;
|
|
unsigned int client_id;
|
|
u32 xid;
|
|
int version;
|
|
unsigned long error;
|
|
u32 __data_loc_program;
|
|
u32 __data_loc_procedure;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_lookup_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_lookup_event_done {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_atomic_open_enter {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_atomic_open_exit {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_create_enter {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_create_exit {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_directory_event {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_directory_event_done {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_link_enter {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_link_exit {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_rename_event {
|
|
u32 old_name;
|
|
u32 new_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_rename_event_done {
|
|
u32 old_name;
|
|
u32 new_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_sillyrename_unlink {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_mount_assign {
|
|
u32 option;
|
|
u32 value;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_mount_option {
|
|
u32 option;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_mount_path {
|
|
u32 path;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_xdr_event {
|
|
u32 program;
|
|
u32 procedure;
|
|
};
|
|
|
|
struct trace_event_data_offsets_nfs_inode_event {};
|
|
|
|
struct trace_event_data_offsets_nfs_inode_event_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_access_exit {};
|
|
|
|
struct trace_event_data_offsets_nfs_update_size_class {};
|
|
|
|
struct trace_event_data_offsets_nfs_inode_range_event {};
|
|
|
|
struct trace_event_data_offsets_nfs_readdir_event {};
|
|
|
|
struct trace_event_data_offsets_nfs_folio_event {};
|
|
|
|
struct trace_event_data_offsets_nfs_folio_event_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_aop_readahead {};
|
|
|
|
struct trace_event_data_offsets_nfs_aop_readahead_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_initiate_read {};
|
|
|
|
struct trace_event_data_offsets_nfs_readpage_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_readpage_short {};
|
|
|
|
struct trace_event_data_offsets_nfs_fscache_page_event {};
|
|
|
|
struct trace_event_data_offsets_nfs_fscache_page_event_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_pgio_error {};
|
|
|
|
struct trace_event_data_offsets_nfs_initiate_write {};
|
|
|
|
struct trace_event_data_offsets_nfs_writeback_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_page_error_class {};
|
|
|
|
struct trace_event_data_offsets_nfs_initiate_commit {};
|
|
|
|
struct trace_event_data_offsets_nfs_commit_done {};
|
|
|
|
struct trace_event_data_offsets_nfs_direct_req_class {};
|
|
|
|
struct trace_event_data_offsets_nfs_fh_to_dentry {};
|
|
|
|
struct walk_rcec_data {
|
|
struct pci_dev *rcec;
|
|
int (*user_callback)(struct pci_dev *, void *);
|
|
void *user_data;
|
|
};
|
|
|
|
struct acpi_wakeup_handler {
|
|
struct list_head list_node;
|
|
bool (*wakeup)(void *);
|
|
void *context;
|
|
};
|
|
|
|
struct acpi_thermal_flags {
|
|
u8 cooling_mode: 1;
|
|
u8 devices: 1;
|
|
u8 reserved: 6;
|
|
};
|
|
|
|
struct acpi_thermal_state {
|
|
u8 critical: 1;
|
|
u8 hot: 1;
|
|
u8 passive: 1;
|
|
u8 active: 1;
|
|
u8 reserved: 4;
|
|
int active_index;
|
|
};
|
|
|
|
struct acpi_thermal_state_flags {
|
|
u8 valid: 1;
|
|
u8 enabled: 1;
|
|
u8 reserved: 6;
|
|
};
|
|
|
|
struct acpi_thermal_critical {
|
|
struct acpi_thermal_state_flags flags;
|
|
unsigned long temperature;
|
|
};
|
|
|
|
struct acpi_thermal_hot {
|
|
struct acpi_thermal_state_flags flags;
|
|
unsigned long temperature;
|
|
};
|
|
|
|
struct acpi_thermal_passive {
|
|
struct acpi_thermal_state_flags flags;
|
|
unsigned long temperature;
|
|
unsigned long tc1;
|
|
unsigned long tc2;
|
|
unsigned long tsp;
|
|
struct acpi_handle_list devices;
|
|
};
|
|
|
|
struct acpi_thermal_active {
|
|
struct acpi_thermal_state_flags flags;
|
|
unsigned long temperature;
|
|
struct acpi_handle_list devices;
|
|
};
|
|
|
|
struct acpi_thermal_trips {
|
|
struct acpi_thermal_critical critical;
|
|
struct acpi_thermal_hot hot;
|
|
struct acpi_thermal_passive passive;
|
|
struct acpi_thermal_active active[10];
|
|
};
|
|
|
|
struct acpi_thermal {
|
|
struct acpi_device *device;
|
|
acpi_bus_id name;
|
|
unsigned long temperature;
|
|
unsigned long last_temperature;
|
|
unsigned long polling_frequency;
|
|
volatile u8 zombie;
|
|
struct acpi_thermal_flags flags;
|
|
struct acpi_thermal_state state;
|
|
struct acpi_thermal_trips trips;
|
|
struct acpi_handle_list devices;
|
|
struct thermal_zone_device *thermal_zone;
|
|
int kelvin_offset;
|
|
struct work_struct thermal_check_work;
|
|
struct mutex thermal_check_lock;
|
|
refcount_t thermal_check_count;
|
|
};
|
|
|
|
struct virtio_pci_common_cfg;
|
|
|
|
struct virtio_pci_modern_device {
|
|
struct pci_dev *pci_dev;
|
|
struct virtio_pci_common_cfg *common;
|
|
void *device;
|
|
void *notify_base;
|
|
resource_size_t notify_pa;
|
|
u8 *isr;
|
|
size_t notify_len;
|
|
size_t device_len;
|
|
int notify_map_cap;
|
|
u32 notify_offset_multiplier;
|
|
int modern_bars;
|
|
struct virtio_device_id id;
|
|
};
|
|
|
|
struct virtio_pci_vq_info;
|
|
|
|
struct virtio_pci_device {
|
|
struct virtio_device vdev;
|
|
struct pci_dev *pci_dev;
|
|
struct virtio_pci_legacy_device ldev;
|
|
struct virtio_pci_modern_device mdev;
|
|
bool is_legacy;
|
|
u8 *isr;
|
|
spinlock_t lock;
|
|
struct list_head virtqueues;
|
|
struct virtio_pci_vq_info **vqs;
|
|
int msix_enabled;
|
|
int intx_enabled;
|
|
cpumask_var_t *msix_affinity_masks;
|
|
char (*msix_names)[256];
|
|
unsigned int msix_vectors;
|
|
unsigned int msix_used_vectors;
|
|
bool per_vq_vectors;
|
|
struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16);
|
|
void (*del_vq)(struct virtio_pci_vq_info *);
|
|
u16 (*config_vector)(struct virtio_pci_device *, u16);
|
|
};
|
|
|
|
struct virtio_pci_common_cfg {
|
|
__le32 device_feature_select;
|
|
__le32 device_feature;
|
|
__le32 guest_feature_select;
|
|
__le32 guest_feature;
|
|
__le16 msix_config;
|
|
__le16 num_queues;
|
|
__u8 device_status;
|
|
__u8 config_generation;
|
|
__le16 queue_select;
|
|
__le16 queue_size;
|
|
__le16 queue_msix_vector;
|
|
__le16 queue_enable;
|
|
__le16 queue_notify_off;
|
|
__le32 queue_desc_lo;
|
|
__le32 queue_desc_hi;
|
|
__le32 queue_avail_lo;
|
|
__le32 queue_avail_hi;
|
|
__le32 queue_used_lo;
|
|
__le32 queue_used_hi;
|
|
};
|
|
|
|
struct virtio_pci_vq_info {
|
|
struct virtqueue *vq;
|
|
struct list_head node;
|
|
unsigned int msix_vector;
|
|
};
|
|
|
|
enum dma_transaction_type {
|
|
DMA_MEMCPY = 0,
|
|
DMA_XOR = 1,
|
|
DMA_PQ = 2,
|
|
DMA_XOR_VAL = 3,
|
|
DMA_PQ_VAL = 4,
|
|
DMA_MEMSET = 5,
|
|
DMA_MEMSET_SG = 6,
|
|
DMA_INTERRUPT = 7,
|
|
DMA_PRIVATE = 8,
|
|
DMA_ASYNC_TX = 9,
|
|
DMA_SLAVE = 10,
|
|
DMA_CYCLIC = 11,
|
|
DMA_INTERLEAVE = 12,
|
|
DMA_COMPLETION_NO_ORDER = 13,
|
|
DMA_REPEAT = 14,
|
|
DMA_LOAD_EOT = 15,
|
|
DMA_TX_TYPE_END = 16,
|
|
};
|
|
|
|
enum tpm2_cc_attrs {
|
|
TPM2_CC_ATTR_CHANDLES = 25,
|
|
TPM2_CC_ATTR_RHANDLE = 28,
|
|
TPM2_CC_ATTR_VENDOR = 29,
|
|
};
|
|
|
|
enum tpm2_structures {
|
|
TPM2_ST_NO_SESSIONS = 32769,
|
|
TPM2_ST_SESSIONS = 32770,
|
|
};
|
|
|
|
enum tpm2_handle_types {
|
|
TPM2_HT_HMAC_SESSION = 33554432,
|
|
TPM2_HT_POLICY_SESSION = 50331648,
|
|
TPM2_HT_TRANSIENT = 2147483648,
|
|
};
|
|
|
|
enum tpm2_capabilities {
|
|
TPM2_CAP_HANDLES = 1,
|
|
TPM2_CAP_COMMANDS = 2,
|
|
TPM2_CAP_PCRS = 5,
|
|
TPM2_CAP_TPM_PROPERTIES = 6,
|
|
};
|
|
|
|
struct tpm2_context {
|
|
__be64 sequence;
|
|
__be32 saved_handle;
|
|
__be32 hierarchy;
|
|
__be16 blob_size;
|
|
} __attribute__((packed));
|
|
|
|
struct tpm2_cap_handles {
|
|
u8 more_data;
|
|
__be32 capability;
|
|
__be32 count;
|
|
__be32 handles[0];
|
|
} __attribute__((packed));
|
|
|
|
struct drm_client_offset {
|
|
int x;
|
|
int y;
|
|
};
|
|
|
|
struct ttm_agp_backend {
|
|
struct ttm_tt ttm;
|
|
struct agp_memory *mem;
|
|
struct agp_bridge_data *bridge;
|
|
};
|
|
|
|
struct engine_mmio_base {
|
|
u32 graphics_ver: 8;
|
|
u32 base: 24;
|
|
};
|
|
|
|
struct engine_info {
|
|
u8 class;
|
|
u8 instance;
|
|
struct engine_mmio_base mmio_bases[3];
|
|
};
|
|
|
|
struct pmap {
|
|
size_t offset;
|
|
const char *name;
|
|
};
|
|
|
|
struct measure_breadcrumb {
|
|
struct i915_request rq;
|
|
struct intel_ring ring;
|
|
u32 cs[2048];
|
|
};
|
|
|
|
struct drm_i915_gem_busy {
|
|
__u32 handle;
|
|
__u32 busy;
|
|
};
|
|
|
|
struct icl_procmon {
|
|
const char *name;
|
|
u32 dw1;
|
|
u32 dw9;
|
|
u32 dw10;
|
|
};
|
|
|
|
enum {
|
|
PROCMON_0_85V_DOT_0 = 0,
|
|
PROCMON_0_95V_DOT_0 = 1,
|
|
PROCMON_0_95V_DOT_1 = 2,
|
|
PROCMON_1_05V_DOT_0 = 3,
|
|
PROCMON_1_05V_DOT_1 = 4,
|
|
};
|
|
|
|
struct intel_hdmi_lpe_audio_port_pdata {
|
|
u8 eld[128];
|
|
int port;
|
|
int pipe;
|
|
int ls_clock;
|
|
bool dp_output;
|
|
};
|
|
|
|
struct intel_hdmi_lpe_audio_pdata {
|
|
struct intel_hdmi_lpe_audio_port_pdata port[3];
|
|
int num_ports;
|
|
int num_pipes;
|
|
void (*notify_audio_lpe)(struct platform_device *, int);
|
|
spinlock_t lpe_audio_slock;
|
|
};
|
|
|
|
struct drm_virtgpu_3d_box {
|
|
__u32 x;
|
|
__u32 y;
|
|
__u32 z;
|
|
__u32 w;
|
|
__u32 h;
|
|
__u32 d;
|
|
};
|
|
|
|
struct drm_virtgpu_resource_create_blob {
|
|
__u32 blob_mem;
|
|
__u32 blob_flags;
|
|
__u32 bo_handle;
|
|
__u32 res_handle;
|
|
__u64 size;
|
|
__u32 pad;
|
|
__u32 cmd_size;
|
|
__u64 cmd;
|
|
__u64 blob_id;
|
|
};
|
|
|
|
struct drm_virtgpu_map {
|
|
__u64 offset;
|
|
__u32 handle;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_virtgpu_execbuffer {
|
|
__u32 flags;
|
|
__u32 size;
|
|
__u64 command;
|
|
__u64 bo_handles;
|
|
__u32 num_bo_handles;
|
|
__s32 fence_fd;
|
|
__u32 ring_idx;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_virtgpu_getparam {
|
|
__u64 param;
|
|
__u64 value;
|
|
};
|
|
|
|
struct drm_virtgpu_resource_create {
|
|
__u32 target;
|
|
__u32 format;
|
|
__u32 bind;
|
|
__u32 width;
|
|
__u32 height;
|
|
__u32 depth;
|
|
__u32 array_size;
|
|
__u32 last_level;
|
|
__u32 nr_samples;
|
|
__u32 flags;
|
|
__u32 bo_handle;
|
|
__u32 res_handle;
|
|
__u32 size;
|
|
__u32 stride;
|
|
};
|
|
|
|
struct drm_virtgpu_resource_info {
|
|
__u32 bo_handle;
|
|
__u32 res_handle;
|
|
__u32 size;
|
|
__u32 blob_mem;
|
|
};
|
|
|
|
struct drm_virtgpu_3d_transfer_from_host {
|
|
__u32 bo_handle;
|
|
struct drm_virtgpu_3d_box box;
|
|
__u32 level;
|
|
__u32 offset;
|
|
__u32 stride;
|
|
__u32 layer_stride;
|
|
};
|
|
|
|
struct drm_virtgpu_3d_transfer_to_host {
|
|
__u32 bo_handle;
|
|
struct drm_virtgpu_3d_box box;
|
|
__u32 level;
|
|
__u32 offset;
|
|
__u32 stride;
|
|
__u32 layer_stride;
|
|
};
|
|
|
|
struct drm_virtgpu_3d_wait {
|
|
__u32 handle;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct drm_virtgpu_get_caps {
|
|
__u32 cap_set_id;
|
|
__u32 cap_set_ver;
|
|
__u64 addr;
|
|
__u32 size;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_virtgpu_context_set_param {
|
|
__u64 param;
|
|
__u64 value;
|
|
};
|
|
|
|
struct drm_virtgpu_context_init {
|
|
__u32 num_params;
|
|
__u32 pad;
|
|
__u64 ctx_set_params;
|
|
};
|
|
|
|
typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int);
|
|
|
|
typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int);
|
|
|
|
typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *);
|
|
|
|
typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool);
|
|
|
|
typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool);
|
|
|
|
typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *);
|
|
|
|
typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *);
|
|
|
|
typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *);
|
|
|
|
typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int);
|
|
|
|
struct trace_event_raw_regmap_reg {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
unsigned int reg;
|
|
unsigned int val;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_regmap_bulk {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
unsigned int reg;
|
|
u32 __data_loc_buf;
|
|
int val_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_regmap_block {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
unsigned int reg;
|
|
int count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_regcache_sync {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
u32 __data_loc_status;
|
|
u32 __data_loc_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_regmap_bool {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
int flag;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_regmap_async {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_regcache_drop_region {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
unsigned int from;
|
|
unsigned int to;
|
|
char __data[0];
|
|
};
|
|
|
|
struct regmap_range_node {
|
|
struct rb_node node;
|
|
const char *name;
|
|
struct regmap *map;
|
|
unsigned int range_min;
|
|
unsigned int range_max;
|
|
unsigned int selector_reg;
|
|
unsigned int selector_mask;
|
|
int selector_shift;
|
|
unsigned int window_start;
|
|
unsigned int window_len;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regmap_reg {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regmap_bulk {
|
|
u32 name;
|
|
u32 buf;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regmap_block {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regcache_sync {
|
|
u32 name;
|
|
u32 status;
|
|
u32 type;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regmap_bool {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regmap_async {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_regcache_drop_region {
|
|
u32 name;
|
|
};
|
|
|
|
struct regmap_field {
|
|
struct regmap *regmap;
|
|
unsigned int mask;
|
|
unsigned int shift;
|
|
unsigned int reg;
|
|
unsigned int id_size;
|
|
unsigned int id_offset;
|
|
};
|
|
|
|
struct reg_field {
|
|
unsigned int reg;
|
|
unsigned int lsb;
|
|
unsigned int msb;
|
|
unsigned int id_size;
|
|
unsigned int id_offset;
|
|
};
|
|
|
|
enum {
|
|
D0TIM = 128,
|
|
D1TIM = 132,
|
|
PM = 7,
|
|
MDM = 768,
|
|
UDM = 458752,
|
|
PPE = 1073741824,
|
|
USD = -2147483648,
|
|
};
|
|
|
|
struct yenta_socket;
|
|
|
|
struct cardbus_type {
|
|
int (*override)(struct yenta_socket *);
|
|
void (*save_state)(struct yenta_socket *);
|
|
void (*restore_state)(struct yenta_socket *);
|
|
int (*sock_init)(struct yenta_socket *);
|
|
};
|
|
|
|
struct yenta_socket {
|
|
struct pci_dev *dev;
|
|
int cb_irq;
|
|
int io_irq;
|
|
void *base;
|
|
struct timer_list poll_timer;
|
|
struct pcmcia_socket socket;
|
|
struct cardbus_type *type;
|
|
u32 flags;
|
|
unsigned int probe_status;
|
|
unsigned int private[8];
|
|
u32 saved_state[2];
|
|
};
|
|
|
|
enum {
|
|
CARDBUS_TYPE_DEFAULT = -1,
|
|
CARDBUS_TYPE_TI = 0,
|
|
CARDBUS_TYPE_TI113X = 1,
|
|
CARDBUS_TYPE_TI12XX = 2,
|
|
CARDBUS_TYPE_TI1250 = 3,
|
|
CARDBUS_TYPE_RICOH = 4,
|
|
CARDBUS_TYPE_TOPIC95 = 5,
|
|
CARDBUS_TYPE_TOPIC97 = 6,
|
|
CARDBUS_TYPE_O2MICRO = 7,
|
|
CARDBUS_TYPE_ENE = 8,
|
|
};
|
|
|
|
typedef struct pccard_io_map pccard_io_map;
|
|
|
|
enum {
|
|
NAMESZ = 10,
|
|
};
|
|
|
|
struct mon_iso_desc {
|
|
int status;
|
|
unsigned int offset;
|
|
unsigned int length;
|
|
};
|
|
|
|
struct mon_event_text {
|
|
struct list_head e_link;
|
|
int type;
|
|
unsigned long id;
|
|
unsigned int tstamp;
|
|
int busnum;
|
|
char devnum;
|
|
char epnum;
|
|
char is_in;
|
|
char xfertype;
|
|
int length;
|
|
int status;
|
|
int interval;
|
|
int start_frame;
|
|
int error_count;
|
|
char setup_flag;
|
|
char data_flag;
|
|
int numdesc;
|
|
struct mon_iso_desc isodesc[5];
|
|
unsigned char setup[8];
|
|
unsigned char data[32];
|
|
};
|
|
|
|
struct mon_reader {
|
|
struct list_head r_link;
|
|
struct mon_bus *m_bus;
|
|
void *r_data;
|
|
void (*rnf_submit)(void *, struct urb *);
|
|
void (*rnf_error)(void *, struct urb *, int);
|
|
void (*rnf_complete)(void *, struct urb *, int);
|
|
};
|
|
|
|
struct mon_reader_text {
|
|
struct kmem_cache *e_slab;
|
|
int nevents;
|
|
struct list_head e_list;
|
|
struct mon_reader r;
|
|
wait_queue_head_t wait;
|
|
int printf_size;
|
|
size_t printf_offset;
|
|
size_t printf_togo;
|
|
char *printf_buf;
|
|
struct mutex printf_lock;
|
|
char slab_name[30];
|
|
};
|
|
|
|
struct mon_text_ptr {
|
|
int cnt;
|
|
int limit;
|
|
char *pbuf;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_rc_repeat)(u32 *);
|
|
|
|
typedef u64 (*btf_bpf_rc_keydown)(u32 *, u32, u64, u32);
|
|
|
|
typedef u64 (*btf_bpf_rc_pointer_rel)(u32 *, s32, s32);
|
|
|
|
typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *);
|
|
|
|
struct snd_seq_dummy_port {
|
|
int client;
|
|
int port;
|
|
int duplex;
|
|
int connect;
|
|
};
|
|
|
|
enum sk_pacing {
|
|
SK_PACING_NONE = 0,
|
|
SK_PACING_NEEDED = 1,
|
|
SK_PACING_FQ = 2,
|
|
};
|
|
|
|
enum txtime_flags {
|
|
SOF_TXTIME_DEADLINE_MODE = 1,
|
|
SOF_TXTIME_REPORT_ERRORS = 2,
|
|
SOF_TXTIME_FLAGS_LAST = 2,
|
|
SOF_TXTIME_FLAGS_MASK = 3,
|
|
};
|
|
|
|
enum {
|
|
SK_MEMINFO_RMEM_ALLOC = 0,
|
|
SK_MEMINFO_RCVBUF = 1,
|
|
SK_MEMINFO_WMEM_ALLOC = 2,
|
|
SK_MEMINFO_SNDBUF = 3,
|
|
SK_MEMINFO_FWD_ALLOC = 4,
|
|
SK_MEMINFO_WMEM_QUEUED = 5,
|
|
SK_MEMINFO_OPTMEM = 6,
|
|
SK_MEMINFO_BACKLOG = 7,
|
|
SK_MEMINFO_DROPS = 8,
|
|
SK_MEMINFO_VARS = 9,
|
|
};
|
|
|
|
enum sknetlink_groups {
|
|
SKNLGRP_NONE = 0,
|
|
SKNLGRP_INET_TCP_DESTROY = 1,
|
|
SKNLGRP_INET_UDP_DESTROY = 2,
|
|
SKNLGRP_INET6_TCP_DESTROY = 3,
|
|
SKNLGRP_INET6_UDP_DESTROY = 4,
|
|
__SKNLGRP_MAX = 5,
|
|
};
|
|
|
|
struct linger {
|
|
int l_onoff;
|
|
int l_linger;
|
|
};
|
|
|
|
struct sock_txtime {
|
|
__kernel_clockid_t clockid;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct so_timestamping {
|
|
int flags;
|
|
int bind_phc;
|
|
};
|
|
|
|
enum flow_cls_command {
|
|
FLOW_CLS_REPLACE = 0,
|
|
FLOW_CLS_DESTROY = 1,
|
|
FLOW_CLS_STATS = 2,
|
|
FLOW_CLS_TMPLT_CREATE = 3,
|
|
FLOW_CLS_TMPLT_DESTROY = 4,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_UNSPEC = 0,
|
|
TCA_FLOWER_CLASSID = 1,
|
|
TCA_FLOWER_INDEV = 2,
|
|
TCA_FLOWER_ACT = 3,
|
|
TCA_FLOWER_KEY_ETH_DST = 4,
|
|
TCA_FLOWER_KEY_ETH_DST_MASK = 5,
|
|
TCA_FLOWER_KEY_ETH_SRC = 6,
|
|
TCA_FLOWER_KEY_ETH_SRC_MASK = 7,
|
|
TCA_FLOWER_KEY_ETH_TYPE = 8,
|
|
TCA_FLOWER_KEY_IP_PROTO = 9,
|
|
TCA_FLOWER_KEY_IPV4_SRC = 10,
|
|
TCA_FLOWER_KEY_IPV4_SRC_MASK = 11,
|
|
TCA_FLOWER_KEY_IPV4_DST = 12,
|
|
TCA_FLOWER_KEY_IPV4_DST_MASK = 13,
|
|
TCA_FLOWER_KEY_IPV6_SRC = 14,
|
|
TCA_FLOWER_KEY_IPV6_SRC_MASK = 15,
|
|
TCA_FLOWER_KEY_IPV6_DST = 16,
|
|
TCA_FLOWER_KEY_IPV6_DST_MASK = 17,
|
|
TCA_FLOWER_KEY_TCP_SRC = 18,
|
|
TCA_FLOWER_KEY_TCP_DST = 19,
|
|
TCA_FLOWER_KEY_UDP_SRC = 20,
|
|
TCA_FLOWER_KEY_UDP_DST = 21,
|
|
TCA_FLOWER_FLAGS = 22,
|
|
TCA_FLOWER_KEY_VLAN_ID = 23,
|
|
TCA_FLOWER_KEY_VLAN_PRIO = 24,
|
|
TCA_FLOWER_KEY_VLAN_ETH_TYPE = 25,
|
|
TCA_FLOWER_KEY_ENC_KEY_ID = 26,
|
|
TCA_FLOWER_KEY_ENC_IPV4_SRC = 27,
|
|
TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK = 28,
|
|
TCA_FLOWER_KEY_ENC_IPV4_DST = 29,
|
|
TCA_FLOWER_KEY_ENC_IPV4_DST_MASK = 30,
|
|
TCA_FLOWER_KEY_ENC_IPV6_SRC = 31,
|
|
TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK = 32,
|
|
TCA_FLOWER_KEY_ENC_IPV6_DST = 33,
|
|
TCA_FLOWER_KEY_ENC_IPV6_DST_MASK = 34,
|
|
TCA_FLOWER_KEY_TCP_SRC_MASK = 35,
|
|
TCA_FLOWER_KEY_TCP_DST_MASK = 36,
|
|
TCA_FLOWER_KEY_UDP_SRC_MASK = 37,
|
|
TCA_FLOWER_KEY_UDP_DST_MASK = 38,
|
|
TCA_FLOWER_KEY_SCTP_SRC_MASK = 39,
|
|
TCA_FLOWER_KEY_SCTP_DST_MASK = 40,
|
|
TCA_FLOWER_KEY_SCTP_SRC = 41,
|
|
TCA_FLOWER_KEY_SCTP_DST = 42,
|
|
TCA_FLOWER_KEY_ENC_UDP_SRC_PORT = 43,
|
|
TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK = 44,
|
|
TCA_FLOWER_KEY_ENC_UDP_DST_PORT = 45,
|
|
TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK = 46,
|
|
TCA_FLOWER_KEY_FLAGS = 47,
|
|
TCA_FLOWER_KEY_FLAGS_MASK = 48,
|
|
TCA_FLOWER_KEY_ICMPV4_CODE = 49,
|
|
TCA_FLOWER_KEY_ICMPV4_CODE_MASK = 50,
|
|
TCA_FLOWER_KEY_ICMPV4_TYPE = 51,
|
|
TCA_FLOWER_KEY_ICMPV4_TYPE_MASK = 52,
|
|
TCA_FLOWER_KEY_ICMPV6_CODE = 53,
|
|
TCA_FLOWER_KEY_ICMPV6_CODE_MASK = 54,
|
|
TCA_FLOWER_KEY_ICMPV6_TYPE = 55,
|
|
TCA_FLOWER_KEY_ICMPV6_TYPE_MASK = 56,
|
|
TCA_FLOWER_KEY_ARP_SIP = 57,
|
|
TCA_FLOWER_KEY_ARP_SIP_MASK = 58,
|
|
TCA_FLOWER_KEY_ARP_TIP = 59,
|
|
TCA_FLOWER_KEY_ARP_TIP_MASK = 60,
|
|
TCA_FLOWER_KEY_ARP_OP = 61,
|
|
TCA_FLOWER_KEY_ARP_OP_MASK = 62,
|
|
TCA_FLOWER_KEY_ARP_SHA = 63,
|
|
TCA_FLOWER_KEY_ARP_SHA_MASK = 64,
|
|
TCA_FLOWER_KEY_ARP_THA = 65,
|
|
TCA_FLOWER_KEY_ARP_THA_MASK = 66,
|
|
TCA_FLOWER_KEY_MPLS_TTL = 67,
|
|
TCA_FLOWER_KEY_MPLS_BOS = 68,
|
|
TCA_FLOWER_KEY_MPLS_TC = 69,
|
|
TCA_FLOWER_KEY_MPLS_LABEL = 70,
|
|
TCA_FLOWER_KEY_TCP_FLAGS = 71,
|
|
TCA_FLOWER_KEY_TCP_FLAGS_MASK = 72,
|
|
TCA_FLOWER_KEY_IP_TOS = 73,
|
|
TCA_FLOWER_KEY_IP_TOS_MASK = 74,
|
|
TCA_FLOWER_KEY_IP_TTL = 75,
|
|
TCA_FLOWER_KEY_IP_TTL_MASK = 76,
|
|
TCA_FLOWER_KEY_CVLAN_ID = 77,
|
|
TCA_FLOWER_KEY_CVLAN_PRIO = 78,
|
|
TCA_FLOWER_KEY_CVLAN_ETH_TYPE = 79,
|
|
TCA_FLOWER_KEY_ENC_IP_TOS = 80,
|
|
TCA_FLOWER_KEY_ENC_IP_TOS_MASK = 81,
|
|
TCA_FLOWER_KEY_ENC_IP_TTL = 82,
|
|
TCA_FLOWER_KEY_ENC_IP_TTL_MASK = 83,
|
|
TCA_FLOWER_KEY_ENC_OPTS = 84,
|
|
TCA_FLOWER_KEY_ENC_OPTS_MASK = 85,
|
|
TCA_FLOWER_IN_HW_COUNT = 86,
|
|
TCA_FLOWER_KEY_PORT_SRC_MIN = 87,
|
|
TCA_FLOWER_KEY_PORT_SRC_MAX = 88,
|
|
TCA_FLOWER_KEY_PORT_DST_MIN = 89,
|
|
TCA_FLOWER_KEY_PORT_DST_MAX = 90,
|
|
TCA_FLOWER_KEY_CT_STATE = 91,
|
|
TCA_FLOWER_KEY_CT_STATE_MASK = 92,
|
|
TCA_FLOWER_KEY_CT_ZONE = 93,
|
|
TCA_FLOWER_KEY_CT_ZONE_MASK = 94,
|
|
TCA_FLOWER_KEY_CT_MARK = 95,
|
|
TCA_FLOWER_KEY_CT_MARK_MASK = 96,
|
|
TCA_FLOWER_KEY_CT_LABELS = 97,
|
|
TCA_FLOWER_KEY_CT_LABELS_MASK = 98,
|
|
TCA_FLOWER_KEY_MPLS_OPTS = 99,
|
|
TCA_FLOWER_KEY_HASH = 100,
|
|
TCA_FLOWER_KEY_HASH_MASK = 101,
|
|
TCA_FLOWER_KEY_NUM_OF_VLANS = 102,
|
|
TCA_FLOWER_KEY_PPPOE_SID = 103,
|
|
TCA_FLOWER_KEY_PPP_PROTO = 104,
|
|
TCA_FLOWER_KEY_L2TPV3_SID = 105,
|
|
__TCA_FLOWER_MAX = 106,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_MPLS_OPTS_LSE = 1,
|
|
__TCA_FLOWER_KEY_MPLS_OPTS_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH = 1,
|
|
TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL = 2,
|
|
TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS = 3,
|
|
TCA_FLOWER_KEY_MPLS_OPT_LSE_TC = 4,
|
|
TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL = 5,
|
|
__TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX = 6,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_ENC_OPTS_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_ENC_OPTS_GENEVE = 1,
|
|
TCA_FLOWER_KEY_ENC_OPTS_VXLAN = 2,
|
|
TCA_FLOWER_KEY_ENC_OPTS_ERSPAN = 3,
|
|
TCA_FLOWER_KEY_ENC_OPTS_GTP = 4,
|
|
__TCA_FLOWER_KEY_ENC_OPTS_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS = 1,
|
|
TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE = 2,
|
|
TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA = 3,
|
|
__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP = 1,
|
|
__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER = 1,
|
|
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX = 2,
|
|
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR = 3,
|
|
TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID = 4,
|
|
__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC = 0,
|
|
TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE = 1,
|
|
TCA_FLOWER_KEY_ENC_OPT_GTP_QFI = 2,
|
|
__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_CT_FLAGS_NEW = 1,
|
|
TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2,
|
|
TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4,
|
|
TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8,
|
|
TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16,
|
|
TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32,
|
|
__TCA_FLOWER_KEY_CT_FLAGS_MAX = 33,
|
|
};
|
|
|
|
enum {
|
|
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = 1,
|
|
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = 2,
|
|
};
|
|
|
|
struct flow_dissector_key_meta {
|
|
int ingress_ifindex;
|
|
u16 ingress_iftype;
|
|
};
|
|
|
|
struct flow_dissector_key_arp {
|
|
__u32 sip;
|
|
__u32 tip;
|
|
__u8 op;
|
|
unsigned char sha[6];
|
|
unsigned char tha[6];
|
|
};
|
|
|
|
struct flow_dissector_mpls_lse {
|
|
u32 mpls_ttl: 8;
|
|
u32 mpls_bos: 1;
|
|
u32 mpls_tc: 3;
|
|
u32 mpls_label: 20;
|
|
};
|
|
|
|
struct flow_dissector_key_mpls {
|
|
struct flow_dissector_mpls_lse ls[7];
|
|
u8 used_lses;
|
|
};
|
|
|
|
struct flow_dissector_key_tcp {
|
|
__be16 flags;
|
|
};
|
|
|
|
struct flow_dissector_key_enc_opts {
|
|
u8 data[255];
|
|
u8 len;
|
|
__be16 dst_opt_type;
|
|
};
|
|
|
|
struct flow_dissector_key_ports_range {
|
|
union {
|
|
struct flow_dissector_key_ports tp;
|
|
struct {
|
|
struct flow_dissector_key_ports tp_min;
|
|
struct flow_dissector_key_ports tp_max;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct flow_dissector_key_ct {
|
|
u16 ct_state;
|
|
u16 ct_zone;
|
|
u32 ct_mark;
|
|
u32 ct_labels[4];
|
|
};
|
|
|
|
struct flow_dissector_key_hash {
|
|
u32 hash;
|
|
};
|
|
|
|
struct flow_dissector_key_num_of_vlans {
|
|
u8 num_of_vlans;
|
|
};
|
|
|
|
struct flow_dissector_key_pppoe {
|
|
__be16 session_id;
|
|
__be16 ppp_proto;
|
|
__be16 type;
|
|
};
|
|
|
|
struct flow_dissector_key_l2tpv3 {
|
|
__be32 session_id;
|
|
};
|
|
|
|
struct fl_flow_key {
|
|
struct flow_dissector_key_meta meta;
|
|
struct flow_dissector_key_control control;
|
|
struct flow_dissector_key_control enc_control;
|
|
struct flow_dissector_key_basic basic;
|
|
struct flow_dissector_key_eth_addrs eth;
|
|
struct flow_dissector_key_vlan vlan;
|
|
struct flow_dissector_key_vlan cvlan;
|
|
union {
|
|
struct flow_dissector_key_ipv4_addrs ipv4;
|
|
struct flow_dissector_key_ipv6_addrs ipv6;
|
|
};
|
|
struct flow_dissector_key_ports tp;
|
|
struct flow_dissector_key_icmp icmp;
|
|
struct flow_dissector_key_arp arp;
|
|
struct flow_dissector_key_keyid enc_key_id;
|
|
union {
|
|
struct flow_dissector_key_ipv4_addrs enc_ipv4;
|
|
struct flow_dissector_key_ipv6_addrs enc_ipv6;
|
|
};
|
|
struct flow_dissector_key_ports enc_tp;
|
|
struct flow_dissector_key_mpls mpls;
|
|
struct flow_dissector_key_tcp tcp;
|
|
struct flow_dissector_key_ip ip;
|
|
struct flow_dissector_key_ip enc_ip;
|
|
struct flow_dissector_key_enc_opts enc_opts;
|
|
struct flow_dissector_key_ports_range tp_range;
|
|
struct flow_dissector_key_ct ct;
|
|
struct flow_dissector_key_hash hash;
|
|
struct flow_dissector_key_num_of_vlans num_of_vlans;
|
|
struct flow_dissector_key_pppoe pppoe;
|
|
struct flow_dissector_key_l2tpv3 l2tpv3;
|
|
};
|
|
|
|
struct fl_flow_mask_range {
|
|
unsigned short start;
|
|
unsigned short end;
|
|
};
|
|
|
|
struct fl_flow_mask {
|
|
struct fl_flow_key key;
|
|
struct fl_flow_mask_range range;
|
|
u32 flags;
|
|
struct rhash_head ht_node;
|
|
struct rhashtable ht;
|
|
struct rhashtable_params filter_ht_params;
|
|
struct flow_dissector dissector;
|
|
struct list_head filters;
|
|
struct rcu_work rwork;
|
|
struct list_head list;
|
|
refcount_t refcnt;
|
|
};
|
|
|
|
struct cls_fl_filter {
|
|
struct fl_flow_mask *mask;
|
|
struct rhash_head ht_node;
|
|
struct fl_flow_key mkey;
|
|
struct tcf_exts exts;
|
|
struct tcf_result res;
|
|
struct fl_flow_key key;
|
|
struct list_head list;
|
|
struct list_head hw_list;
|
|
u32 handle;
|
|
u32 flags;
|
|
u32 in_hw_count;
|
|
struct rcu_work rwork;
|
|
struct net_device *hw_dev;
|
|
refcount_t refcnt;
|
|
bool deleted;
|
|
};
|
|
|
|
struct cls_fl_head {
|
|
struct rhashtable ht;
|
|
spinlock_t masks_lock;
|
|
struct list_head masks;
|
|
struct list_head hw_filters;
|
|
struct rcu_work rwork;
|
|
struct idr handle_idr;
|
|
};
|
|
|
|
struct gtp_pdu_session_info {
|
|
u8 pdu_type;
|
|
u8 qfi;
|
|
};
|
|
|
|
struct fl_flow_tmplt {
|
|
struct fl_flow_key dummy_key;
|
|
struct fl_flow_key mask;
|
|
struct flow_dissector dissector;
|
|
struct tcf_chain *chain;
|
|
};
|
|
|
|
struct flow_cls_offload {
|
|
struct flow_cls_common_offload common;
|
|
enum flow_cls_command command;
|
|
bool use_act_stats;
|
|
unsigned long cookie;
|
|
struct flow_rule *rule;
|
|
struct flow_stats stats;
|
|
u32 classid;
|
|
};
|
|
|
|
struct flow_dissector_key {
|
|
enum flow_dissector_key_id key_id;
|
|
size_t offset;
|
|
};
|
|
|
|
enum nfnl_batch_attributes {
|
|
NFNL_BATCH_UNSPEC = 0,
|
|
NFNL_BATCH_GENID = 1,
|
|
__NFNL_BATCH_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
NFNL_BATCH_FAILURE = 1,
|
|
NFNL_BATCH_DONE = 2,
|
|
NFNL_BATCH_REPLAY = 4,
|
|
};
|
|
|
|
struct nfnl_err {
|
|
struct list_head head;
|
|
struct nlmsghdr *nlh;
|
|
int err;
|
|
struct netlink_ext_ack extack;
|
|
};
|
|
|
|
struct nfnl_net {
|
|
struct sock *nfnl;
|
|
};
|
|
|
|
struct xfrm_algo_list {
|
|
struct xfrm_algo_desc *algs;
|
|
int entries;
|
|
u32 type;
|
|
u32 mask;
|
|
};
|
|
|
|
struct xfrm_aead_name {
|
|
const char *name;
|
|
int icvbits;
|
|
};
|
|
|
|
struct xfrm_link {
|
|
int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **, struct netlink_ext_ack *);
|
|
int (*start)(struct netlink_callback *);
|
|
int (*dump)(struct sk_buff *, struct netlink_callback *);
|
|
int (*done)(struct netlink_callback *);
|
|
const struct nla_policy *nla_pol;
|
|
int nla_max;
|
|
};
|
|
|
|
enum xfrm_attr_type_t {
|
|
XFRMA_UNSPEC = 0,
|
|
XFRMA_ALG_AUTH = 1,
|
|
XFRMA_ALG_CRYPT = 2,
|
|
XFRMA_ALG_COMP = 3,
|
|
XFRMA_ENCAP = 4,
|
|
XFRMA_TMPL = 5,
|
|
XFRMA_SA = 6,
|
|
XFRMA_POLICY = 7,
|
|
XFRMA_SEC_CTX = 8,
|
|
XFRMA_LTIME_VAL = 9,
|
|
XFRMA_REPLAY_VAL = 10,
|
|
XFRMA_REPLAY_THRESH = 11,
|
|
XFRMA_ETIMER_THRESH = 12,
|
|
XFRMA_SRCADDR = 13,
|
|
XFRMA_COADDR = 14,
|
|
XFRMA_LASTUSED = 15,
|
|
XFRMA_POLICY_TYPE = 16,
|
|
XFRMA_MIGRATE = 17,
|
|
XFRMA_ALG_AEAD = 18,
|
|
XFRMA_KMADDRESS = 19,
|
|
XFRMA_ALG_AUTH_TRUNC = 20,
|
|
XFRMA_MARK = 21,
|
|
XFRMA_TFCPAD = 22,
|
|
XFRMA_REPLAY_ESN_VAL = 23,
|
|
XFRMA_SA_EXTRA_FLAGS = 24,
|
|
XFRMA_PROTO = 25,
|
|
XFRMA_ADDRESS_FILTER = 26,
|
|
XFRMA_PAD = 27,
|
|
XFRMA_OFFLOAD_DEV = 28,
|
|
XFRMA_SET_MARK = 29,
|
|
XFRMA_SET_MARK_MASK = 30,
|
|
XFRMA_IF_ID = 31,
|
|
XFRMA_MTIMER_THRESH = 32,
|
|
__XFRMA_MAX = 33,
|
|
};
|
|
|
|
enum {
|
|
XFRM_DEV_OFFLOAD_IN = 1,
|
|
XFRM_DEV_OFFLOAD_OUT = 2,
|
|
XFRM_DEV_OFFLOAD_FWD = 3,
|
|
};
|
|
|
|
enum {
|
|
XFRM_SHARE_ANY = 0,
|
|
XFRM_SHARE_SESSION = 1,
|
|
XFRM_SHARE_USER = 2,
|
|
XFRM_SHARE_UNIQUE = 3,
|
|
};
|
|
|
|
enum xfrm_sadattr_type_t {
|
|
XFRMA_SAD_UNSPEC = 0,
|
|
XFRMA_SAD_CNT = 1,
|
|
XFRMA_SAD_HINFO = 2,
|
|
__XFRMA_SAD_MAX = 3,
|
|
};
|
|
|
|
enum xfrm_spdattr_type_t {
|
|
XFRMA_SPD_UNSPEC = 0,
|
|
XFRMA_SPD_INFO = 1,
|
|
XFRMA_SPD_HINFO = 2,
|
|
XFRMA_SPD_IPV4_HTHRESH = 3,
|
|
XFRMA_SPD_IPV6_HTHRESH = 4,
|
|
__XFRMA_SPD_MAX = 5,
|
|
};
|
|
|
|
struct xfrm_userpolicy_info {
|
|
struct xfrm_selector sel;
|
|
struct xfrm_lifetime_cfg lft;
|
|
struct xfrm_lifetime_cur curlft;
|
|
__u32 priority;
|
|
__u32 index;
|
|
__u8 dir;
|
|
__u8 action;
|
|
__u8 flags;
|
|
__u8 share;
|
|
};
|
|
|
|
struct xfrm_user_tmpl {
|
|
struct xfrm_id id;
|
|
__u16 family;
|
|
xfrm_address_t saddr;
|
|
__u32 reqid;
|
|
__u8 mode;
|
|
__u8 share;
|
|
__u8 optional;
|
|
__u32 aalgos;
|
|
__u32 ealgos;
|
|
__u32 calgos;
|
|
};
|
|
|
|
struct xfrm_usersa_info {
|
|
struct xfrm_selector sel;
|
|
struct xfrm_id id;
|
|
xfrm_address_t saddr;
|
|
struct xfrm_lifetime_cfg lft;
|
|
struct xfrm_lifetime_cur curlft;
|
|
struct xfrm_stats stats;
|
|
__u32 seq;
|
|
__u32 reqid;
|
|
__u16 family;
|
|
__u8 mode;
|
|
__u8 replay_window;
|
|
__u8 flags;
|
|
};
|
|
|
|
struct xfrm_user_expire {
|
|
struct xfrm_usersa_info state;
|
|
__u8 hard;
|
|
};
|
|
|
|
struct xfrm_usersa_id {
|
|
xfrm_address_t daddr;
|
|
__be32 spi;
|
|
__u16 family;
|
|
__u8 proto;
|
|
};
|
|
|
|
struct xfrm_usersa_flush {
|
|
__u8 proto;
|
|
};
|
|
|
|
struct xfrm_user_acquire {
|
|
struct xfrm_id id;
|
|
xfrm_address_t saddr;
|
|
struct xfrm_selector sel;
|
|
struct xfrm_userpolicy_info policy;
|
|
__u32 aalgos;
|
|
__u32 ealgos;
|
|
__u32 calgos;
|
|
__u32 seq;
|
|
};
|
|
|
|
struct xfrm_user_sec_ctx {
|
|
__u16 len;
|
|
__u16 exttype;
|
|
__u8 ctx_alg;
|
|
__u8 ctx_doi;
|
|
__u16 ctx_len;
|
|
};
|
|
|
|
struct xfrm_user_offload {
|
|
int ifindex;
|
|
__u8 flags;
|
|
};
|
|
|
|
struct xfrm_user_mapping {
|
|
struct xfrm_usersa_id id;
|
|
__u32 reqid;
|
|
xfrm_address_t old_saddr;
|
|
xfrm_address_t new_saddr;
|
|
__be16 old_sport;
|
|
__be16 new_sport;
|
|
};
|
|
|
|
struct xfrm_userpolicy_id {
|
|
struct xfrm_selector sel;
|
|
__u32 index;
|
|
__u8 dir;
|
|
};
|
|
|
|
struct xfrm_user_polexpire {
|
|
struct xfrm_userpolicy_info pol;
|
|
__u8 hard;
|
|
};
|
|
|
|
struct xfrm_user_report {
|
|
__u8 proto;
|
|
struct xfrm_selector sel;
|
|
};
|
|
|
|
struct xfrm_dump_info {
|
|
struct sk_buff *in_skb;
|
|
struct sk_buff *out_skb;
|
|
u32 nlmsg_seq;
|
|
u16 nlmsg_flags;
|
|
};
|
|
|
|
struct xfrm_userpolicy_type {
|
|
__u8 type;
|
|
__u16 reserved1;
|
|
__u8 reserved2;
|
|
};
|
|
|
|
struct xfrmu_sadhinfo {
|
|
__u32 sadhcnt;
|
|
__u32 sadhmcnt;
|
|
};
|
|
|
|
struct xfrmu_spdinfo {
|
|
__u32 incnt;
|
|
__u32 outcnt;
|
|
__u32 fwdcnt;
|
|
__u32 inscnt;
|
|
__u32 outscnt;
|
|
__u32 fwdscnt;
|
|
};
|
|
|
|
struct xfrmu_spdhinfo {
|
|
__u32 spdhcnt;
|
|
__u32 spdhmcnt;
|
|
};
|
|
|
|
struct xfrmu_spdhthresh {
|
|
__u8 lbits;
|
|
__u8 rbits;
|
|
};
|
|
|
|
struct xfrm_userpolicy_default {
|
|
__u8 in;
|
|
__u8 fwd;
|
|
__u8 out;
|
|
};
|
|
|
|
struct xfrm_aevent_id {
|
|
struct xfrm_usersa_id sa_id;
|
|
xfrm_address_t saddr;
|
|
__u32 flags;
|
|
__u32 reqid;
|
|
};
|
|
|
|
struct xfrm_userspi_info {
|
|
struct xfrm_usersa_info info;
|
|
__u32 min;
|
|
__u32 max;
|
|
};
|
|
|
|
struct mld_msg {
|
|
struct icmp6hdr mld_hdr;
|
|
struct in6_addr mld_mca;
|
|
};
|
|
|
|
enum rfkill_sched_op {
|
|
RFKILL_GLOBAL_OP_EPO = 0,
|
|
RFKILL_GLOBAL_OP_RESTORE = 1,
|
|
RFKILL_GLOBAL_OP_UNLOCK = 2,
|
|
RFKILL_GLOBAL_OP_UNBLOCK = 3,
|
|
};
|
|
|
|
enum rfkill_input_master_mode {
|
|
RFKILL_INPUT_MASTER_UNLOCK = 0,
|
|
RFKILL_INPUT_MASTER_RESTORE = 1,
|
|
RFKILL_INPUT_MASTER_UNBLOCKALL = 2,
|
|
NUM_RFKILL_INPUT_MASTER_MODES = 3,
|
|
};
|
|
|
|
struct join_entry {
|
|
u32 token;
|
|
u32 remote_nonce;
|
|
u32 local_nonce;
|
|
u8 join_id;
|
|
u8 local_id;
|
|
u8 backup;
|
|
u8 valid;
|
|
};
|
|
|
|
enum {
|
|
PERF_BR_UNKNOWN = 0,
|
|
PERF_BR_COND = 1,
|
|
PERF_BR_UNCOND = 2,
|
|
PERF_BR_IND = 3,
|
|
PERF_BR_CALL = 4,
|
|
PERF_BR_IND_CALL = 5,
|
|
PERF_BR_RET = 6,
|
|
PERF_BR_SYSCALL = 7,
|
|
PERF_BR_SYSRET = 8,
|
|
PERF_BR_COND_CALL = 9,
|
|
PERF_BR_COND_RET = 10,
|
|
PERF_BR_ERET = 11,
|
|
PERF_BR_IRQ = 12,
|
|
PERF_BR_SERROR = 13,
|
|
PERF_BR_NO_TX = 14,
|
|
PERF_BR_EXTEND_ABI = 15,
|
|
PERF_BR_MAX = 16,
|
|
};
|
|
|
|
enum {
|
|
X86_BR_NONE = 0,
|
|
X86_BR_USER = 1,
|
|
X86_BR_KERNEL = 2,
|
|
X86_BR_CALL = 4,
|
|
X86_BR_RET = 8,
|
|
X86_BR_SYSCALL = 16,
|
|
X86_BR_SYSRET = 32,
|
|
X86_BR_INT = 64,
|
|
X86_BR_IRET = 128,
|
|
X86_BR_JCC = 256,
|
|
X86_BR_JMP = 512,
|
|
X86_BR_IRQ = 1024,
|
|
X86_BR_IND_CALL = 2048,
|
|
X86_BR_ABORT = 4096,
|
|
X86_BR_IN_TX = 8192,
|
|
X86_BR_NO_TX = 16384,
|
|
X86_BR_ZERO_CALL = 32768,
|
|
X86_BR_CALL_STACK = 65536,
|
|
X86_BR_IND_JMP = 131072,
|
|
X86_BR_TYPE_SAVE = 262144,
|
|
};
|
|
|
|
enum sched_tunable_scaling {
|
|
SCHED_TUNABLESCALING_NONE = 0,
|
|
SCHED_TUNABLESCALING_LOG = 1,
|
|
SCHED_TUNABLESCALING_LINEAR = 2,
|
|
SCHED_TUNABLESCALING_END = 3,
|
|
};
|
|
|
|
enum uclamp_id {
|
|
UCLAMP_MIN = 0,
|
|
UCLAMP_MAX = 1,
|
|
UCLAMP_CNT = 2,
|
|
};
|
|
|
|
enum cpu_idle_type {
|
|
CPU_IDLE = 0,
|
|
CPU_NOT_IDLE = 1,
|
|
CPU_NEWLY_IDLE = 2,
|
|
CPU_MAX_IDLE_TYPES = 3,
|
|
};
|
|
|
|
enum fbq_type {
|
|
regular = 0,
|
|
remote = 1,
|
|
all = 2,
|
|
};
|
|
|
|
enum migration_type {
|
|
migrate_load = 0,
|
|
migrate_util = 1,
|
|
migrate_task = 2,
|
|
migrate_misfit = 3,
|
|
};
|
|
|
|
enum group_type {
|
|
group_has_spare = 0,
|
|
group_fully_busy = 1,
|
|
group_misfit_task = 2,
|
|
group_asym_packing = 3,
|
|
group_imbalanced = 4,
|
|
group_overloaded = 5,
|
|
};
|
|
|
|
enum cpu_util_type {
|
|
FREQUENCY_UTIL = 0,
|
|
ENERGY_UTIL = 1,
|
|
};
|
|
|
|
struct sched_entity_stats {
|
|
struct sched_entity se;
|
|
struct sched_statistics stats;
|
|
};
|
|
|
|
struct lb_env {
|
|
struct sched_domain *sd;
|
|
struct rq *src_rq;
|
|
int src_cpu;
|
|
int dst_cpu;
|
|
struct rq *dst_rq;
|
|
struct cpumask *dst_grpmask;
|
|
int new_dst_cpu;
|
|
enum cpu_idle_type idle;
|
|
long imbalance;
|
|
struct cpumask *cpus;
|
|
unsigned int flags;
|
|
unsigned int loop;
|
|
unsigned int loop_break;
|
|
unsigned int loop_max;
|
|
enum fbq_type fbq_type;
|
|
enum migration_type migration_type;
|
|
struct list_head tasks;
|
|
};
|
|
|
|
struct sg_lb_stats {
|
|
unsigned long avg_load;
|
|
unsigned long group_load;
|
|
unsigned long group_capacity;
|
|
unsigned long group_util;
|
|
unsigned long group_runnable;
|
|
unsigned int sum_nr_running;
|
|
unsigned int sum_h_nr_running;
|
|
unsigned int idle_cpus;
|
|
unsigned int group_weight;
|
|
enum group_type group_type;
|
|
unsigned int group_asym_packing;
|
|
unsigned long group_misfit_task_load;
|
|
};
|
|
|
|
struct sd_lb_stats {
|
|
struct sched_group *busiest;
|
|
struct sched_group *local;
|
|
unsigned long total_load;
|
|
unsigned long total_capacity;
|
|
unsigned long avg_load;
|
|
unsigned int prefer_sibling;
|
|
struct sg_lb_stats busiest_stat;
|
|
struct sg_lb_stats local_stat;
|
|
};
|
|
|
|
struct module_sect_attr {
|
|
struct bin_attribute battr;
|
|
unsigned long address;
|
|
};
|
|
|
|
struct module_sect_attrs {
|
|
struct attribute_group grp;
|
|
unsigned int nsections;
|
|
struct module_sect_attr attrs[0];
|
|
};
|
|
|
|
struct module_notes_attrs {
|
|
struct kobject *dir;
|
|
unsigned int notes;
|
|
struct bin_attribute attrs[0];
|
|
};
|
|
|
|
enum tick_dep_bits {
|
|
TICK_DEP_BIT_POSIX_TIMER = 0,
|
|
TICK_DEP_BIT_PERF_EVENTS = 1,
|
|
TICK_DEP_BIT_SCHED = 2,
|
|
TICK_DEP_BIT_CLOCK_UNSTABLE = 3,
|
|
TICK_DEP_BIT_RCU = 4,
|
|
TICK_DEP_BIT_RCU_EXP = 5,
|
|
};
|
|
|
|
struct compat_kexec_segment {
|
|
compat_uptr_t buf;
|
|
compat_size_t bufsz;
|
|
compat_ulong_t mem;
|
|
compat_size_t memsz;
|
|
};
|
|
|
|
typedef void (*btf_trace_bpf_trace_printk)(void *, const char *);
|
|
|
|
struct bpf_nested_pt_regs {
|
|
struct pt_regs regs[3];
|
|
};
|
|
|
|
struct bpf_trace_sample_data {
|
|
struct perf_sample_data sds[3];
|
|
};
|
|
|
|
struct send_signal_irq_work {
|
|
struct irq_work irq_work;
|
|
struct task_struct *task;
|
|
u32 sig;
|
|
enum pid_type type;
|
|
};
|
|
|
|
struct bpf_raw_tp_regs {
|
|
struct pt_regs regs[3];
|
|
};
|
|
|
|
enum {
|
|
BTF_F_COMPACT = 1,
|
|
BTF_F_NONAME = 2,
|
|
BTF_F_PTR_RAW = 4,
|
|
BTF_F_ZERO = 8,
|
|
};
|
|
|
|
enum {
|
|
BPF_F_GET_BRANCH_RECORDS_SIZE = 1,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *);
|
|
|
|
typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *);
|
|
|
|
typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *);
|
|
|
|
typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *);
|
|
|
|
typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *);
|
|
|
|
typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *);
|
|
|
|
typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64);
|
|
|
|
typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32);
|
|
|
|
typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32);
|
|
|
|
struct btf_ptr;
|
|
|
|
typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64);
|
|
|
|
struct btf_ptr {
|
|
void *ptr;
|
|
__u32 type_id;
|
|
__u32 flags;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64);
|
|
|
|
struct bpf_perf_event_value;
|
|
|
|
typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32);
|
|
|
|
struct bpf_perf_event_value {
|
|
__u64 counter;
|
|
__u64 enabled;
|
|
__u64 running;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_current_task)();
|
|
|
|
typedef u64 (*btf_bpf_get_current_task_btf)();
|
|
|
|
typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *);
|
|
|
|
typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32);
|
|
|
|
typedef u64 (*btf_bpf_send_signal)(u32);
|
|
|
|
typedef u64 (*btf_bpf_send_signal_thread)(u32);
|
|
|
|
typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32);
|
|
|
|
typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_func_ip_tracing)(void *);
|
|
|
|
typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *);
|
|
|
|
typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *);
|
|
|
|
typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *);
|
|
|
|
typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *);
|
|
|
|
typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *);
|
|
|
|
typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *);
|
|
|
|
typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64);
|
|
|
|
typedef u64 (*btf_get_func_arg)(void *, u32, u64 *);
|
|
|
|
typedef u64 (*btf_get_func_ret)(void *, u64 *);
|
|
|
|
typedef u64 (*btf_get_func_arg_cnt)(void *);
|
|
|
|
typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32);
|
|
|
|
typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64);
|
|
|
|
struct bpf_raw_tracepoint_args;
|
|
|
|
typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64);
|
|
|
|
struct bpf_raw_tracepoint_args {
|
|
__u64 args[0];
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64);
|
|
|
|
struct trace_event_raw_bpf_trace_printk {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_bpf_string;
|
|
char __data[0];
|
|
};
|
|
|
|
struct bpf_kprobe_multi_link;
|
|
|
|
struct bpf_kprobe_multi_run_ctx {
|
|
struct bpf_run_ctx run_ctx;
|
|
struct bpf_kprobe_multi_link *link;
|
|
unsigned long entry_ip;
|
|
};
|
|
|
|
struct bpf_kprobe_multi_link {
|
|
struct bpf_link link;
|
|
struct fprobe fp;
|
|
unsigned long *addrs;
|
|
u64 *cookies;
|
|
u32 cnt;
|
|
u32 mods_cnt;
|
|
struct module **mods;
|
|
};
|
|
|
|
struct bpf_trace_module {
|
|
struct module *module;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct trace_event_data_offsets_bpf_trace_printk {
|
|
u32 bpf_string;
|
|
};
|
|
|
|
struct user_syms {
|
|
const char **syms;
|
|
char *buf;
|
|
};
|
|
|
|
struct modules_array {
|
|
struct module **mods;
|
|
int mods_cnt;
|
|
int mods_cap;
|
|
};
|
|
|
|
struct bpf_key {
|
|
struct key *key;
|
|
bool has_ref;
|
|
};
|
|
|
|
struct perf_event_query_bpf {
|
|
__u32 ids_len;
|
|
__u32 prog_cnt;
|
|
__u32 ids[0];
|
|
};
|
|
|
|
struct multi_symbols_sort {
|
|
const char **funcs;
|
|
u64 *cookies;
|
|
};
|
|
|
|
struct compat_elf_siginfo {
|
|
compat_int_t si_signo;
|
|
compat_int_t si_code;
|
|
compat_int_t si_errno;
|
|
};
|
|
|
|
struct compat_elf_prstatus_common {
|
|
struct compat_elf_siginfo pr_info;
|
|
short pr_cursig;
|
|
compat_ulong_t pr_sigpend;
|
|
compat_ulong_t pr_sighold;
|
|
compat_pid_t pr_pid;
|
|
compat_pid_t pr_ppid;
|
|
compat_pid_t pr_pgrp;
|
|
compat_pid_t pr_sid;
|
|
struct old_timeval32 pr_utime;
|
|
struct old_timeval32 pr_stime;
|
|
struct old_timeval32 pr_cutime;
|
|
struct old_timeval32 pr_cstime;
|
|
};
|
|
|
|
struct user_regs_struct32 {
|
|
__u32 ebx;
|
|
__u32 ecx;
|
|
__u32 edx;
|
|
__u32 esi;
|
|
__u32 edi;
|
|
__u32 ebp;
|
|
__u32 eax;
|
|
unsigned short ds;
|
|
unsigned short __ds;
|
|
unsigned short es;
|
|
unsigned short __es;
|
|
unsigned short fs;
|
|
unsigned short __fs;
|
|
unsigned short gs;
|
|
unsigned short __gs;
|
|
__u32 orig_eax;
|
|
__u32 eip;
|
|
unsigned short cs;
|
|
unsigned short __cs;
|
|
__u32 eflags;
|
|
__u32 esp;
|
|
unsigned short ss;
|
|
unsigned short __ss;
|
|
};
|
|
|
|
struct i386_elf_prstatus {
|
|
struct compat_elf_prstatus_common common;
|
|
struct user_regs_struct32 pr_reg;
|
|
compat_int_t pr_fpvalid;
|
|
};
|
|
|
|
struct memelfnote {
|
|
const char *name;
|
|
int type;
|
|
unsigned int datasz;
|
|
void *data;
|
|
};
|
|
|
|
struct elf_thread_core_info;
|
|
|
|
struct elf_note_info {
|
|
struct elf_thread_core_info *thread;
|
|
struct memelfnote psinfo;
|
|
struct memelfnote signote;
|
|
struct memelfnote auxv;
|
|
struct memelfnote files;
|
|
compat_siginfo_t csigdata;
|
|
size_t size;
|
|
int thread_notes;
|
|
};
|
|
|
|
struct user_regs_struct {
|
|
unsigned long r15;
|
|
unsigned long r14;
|
|
unsigned long r13;
|
|
unsigned long r12;
|
|
unsigned long bp;
|
|
unsigned long bx;
|
|
unsigned long r11;
|
|
unsigned long r10;
|
|
unsigned long r9;
|
|
unsigned long r8;
|
|
unsigned long ax;
|
|
unsigned long cx;
|
|
unsigned long dx;
|
|
unsigned long si;
|
|
unsigned long di;
|
|
unsigned long orig_ax;
|
|
unsigned long ip;
|
|
unsigned long cs;
|
|
unsigned long flags;
|
|
unsigned long sp;
|
|
unsigned long ss;
|
|
unsigned long fs_base;
|
|
unsigned long gs_base;
|
|
unsigned long ds;
|
|
unsigned long es;
|
|
unsigned long fs;
|
|
unsigned long gs;
|
|
};
|
|
|
|
typedef struct user_regs_struct compat_elf_gregset_t;
|
|
|
|
struct compat_elf_prstatus {
|
|
struct compat_elf_prstatus_common common;
|
|
compat_elf_gregset_t pr_reg;
|
|
compat_int_t pr_fpvalid;
|
|
};
|
|
|
|
struct elf_thread_core_info {
|
|
struct elf_thread_core_info *next;
|
|
struct task_struct *task;
|
|
struct compat_elf_prstatus prstatus;
|
|
struct memelfnote notes[0];
|
|
};
|
|
|
|
struct compat_elf_prpsinfo {
|
|
char pr_state;
|
|
char pr_sname;
|
|
char pr_zomb;
|
|
char pr_nice;
|
|
compat_ulong_t pr_flag;
|
|
__compat_uid_t pr_uid;
|
|
__compat_gid_t pr_gid;
|
|
compat_pid_t pr_pid;
|
|
compat_pid_t pr_ppid;
|
|
compat_pid_t pr_pgrp;
|
|
compat_pid_t pr_sid;
|
|
char pr_fname[16];
|
|
char pr_psargs[80];
|
|
};
|
|
|
|
struct elf32_shdr {
|
|
Elf32_Word sh_name;
|
|
Elf32_Word sh_type;
|
|
Elf32_Word sh_flags;
|
|
Elf32_Addr sh_addr;
|
|
Elf32_Off sh_offset;
|
|
Elf32_Word sh_size;
|
|
Elf32_Word sh_link;
|
|
Elf32_Word sh_info;
|
|
Elf32_Word sh_addralign;
|
|
Elf32_Word sh_entsize;
|
|
};
|
|
|
|
struct arch_elf_state {};
|
|
|
|
enum netfs_read_trace {
|
|
netfs_read_trace_expanded = 0,
|
|
netfs_read_trace_readahead = 1,
|
|
netfs_read_trace_readpage = 2,
|
|
netfs_read_trace_write_begin = 3,
|
|
};
|
|
|
|
typedef void (*btf_trace_netfs_read)(void *, struct netfs_io_request *, loff_t, size_t, enum netfs_read_trace);
|
|
|
|
typedef void (*btf_trace_netfs_rreq)(void *, struct netfs_io_request *, enum netfs_rreq_trace);
|
|
|
|
typedef void (*btf_trace_netfs_sreq)(void *, struct netfs_io_subrequest *, enum netfs_sreq_trace);
|
|
|
|
typedef void (*btf_trace_netfs_failure)(void *, struct netfs_io_request *, struct netfs_io_subrequest *, int, enum netfs_failure);
|
|
|
|
typedef void (*btf_trace_netfs_rreq_ref)(void *, unsigned int, int, enum netfs_rreq_ref_trace);
|
|
|
|
typedef void (*btf_trace_netfs_sreq_ref)(void *, unsigned int, unsigned int, int, enum netfs_sreq_ref_trace);
|
|
|
|
struct trace_event_raw_netfs_read {
|
|
struct trace_entry ent;
|
|
unsigned int rreq;
|
|
unsigned int cookie;
|
|
loff_t start;
|
|
size_t len;
|
|
enum netfs_read_trace what;
|
|
unsigned int netfs_inode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netfs_rreq {
|
|
struct trace_entry ent;
|
|
unsigned int rreq;
|
|
unsigned int flags;
|
|
enum netfs_io_origin origin;
|
|
enum netfs_rreq_trace what;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netfs_sreq {
|
|
struct trace_entry ent;
|
|
unsigned int rreq;
|
|
unsigned short index;
|
|
short error;
|
|
unsigned short flags;
|
|
enum netfs_io_source source;
|
|
enum netfs_sreq_trace what;
|
|
size_t len;
|
|
size_t transferred;
|
|
loff_t start;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netfs_failure {
|
|
struct trace_entry ent;
|
|
unsigned int rreq;
|
|
short index;
|
|
short error;
|
|
unsigned short flags;
|
|
enum netfs_io_source source;
|
|
enum netfs_failure what;
|
|
size_t len;
|
|
size_t transferred;
|
|
loff_t start;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netfs_rreq_ref {
|
|
struct trace_entry ent;
|
|
unsigned int rreq;
|
|
int ref;
|
|
enum netfs_rreq_ref_trace what;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netfs_sreq_ref {
|
|
struct trace_entry ent;
|
|
unsigned int rreq;
|
|
unsigned int subreq;
|
|
int ref;
|
|
enum netfs_sreq_ref_trace what;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_netfs_read {};
|
|
|
|
struct trace_event_data_offsets_netfs_rreq {};
|
|
|
|
struct trace_event_data_offsets_netfs_sreq {};
|
|
|
|
struct trace_event_data_offsets_netfs_failure {};
|
|
|
|
struct trace_event_data_offsets_netfs_rreq_ref {};
|
|
|
|
struct trace_event_data_offsets_netfs_sreq_ref {};
|
|
|
|
struct fat_fid {
|
|
u32 i_gen;
|
|
u32 i_pos_low;
|
|
u16 i_pos_hi;
|
|
u16 parent_i_pos_hi;
|
|
u32 parent_i_pos_low;
|
|
u32 parent_i_gen;
|
|
};
|
|
|
|
enum nfs_param {
|
|
Opt_ac = 0,
|
|
Opt_acdirmax = 1,
|
|
Opt_acdirmin = 2,
|
|
Opt_acl___2 = 3,
|
|
Opt_acregmax = 4,
|
|
Opt_acregmin = 5,
|
|
Opt_actimeo = 6,
|
|
Opt_addr = 7,
|
|
Opt_bg = 8,
|
|
Opt_bsize = 9,
|
|
Opt_clientaddr = 10,
|
|
Opt_cto = 11,
|
|
Opt_fg = 12,
|
|
Opt_fscache = 13,
|
|
Opt_fscache_flag = 14,
|
|
Opt_hard = 15,
|
|
Opt_intr = 16,
|
|
Opt_local_lock = 17,
|
|
Opt_lock = 18,
|
|
Opt_lookupcache = 19,
|
|
Opt_migration = 20,
|
|
Opt_minorversion = 21,
|
|
Opt_mountaddr = 22,
|
|
Opt_mounthost = 23,
|
|
Opt_mountport = 24,
|
|
Opt_mountproto = 25,
|
|
Opt_mountvers = 26,
|
|
Opt_namelen = 27,
|
|
Opt_nconnect = 28,
|
|
Opt_max_connect = 29,
|
|
Opt_port___2 = 30,
|
|
Opt_posix = 31,
|
|
Opt_proto = 32,
|
|
Opt_rdirplus = 33,
|
|
Opt_rdma = 34,
|
|
Opt_resvport = 35,
|
|
Opt_retrans = 36,
|
|
Opt_retry = 37,
|
|
Opt_rsize = 38,
|
|
Opt_sec = 39,
|
|
Opt_sharecache = 40,
|
|
Opt_sloppy = 41,
|
|
Opt_soft = 42,
|
|
Opt_softerr = 43,
|
|
Opt_softreval = 44,
|
|
Opt_source = 45,
|
|
Opt_tcp = 46,
|
|
Opt_timeo = 47,
|
|
Opt_trunkdiscovery = 48,
|
|
Opt_udp = 49,
|
|
Opt_v = 50,
|
|
Opt_vers = 51,
|
|
Opt_wsize = 52,
|
|
Opt_write = 53,
|
|
};
|
|
|
|
enum {
|
|
Opt_xprt_rdma = 0,
|
|
Opt_xprt_rdma6 = 1,
|
|
Opt_xprt_tcp = 2,
|
|
Opt_xprt_tcp6 = 3,
|
|
Opt_xprt_udp = 4,
|
|
Opt_xprt_udp6 = 5,
|
|
nr__Opt_xprt = 6,
|
|
};
|
|
|
|
enum {
|
|
Opt_lookupcache_all = 0,
|
|
Opt_lookupcache_none = 1,
|
|
Opt_lookupcache_positive = 2,
|
|
};
|
|
|
|
enum {
|
|
Opt_local_lock_all = 0,
|
|
Opt_local_lock_flock = 1,
|
|
Opt_local_lock_none = 2,
|
|
Opt_local_lock_posix = 3,
|
|
};
|
|
|
|
enum {
|
|
Opt_write_lazy = 0,
|
|
Opt_write_eager = 1,
|
|
Opt_write_wait = 2,
|
|
};
|
|
|
|
enum {
|
|
Opt_vers_2 = 0,
|
|
Opt_vers_3 = 1,
|
|
Opt_vers_4 = 2,
|
|
Opt_vers_4_0 = 3,
|
|
Opt_vers_4_1 = 4,
|
|
Opt_vers_4_2 = 5,
|
|
};
|
|
|
|
enum {
|
|
Opt_sec_krb5 = 0,
|
|
Opt_sec_krb5i = 1,
|
|
Opt_sec_krb5p = 2,
|
|
Opt_sec_lkey = 3,
|
|
Opt_sec_lkeyi = 4,
|
|
Opt_sec_lkeyp = 5,
|
|
Opt_sec_none = 6,
|
|
Opt_sec_spkm = 7,
|
|
Opt_sec_spkmi = 8,
|
|
Opt_sec_spkmp = 9,
|
|
Opt_sec_sys = 10,
|
|
nr__Opt_sec = 11,
|
|
};
|
|
|
|
struct compat_nfs_string {
|
|
compat_uint_t len;
|
|
compat_uptr_t data;
|
|
};
|
|
|
|
struct compat_nfs4_mount_data_v1 {
|
|
compat_int_t version;
|
|
compat_int_t flags;
|
|
compat_int_t rsize;
|
|
compat_int_t wsize;
|
|
compat_int_t timeo;
|
|
compat_int_t retrans;
|
|
compat_int_t acregmin;
|
|
compat_int_t acregmax;
|
|
compat_int_t acdirmin;
|
|
compat_int_t acdirmax;
|
|
struct compat_nfs_string client_addr;
|
|
struct compat_nfs_string mnt_path;
|
|
struct compat_nfs_string hostname;
|
|
compat_uint_t host_addrlen;
|
|
compat_uptr_t host_addr;
|
|
compat_int_t proto;
|
|
compat_int_t auth_flavourlen;
|
|
compat_uptr_t auth_flavours;
|
|
};
|
|
|
|
struct nfs2_fh {
|
|
char data[32];
|
|
};
|
|
|
|
struct nfs3_fh {
|
|
unsigned short size;
|
|
unsigned char data[64];
|
|
};
|
|
|
|
struct nfs_mount_data {
|
|
int version;
|
|
int fd;
|
|
struct nfs2_fh old_root;
|
|
int flags;
|
|
int rsize;
|
|
int wsize;
|
|
int timeo;
|
|
int retrans;
|
|
int acregmin;
|
|
int acregmax;
|
|
int acdirmin;
|
|
int acdirmax;
|
|
struct sockaddr_in addr;
|
|
char hostname[256];
|
|
int namlen;
|
|
unsigned int bsize;
|
|
struct nfs3_fh root;
|
|
int pseudoflavor;
|
|
char context[257];
|
|
};
|
|
|
|
struct nfs_string {
|
|
unsigned int len;
|
|
const char __attribute__((btf_type_tag("user"))) *data;
|
|
};
|
|
|
|
struct nfs4_mount_data {
|
|
int version;
|
|
int flags;
|
|
int rsize;
|
|
int wsize;
|
|
int timeo;
|
|
int retrans;
|
|
int acregmin;
|
|
int acregmax;
|
|
int acdirmin;
|
|
int acdirmax;
|
|
struct nfs_string client_addr;
|
|
struct nfs_string mnt_path;
|
|
struct nfs_string hostname;
|
|
unsigned int host_addrlen;
|
|
struct sockaddr __attribute__((btf_type_tag("user"))) *host_addr;
|
|
int proto;
|
|
int auth_flavourlen;
|
|
int __attribute__((btf_type_tag("user"))) *auth_flavours;
|
|
};
|
|
|
|
enum devcg_behavior {
|
|
DEVCG_DEFAULT_NONE = 0,
|
|
DEVCG_DEFAULT_ALLOW = 1,
|
|
DEVCG_DEFAULT_DENY = 2,
|
|
};
|
|
|
|
struct dev_cgroup {
|
|
struct cgroup_subsys_state css;
|
|
struct list_head exceptions;
|
|
enum devcg_behavior behavior;
|
|
};
|
|
|
|
struct dev_exception_item {
|
|
u32 major;
|
|
u32 minor;
|
|
short type;
|
|
short access;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct rand_data;
|
|
|
|
struct jitterentropy {
|
|
spinlock_t jent_lock;
|
|
struct rand_data *entropy_collector;
|
|
unsigned int reset_cnt;
|
|
};
|
|
|
|
enum asn1_class {
|
|
ASN1_UNIV = 0,
|
|
ASN1_APPL = 1,
|
|
ASN1_CONT = 2,
|
|
ASN1_PRIV = 3,
|
|
};
|
|
|
|
struct pkcs7_parse_context {
|
|
struct pkcs7_message *msg;
|
|
struct pkcs7_signed_info *sinfo;
|
|
struct pkcs7_signed_info **ppsinfo;
|
|
struct x509_certificate *certs;
|
|
struct x509_certificate **ppcerts;
|
|
unsigned long data;
|
|
enum OID last_oid;
|
|
unsigned int x509_index;
|
|
unsigned int sinfo_index;
|
|
const void *raw_serial;
|
|
unsigned int raw_serial_size;
|
|
unsigned int raw_issuer_size;
|
|
const void *raw_issuer;
|
|
const void *raw_skid;
|
|
unsigned int raw_skid_size;
|
|
bool expect_skid;
|
|
};
|
|
|
|
struct sg_io_v4;
|
|
|
|
typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, fmode_t, unsigned int);
|
|
|
|
struct bsg_device {
|
|
struct request_queue *queue;
|
|
struct device device;
|
|
struct cdev cdev;
|
|
int max_queue;
|
|
unsigned int timeout;
|
|
unsigned int reserved_size;
|
|
bsg_sg_io_fn *sg_io_fn;
|
|
};
|
|
|
|
struct sg_io_v4 {
|
|
__s32 guard;
|
|
__u32 protocol;
|
|
__u32 subprotocol;
|
|
__u32 request_len;
|
|
__u64 request;
|
|
__u64 request_tag;
|
|
__u32 request_attr;
|
|
__u32 request_priority;
|
|
__u32 request_extra;
|
|
__u32 max_response_len;
|
|
__u64 response;
|
|
__u32 dout_iovec_count;
|
|
__u32 dout_xfer_len;
|
|
__u32 din_iovec_count;
|
|
__u32 din_xfer_len;
|
|
__u64 dout_xferp;
|
|
__u64 din_xferp;
|
|
__u32 timeout;
|
|
__u32 flags;
|
|
__u64 usr_ptr;
|
|
__u32 spare_in;
|
|
__u32 driver_status;
|
|
__u32 transport_status;
|
|
__u32 device_status;
|
|
__u32 retry_delay;
|
|
__u32 info;
|
|
__u32 duration;
|
|
__u32 response_len;
|
|
__s32 din_resid;
|
|
__s32 dout_resid;
|
|
__u64 generated_tag;
|
|
__u32 spare_out;
|
|
__u32 padding;
|
|
};
|
|
|
|
struct crypto_aes_ctx {
|
|
u32 key_enc[60];
|
|
u32 key_dec[60];
|
|
u32 key_length;
|
|
};
|
|
|
|
enum devm_ioremap_type {
|
|
DEVM_IOREMAP = 0,
|
|
DEVM_IOREMAP_UC = 1,
|
|
DEVM_IOREMAP_WC = 2,
|
|
DEVM_IOREMAP_NP = 3,
|
|
};
|
|
|
|
struct pcim_iomap_devres {
|
|
void *table[6];
|
|
};
|
|
|
|
struct arch_io_reserve_memtype_wc_devres {
|
|
resource_size_t start;
|
|
resource_size_t size;
|
|
};
|
|
|
|
struct pci_cap_saved_data {
|
|
u16 cap_nr;
|
|
bool cap_extended;
|
|
unsigned int size;
|
|
u32 data[0];
|
|
};
|
|
|
|
struct pci_cap_saved_state {
|
|
struct hlist_node next;
|
|
struct pci_cap_saved_data cap;
|
|
};
|
|
|
|
struct vgastate {
|
|
void *vgabase;
|
|
unsigned long membase;
|
|
__u32 memsize;
|
|
__u32 flags;
|
|
__u32 depth;
|
|
__u32 num_attr;
|
|
__u32 num_crtc;
|
|
__u32 num_gfx;
|
|
__u32 num_seq;
|
|
void *vidstate;
|
|
};
|
|
|
|
struct virtio_pci_modern_common_cfg {
|
|
struct virtio_pci_common_cfg cfg;
|
|
__le16 queue_notify_data;
|
|
__le16 queue_reset;
|
|
};
|
|
|
|
struct vc_selection {
|
|
struct mutex lock;
|
|
struct vc_data *cons;
|
|
char *buffer;
|
|
unsigned int buf_len;
|
|
volatile int start;
|
|
int end;
|
|
};
|
|
|
|
struct tiocl_selection {
|
|
unsigned short xs;
|
|
unsigned short ys;
|
|
unsigned short xe;
|
|
unsigned short ye;
|
|
unsigned short sel_mode;
|
|
};
|
|
|
|
struct agp_3_5_dev {
|
|
struct list_head list;
|
|
u8 capndx;
|
|
u32 maxbw;
|
|
struct pci_dev *dev;
|
|
};
|
|
|
|
struct isoch_data {
|
|
u32 maxbw;
|
|
u32 n;
|
|
u32 y;
|
|
u32 l;
|
|
u32 rq;
|
|
struct agp_3_5_dev *dev;
|
|
};
|
|
|
|
enum iommu_init_state {
|
|
IOMMU_START_STATE = 0,
|
|
IOMMU_IVRS_DETECTED = 1,
|
|
IOMMU_ACPI_FINISHED = 2,
|
|
IOMMU_ENABLED = 3,
|
|
IOMMU_PCI_INIT = 4,
|
|
IOMMU_INTERRUPTS_EN = 5,
|
|
IOMMU_INITIALIZED = 6,
|
|
IOMMU_NOT_FOUND = 7,
|
|
IOMMU_INIT_ERROR = 8,
|
|
IOMMU_CMDLINE_DISABLED = 9,
|
|
};
|
|
|
|
struct devid_map {
|
|
struct list_head list;
|
|
u8 id;
|
|
u32 devid;
|
|
bool cmd_line;
|
|
};
|
|
|
|
enum amd_iommu_intr_mode_type {
|
|
AMD_IOMMU_GUEST_IR_LEGACY = 0,
|
|
AMD_IOMMU_GUEST_IR_LEGACY_GA = 1,
|
|
AMD_IOMMU_GUEST_IR_VAPIC = 2,
|
|
};
|
|
|
|
enum {
|
|
IRQ_REMAP_XAPIC_MODE = 0,
|
|
IRQ_REMAP_X2APIC_MODE = 1,
|
|
};
|
|
|
|
struct ivhd_header {
|
|
u8 type;
|
|
u8 flags;
|
|
u16 length;
|
|
u16 devid;
|
|
u16 cap_ptr;
|
|
u64 mmio_phys;
|
|
u16 pci_seg;
|
|
u16 info;
|
|
u32 efr_attr;
|
|
u64 efr_reg;
|
|
u64 efr_reg2;
|
|
};
|
|
|
|
struct ivhd_entry {
|
|
u8 type;
|
|
u16 devid;
|
|
u8 flags;
|
|
union {
|
|
struct {
|
|
u32 ext;
|
|
u32 hidh;
|
|
};
|
|
struct {
|
|
u32 ext;
|
|
u32 hidh;
|
|
} ext_hid;
|
|
};
|
|
u64 cid;
|
|
u8 uidf;
|
|
u8 uidl;
|
|
u8 uid;
|
|
} __attribute__((packed));
|
|
|
|
struct ivmd_header {
|
|
u8 type;
|
|
u8 flags;
|
|
u16 length;
|
|
u16 devid;
|
|
u16 aux;
|
|
u16 pci_seg;
|
|
u8 resv[6];
|
|
u64 range_start;
|
|
u64 range_length;
|
|
};
|
|
|
|
union intcapxt {
|
|
u64 capxt;
|
|
struct {
|
|
u64 reserved_0: 2;
|
|
u64 dest_mode_logical: 1;
|
|
u64 reserved_1: 5;
|
|
u64 destid_0_23: 24;
|
|
u64 vector: 8;
|
|
u64 reserved_2: 16;
|
|
u64 destid_24_31: 8;
|
|
};
|
|
};
|
|
|
|
struct analog_param_range {
|
|
unsigned int min;
|
|
unsigned int typ;
|
|
unsigned int max;
|
|
};
|
|
|
|
struct analog_param_field {
|
|
unsigned int even;
|
|
unsigned int odd;
|
|
};
|
|
|
|
struct analog_parameters {
|
|
unsigned int num_lines;
|
|
unsigned int line_duration_ns;
|
|
struct analog_param_range hact_ns;
|
|
struct analog_param_range hfp_ns;
|
|
struct analog_param_range hslen_ns;
|
|
struct analog_param_range hbp_ns;
|
|
struct analog_param_range hblk_ns;
|
|
unsigned int bt601_hfp;
|
|
struct analog_param_field vfp_lines;
|
|
struct analog_param_field vslen_lines;
|
|
struct analog_param_field vbp_lines;
|
|
};
|
|
|
|
struct drm_named_mode {
|
|
const char *name;
|
|
unsigned int pixel_clock_khz;
|
|
unsigned int xres;
|
|
unsigned int yres;
|
|
unsigned int flags;
|
|
unsigned int tv_mode;
|
|
};
|
|
|
|
enum drm_mode_analog {
|
|
DRM_MODE_ANALOG_NTSC = 0,
|
|
DRM_MODE_ANALOG_PAL = 1,
|
|
};
|
|
|
|
typedef void (*drmres_release_t___3)(struct drm_device___3 *, void *);
|
|
|
|
struct remap_pfn {
|
|
struct mm_struct *mm;
|
|
unsigned long pfn;
|
|
pgprot_t prot;
|
|
struct sgt_iter sgt;
|
|
resource_size_t iobase;
|
|
};
|
|
|
|
enum {
|
|
INTEL_CONTEXT_SCHEDULE_IN = 0,
|
|
INTEL_CONTEXT_SCHEDULE_OUT = 1,
|
|
INTEL_CONTEXT_SCHEDULE_PREEMPTED = 2,
|
|
};
|
|
|
|
struct ve_node {
|
|
struct rb_node rb;
|
|
int prio;
|
|
};
|
|
|
|
struct virtual_engine {
|
|
struct intel_engine_cs base;
|
|
struct intel_context context;
|
|
struct rcu_work rcu;
|
|
struct i915_request *request;
|
|
struct ve_node nodes[27];
|
|
unsigned int num_siblings;
|
|
struct intel_engine_cs *siblings[0];
|
|
};
|
|
|
|
struct execlists_capture {
|
|
struct work_struct work;
|
|
struct i915_request *rq;
|
|
struct i915_gpu_coredump *error;
|
|
};
|
|
|
|
struct intel_engine_capture_vma;
|
|
|
|
struct i915_vma_compress;
|
|
|
|
enum intel_guc_recv_message {
|
|
INTEL_GUC_RECV_MSG_CRASH_DUMP_POSTED = 2,
|
|
INTEL_GUC_RECV_MSG_EXCEPTION = 1073741824,
|
|
};
|
|
|
|
enum {
|
|
GUC_LOG_SECTIONS_CRASH = 0,
|
|
GUC_LOG_SECTIONS_DEBUG = 1,
|
|
GUC_LOG_SECTIONS_CAPTURE = 2,
|
|
GUC_LOG_SECTIONS_LIMIT = 3,
|
|
};
|
|
|
|
struct opregion_header {
|
|
u8 signature[16];
|
|
u32 size;
|
|
struct {
|
|
u8 rsvd;
|
|
u8 revision;
|
|
u8 minor;
|
|
u8 major;
|
|
} over;
|
|
u8 bios_ver[32];
|
|
u8 vbios_ver[16];
|
|
u8 driver_ver[16];
|
|
u32 mboxes;
|
|
u32 driver_model;
|
|
u32 pcon;
|
|
u8 dver[32];
|
|
u8 rsvd[124];
|
|
};
|
|
|
|
struct opregion_acpi {
|
|
u32 drdy;
|
|
u32 csts;
|
|
u32 cevt;
|
|
u8 rsvd1[20];
|
|
u32 didl[8];
|
|
u32 cpdl[8];
|
|
u32 cadl[8];
|
|
u32 nadl[8];
|
|
u32 aslp;
|
|
u32 tidx;
|
|
u32 chpd;
|
|
u32 clid;
|
|
u32 cdck;
|
|
u32 sxsw;
|
|
u32 evts;
|
|
u32 cnot;
|
|
u32 nrdy;
|
|
u32 did2[7];
|
|
u32 cpd2[7];
|
|
u8 rsvd2[4];
|
|
};
|
|
|
|
struct opregion_swsci {
|
|
u32 scic;
|
|
u32 parm;
|
|
u32 dslp;
|
|
u8 rsvd[244];
|
|
};
|
|
|
|
struct opregion_asle {
|
|
u32 ardy;
|
|
u32 aslc;
|
|
u32 tche;
|
|
u32 alsi;
|
|
u32 bclp;
|
|
u32 pfit;
|
|
u32 cblv;
|
|
u16 bclm[20];
|
|
u32 cpfm;
|
|
u32 epfm;
|
|
u8 plut[74];
|
|
u32 pfmb;
|
|
u32 cddv;
|
|
u32 pcft;
|
|
u32 srot;
|
|
u32 iuer;
|
|
u64 fdss;
|
|
u32 fdsp;
|
|
u32 stat;
|
|
u64 rvda;
|
|
u32 rvds;
|
|
u8 rsvd[58];
|
|
} __attribute__((packed));
|
|
|
|
struct opregion_asle_ext {
|
|
u32 phed;
|
|
u8 bddc[256];
|
|
u8 rsvd[764];
|
|
};
|
|
|
|
struct video_levels;
|
|
|
|
struct color_conversion;
|
|
|
|
struct tv_mode {
|
|
const char *name;
|
|
u32 clock;
|
|
u16 refresh;
|
|
u8 oversample;
|
|
u8 hsync_end;
|
|
u16 hblank_start;
|
|
u16 hblank_end;
|
|
u16 htotal;
|
|
bool progressive: 1;
|
|
bool trilevel_sync: 1;
|
|
bool component_only: 1;
|
|
u8 vsync_start_f1;
|
|
u8 vsync_start_f2;
|
|
u8 vsync_len;
|
|
bool veq_ena: 1;
|
|
u8 veq_start_f1;
|
|
u8 veq_start_f2;
|
|
u8 veq_len;
|
|
u8 vi_end_f1;
|
|
u8 vi_end_f2;
|
|
u16 nbr_end;
|
|
bool burst_ena: 1;
|
|
u8 hburst_start;
|
|
u8 hburst_len;
|
|
u8 vburst_start_f1;
|
|
u16 vburst_end_f1;
|
|
u8 vburst_start_f2;
|
|
u16 vburst_end_f2;
|
|
u8 vburst_start_f3;
|
|
u16 vburst_end_f3;
|
|
u8 vburst_start_f4;
|
|
u16 vburst_end_f4;
|
|
u16 dda2_size;
|
|
u16 dda3_size;
|
|
u8 dda1_inc;
|
|
u16 dda2_inc;
|
|
u16 dda3_inc;
|
|
u32 sc_reset;
|
|
bool pal_burst: 1;
|
|
const struct video_levels *composite_levels;
|
|
const struct video_levels *svideo_levels;
|
|
const struct color_conversion *composite_color;
|
|
const struct color_conversion *svideo_color;
|
|
const u32 *filter_table;
|
|
};
|
|
|
|
struct video_levels {
|
|
u16 blank;
|
|
u16 black;
|
|
u8 burst;
|
|
};
|
|
|
|
struct color_conversion {
|
|
u16 ry;
|
|
u16 gy;
|
|
u16 by;
|
|
u16 ay;
|
|
u16 ru;
|
|
u16 gu;
|
|
u16 bu;
|
|
u16 au;
|
|
u16 rv;
|
|
u16 gv;
|
|
u16 bv;
|
|
u16 av;
|
|
};
|
|
|
|
struct input_res {
|
|
u16 w;
|
|
u16 h;
|
|
};
|
|
|
|
struct intel_tv_connector_state {
|
|
struct drm_connector_state base;
|
|
struct {
|
|
u16 top;
|
|
u16 bottom;
|
|
} margins;
|
|
bool bypass_vfilter;
|
|
};
|
|
|
|
struct intel_tv {
|
|
struct intel_encoder base;
|
|
int type;
|
|
};
|
|
|
|
struct auxiliary_device_id;
|
|
|
|
struct auxiliary_driver {
|
|
int (*probe)(struct auxiliary_device *, const struct auxiliary_device_id *);
|
|
void (*remove)(struct auxiliary_device *);
|
|
void (*shutdown)(struct auxiliary_device *);
|
|
int (*suspend)(struct auxiliary_device *, pm_message_t);
|
|
int (*resume)(struct auxiliary_device *);
|
|
const char *name;
|
|
struct device_driver driver;
|
|
const struct auxiliary_device_id *id_table;
|
|
};
|
|
|
|
struct auxiliary_device_id {
|
|
char name[32];
|
|
kernel_ulong_t driver_data;
|
|
};
|
|
|
|
struct ml_effect_state {
|
|
struct ff_effect *effect;
|
|
unsigned long flags;
|
|
int count;
|
|
unsigned long play_at;
|
|
unsigned long stop_at;
|
|
unsigned long adj_at;
|
|
};
|
|
|
|
struct ml_device {
|
|
void *private;
|
|
struct ml_effect_state states[16];
|
|
int gain;
|
|
struct timer_list timer;
|
|
struct input_dev *dev;
|
|
int (*play_effect)(struct input_dev *, void *, struct ff_effect *);
|
|
};
|
|
|
|
enum power_supply_notifier_events {
|
|
PSY_EVENT_PROP_CHANGED = 0,
|
|
};
|
|
|
|
struct power_supply_battery_ocv_table {
|
|
int ocv;
|
|
int capacity;
|
|
};
|
|
|
|
struct power_supply_maintenance_charge_table;
|
|
|
|
struct power_supply_resistance_temp_table;
|
|
|
|
struct power_supply_vbat_ri_table;
|
|
|
|
struct power_supply_battery_info {
|
|
unsigned int technology;
|
|
int energy_full_design_uwh;
|
|
int charge_full_design_uah;
|
|
int voltage_min_design_uv;
|
|
int voltage_max_design_uv;
|
|
int tricklecharge_current_ua;
|
|
int precharge_current_ua;
|
|
int precharge_voltage_max_uv;
|
|
int charge_term_current_ua;
|
|
int charge_restart_voltage_uv;
|
|
int overvoltage_limit_uv;
|
|
int constant_charge_current_max_ua;
|
|
int constant_charge_voltage_max_uv;
|
|
struct power_supply_maintenance_charge_table *maintenance_charge;
|
|
int maintenance_charge_size;
|
|
int alert_low_temp_charge_current_ua;
|
|
int alert_low_temp_charge_voltage_uv;
|
|
int alert_high_temp_charge_current_ua;
|
|
int alert_high_temp_charge_voltage_uv;
|
|
int factory_internal_resistance_uohm;
|
|
int factory_internal_resistance_charging_uohm;
|
|
int ocv_temp[20];
|
|
int temp_ambient_alert_min;
|
|
int temp_ambient_alert_max;
|
|
int temp_alert_min;
|
|
int temp_alert_max;
|
|
int temp_min;
|
|
int temp_max;
|
|
struct power_supply_battery_ocv_table *ocv_table[20];
|
|
int ocv_table_size[20];
|
|
struct power_supply_resistance_temp_table *resist_table;
|
|
int resist_table_size;
|
|
struct power_supply_vbat_ri_table *vbat2ri_discharging;
|
|
int vbat2ri_discharging_size;
|
|
struct power_supply_vbat_ri_table *vbat2ri_charging;
|
|
int vbat2ri_charging_size;
|
|
int bti_resistance_ohm;
|
|
int bti_resistance_tolerance;
|
|
};
|
|
|
|
struct power_supply_maintenance_charge_table {
|
|
int charge_current_max_ua;
|
|
int charge_voltage_max_uv;
|
|
int charge_safety_timer_minutes;
|
|
};
|
|
|
|
struct power_supply_resistance_temp_table {
|
|
int temp;
|
|
int resistance;
|
|
};
|
|
|
|
struct power_supply_vbat_ri_table {
|
|
int vbat_uv;
|
|
int ri_uohm;
|
|
};
|
|
|
|
struct psy_am_i_supplied_data {
|
|
struct power_supply *psy;
|
|
unsigned int count;
|
|
};
|
|
|
|
struct psy_get_supplier_prop_data {
|
|
struct power_supply *psy;
|
|
enum power_supply_property psp;
|
|
union power_supply_propval *val;
|
|
};
|
|
|
|
struct stripe {
|
|
struct dm_dev *dev;
|
|
sector_t physical_start;
|
|
atomic_t error_count;
|
|
};
|
|
|
|
struct stripe_c {
|
|
uint32_t stripes;
|
|
int stripes_shift;
|
|
sector_t stripe_width;
|
|
uint32_t chunk_size;
|
|
int chunk_size_shift;
|
|
struct dm_target *ti;
|
|
struct work_struct trigger_event;
|
|
struct stripe stripe[0];
|
|
};
|
|
|
|
struct sixaxis_rumble {
|
|
u8 padding;
|
|
u8 right_duration;
|
|
u8 right_motor_on;
|
|
u8 left_duration;
|
|
u8 left_motor_force;
|
|
};
|
|
|
|
struct sixaxis_led {
|
|
u8 time_enabled;
|
|
u8 duty_length;
|
|
u8 enabled;
|
|
u8 duty_off;
|
|
u8 duty_on;
|
|
};
|
|
|
|
struct sixaxis_output_report {
|
|
u8 report_id;
|
|
struct sixaxis_rumble rumble;
|
|
u8 padding[4];
|
|
u8 leds_bitmap;
|
|
struct sixaxis_led led[4];
|
|
struct sixaxis_led _reserved;
|
|
};
|
|
|
|
union sixaxis_output_report_01 {
|
|
struct sixaxis_output_report data;
|
|
u8 buf[36];
|
|
};
|
|
|
|
enum sony_worker {
|
|
SONY_WORKER_STATE = 0,
|
|
};
|
|
|
|
enum {
|
|
POWER_SUPPLY_SCOPE_UNKNOWN = 0,
|
|
POWER_SUPPLY_SCOPE_SYSTEM = 1,
|
|
POWER_SUPPLY_SCOPE_DEVICE = 2,
|
|
};
|
|
|
|
struct sony_sc {
|
|
spinlock_t lock;
|
|
struct list_head list_node;
|
|
struct hid_device *hdev;
|
|
struct input_dev *touchpad;
|
|
struct input_dev *sensor_dev;
|
|
struct led_classdev *leds[4];
|
|
unsigned long quirks;
|
|
struct work_struct state_worker;
|
|
void (*send_output_report)(struct sony_sc *);
|
|
struct power_supply *battery;
|
|
struct power_supply_desc battery_desc;
|
|
int device_id;
|
|
u8 *output_report_dmabuf;
|
|
u8 mac_address[6];
|
|
u8 state_worker_initialized;
|
|
u8 defer_initialization;
|
|
u8 battery_capacity;
|
|
int battery_status;
|
|
u8 led_state[4];
|
|
u8 led_delay_on[4];
|
|
u8 led_delay_off[4];
|
|
u8 led_count;
|
|
struct urb *ghl_urb;
|
|
struct timer_list ghl_poke_timer;
|
|
};
|
|
|
|
struct motion_output_report_02 {
|
|
u8 type;
|
|
u8 zero;
|
|
u8 r;
|
|
u8 g;
|
|
u8 b;
|
|
u8 zero2;
|
|
u8 rumble;
|
|
};
|
|
|
|
typedef void (*btf_trace_azx_suspend)(void *, struct azx *);
|
|
|
|
typedef void (*btf_trace_azx_resume)(void *, struct azx *);
|
|
|
|
typedef void (*btf_trace_azx_runtime_suspend)(void *, struct azx *);
|
|
|
|
typedef void (*btf_trace_azx_runtime_resume)(void *, struct azx *);
|
|
|
|
enum {
|
|
AZX_DRIVER_ICH = 0,
|
|
AZX_DRIVER_PCH = 1,
|
|
AZX_DRIVER_SCH = 2,
|
|
AZX_DRIVER_SKL = 3,
|
|
AZX_DRIVER_HDMI = 4,
|
|
AZX_DRIVER_ATI = 5,
|
|
AZX_DRIVER_ATIHDMI = 6,
|
|
AZX_DRIVER_ATIHDMI_NS = 7,
|
|
AZX_DRIVER_VIA = 8,
|
|
AZX_DRIVER_SIS = 9,
|
|
AZX_DRIVER_ULI = 10,
|
|
AZX_DRIVER_NVIDIA = 11,
|
|
AZX_DRIVER_TERA = 12,
|
|
AZX_DRIVER_CTX = 13,
|
|
AZX_DRIVER_CTHDA = 14,
|
|
AZX_DRIVER_CMEDIA = 15,
|
|
AZX_DRIVER_ZHAOXIN = 16,
|
|
AZX_DRIVER_GENERIC = 17,
|
|
AZX_NUM_DRIVERS = 18,
|
|
};
|
|
|
|
enum {
|
|
POS_FIX_AUTO = 0,
|
|
POS_FIX_LPIB = 1,
|
|
POS_FIX_POSBUF = 2,
|
|
POS_FIX_VIACOMBO = 3,
|
|
POS_FIX_COMBO = 4,
|
|
POS_FIX_SKL = 5,
|
|
POS_FIX_FIFO = 6,
|
|
};
|
|
|
|
enum {
|
|
AZX_SNOOP_TYPE_NONE = 0,
|
|
AZX_SNOOP_TYPE_SCH = 1,
|
|
AZX_SNOOP_TYPE_ATI = 2,
|
|
AZX_SNOOP_TYPE_NVIDIA = 3,
|
|
};
|
|
|
|
struct trace_event_raw_hda_pm {
|
|
struct trace_entry ent;
|
|
int dev_index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct hda_intel {
|
|
struct azx chip;
|
|
struct work_struct irq_pending_work;
|
|
struct completion probe_wait;
|
|
struct delayed_work probe_work;
|
|
struct list_head list;
|
|
unsigned int irq_pending_warned: 1;
|
|
unsigned int probe_continued: 1;
|
|
unsigned int use_vga_switcheroo: 1;
|
|
unsigned int vga_switcheroo_registered: 1;
|
|
unsigned int init_failed: 1;
|
|
unsigned int freed: 1;
|
|
bool need_i915_power: 1;
|
|
int probe_retry;
|
|
};
|
|
|
|
struct trace_event_data_offsets_hda_pm {};
|
|
|
|
struct psample_group {
|
|
struct list_head list;
|
|
struct net *net;
|
|
u32 group_num;
|
|
u32 refcount;
|
|
u32 seq;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct tcf_exts_miss_cookie_node {
|
|
const struct tcf_chain *chain;
|
|
const struct tcf_proto *tp;
|
|
const struct tcf_exts *exts;
|
|
u32 chain_index;
|
|
u32 tp_prio;
|
|
u32 handle;
|
|
u32 miss_cookie_base;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
enum qdisc_class_ops_flags {
|
|
QDISC_CLASS_OPS_DOIT_UNLOCKED = 1,
|
|
};
|
|
|
|
enum tcf_proto_ops_flags {
|
|
TCF_PROTO_OPS_DOIT_UNLOCKED = 1,
|
|
};
|
|
|
|
struct tcf_block_owner_item {
|
|
struct list_head list;
|
|
struct Qdisc *q;
|
|
enum flow_block_binder_type binder_type;
|
|
};
|
|
|
|
struct tcf_filter_chain_list_item {
|
|
struct list_head list;
|
|
tcf_chain_head_change_t *chain_head_change;
|
|
void *chain_head_change_priv;
|
|
};
|
|
|
|
struct tcf_net {
|
|
spinlock_t idr_lock;
|
|
struct idr idr;
|
|
};
|
|
|
|
struct action_gate_entry {
|
|
u8 gate_state;
|
|
u32 interval;
|
|
s32 ipv;
|
|
s32 maxoctets;
|
|
};
|
|
|
|
struct tcf_chain_info {
|
|
struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev;
|
|
struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next;
|
|
};
|
|
|
|
struct tcf_dump_args {
|
|
struct tcf_walker w;
|
|
struct sk_buff *skb;
|
|
struct netlink_callback *cb;
|
|
struct tcf_block *block;
|
|
struct Qdisc *q;
|
|
u32 parent;
|
|
bool terse_dump;
|
|
};
|
|
|
|
struct tcf_qevent {
|
|
struct tcf_block *block;
|
|
struct tcf_block_ext_info info;
|
|
struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain;
|
|
};
|
|
|
|
struct masq_dev_work {
|
|
struct work_struct work;
|
|
struct net *net;
|
|
netns_tracker ns_tracker;
|
|
union nf_inet_addr addr;
|
|
int ifindex;
|
|
int (*iter)(struct nf_conn *, void *);
|
|
};
|
|
|
|
enum {
|
|
IP6_FH_F_FRAG = 1,
|
|
IP6_FH_F_AUTH = 2,
|
|
IP6_FH_F_SKIP_RH = 4,
|
|
};
|
|
|
|
typedef void (*btf_trace_rdev_suspend)(void *, struct wiphy *, struct cfg80211_wowlan *);
|
|
|
|
typedef void (*btf_trace_rdev_return_int)(void *, struct wiphy *, int);
|
|
|
|
typedef void (*btf_trace_rdev_scan)(void *, struct wiphy *, struct cfg80211_scan_request *);
|
|
|
|
typedef void (*btf_trace_rdev_resume)(void *, struct wiphy *);
|
|
|
|
typedef void (*btf_trace_rdev_return_void)(void *, struct wiphy *);
|
|
|
|
typedef void (*btf_trace_rdev_get_antenna)(void *, struct wiphy *);
|
|
|
|
typedef void (*btf_trace_rdev_rfkill_poll)(void *, struct wiphy *);
|
|
|
|
typedef void (*btf_trace_rdev_set_wakeup)(void *, struct wiphy *, bool);
|
|
|
|
typedef void (*btf_trace_rdev_add_virtual_intf)(void *, struct wiphy *, char *, enum nl80211_iftype);
|
|
|
|
typedef void (*btf_trace_rdev_return_wdev)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_del_virtual_intf)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_change_virtual_intf)(void *, struct wiphy *, struct net_device *, enum nl80211_iftype);
|
|
|
|
typedef void (*btf_trace_rdev_get_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_del_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_add_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *, u8);
|
|
|
|
typedef void (*btf_trace_rdev_set_default_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, bool);
|
|
|
|
typedef void (*btf_trace_rdev_set_default_mgmt_key)(void *, struct wiphy *, struct net_device *, int, u8);
|
|
|
|
typedef void (*btf_trace_rdev_set_default_beacon_key)(void *, struct wiphy *, struct net_device *, int, u8);
|
|
|
|
typedef void (*btf_trace_rdev_start_ap)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_settings *);
|
|
|
|
typedef void (*btf_trace_rdev_change_beacon)(void *, struct wiphy *, struct net_device *, struct cfg80211_beacon_data *);
|
|
|
|
typedef void (*btf_trace_rdev_stop_ap)(void *, struct wiphy *, struct net_device *, unsigned int);
|
|
|
|
typedef void (*btf_trace_rdev_set_rekey_data)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_get_mesh_config)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_leave_mesh)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_leave_ibss)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_leave_ocb)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_flush_pmksa)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_end_cac)(void *, struct wiphy *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_rdev_add_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *);
|
|
|
|
typedef void (*btf_trace_rdev_change_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *);
|
|
|
|
typedef void (*btf_trace_rdev_del_station)(void *, struct wiphy *, struct net_device *, struct station_del_parameters *);
|
|
|
|
typedef void (*btf_trace_rdev_get_station)(void *, struct wiphy *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_del_mpath)(void *, struct wiphy *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_dump_station)(void *, struct wiphy *, struct net_device *, int, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_station_info)(void *, struct wiphy *, int, struct station_info *);
|
|
|
|
typedef void (*btf_trace_rdev_add_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_change_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_get_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_dump_mpath)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_get_mpp)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_dump_mpp)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_mpath_info)(void *, struct wiphy *, int, struct mpath_info *);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_mesh_config)(void *, struct wiphy *, int, struct mesh_config *);
|
|
|
|
typedef void (*btf_trace_rdev_update_mesh_config)(void *, struct wiphy *, struct net_device *, u32, const struct mesh_config *);
|
|
|
|
typedef void (*btf_trace_rdev_join_mesh)(void *, struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *);
|
|
|
|
typedef void (*btf_trace_rdev_change_bss)(void *, struct wiphy *, struct net_device *, struct bss_parameters *);
|
|
|
|
typedef void (*btf_trace_rdev_set_txq_params)(void *, struct wiphy *, struct net_device *, struct ieee80211_txq_params *);
|
|
|
|
typedef void (*btf_trace_rdev_libertas_set_mesh_channel)(void *, struct wiphy *, struct net_device *, struct ieee80211_channel *);
|
|
|
|
typedef void (*btf_trace_rdev_set_monitor_channel)(void *, struct wiphy *, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_rdev_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_auth_request *);
|
|
|
|
typedef void (*btf_trace_rdev_assoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_assoc_request *);
|
|
|
|
typedef void (*btf_trace_rdev_deauth)(void *, struct wiphy *, struct net_device *, struct cfg80211_deauth_request *);
|
|
|
|
typedef void (*btf_trace_rdev_disassoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *);
|
|
|
|
typedef void (*btf_trace_rdev_mgmt_tx_cancel_wait)(void *, struct wiphy *, struct wireless_dev *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_set_power_mgmt)(void *, struct wiphy *, struct net_device *, bool, int);
|
|
|
|
typedef void (*btf_trace_rdev_connect)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *);
|
|
|
|
typedef void (*btf_trace_rdev_update_connect_params)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32);
|
|
|
|
typedef void (*btf_trace_rdev_set_cqm_rssi_config)(void *, struct wiphy *, struct net_device *, s32, u32);
|
|
|
|
typedef void (*btf_trace_rdev_set_cqm_rssi_range_config)(void *, struct wiphy *, struct net_device *, s32, s32);
|
|
|
|
typedef void (*btf_trace_rdev_set_cqm_txe_config)(void *, struct wiphy *, struct net_device *, u32, u32, u32);
|
|
|
|
typedef void (*btf_trace_rdev_disconnect)(void *, struct wiphy *, struct net_device *, u16);
|
|
|
|
typedef void (*btf_trace_rdev_join_ibss)(void *, struct wiphy *, struct net_device *, struct cfg80211_ibss_params *);
|
|
|
|
typedef void (*btf_trace_rdev_join_ocb)(void *, struct wiphy *, struct net_device *, const struct ocb_setup *);
|
|
|
|
typedef void (*btf_trace_rdev_set_wiphy_params)(void *, struct wiphy *, u32);
|
|
|
|
typedef void (*btf_trace_rdev_get_tx_power)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_set_tx_power)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_int)(void *, struct wiphy *, int, int);
|
|
|
|
typedef void (*btf_trace_rdev_set_bitrate_mask)(void *, struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *);
|
|
|
|
typedef void (*btf_trace_rdev_update_mgmt_frame_registrations)(void *, struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_tx_rx)(void *, struct wiphy *, int, u32, u32);
|
|
|
|
typedef void (*btf_trace_rdev_return_void_tx_rx)(void *, struct wiphy *, u32, u32, u32, u32);
|
|
|
|
typedef void (*btf_trace_rdev_set_antenna)(void *, struct wiphy *, u32, u32);
|
|
|
|
typedef void (*btf_trace_rdev_sched_scan_start)(void *, struct wiphy *, struct net_device *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_sched_scan_stop)(void *, struct wiphy *, struct net_device *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_tdls_mgmt)(void *, struct wiphy *, struct net_device *, u8 *, u8, u8, u16, u32, bool, const u8 *, size_t);
|
|
|
|
typedef void (*btf_trace_rdev_dump_survey)(void *, struct wiphy *, struct net_device *, int);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_survey_info)(void *, struct wiphy *, int, struct survey_info *);
|
|
|
|
typedef void (*btf_trace_rdev_tdls_oper)(void *, struct wiphy *, struct net_device *, u8 *, enum nl80211_tdls_operation);
|
|
|
|
typedef void (*btf_trace_rdev_probe_client)(void *, struct wiphy *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_set_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
|
|
|
|
typedef void (*btf_trace_rdev_del_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
|
|
|
|
typedef void (*btf_trace_rdev_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int);
|
|
|
|
typedef void (*btf_trace_rdev_return_int_cookie)(void *, struct wiphy *, int, u64);
|
|
|
|
typedef void (*btf_trace_rdev_cancel_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_mgmt_tx)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *);
|
|
|
|
typedef void (*btf_trace_rdev_tx_control_port)(void *, struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, __be16, bool, int);
|
|
|
|
typedef void (*btf_trace_rdev_set_noack_map)(void *, struct wiphy *, struct net_device *, u16);
|
|
|
|
typedef void (*btf_trace_rdev_get_channel)(void *, struct wiphy *, struct wireless_dev *, unsigned int);
|
|
|
|
typedef void (*btf_trace_rdev_return_chandef)(void *, struct wiphy *, int, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_rdev_start_p2p_device)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_stop_p2p_device)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_start_nan)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *);
|
|
|
|
typedef void (*btf_trace_rdev_nan_change_conf)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32);
|
|
|
|
typedef void (*btf_trace_rdev_stop_nan)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_add_nan_func)(void *, struct wiphy *, struct wireless_dev *, const struct cfg80211_nan_func *);
|
|
|
|
typedef void (*btf_trace_rdev_del_nan_func)(void *, struct wiphy *, struct wireless_dev *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_set_mac_acl)(void *, struct wiphy *, struct net_device *, struct cfg80211_acl_data *);
|
|
|
|
typedef void (*btf_trace_rdev_update_ft_ies)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *);
|
|
|
|
typedef void (*btf_trace_rdev_crit_proto_start)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16);
|
|
|
|
typedef void (*btf_trace_rdev_crit_proto_stop)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_channel_switch)(void *, struct wiphy *, struct net_device *, struct cfg80211_csa_settings *);
|
|
|
|
typedef void (*btf_trace_rdev_set_qos_map)(void *, struct wiphy *, struct net_device *, struct cfg80211_qos_map *);
|
|
|
|
typedef void (*btf_trace_rdev_set_ap_chanwidth)(void *, struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_rdev_add_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *, u8, u16);
|
|
|
|
typedef void (*btf_trace_rdev_del_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_tdls_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_rdev_tdls_cancel_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_set_pmk)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmk_conf *);
|
|
|
|
typedef void (*btf_trace_rdev_del_pmk)(void *, struct wiphy *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_rdev_external_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *);
|
|
|
|
typedef void (*btf_trace_rdev_start_radar_detection)(void *, struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32);
|
|
|
|
typedef void (*btf_trace_rdev_set_mcast_rate)(void *, struct wiphy *, struct net_device *, int *);
|
|
|
|
typedef void (*btf_trace_rdev_set_coalesce)(void *, struct wiphy *, struct cfg80211_coalesce *);
|
|
|
|
typedef void (*btf_trace_rdev_abort_scan)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_set_multicast_to_unicast)(void *, struct wiphy *, struct net_device *, const bool);
|
|
|
|
typedef void (*btf_trace_rdev_get_txq_stats)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_rdev_get_ftm_responder_stats)(void *, struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *);
|
|
|
|
typedef void (*btf_trace_rdev_start_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_abort_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64);
|
|
|
|
typedef void (*btf_trace_rdev_set_fils_aad)(void *, struct wiphy *, struct net_device *, struct cfg80211_fils_aad *);
|
|
|
|
typedef void (*btf_trace_rdev_update_owe_info)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *);
|
|
|
|
typedef void (*btf_trace_rdev_probe_mesh_link)(void *, struct wiphy *, struct net_device *, const u8 *, const u8 *, size_t);
|
|
|
|
typedef void (*btf_trace_rdev_set_tid_config)(void *, struct wiphy *, struct net_device *, struct cfg80211_tid_config *);
|
|
|
|
typedef void (*btf_trace_rdev_reset_tid_config)(void *, struct wiphy *, struct net_device *, const u8 *, u8);
|
|
|
|
typedef void (*btf_trace_rdev_set_sar_specs)(void *, struct wiphy *, struct cfg80211_sar_specs *);
|
|
|
|
typedef void (*btf_trace_rdev_color_change)(void *, struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *);
|
|
|
|
typedef void (*btf_trace_rdev_set_radar_background)(void *, struct wiphy *, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_rdev_add_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int);
|
|
|
|
typedef void (*btf_trace_rdev_del_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int);
|
|
|
|
typedef void (*btf_trace_cfg80211_return_bool)(void *, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_notify_new_peer_candidate)(void *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_send_rx_auth)(void *, struct net_device *);
|
|
|
|
typedef void (*btf_trace_cfg80211_send_rx_assoc)(void *, struct net_device *, struct cfg80211_rx_assoc_resp *);
|
|
|
|
typedef void (*btf_trace_cfg80211_rx_unprot_mlme_mgmt)(void *, struct net_device *, const u8 *, int);
|
|
|
|
typedef void (*btf_trace_cfg80211_rx_mlme_mgmt)(void *, struct net_device *, const u8 *, int);
|
|
|
|
typedef void (*btf_trace_cfg80211_tx_mlme_mgmt)(void *, struct net_device *, const u8 *, int, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_send_auth_timeout)(void *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_send_assoc_failure)(void *, struct net_device *, struct cfg80211_assoc_failure *);
|
|
|
|
typedef void (*btf_trace_cfg80211_michael_mic_failure)(void *, struct net_device *, const u8 *, enum nl80211_key_type, int, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_ready_on_channel)(void *, struct wireless_dev *, u64, struct ieee80211_channel *, unsigned int);
|
|
|
|
typedef void (*btf_trace_cfg80211_ready_on_channel_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *);
|
|
|
|
typedef void (*btf_trace_cfg80211_tx_mgmt_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *);
|
|
|
|
typedef void (*btf_trace_cfg80211_new_sta)(void *, struct net_device *, const u8 *, struct station_info *);
|
|
|
|
typedef void (*btf_trace_cfg80211_del_sta)(void *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_rx_mgmt)(void *, struct wireless_dev *, struct cfg80211_rx_info *);
|
|
|
|
typedef void (*btf_trace_cfg80211_mgmt_tx_status)(void *, struct wireless_dev *, u64, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_control_port_tx_status)(void *, struct wireless_dev *, u64, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_rx_control_port)(void *, struct net_device *, struct sk_buff *, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_cqm_rssi_notify)(void *, struct net_device *, enum nl80211_cqm_rssi_threshold_event, s32);
|
|
|
|
typedef void (*btf_trace_cfg80211_reg_can_beacon)(void *, struct wiphy *, struct cfg80211_chan_def *, enum nl80211_iftype, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_chandef_dfs_required)(void *, struct wiphy *, struct cfg80211_chan_def *);
|
|
|
|
typedef void (*btf_trace_cfg80211_ch_switch_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16);
|
|
|
|
typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16);
|
|
|
|
typedef void (*btf_trace_cfg80211_radar_event)(void *, struct wiphy *, struct cfg80211_chan_def *, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_cac_event)(void *, struct net_device *, enum nl80211_radar_event);
|
|
|
|
typedef void (*btf_trace_cfg80211_rx_spurious_frame)(void *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_rx_unexpected_4addr_frame)(void *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_ibss_joined)(void *, struct net_device *, const u8 *, struct ieee80211_channel *);
|
|
|
|
typedef void (*btf_trace_cfg80211_probe_status)(void *, struct net_device *, const u8 *, u64, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_cqm_pktloss_notify)(void *, struct net_device *, const u8 *, u32);
|
|
|
|
typedef void (*btf_trace_cfg80211_gtk_rekey_notify)(void *, struct net_device *, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_pmksa_candidate_notify)(void *, struct net_device *, int, const u8 *, bool);
|
|
|
|
typedef void (*btf_trace_cfg80211_report_obss_beacon)(void *, struct wiphy *, const u8 *, size_t, int, int);
|
|
|
|
typedef void (*btf_trace_cfg80211_tdls_oper_request)(void *, struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation, u16);
|
|
|
|
typedef void (*btf_trace_cfg80211_scan_done)(void *, struct cfg80211_scan_request *, struct cfg80211_scan_info *);
|
|
|
|
typedef void (*btf_trace_cfg80211_sched_scan_stopped)(void *, struct wiphy *, u64);
|
|
|
|
typedef void (*btf_trace_cfg80211_sched_scan_results)(void *, struct wiphy *, u64);
|
|
|
|
typedef void (*btf_trace_cfg80211_get_bss)(void *, struct wiphy *, struct ieee80211_channel *, const u8 *, const u8 *, size_t, enum ieee80211_bss_type, enum ieee80211_privacy);
|
|
|
|
typedef void (*btf_trace_cfg80211_inform_bss_frame)(void *, struct wiphy *, struct cfg80211_inform_bss *, struct ieee80211_mgmt *, size_t);
|
|
|
|
typedef void (*btf_trace_cfg80211_return_bss)(void *, struct cfg80211_bss *);
|
|
|
|
typedef void (*btf_trace_cfg80211_return_uint)(void *, unsigned int);
|
|
|
|
typedef void (*btf_trace_cfg80211_return_u32)(void *, u32);
|
|
|
|
typedef void (*btf_trace_cfg80211_report_wowlan_wakeup)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_wowlan_wakeup *);
|
|
|
|
typedef void (*btf_trace_cfg80211_ft_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_ft_event_params *);
|
|
|
|
typedef void (*btf_trace_cfg80211_stop_iface)(void *, struct wiphy *, struct wireless_dev *);
|
|
|
|
typedef void (*btf_trace_cfg80211_pmsr_report)(void *, struct wiphy *, struct wireless_dev *, u64, const u8 *);
|
|
|
|
typedef void (*btf_trace_cfg80211_pmsr_complete)(void *, struct wiphy *, struct wireless_dev *, u64);
|
|
|
|
typedef void (*btf_trace_cfg80211_update_owe_info_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *);
|
|
|
|
typedef void (*btf_trace_cfg80211_bss_color_notify)(void *, struct net_device *, enum nl80211_commands, u8, u64);
|
|
|
|
typedef void (*btf_trace_cfg80211_assoc_comeback)(void *, struct wireless_dev *, const u8 *, u32);
|
|
|
|
typedef void (*btf_trace_rdev_add_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *);
|
|
|
|
typedef void (*btf_trace_rdev_mod_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *);
|
|
|
|
typedef void (*btf_trace_rdev_del_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_del_parameters *);
|
|
|
|
struct trace_event_raw_rdev_suspend {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
bool any;
|
|
bool disconnect;
|
|
bool magic_pkt;
|
|
bool gtk_rekey_failure;
|
|
bool eap_identity_req;
|
|
bool four_way_handshake;
|
|
bool rfkill_release;
|
|
bool valid_wow;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_scan {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_only_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_enabled_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
bool enabled;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_add_virtual_intf {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 __data_loc_vir_intf_name;
|
|
enum nl80211_iftype type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_wdev_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_change_virtual_intf {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_iftype type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_key_handle {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 mac_addr[6];
|
|
int link_id;
|
|
u8 key_index;
|
|
bool pairwise;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_add_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 mac_addr[6];
|
|
int link_id;
|
|
u8 key_index;
|
|
bool pairwise;
|
|
u8 mode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_default_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int link_id;
|
|
u8 key_index;
|
|
bool unicast;
|
|
bool multicast;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_default_mgmt_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int link_id;
|
|
u8 key_index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_default_beacon_key {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int link_id;
|
|
u8 key_index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_start_ap {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
int beacon_interval;
|
|
int dtim_period;
|
|
char ssid[33];
|
|
enum nl80211_hidden_ssid hidden_ssid;
|
|
u32 wpa_ver;
|
|
bool privacy;
|
|
enum nl80211_auth_type auth_type;
|
|
int inactivity_timeout;
|
|
unsigned int link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_change_beacon {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int link_id;
|
|
u32 __data_loc_head;
|
|
u32 __data_loc_tail;
|
|
u32 __data_loc_beacon_ies;
|
|
u32 __data_loc_proberesp_ies;
|
|
u32 __data_loc_assocresp_ies;
|
|
u32 __data_loc_probe_resp;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_stop_ap {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
unsigned int link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_netdev_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_station_add_change {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 sta_mac[6];
|
|
u32 sta_flags_mask;
|
|
u32 sta_flags_set;
|
|
u32 sta_modify_mask;
|
|
int listen_interval;
|
|
u16 capability;
|
|
u16 aid;
|
|
u8 plink_action;
|
|
u8 plink_state;
|
|
u8 uapsd_queues;
|
|
u8 max_sp;
|
|
u8 opmode_notif;
|
|
bool opmode_notif_used;
|
|
u8 ht_capa[26];
|
|
u8 vht_capa[12];
|
|
char vlan[16];
|
|
u32 __data_loc_supported_rates;
|
|
u32 __data_loc_ext_capab;
|
|
u32 __data_loc_supported_channels;
|
|
u32 __data_loc_supported_oper_classes;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_station_del {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 sta_mac[6];
|
|
u8 subtype;
|
|
u16 reason_code;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_netdev_mac_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 sta_mac[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_dump_station {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 sta_mac[6];
|
|
int idx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_station_info {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
int generation;
|
|
u32 connected_time;
|
|
u32 inactive_time;
|
|
u32 rx_bytes;
|
|
u32 tx_bytes;
|
|
u32 rx_packets;
|
|
u32 tx_packets;
|
|
u32 tx_retries;
|
|
u32 tx_failed;
|
|
u32 rx_dropped_misc;
|
|
u32 beacon_loss_count;
|
|
u16 llid;
|
|
u16 plid;
|
|
u8 plink_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mpath_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 dst[6];
|
|
u8 next_hop[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_dump_mpath {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 dst[6];
|
|
u8 next_hop[6];
|
|
int idx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_get_mpp {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 dst[6];
|
|
u8 mpp[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_dump_mpp {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 dst[6];
|
|
u8 mpp[6];
|
|
int idx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_mpath_info {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
int generation;
|
|
u32 filled;
|
|
u32 frame_qlen;
|
|
u32 sn;
|
|
u32 metric;
|
|
u32 exptime;
|
|
u32 discovery_timeout;
|
|
u8 discovery_retries;
|
|
u8 flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_mesh_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u16 dot11MeshRetryTimeout;
|
|
u16 dot11MeshConfirmTimeout;
|
|
u16 dot11MeshHoldingTimeout;
|
|
u16 dot11MeshMaxPeerLinks;
|
|
u8 dot11MeshMaxRetries;
|
|
u8 dot11MeshTTL;
|
|
u8 element_ttl;
|
|
bool auto_open_plinks;
|
|
u32 dot11MeshNbrOffsetMaxNeighbor;
|
|
u8 dot11MeshHWMPmaxPREQretries;
|
|
u32 path_refresh_time;
|
|
u32 dot11MeshHWMPactivePathTimeout;
|
|
u16 min_discovery_timeout;
|
|
u16 dot11MeshHWMPpreqMinInterval;
|
|
u16 dot11MeshHWMPperrMinInterval;
|
|
u16 dot11MeshHWMPnetDiameterTraversalTime;
|
|
u8 dot11MeshHWMPRootMode;
|
|
u16 dot11MeshHWMPRannInterval;
|
|
bool dot11MeshGateAnnouncementProtocol;
|
|
bool dot11MeshForwarding;
|
|
s32 rssi_threshold;
|
|
u16 ht_opmode;
|
|
u32 dot11MeshHWMPactivePathToRootTimeout;
|
|
u16 dot11MeshHWMProotInterval;
|
|
u16 dot11MeshHWMPconfirmationInterval;
|
|
bool dot11MeshNolearn;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_update_mesh_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u16 dot11MeshRetryTimeout;
|
|
u16 dot11MeshConfirmTimeout;
|
|
u16 dot11MeshHoldingTimeout;
|
|
u16 dot11MeshMaxPeerLinks;
|
|
u8 dot11MeshMaxRetries;
|
|
u8 dot11MeshTTL;
|
|
u8 element_ttl;
|
|
bool auto_open_plinks;
|
|
u32 dot11MeshNbrOffsetMaxNeighbor;
|
|
u8 dot11MeshHWMPmaxPREQretries;
|
|
u32 path_refresh_time;
|
|
u32 dot11MeshHWMPactivePathTimeout;
|
|
u16 min_discovery_timeout;
|
|
u16 dot11MeshHWMPpreqMinInterval;
|
|
u16 dot11MeshHWMPperrMinInterval;
|
|
u16 dot11MeshHWMPnetDiameterTraversalTime;
|
|
u8 dot11MeshHWMPRootMode;
|
|
u16 dot11MeshHWMPRannInterval;
|
|
bool dot11MeshGateAnnouncementProtocol;
|
|
bool dot11MeshForwarding;
|
|
s32 rssi_threshold;
|
|
u16 ht_opmode;
|
|
u32 dot11MeshHWMPactivePathToRootTimeout;
|
|
u16 dot11MeshHWMProotInterval;
|
|
u16 dot11MeshHWMPconfirmationInterval;
|
|
bool dot11MeshNolearn;
|
|
u32 mask;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_join_mesh {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u16 dot11MeshRetryTimeout;
|
|
u16 dot11MeshConfirmTimeout;
|
|
u16 dot11MeshHoldingTimeout;
|
|
u16 dot11MeshMaxPeerLinks;
|
|
u8 dot11MeshMaxRetries;
|
|
u8 dot11MeshTTL;
|
|
u8 element_ttl;
|
|
bool auto_open_plinks;
|
|
u32 dot11MeshNbrOffsetMaxNeighbor;
|
|
u8 dot11MeshHWMPmaxPREQretries;
|
|
u32 path_refresh_time;
|
|
u32 dot11MeshHWMPactivePathTimeout;
|
|
u16 min_discovery_timeout;
|
|
u16 dot11MeshHWMPpreqMinInterval;
|
|
u16 dot11MeshHWMPperrMinInterval;
|
|
u16 dot11MeshHWMPnetDiameterTraversalTime;
|
|
u8 dot11MeshHWMPRootMode;
|
|
u16 dot11MeshHWMPRannInterval;
|
|
bool dot11MeshGateAnnouncementProtocol;
|
|
bool dot11MeshForwarding;
|
|
s32 rssi_threshold;
|
|
u16 ht_opmode;
|
|
u32 dot11MeshHWMPactivePathToRootTimeout;
|
|
u16 dot11MeshHWMProotInterval;
|
|
u16 dot11MeshHWMPconfirmationInterval;
|
|
bool dot11MeshNolearn;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_change_bss {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int use_cts_prot;
|
|
int use_short_preamble;
|
|
int use_short_slot_time;
|
|
int ap_isolate;
|
|
int ht_opmode;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_txq_params {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_ac ac;
|
|
u16 txop;
|
|
u16 cwmin;
|
|
u16 cwmax;
|
|
u8 aifs;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_libertas_set_mesh_channel {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_monitor_channel {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_auth {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
enum nl80211_auth_type auth_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_assoc {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
u8 prev_bssid[6];
|
|
bool use_mfp;
|
|
u32 flags;
|
|
u32 __data_loc_elements;
|
|
u8 ht_capa[26];
|
|
u8 ht_capa_mask[26];
|
|
u8 vht_capa[12];
|
|
u8 vht_capa_mask[12];
|
|
u32 __data_loc_fils_kek;
|
|
u32 __data_loc_fils_nonces;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_deauth {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
u16 reason_code;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_disassoc {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
u16 reason_code;
|
|
bool local_state_change;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_mgmt_tx_cancel_wait {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_power_mgmt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
bool enabled;
|
|
int timeout;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_connect {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
char ssid[33];
|
|
enum nl80211_auth_type auth_type;
|
|
bool privacy;
|
|
u32 wpa_versions;
|
|
u32 flags;
|
|
u8 prev_bssid[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_update_connect_params {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u32 changed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_cqm_rssi_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
s32 rssi_thold;
|
|
u32 rssi_hyst;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_cqm_rssi_range_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
s32 rssi_low;
|
|
s32 rssi_high;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_cqm_txe_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u32 rate;
|
|
u32 pkts;
|
|
u32 intvl;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_disconnect {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u16 reason_code;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_join_ibss {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
char ssid[33];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_join_ocb {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_wiphy_params {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 changed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_tx_power {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
enum nl80211_tx_power_setting type;
|
|
int mbm;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_int {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int func_ret;
|
|
int func_fill;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_bitrate_mask {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
unsigned int link_id;
|
|
u8 peer[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_update_mgmt_frame_registrations {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u16 global_stypes;
|
|
u16 interface_stypes;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_tx_rx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
u32 tx;
|
|
u32 rx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_void_tx_rx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 tx;
|
|
u32 tx_max;
|
|
u32 rx;
|
|
u32 rx_max;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_tx_rx_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 tx;
|
|
u32 rx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_netdev_id_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u64 id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_tdls_mgmt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u8 action_code;
|
|
u8 dialog_token;
|
|
u16 status_code;
|
|
u32 peer_capability;
|
|
bool initiator;
|
|
u32 __data_loc_buf;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_dump_survey {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int idx;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_survey_info {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
int ret;
|
|
u64 time;
|
|
u64 time_busy;
|
|
u64 time_ext_busy;
|
|
u64 time_rx;
|
|
u64 time_tx;
|
|
u64 time_scan;
|
|
u32 filled;
|
|
s8 noise;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_tdls_oper {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
enum nl80211_tdls_operation oper;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_probe_client {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_pmksa {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_remain_on_channel {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
unsigned int duration;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_int_cookie {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_cancel_remain_on_channel {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_mgmt_tx {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
bool offchan;
|
|
unsigned int wait;
|
|
bool no_cck;
|
|
bool dont_wait_for_ack;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_tx_control_port {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 dest[6];
|
|
__be16 proto;
|
|
bool unencrypted;
|
|
int link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_noack_map {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u16 noack_map;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_wdev_link_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
unsigned int link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_return_chandef {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int ret;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_start_nan {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u8 master_pref;
|
|
u8 bands;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_nan_change_conf {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u8 master_pref;
|
|
u8 bands;
|
|
u32 changes;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_add_nan_func {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u8 func_type;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_del_nan_func {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_mac_acl {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u32 acl_policy;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_update_ft_ies {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u16 md;
|
|
u32 __data_loc_ie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_crit_proto_start {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u16 proto;
|
|
u16 duration;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_crit_proto_stop {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
bool radar_required;
|
|
bool block_tx;
|
|
u8 count;
|
|
u32 __data_loc_bcn_ofs;
|
|
u32 __data_loc_pres_ofs;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_qos_map {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 num_des;
|
|
u8 dscp_exception[42];
|
|
u8 up[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_ap_chanwidth {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
unsigned int link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_add_tx_ts {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u8 tsid;
|
|
u8 user_prio;
|
|
u16 admitted_time;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_del_tx_ts {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u8 tsid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_tdls_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 addr[6];
|
|
u8 oper_class;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_tdls_cancel_channel_switch {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_pmk {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 aa[6];
|
|
u8 pmk_len;
|
|
u8 pmk_r0_name_len;
|
|
u32 __data_loc_pmk;
|
|
u32 __data_loc_pmk_r0_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_del_pmk {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 aa[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_external_auth {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
u8 ssid[33];
|
|
u16 status;
|
|
u8 mld_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_start_radar_detection {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
u32 cac_time_ms;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_mcast_rate {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
int mcast_rate[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_coalesce {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int n_rules;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_multicast_to_unicast {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
bool enabled;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_get_ftm_responder_stats {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u64 timestamp;
|
|
u32 success_num;
|
|
u32 partial_num;
|
|
u32 failed_num;
|
|
u32 asap_num;
|
|
u32 non_asap_num;
|
|
u64 duration;
|
|
u32 unknown_triggers;
|
|
u32 reschedule;
|
|
u32 out_of_window;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_wdev_cookie_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_fils_aad {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 macaddr[6];
|
|
u8 kek_len;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_update_owe_info {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u16 status;
|
|
u32 __data_loc_ie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_probe_mesh_link {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 dest[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_tid_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_reset_tid_config {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u8 tids;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_sar_specs {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u16 type;
|
|
u16 num;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_color_change {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 count;
|
|
u16 bcn_ofs;
|
|
u16 pres_ofs;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_set_radar_background {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_return_bool {
|
|
struct trace_entry ent;
|
|
bool ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_netdev_mac_evt {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 macaddr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netdev_evt_only {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_send_rx_assoc {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 ap_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netdev_frame_event {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u32 __data_loc_frame;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_tx_mlme_mgmt {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u32 __data_loc_frame;
|
|
int reconnect;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_netdev_mac_evt {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 mac[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_send_assoc_failure {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 ap_addr[6];
|
|
bool timeout;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_michael_mic_failure {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 addr[6];
|
|
enum nl80211_key_type key_type;
|
|
int key_id;
|
|
u8 tsc[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_ready_on_channel {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
u64 cookie;
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
unsigned int duration;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_ready_on_channel_expired {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
u64 cookie;
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_tx_mgmt_expired {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
u64 cookie;
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_new_sta {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 mac_addr[6];
|
|
int generation;
|
|
u32 connected_time;
|
|
u32 inactive_time;
|
|
u32 rx_bytes;
|
|
u32 tx_bytes;
|
|
u32 rx_packets;
|
|
u32 tx_packets;
|
|
u32 tx_retries;
|
|
u32 tx_failed;
|
|
u32 rx_dropped_misc;
|
|
u32 beacon_loss_count;
|
|
u16 llid;
|
|
u16 plid;
|
|
u8 plink_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_rx_mgmt {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
int freq;
|
|
int sig_dbm;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_mgmt_tx_status {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
u64 cookie;
|
|
bool ack;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_control_port_tx_status {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
u64 cookie;
|
|
bool ack;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_rx_control_port {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
int len;
|
|
u8 from[6];
|
|
u16 proto;
|
|
bool unencrypted;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_cqm_rssi_notify {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_cqm_rssi_threshold_event rssi_event;
|
|
s32 rssi_level;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_reg_can_beacon {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
enum nl80211_iftype iftype;
|
|
bool check_no_ir;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_chandef_dfs_required {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_ch_switch_notify {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
unsigned int link_id;
|
|
u16 punct_bitmap;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_ch_switch_started_notify {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
unsigned int link_id;
|
|
u16 punct_bitmap;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_radar_event {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 control_freq;
|
|
u32 freq_offset;
|
|
u32 width;
|
|
u32 center_freq1;
|
|
u32 freq1_offset;
|
|
u32 center_freq2;
|
|
bool offchan;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_cac_event {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
enum nl80211_radar_event evt;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_rx_evt {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_ibss_joined {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 bssid[6];
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_probe_status {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 addr[6];
|
|
u64 cookie;
|
|
bool acked;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_cqm_pktloss_notify {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u32 num_packets;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_pmksa_candidate_notify {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
int index;
|
|
u8 bssid[6];
|
|
bool preauth;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_report_obss_beacon {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
int freq;
|
|
int sig_dbm;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_tdls_oper_request {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
enum nl80211_tdls_operation oper;
|
|
u16 reason_code;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_scan_done {
|
|
struct trace_entry ent;
|
|
u32 n_channels;
|
|
u32 __data_loc_ie;
|
|
u32 rates[6];
|
|
u32 wdev_id;
|
|
u8 wiphy_mac[6];
|
|
bool no_cck;
|
|
bool aborted;
|
|
u64 scan_start_tsf;
|
|
u8 tsf_bssid[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_wiphy_id_evt {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u64 id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_get_bss {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
u8 bssid[6];
|
|
u32 __data_loc_ssid;
|
|
enum ieee80211_bss_type bss_type;
|
|
enum ieee80211_privacy privacy;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_inform_bss_frame {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
enum nl80211_bss_scan_width scan_width;
|
|
u32 __data_loc_mgmt;
|
|
s32 signal;
|
|
u64 ts_boottime;
|
|
u64 parent_tsf;
|
|
u8 parent_bssid[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_bss_evt {
|
|
struct trace_entry ent;
|
|
u8 bssid[6];
|
|
enum nl80211_band band;
|
|
u32 center_freq;
|
|
u16 freq_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_return_uint {
|
|
struct trace_entry ent;
|
|
unsigned int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_return_u32 {
|
|
struct trace_entry ent;
|
|
u32 ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_report_wowlan_wakeup {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
bool non_wireless;
|
|
bool disconnect;
|
|
bool magic_pkt;
|
|
bool gtk_rekey_failure;
|
|
bool eap_identity_req;
|
|
bool four_way_handshake;
|
|
bool rfkill_release;
|
|
s32 pattern_idx;
|
|
u32 packet_len;
|
|
u32 __data_loc_packet;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_ft_event {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u32 __data_loc_ies;
|
|
u8 target_ap[6];
|
|
u32 __data_loc_ric_ies;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_stop_iface {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_pmsr_report {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u64 cookie;
|
|
u8 addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_pmsr_complete {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
u32 id;
|
|
u64 cookie;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_update_owe_info_event {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 peer[6];
|
|
u32 __data_loc_ie;
|
|
int assoc_link_id;
|
|
u8 peer_mld_addr[6];
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_bss_color_notify {
|
|
struct trace_entry ent;
|
|
char name[16];
|
|
int ifindex;
|
|
u32 cmd;
|
|
u8 count;
|
|
u64 color_bitmap;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_cfg80211_assoc_comeback {
|
|
struct trace_entry ent;
|
|
u32 id;
|
|
u8 ap_addr[6];
|
|
u32 timeout;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_link_station_add_mod {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 mld_mac[6];
|
|
u8 link_mac[6];
|
|
u32 link_id;
|
|
u32 __data_loc_supported_rates;
|
|
u8 ht_capa[26];
|
|
u8 vht_capa[12];
|
|
u8 opmode_notif;
|
|
bool opmode_notif_used;
|
|
u32 __data_loc_he_capa;
|
|
u8 he_6ghz_capa[2];
|
|
u32 __data_loc_eht_capa;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rdev_del_link_station {
|
|
struct trace_entry ent;
|
|
char wiphy_name[32];
|
|
char name[16];
|
|
int ifindex;
|
|
u8 mld_mac[6];
|
|
u32 link_id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_add_virtual_intf {
|
|
u32 vir_intf_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_change_beacon {
|
|
u32 head;
|
|
u32 tail;
|
|
u32 beacon_ies;
|
|
u32 proberesp_ies;
|
|
u32 assocresp_ies;
|
|
u32 probe_resp;
|
|
};
|
|
|
|
struct trace_event_data_offsets_station_add_change {
|
|
u32 supported_rates;
|
|
u32 ext_capab;
|
|
u32 supported_channels;
|
|
u32 supported_oper_classes;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_assoc {
|
|
u32 elements;
|
|
u32 fils_kek;
|
|
u32 fils_nonces;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_tdls_mgmt {
|
|
u32 buf;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_update_ft_ies {
|
|
u32 ie;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_channel_switch {
|
|
u32 bcn_ofs;
|
|
u32 pres_ofs;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_set_pmk {
|
|
u32 pmk;
|
|
u32 pmk_r0_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_update_owe_info {
|
|
u32 ie;
|
|
};
|
|
|
|
struct trace_event_data_offsets_netdev_frame_event {
|
|
u32 frame;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_tx_mlme_mgmt {
|
|
u32 frame;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_scan_done {
|
|
u32 ie;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_get_bss {
|
|
u32 ssid;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_inform_bss_frame {
|
|
u32 mgmt;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_report_wowlan_wakeup {
|
|
u32 packet;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_ft_event {
|
|
u32 ies;
|
|
u32 ric_ies;
|
|
};
|
|
|
|
struct trace_event_data_offsets_cfg80211_update_owe_info_event {
|
|
u32 ie;
|
|
};
|
|
|
|
struct trace_event_data_offsets_link_station_add_mod {
|
|
u32 supported_rates;
|
|
u32 he_capa;
|
|
u32 eht_capa;
|
|
};
|
|
|
|
struct trace_event_data_offsets_rdev_suspend {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int {};
|
|
|
|
struct trace_event_data_offsets_rdev_scan {};
|
|
|
|
struct trace_event_data_offsets_wiphy_only_evt {};
|
|
|
|
struct trace_event_data_offsets_wiphy_enabled_evt {};
|
|
|
|
struct trace_event_data_offsets_wiphy_wdev_evt {};
|
|
|
|
struct trace_event_data_offsets_wiphy_wdev_cookie_evt {};
|
|
|
|
struct trace_event_data_offsets_rdev_change_virtual_intf {};
|
|
|
|
struct trace_event_data_offsets_key_handle {};
|
|
|
|
struct trace_event_data_offsets_rdev_add_key {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_default_key {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_default_mgmt_key {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_default_beacon_key {};
|
|
|
|
struct trace_event_data_offsets_rdev_start_ap {};
|
|
|
|
struct trace_event_data_offsets_rdev_stop_ap {};
|
|
|
|
struct trace_event_data_offsets_wiphy_netdev_evt {};
|
|
|
|
struct trace_event_data_offsets_wiphy_netdev_mac_evt {};
|
|
|
|
struct trace_event_data_offsets_station_del {};
|
|
|
|
struct trace_event_data_offsets_rdev_dump_station {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_station_info {};
|
|
|
|
struct trace_event_data_offsets_mpath_evt {};
|
|
|
|
struct trace_event_data_offsets_rdev_dump_mpath {};
|
|
|
|
struct trace_event_data_offsets_rdev_get_mpp {};
|
|
|
|
struct trace_event_data_offsets_rdev_dump_mpp {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_mpath_info {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_mesh_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_update_mesh_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_join_mesh {};
|
|
|
|
struct trace_event_data_offsets_rdev_change_bss {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_txq_params {};
|
|
|
|
struct trace_event_data_offsets_rdev_libertas_set_mesh_channel {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_monitor_channel {};
|
|
|
|
struct trace_event_data_offsets_rdev_auth {};
|
|
|
|
struct trace_event_data_offsets_rdev_deauth {};
|
|
|
|
struct trace_event_data_offsets_rdev_disassoc {};
|
|
|
|
struct trace_event_data_offsets_rdev_mgmt_tx_cancel_wait {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_power_mgmt {};
|
|
|
|
struct trace_event_data_offsets_rdev_connect {};
|
|
|
|
struct trace_event_data_offsets_rdev_update_connect_params {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_cqm_rssi_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_cqm_rssi_range_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_cqm_txe_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_disconnect {};
|
|
|
|
struct trace_event_data_offsets_rdev_join_ibss {};
|
|
|
|
struct trace_event_data_offsets_rdev_join_ocb {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_wiphy_params {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_tx_power {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_int {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_bitrate_mask {};
|
|
|
|
struct trace_event_data_offsets_rdev_update_mgmt_frame_registrations {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_tx_rx {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_void_tx_rx {};
|
|
|
|
struct trace_event_data_offsets_tx_rx_evt {};
|
|
|
|
struct trace_event_data_offsets_wiphy_netdev_id_evt {};
|
|
|
|
struct trace_event_data_offsets_rdev_dump_survey {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_survey_info {};
|
|
|
|
struct trace_event_data_offsets_rdev_tdls_oper {};
|
|
|
|
struct trace_event_data_offsets_rdev_pmksa {};
|
|
|
|
struct trace_event_data_offsets_rdev_probe_client {};
|
|
|
|
struct trace_event_data_offsets_rdev_remain_on_channel {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_int_cookie {};
|
|
|
|
struct trace_event_data_offsets_rdev_cancel_remain_on_channel {};
|
|
|
|
struct trace_event_data_offsets_rdev_mgmt_tx {};
|
|
|
|
struct trace_event_data_offsets_rdev_tx_control_port {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_noack_map {};
|
|
|
|
struct trace_event_data_offsets_wiphy_wdev_link_evt {};
|
|
|
|
struct trace_event_data_offsets_rdev_return_chandef {};
|
|
|
|
struct trace_event_data_offsets_rdev_start_nan {};
|
|
|
|
struct trace_event_data_offsets_rdev_nan_change_conf {};
|
|
|
|
struct trace_event_data_offsets_rdev_add_nan_func {};
|
|
|
|
struct trace_event_data_offsets_rdev_del_nan_func {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_mac_acl {};
|
|
|
|
struct trace_event_data_offsets_rdev_crit_proto_start {};
|
|
|
|
struct trace_event_data_offsets_rdev_crit_proto_stop {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_qos_map {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_ap_chanwidth {};
|
|
|
|
struct trace_event_data_offsets_rdev_add_tx_ts {};
|
|
|
|
struct trace_event_data_offsets_rdev_del_tx_ts {};
|
|
|
|
struct trace_event_data_offsets_rdev_tdls_channel_switch {};
|
|
|
|
struct trace_event_data_offsets_rdev_tdls_cancel_channel_switch {};
|
|
|
|
struct trace_event_data_offsets_rdev_del_pmk {};
|
|
|
|
struct trace_event_data_offsets_rdev_external_auth {};
|
|
|
|
struct trace_event_data_offsets_rdev_start_radar_detection {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_mcast_rate {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_coalesce {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_multicast_to_unicast {};
|
|
|
|
struct trace_event_data_offsets_rdev_get_ftm_responder_stats {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_fils_aad {};
|
|
|
|
struct trace_event_data_offsets_rdev_probe_mesh_link {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_tid_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_reset_tid_config {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_sar_specs {};
|
|
|
|
struct trace_event_data_offsets_rdev_color_change {};
|
|
|
|
struct trace_event_data_offsets_rdev_set_radar_background {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_return_bool {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_netdev_mac_evt {};
|
|
|
|
struct trace_event_data_offsets_netdev_evt_only {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_send_rx_assoc {};
|
|
|
|
struct trace_event_data_offsets_netdev_mac_evt {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_send_assoc_failure {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_michael_mic_failure {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_ready_on_channel {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_ready_on_channel_expired {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_tx_mgmt_expired {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_new_sta {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_rx_mgmt {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_mgmt_tx_status {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_control_port_tx_status {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_rx_control_port {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_cqm_rssi_notify {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_reg_can_beacon {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_chandef_dfs_required {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_ch_switch_notify {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_ch_switch_started_notify {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_radar_event {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_cac_event {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_rx_evt {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_ibss_joined {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_probe_status {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_cqm_pktloss_notify {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_pmksa_candidate_notify {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_report_obss_beacon {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_tdls_oper_request {};
|
|
|
|
struct trace_event_data_offsets_wiphy_id_evt {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_bss_evt {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_return_uint {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_return_u32 {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_stop_iface {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_pmsr_report {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_pmsr_complete {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_bss_color_notify {};
|
|
|
|
struct trace_event_data_offsets_cfg80211_assoc_comeback {};
|
|
|
|
struct trace_event_data_offsets_rdev_del_link_station {};
|
|
|
|
struct rapl_pmu;
|
|
|
|
struct rapl_pmus {
|
|
struct pmu pmu;
|
|
unsigned int maxdie;
|
|
struct rapl_pmu *pmus[0];
|
|
};
|
|
|
|
struct rapl_pmu {
|
|
raw_spinlock_t lock;
|
|
int n_active;
|
|
int cpu;
|
|
struct list_head active_list;
|
|
struct pmu *pmu;
|
|
ktime_t timer_interval;
|
|
struct hrtimer hrtimer;
|
|
};
|
|
|
|
enum rapl_unit_quirk {
|
|
RAPL_UNIT_QUIRK_NONE = 0,
|
|
RAPL_UNIT_QUIRK_INTEL_HSW = 1,
|
|
RAPL_UNIT_QUIRK_INTEL_SPR = 2,
|
|
};
|
|
|
|
struct rapl_model {
|
|
struct perf_msr *rapl_msrs;
|
|
unsigned long events;
|
|
unsigned int msr_power_unit;
|
|
enum rapl_unit_quirk unit_quirk;
|
|
};
|
|
|
|
enum perf_rapl_events {
|
|
PERF_RAPL_PP0 = 0,
|
|
PERF_RAPL_PKG = 1,
|
|
PERF_RAPL_RAM = 2,
|
|
PERF_RAPL_PP1 = 3,
|
|
PERF_RAPL_PSYS = 4,
|
|
PERF_RAPL_MAX = 5,
|
|
NR_RAPL_DOMAINS = 5,
|
|
};
|
|
|
|
struct irq_stack {
|
|
char stack[16384];
|
|
};
|
|
|
|
struct sigcontext_32 {
|
|
__u16 gs;
|
|
__u16 __gsh;
|
|
__u16 fs;
|
|
__u16 __fsh;
|
|
__u16 es;
|
|
__u16 __esh;
|
|
__u16 ds;
|
|
__u16 __dsh;
|
|
__u32 di;
|
|
__u32 si;
|
|
__u32 bp;
|
|
__u32 sp;
|
|
__u32 bx;
|
|
__u32 dx;
|
|
__u32 cx;
|
|
__u32 ax;
|
|
__u32 trapno;
|
|
__u32 err;
|
|
__u32 ip;
|
|
__u16 cs;
|
|
__u16 __csh;
|
|
__u32 flags;
|
|
__u32 sp_at_signal;
|
|
__u16 ss;
|
|
__u16 __ssh;
|
|
__u32 fpstate;
|
|
__u32 oldmask;
|
|
__u32 cr2;
|
|
};
|
|
|
|
struct _fpreg {
|
|
__u16 significand[4];
|
|
__u16 exponent;
|
|
};
|
|
|
|
struct _fpxreg {
|
|
__u16 significand[4];
|
|
__u16 exponent;
|
|
__u16 padding[3];
|
|
};
|
|
|
|
struct _xmmreg {
|
|
__u32 element[4];
|
|
};
|
|
|
|
struct _fpx_sw_bytes {
|
|
__u32 magic1;
|
|
__u32 extended_size;
|
|
__u64 xfeatures;
|
|
__u32 xstate_size;
|
|
__u32 padding[7];
|
|
};
|
|
|
|
struct _fpstate_32 {
|
|
__u32 cw;
|
|
__u32 sw;
|
|
__u32 tag;
|
|
__u32 ipoff;
|
|
__u32 cssel;
|
|
__u32 dataoff;
|
|
__u32 datasel;
|
|
struct _fpreg _st[8];
|
|
__u16 status;
|
|
__u16 magic;
|
|
__u32 _fxsr_env[6];
|
|
__u32 mxcsr;
|
|
__u32 reserved;
|
|
struct _fpxreg _fxsr_st[8];
|
|
struct _xmmreg _xmm[8];
|
|
union {
|
|
__u32 padding1[44];
|
|
__u32 padding[44];
|
|
};
|
|
union {
|
|
__u32 padding2[12];
|
|
struct _fpx_sw_bytes sw_reserved;
|
|
};
|
|
};
|
|
|
|
struct sigframe_ia32 {
|
|
u32 pretcode;
|
|
int sig;
|
|
struct sigcontext_32 sc;
|
|
struct _fpstate_32 fpstate_unused;
|
|
unsigned int extramask[1];
|
|
char retcode[8];
|
|
};
|
|
|
|
struct ucontext_ia32 {
|
|
unsigned int uc_flags;
|
|
unsigned int uc_link;
|
|
compat_stack_t uc_stack;
|
|
struct sigcontext_32 uc_mcontext;
|
|
compat_sigset_t uc_sigmask;
|
|
};
|
|
|
|
struct rt_sigframe_ia32 {
|
|
u32 pretcode;
|
|
int sig;
|
|
u32 pinfo;
|
|
u32 puc;
|
|
compat_siginfo_t info;
|
|
struct ucontext_ia32 uc;
|
|
char retcode[8];
|
|
};
|
|
|
|
struct mtrr_ops {
|
|
u32 vendor;
|
|
void (*set)(unsigned int, unsigned long, unsigned long, mtrr_type);
|
|
void (*get)(unsigned int, unsigned long *, unsigned long *, mtrr_type *);
|
|
int (*get_free_region)(unsigned long, unsigned long, int);
|
|
int (*validate_add_page)(unsigned long, unsigned long, unsigned int);
|
|
int (*have_wrcomb)();
|
|
};
|
|
|
|
struct mtrr_var_range {
|
|
__u32 base_lo;
|
|
__u32 base_hi;
|
|
__u32 mask_lo;
|
|
__u32 mask_hi;
|
|
};
|
|
|
|
struct mtrr_state_type {
|
|
struct mtrr_var_range var_ranges[256];
|
|
mtrr_type fixed_ranges[88];
|
|
unsigned char enabled;
|
|
unsigned char have_fixed;
|
|
mtrr_type def_type;
|
|
};
|
|
|
|
struct fixed_range_block {
|
|
int base_msr;
|
|
int ranges;
|
|
};
|
|
|
|
struct hypervisor_x86 {
|
|
const char *name;
|
|
uint32_t (*detect)();
|
|
enum x86_hypervisor_type type;
|
|
struct x86_hyper_init init;
|
|
struct x86_hyper_runtime runtime;
|
|
bool ignore_nopv;
|
|
};
|
|
|
|
struct ghcb_save_area {
|
|
u8 reserved_0x0[203];
|
|
u8 cpl;
|
|
u8 reserved_0xcc[116];
|
|
u64 xss;
|
|
u8 reserved_0x148[24];
|
|
u64 dr7;
|
|
u8 reserved_0x168[16];
|
|
u64 rip;
|
|
u8 reserved_0x180[88];
|
|
u64 rsp;
|
|
u8 reserved_0x1e0[24];
|
|
u64 rax;
|
|
u8 reserved_0x200[264];
|
|
u64 rcx;
|
|
u64 rdx;
|
|
u64 rbx;
|
|
u8 reserved_0x320[8];
|
|
u64 rbp;
|
|
u64 rsi;
|
|
u64 rdi;
|
|
u64 r8;
|
|
u64 r9;
|
|
u64 r10;
|
|
u64 r11;
|
|
u64 r12;
|
|
u64 r13;
|
|
u64 r14;
|
|
u64 r15;
|
|
u8 reserved_0x380[16];
|
|
u64 sw_exit_code;
|
|
u64 sw_exit_info_1;
|
|
u64 sw_exit_info_2;
|
|
u64 sw_scratch;
|
|
u8 reserved_0x3b0[56];
|
|
u64 xcr0;
|
|
u8 valid_bitmap[16];
|
|
u64 x87_state_gpa;
|
|
};
|
|
|
|
struct ghcb {
|
|
struct ghcb_save_area save;
|
|
u8 reserved_save[1016];
|
|
u8 shared_buffer[2032];
|
|
u8 reserved_0xff0[10];
|
|
u16 protocol_version;
|
|
u32 ghcb_usage;
|
|
};
|
|
|
|
struct vmware_steal_time {
|
|
union {
|
|
uint64_t clock;
|
|
struct {
|
|
uint32_t clock_low;
|
|
uint32_t clock_high;
|
|
};
|
|
};
|
|
uint64_t reserved[7];
|
|
};
|
|
|
|
struct irq_matrix;
|
|
|
|
enum {
|
|
X86_IRQ_ALLOC_LEGACY = 1,
|
|
};
|
|
|
|
struct apic_chip_data {
|
|
struct irq_cfg hw_irq_cfg;
|
|
unsigned int vector;
|
|
unsigned int prev_vector;
|
|
unsigned int cpu;
|
|
unsigned int prev_cpu;
|
|
unsigned int irq;
|
|
struct hlist_node clist;
|
|
unsigned int move_in_progress: 1;
|
|
unsigned int is_managed: 1;
|
|
unsigned int can_reserve: 1;
|
|
unsigned int has_reserved: 1;
|
|
};
|
|
|
|
struct waitid_info;
|
|
|
|
struct wait_opts {
|
|
enum pid_type wo_type;
|
|
int wo_flags;
|
|
struct pid *wo_pid;
|
|
struct waitid_info *wo_info;
|
|
int wo_stat;
|
|
struct rusage *wo_rusage;
|
|
wait_queue_entry_t child_wait;
|
|
int notask_error;
|
|
};
|
|
|
|
struct waitid_info {
|
|
pid_t pid;
|
|
uid_t uid;
|
|
int status;
|
|
int cause;
|
|
};
|
|
|
|
enum {
|
|
IRQ_STARTUP_NORMAL = 0,
|
|
IRQ_STARTUP_MANAGED = 1,
|
|
IRQ_STARTUP_ABORT = 2,
|
|
};
|
|
|
|
typedef struct {
|
|
seqcount_t seqcount;
|
|
} seqcount_latch_t;
|
|
|
|
struct tk_read_base {
|
|
struct clocksource *clock;
|
|
u64 mask;
|
|
u64 cycle_last;
|
|
u32 mult;
|
|
u32 shift;
|
|
u64 xtime_nsec;
|
|
ktime_t base;
|
|
u64 base_real;
|
|
};
|
|
|
|
struct tk_fast {
|
|
seqcount_latch_t seq;
|
|
struct tk_read_base base[2];
|
|
};
|
|
|
|
struct timekeeper {
|
|
struct tk_read_base tkr_mono;
|
|
struct tk_read_base tkr_raw;
|
|
u64 xtime_sec;
|
|
unsigned long ktime_sec;
|
|
struct timespec64 wall_to_monotonic;
|
|
ktime_t offs_real;
|
|
ktime_t offs_boot;
|
|
ktime_t offs_tai;
|
|
s32 tai_offset;
|
|
unsigned int clock_was_set_seq;
|
|
u8 cs_was_changed_seq;
|
|
ktime_t next_leap_ktime;
|
|
u64 raw_sec;
|
|
struct timespec64 monotonic_to_boot;
|
|
u64 cycle_interval;
|
|
u64 xtime_interval;
|
|
s64 xtime_remainder;
|
|
u64 raw_interval;
|
|
u64 ntp_tick;
|
|
s64 ntp_error;
|
|
u32 ntp_error_shift;
|
|
u32 ntp_err_mult;
|
|
u32 skip_second_overflow;
|
|
};
|
|
|
|
enum timekeeping_adv_mode {
|
|
TK_ADV_TICK = 0,
|
|
TK_ADV_FREQ = 1,
|
|
};
|
|
|
|
struct ktime_timestamps {
|
|
u64 mono;
|
|
u64 boot;
|
|
u64 real;
|
|
};
|
|
|
|
struct pids_cgroup {
|
|
struct cgroup_subsys_state css;
|
|
atomic64_t counter;
|
|
atomic64_t limit;
|
|
int64_t watermark;
|
|
struct cgroup_file events_file;
|
|
atomic64_t events_limit;
|
|
};
|
|
|
|
struct listener_list {
|
|
struct rw_semaphore sem;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum {
|
|
TASKSTATS_CMD_UNSPEC = 0,
|
|
TASKSTATS_CMD_GET = 1,
|
|
TASKSTATS_CMD_NEW = 2,
|
|
__TASKSTATS_CMD_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
TASKSTATS_TYPE_UNSPEC = 0,
|
|
TASKSTATS_TYPE_PID = 1,
|
|
TASKSTATS_TYPE_TGID = 2,
|
|
TASKSTATS_TYPE_STATS = 3,
|
|
TASKSTATS_TYPE_AGGR_PID = 4,
|
|
TASKSTATS_TYPE_AGGR_TGID = 5,
|
|
TASKSTATS_TYPE_NULL = 6,
|
|
__TASKSTATS_TYPE_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
TASKSTATS_CMD_ATTR_UNSPEC = 0,
|
|
TASKSTATS_CMD_ATTR_PID = 1,
|
|
TASKSTATS_CMD_ATTR_TGID = 2,
|
|
TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 3,
|
|
TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 4,
|
|
__TASKSTATS_CMD_ATTR_MAX = 5,
|
|
};
|
|
|
|
enum actions {
|
|
REGISTER = 0,
|
|
DEREGISTER = 1,
|
|
CPU_DONT_CARE = 2,
|
|
};
|
|
|
|
enum {
|
|
CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
|
|
CGROUPSTATS_CMD_ATTR_FD = 1,
|
|
__CGROUPSTATS_CMD_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
CGROUPSTATS_CMD_UNSPEC = 3,
|
|
CGROUPSTATS_CMD_GET = 4,
|
|
CGROUPSTATS_CMD_NEW = 5,
|
|
__CGROUPSTATS_CMD_MAX = 6,
|
|
};
|
|
|
|
enum {
|
|
CGROUPSTATS_TYPE_UNSPEC = 0,
|
|
CGROUPSTATS_TYPE_CGROUP_STATS = 1,
|
|
__CGROUPSTATS_TYPE_MAX = 2,
|
|
};
|
|
|
|
struct listener {
|
|
struct list_head list;
|
|
pid_t pid;
|
|
char valid;
|
|
};
|
|
|
|
struct cgroupstats {
|
|
__u64 nr_sleeping;
|
|
__u64 nr_running;
|
|
__u64 nr_stopped;
|
|
__u64 nr_uninterruptible;
|
|
__u64 nr_io_wait;
|
|
};
|
|
|
|
struct uprobe_cpu_buffer {
|
|
struct mutex mutex;
|
|
void *buf;
|
|
};
|
|
|
|
enum uprobe_filter_ctx {
|
|
UPROBE_FILTER_REGISTER = 0,
|
|
UPROBE_FILTER_UNREGISTER = 1,
|
|
UPROBE_FILTER_MMAP = 2,
|
|
};
|
|
|
|
struct uprobe_consumer {
|
|
int (*handler)(struct uprobe_consumer *, struct pt_regs *);
|
|
int (*ret_handler)(struct uprobe_consumer *, unsigned long, struct pt_regs *);
|
|
bool (*filter)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *);
|
|
struct uprobe_consumer *next;
|
|
};
|
|
|
|
struct trace_uprobe {
|
|
struct dyn_event devent;
|
|
struct uprobe_consumer consumer;
|
|
struct path path;
|
|
struct inode *inode;
|
|
char *filename;
|
|
unsigned long offset;
|
|
unsigned long ref_ctr_offset;
|
|
unsigned long nhit;
|
|
struct trace_probe tp;
|
|
};
|
|
|
|
struct uprobe_trace_entry_head {
|
|
struct trace_entry ent;
|
|
unsigned long vaddr[0];
|
|
};
|
|
|
|
struct uprobe_dispatch_data {
|
|
struct trace_uprobe *tu;
|
|
unsigned long bp_addr;
|
|
};
|
|
|
|
typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *);
|
|
|
|
enum vma_resv_mode {
|
|
VMA_NEEDS_RESV = 0,
|
|
VMA_COMMIT_RESV = 1,
|
|
VMA_END_RESV = 2,
|
|
VMA_ADD_RESV = 3,
|
|
VMA_DEL_RESV = 4,
|
|
};
|
|
|
|
struct huge_bootmem_page {
|
|
struct list_head list;
|
|
struct hstate *hstate;
|
|
};
|
|
|
|
struct iomap_ops;
|
|
|
|
enum {
|
|
BIAS = 2147483648,
|
|
};
|
|
|
|
struct pde_opener {
|
|
struct list_head lh;
|
|
struct file *file;
|
|
bool closing;
|
|
struct completion *c;
|
|
};
|
|
|
|
typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int);
|
|
|
|
typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *);
|
|
|
|
typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *);
|
|
|
|
typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *);
|
|
|
|
typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *);
|
|
|
|
typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *);
|
|
|
|
typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *);
|
|
|
|
typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *);
|
|
|
|
typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int);
|
|
|
|
typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int);
|
|
|
|
typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *);
|
|
|
|
typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *);
|
|
|
|
typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t);
|
|
|
|
typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long);
|
|
|
|
typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, unsigned long, tid_t);
|
|
|
|
struct trace_event_raw_jbd2_checkpoint {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
int result;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_commit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
char sync_commit;
|
|
tid_t transaction;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_end_commit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
char sync_commit;
|
|
tid_t transaction;
|
|
tid_t head;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_submit_inode_data {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
ino_t ino;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_handle_start_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tid;
|
|
unsigned int type;
|
|
unsigned int line_no;
|
|
int requested_blocks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_handle_extend {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tid;
|
|
unsigned int type;
|
|
unsigned int line_no;
|
|
int buffer_credits;
|
|
int requested_blocks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_handle_stats {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tid;
|
|
unsigned int type;
|
|
unsigned int line_no;
|
|
int interval;
|
|
int sync;
|
|
int requested_blocks;
|
|
int dirtied_blocks;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_run_stats {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tid;
|
|
unsigned long wait;
|
|
unsigned long request_delay;
|
|
unsigned long running;
|
|
unsigned long locked;
|
|
unsigned long flushing;
|
|
unsigned long logging;
|
|
__u32 handle_count;
|
|
__u32 blocks;
|
|
__u32 blocks_logged;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_checkpoint_stats {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tid;
|
|
unsigned long chp_time;
|
|
__u32 forced_to_close;
|
|
__u32 written;
|
|
__u32 dropped;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_update_log_tail {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t tail_sequence;
|
|
tid_t first_tid;
|
|
unsigned long block_nr;
|
|
unsigned long freed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_write_superblock {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
blk_opf_t write_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_lock_buffer_stall {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long stall_ms;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_journal_shrink {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long nr_to_scan;
|
|
unsigned long count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_shrink_scan_exit {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
unsigned long nr_to_scan;
|
|
unsigned long nr_shrunk;
|
|
unsigned long count;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_jbd2_shrink_checkpoint_list {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
tid_t first_tid;
|
|
tid_t tid;
|
|
tid_t last_tid;
|
|
unsigned long nr_freed;
|
|
unsigned long nr_scanned;
|
|
tid_t next_tid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_jbd2_checkpoint {};
|
|
|
|
struct trace_event_data_offsets_jbd2_commit {};
|
|
|
|
struct trace_event_data_offsets_jbd2_end_commit {};
|
|
|
|
struct trace_event_data_offsets_jbd2_submit_inode_data {};
|
|
|
|
struct trace_event_data_offsets_jbd2_handle_start_class {};
|
|
|
|
struct trace_event_data_offsets_jbd2_handle_extend {};
|
|
|
|
struct trace_event_data_offsets_jbd2_handle_stats {};
|
|
|
|
struct trace_event_data_offsets_jbd2_run_stats {};
|
|
|
|
struct trace_event_data_offsets_jbd2_checkpoint_stats {};
|
|
|
|
struct trace_event_data_offsets_jbd2_update_log_tail {};
|
|
|
|
struct trace_event_data_offsets_jbd2_write_superblock {};
|
|
|
|
struct trace_event_data_offsets_jbd2_lock_buffer_stall {};
|
|
|
|
struct trace_event_data_offsets_jbd2_journal_shrink {};
|
|
|
|
struct trace_event_data_offsets_jbd2_shrink_scan_exit {};
|
|
|
|
struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {};
|
|
|
|
struct jbd2_stats_proc_session {
|
|
journal_t *journal;
|
|
struct transaction_stats_s *stats;
|
|
int start;
|
|
int max;
|
|
};
|
|
|
|
struct nlm_wait {
|
|
struct list_head b_list;
|
|
wait_queue_head_t b_wait;
|
|
struct nlm_host *b_host;
|
|
struct file_lock *b_lock;
|
|
unsigned short b_reclaim;
|
|
__be32 b_status;
|
|
};
|
|
|
|
struct nlmclnt_initdata {
|
|
const char *hostname;
|
|
const struct sockaddr *address;
|
|
size_t addrlen;
|
|
unsigned short protocol;
|
|
u32 nfs_version;
|
|
int noresvport;
|
|
struct net *net;
|
|
const struct nlmclnt_operations *nlmclnt_ops;
|
|
const struct cred *cred;
|
|
};
|
|
|
|
struct dotl_openflag_map {
|
|
int open_flag;
|
|
int dotl_flag;
|
|
};
|
|
|
|
struct dotl_iattr_map {
|
|
int iattr_valid;
|
|
int p9_iattr_valid;
|
|
};
|
|
|
|
enum {
|
|
IOPRIO_WHO_PROCESS = 1,
|
|
IOPRIO_WHO_PGRP = 2,
|
|
IOPRIO_WHO_USER = 3,
|
|
};
|
|
|
|
enum {
|
|
IORING_CQE_BUFFER_SHIFT = 16,
|
|
};
|
|
|
|
struct io_provide_buf {
|
|
struct file *file;
|
|
__u64 addr;
|
|
__u32 len;
|
|
__u32 bgid;
|
|
__u16 nbufs;
|
|
__u16 bid;
|
|
};
|
|
|
|
struct io_uring_buf_reg {
|
|
__u64 ring_addr;
|
|
__u32 ring_entries;
|
|
__u16 bgid;
|
|
__u16 pad;
|
|
__u64 resv[3];
|
|
};
|
|
|
|
typedef enum {
|
|
ZSTD_dlm_byCopy = 0,
|
|
ZSTD_dlm_byRef = 1,
|
|
} ZSTD_dictLoadMethod_e;
|
|
|
|
typedef enum {
|
|
ZSTD_dct_auto = 0,
|
|
ZSTD_dct_rawContent = 1,
|
|
ZSTD_dct_fullDict = 2,
|
|
} ZSTD_dictContentType_e;
|
|
|
|
enum lzma2_seq {
|
|
SEQ_CONTROL = 0,
|
|
SEQ_UNCOMPRESSED_1 = 1,
|
|
SEQ_UNCOMPRESSED_2 = 2,
|
|
SEQ_COMPRESSED_0 = 3,
|
|
SEQ_COMPRESSED_1 = 4,
|
|
SEQ_PROPERTIES = 5,
|
|
SEQ_LZMA_PREPARE = 6,
|
|
SEQ_LZMA_RUN = 7,
|
|
SEQ_COPY = 8,
|
|
};
|
|
|
|
enum lzma_state {
|
|
STATE_LIT_LIT = 0,
|
|
STATE_MATCH_LIT_LIT = 1,
|
|
STATE_REP_LIT_LIT = 2,
|
|
STATE_SHORTREP_LIT_LIT = 3,
|
|
STATE_MATCH_LIT = 4,
|
|
STATE_REP_LIT = 5,
|
|
STATE_SHORTREP_LIT = 6,
|
|
STATE_LIT_MATCH = 7,
|
|
STATE_LIT_LONGREP = 8,
|
|
STATE_LIT_SHORTREP = 9,
|
|
STATE_NONLIT_MATCH = 10,
|
|
STATE_NONLIT_REP = 11,
|
|
};
|
|
|
|
struct rc_dec {
|
|
uint32_t range;
|
|
uint32_t code;
|
|
uint32_t init_bytes_left;
|
|
const uint8_t *in;
|
|
size_t in_pos;
|
|
size_t in_limit;
|
|
};
|
|
|
|
struct dictionary {
|
|
uint8_t *buf;
|
|
size_t start;
|
|
size_t pos;
|
|
size_t full;
|
|
size_t limit;
|
|
size_t end;
|
|
uint32_t size;
|
|
uint32_t size_max;
|
|
uint32_t allocated;
|
|
enum xz_mode mode;
|
|
};
|
|
|
|
struct lzma2_dec {
|
|
enum lzma2_seq sequence;
|
|
enum lzma2_seq next_sequence;
|
|
uint32_t uncompressed;
|
|
uint32_t compressed;
|
|
bool need_dict_reset;
|
|
bool need_props;
|
|
};
|
|
|
|
struct lzma_len_dec {
|
|
uint16_t choice;
|
|
uint16_t choice2;
|
|
uint16_t low[128];
|
|
uint16_t mid[128];
|
|
uint16_t high[256];
|
|
};
|
|
|
|
struct lzma_dec {
|
|
uint32_t rep0;
|
|
uint32_t rep1;
|
|
uint32_t rep2;
|
|
uint32_t rep3;
|
|
enum lzma_state state;
|
|
uint32_t len;
|
|
uint32_t lc;
|
|
uint32_t literal_pos_mask;
|
|
uint32_t pos_mask;
|
|
uint16_t is_match[192];
|
|
uint16_t is_rep[12];
|
|
uint16_t is_rep0[12];
|
|
uint16_t is_rep1[12];
|
|
uint16_t is_rep2[12];
|
|
uint16_t is_rep0_long[192];
|
|
uint16_t dist_slot[256];
|
|
uint16_t dist_special[114];
|
|
uint16_t dist_align[16];
|
|
struct lzma_len_dec match_len_dec;
|
|
struct lzma_len_dec rep_len_dec;
|
|
uint16_t literal[12288];
|
|
};
|
|
|
|
struct xz_dec_lzma2 {
|
|
struct rc_dec rc;
|
|
struct dictionary dict;
|
|
struct lzma2_dec lzma2;
|
|
struct lzma_dec lzma;
|
|
struct {
|
|
uint32_t size;
|
|
uint8_t buf[63];
|
|
} temp;
|
|
};
|
|
|
|
struct irq_glue {
|
|
struct irq_affinity_notify notify;
|
|
struct cpu_rmap *rmap;
|
|
u16 index;
|
|
};
|
|
|
|
enum enable_type {
|
|
undefined = -1,
|
|
user_disabled = 0,
|
|
auto_disabled = 1,
|
|
user_enabled = 2,
|
|
auto_enabled = 3,
|
|
};
|
|
|
|
enum release_type {
|
|
leaf_only = 0,
|
|
whole_subtree = 1,
|
|
};
|
|
|
|
struct pci_dev_resource {
|
|
struct list_head list;
|
|
struct resource *res;
|
|
struct pci_dev *dev;
|
|
resource_size_t start;
|
|
resource_size_t end;
|
|
resource_size_t add_size;
|
|
resource_size_t min_align;
|
|
unsigned long flags;
|
|
};
|
|
|
|
enum sys_off_mode {
|
|
SYS_OFF_MODE_POWER_OFF_PREPARE = 0,
|
|
SYS_OFF_MODE_POWER_OFF = 1,
|
|
SYS_OFF_MODE_RESTART_PREPARE = 2,
|
|
SYS_OFF_MODE_RESTART = 3,
|
|
};
|
|
|
|
struct sys_off_handler;
|
|
|
|
struct sys_off_data {
|
|
int mode;
|
|
void *cb_data;
|
|
const char *cmd;
|
|
};
|
|
|
|
struct acpi_reg_walk_info {
|
|
u32 function;
|
|
u32 reg_run_count;
|
|
acpi_adr_space_type space_id;
|
|
};
|
|
|
|
struct acpi_pcc_info {
|
|
u8 subspace_id;
|
|
u16 length;
|
|
u8 *internal_buffer;
|
|
};
|
|
|
|
struct acpi_ffh_info {
|
|
u64 offset;
|
|
u64 length;
|
|
};
|
|
|
|
struct hsu_dma_sg;
|
|
|
|
struct hsu_dma_desc {
|
|
struct virt_dma_desc vdesc;
|
|
enum dma_transfer_direction direction;
|
|
struct hsu_dma_sg *sg;
|
|
unsigned int nents;
|
|
size_t length;
|
|
unsigned int active;
|
|
enum dma_status status;
|
|
};
|
|
|
|
struct hsu_dma_sg {
|
|
dma_addr_t addr;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct hsu_dma_chan {
|
|
struct virt_dma_chan vchan;
|
|
void *reg;
|
|
enum dma_transfer_direction direction;
|
|
struct dma_slave_config config;
|
|
struct hsu_dma_desc *desc;
|
|
};
|
|
|
|
struct hsu_dma {
|
|
struct dma_device dma;
|
|
struct hsu_dma_chan *chan;
|
|
unsigned short nr_channels;
|
|
};
|
|
|
|
struct earlycon_device {
|
|
struct console *con;
|
|
struct uart_port port;
|
|
char options[32];
|
|
unsigned int baud;
|
|
};
|
|
|
|
struct earlycon_id {
|
|
char name[15];
|
|
char name_term;
|
|
char compatible[128];
|
|
int (*setup)(struct earlycon_device *, const char *);
|
|
};
|
|
|
|
struct i915_debugfs_files {
|
|
const char *name;
|
|
const struct file_operations *fops;
|
|
};
|
|
|
|
struct drm_info_node___2 {
|
|
struct drm_minor___2 *minor;
|
|
const struct drm_info_list *info_ent;
|
|
struct list_head list;
|
|
struct dentry *dent;
|
|
};
|
|
|
|
struct drm_i915_gem_exec_object2;
|
|
|
|
struct eb_vma {
|
|
struct i915_vma *vma;
|
|
unsigned int flags;
|
|
struct drm_i915_gem_exec_object2 *exec;
|
|
struct list_head bind_link;
|
|
struct list_head reloc_link;
|
|
struct hlist_node node;
|
|
u32 handle;
|
|
};
|
|
|
|
struct drm_i915_gem_exec_object2 {
|
|
__u32 handle;
|
|
__u32 relocation_count;
|
|
__u64 relocs_ptr;
|
|
__u64 alignment;
|
|
__u64 offset;
|
|
__u64 flags;
|
|
union {
|
|
__u64 rsvd1;
|
|
__u64 pad_to_size;
|
|
};
|
|
__u64 rsvd2;
|
|
};
|
|
|
|
struct reloc_cache {
|
|
struct drm_mm_node node;
|
|
unsigned long vaddr;
|
|
unsigned long page;
|
|
unsigned int graphics_ver;
|
|
bool use_64bit_reloc: 1;
|
|
bool has_llc: 1;
|
|
bool has_fence: 1;
|
|
bool needs_unfenced: 1;
|
|
};
|
|
|
|
struct drm_i915_gem_execbuffer2;
|
|
|
|
struct eb_fence;
|
|
|
|
struct i915_execbuffer {
|
|
struct drm_i915_private___3 *i915;
|
|
struct drm_file___2 *file;
|
|
struct drm_i915_gem_execbuffer2 *args;
|
|
struct drm_i915_gem_exec_object2 *exec;
|
|
struct eb_vma *vma;
|
|
struct intel_gt *gt;
|
|
struct intel_context *context;
|
|
struct i915_gem_context *gem_context;
|
|
struct i915_request *requests[9];
|
|
struct eb_vma *batches[9];
|
|
struct i915_vma *trampoline;
|
|
struct dma_fence *composite_fence;
|
|
unsigned int buffer_count;
|
|
unsigned int num_batches;
|
|
struct list_head unbound;
|
|
struct list_head relocs;
|
|
struct i915_gem_ww_ctx ww;
|
|
struct reloc_cache reloc_cache;
|
|
u64 invalid_flags;
|
|
u64 batch_len[9];
|
|
u32 batch_start_offset;
|
|
u32 batch_flags;
|
|
struct intel_gt_buffer_pool_node *batch_pool;
|
|
int lut_size;
|
|
struct hlist_head *buckets;
|
|
struct eb_fence *fences;
|
|
unsigned long num_fences;
|
|
struct i915_capture_list *capture_lists[9];
|
|
};
|
|
|
|
struct drm_i915_gem_execbuffer2 {
|
|
__u64 buffers_ptr;
|
|
__u32 buffer_count;
|
|
__u32 batch_start_offset;
|
|
__u32 batch_len;
|
|
__u32 DR1;
|
|
__u32 DR4;
|
|
__u32 num_cliprects;
|
|
__u64 cliprects_ptr;
|
|
__u64 flags;
|
|
__u64 rsvd1;
|
|
__u64 rsvd2;
|
|
};
|
|
|
|
struct eb_fence {
|
|
struct drm_syncobj *syncobj;
|
|
struct dma_fence *dma_fence;
|
|
u64 value;
|
|
struct dma_fence_chain *chain_fence;
|
|
};
|
|
|
|
struct drm_i915_gem_relocation_entry {
|
|
__u32 target_handle;
|
|
__u32 delta;
|
|
__u64 offset;
|
|
__u64 presumed_offset;
|
|
__u32 read_domains;
|
|
__u32 write_domain;
|
|
};
|
|
|
|
struct drm_i915_gem_exec_fence {
|
|
__u32 handle;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct drm_i915_gem_execbuffer_ext_timeline_fences {
|
|
struct i915_user_extension base;
|
|
__u64 fence_count;
|
|
__u64 handles_ptr;
|
|
__u64 values_ptr;
|
|
};
|
|
|
|
struct i915_vma_work;
|
|
|
|
enum vga_switcheroo_handler_flags_t {
|
|
VGA_SWITCHEROO_CAN_SWITCH_DDC = 1,
|
|
VGA_SWITCHEROO_NEEDS_EDP_CONFIG = 2,
|
|
};
|
|
|
|
struct intel_lvds_pps {
|
|
int t1_t2;
|
|
int t3;
|
|
int t4;
|
|
int t5;
|
|
int tx;
|
|
int divider;
|
|
int port;
|
|
bool powerdown_on_reset;
|
|
};
|
|
|
|
struct intel_lvds_encoder {
|
|
struct intel_encoder base;
|
|
bool is_dual_link;
|
|
i915_reg_t reg;
|
|
u32 a3_power;
|
|
struct intel_lvds_pps init_pps;
|
|
u32 init_lvds_val;
|
|
struct intel_connector *attached_connector;
|
|
};
|
|
|
|
struct anon_transport_class {
|
|
struct transport_class tclass;
|
|
struct attribute_container container;
|
|
};
|
|
|
|
struct firmware_cache {
|
|
spinlock_t lock;
|
|
struct list_head head;
|
|
int state;
|
|
spinlock_t name_lock;
|
|
struct list_head fw_names;
|
|
struct delayed_work work;
|
|
struct notifier_block pm_notify;
|
|
};
|
|
|
|
enum fw_status {
|
|
FW_STATUS_UNKNOWN = 0,
|
|
FW_STATUS_LOADING = 1,
|
|
FW_STATUS_DONE = 2,
|
|
FW_STATUS_ABORTED = 3,
|
|
};
|
|
|
|
enum fw_opt {
|
|
FW_OPT_UEVENT = 1,
|
|
FW_OPT_NOWAIT = 2,
|
|
FW_OPT_USERHELPER = 4,
|
|
FW_OPT_NO_WARN = 8,
|
|
FW_OPT_NOCACHE = 16,
|
|
FW_OPT_NOFALLBACK_SYSFS = 32,
|
|
FW_OPT_FALLBACK_PLATFORM = 64,
|
|
FW_OPT_PARTIAL = 128,
|
|
};
|
|
|
|
struct fw_state {
|
|
struct completion completion;
|
|
enum fw_status status;
|
|
};
|
|
|
|
struct fw_priv {
|
|
struct kref ref;
|
|
struct list_head list;
|
|
struct firmware_cache *fwc;
|
|
struct fw_state fw_st;
|
|
void *data;
|
|
size_t size;
|
|
size_t allocated_size;
|
|
size_t offset;
|
|
u32 opt_flags;
|
|
const char *fw_name;
|
|
};
|
|
|
|
struct firmware_work {
|
|
struct work_struct work;
|
|
struct module *module;
|
|
const char *name;
|
|
struct device *device;
|
|
void *context;
|
|
void (*cont)(const struct firmware *, void *);
|
|
u32 opt_flags;
|
|
};
|
|
|
|
struct fw_cache_entry {
|
|
struct list_head list;
|
|
const char *name;
|
|
};
|
|
|
|
struct fw_name_devm {
|
|
unsigned long magic;
|
|
const char *name;
|
|
};
|
|
|
|
struct ccs_modesel_head {
|
|
__u8 _r1;
|
|
__u8 medium;
|
|
__u8 _r2;
|
|
__u8 block_desc_length;
|
|
__u8 density;
|
|
__u8 number_blocks_hi;
|
|
__u8 number_blocks_med;
|
|
__u8 number_blocks_lo;
|
|
__u8 _r3;
|
|
__u8 block_length_hi;
|
|
__u8 block_length_med;
|
|
__u8 block_length_lo;
|
|
};
|
|
|
|
struct swmii_regs {
|
|
u16 bmsr;
|
|
u16 lpa;
|
|
u16 lpagb;
|
|
u16 estat;
|
|
};
|
|
|
|
enum {
|
|
SWMII_SPEED_10 = 0,
|
|
SWMII_SPEED_100 = 1,
|
|
SWMII_SPEED_1000 = 2,
|
|
SWMII_DUPLEX_HALF = 0,
|
|
SWMII_DUPLEX_FULL = 1,
|
|
};
|
|
|
|
struct rtl821x_priv {
|
|
u16 phycr1;
|
|
u16 phycr2;
|
|
bool has_phycr2;
|
|
};
|
|
|
|
typedef unsigned long u_long;
|
|
|
|
struct resource_map {
|
|
u_long base;
|
|
u_long num;
|
|
struct resource_map *next;
|
|
};
|
|
|
|
struct socket_data {
|
|
struct resource_map mem_db;
|
|
struct resource_map mem_db_valid;
|
|
struct resource_map io_db;
|
|
};
|
|
|
|
struct pcmcia_align_data {
|
|
unsigned long mask;
|
|
unsigned long offset;
|
|
struct resource_map *map;
|
|
};
|
|
|
|
struct class_info {
|
|
int class;
|
|
char *class_name;
|
|
};
|
|
|
|
struct lifebook_data {
|
|
struct input_dev *dev2;
|
|
char phys[32];
|
|
};
|
|
|
|
enum ptp_clock_events {
|
|
PTP_CLOCK_ALARM = 0,
|
|
PTP_CLOCK_EXTTS = 1,
|
|
PTP_CLOCK_PPS = 2,
|
|
PTP_CLOCK_PPSUSR = 3,
|
|
};
|
|
|
|
struct ptp_clock_event {
|
|
int type;
|
|
int index;
|
|
union {
|
|
u64 timestamp;
|
|
struct pps_event_time pps_times;
|
|
};
|
|
};
|
|
|
|
enum {
|
|
UNDEFINED_CAPABLE = 0,
|
|
SYSTEM_INTEL_MSR_CAPABLE = 1,
|
|
SYSTEM_AMD_MSR_CAPABLE = 2,
|
|
SYSTEM_IO_CAPABLE = 3,
|
|
};
|
|
|
|
struct acpi_cpufreq_data {
|
|
unsigned int resume;
|
|
unsigned int cpu_feature;
|
|
unsigned int acpi_perf_cpu;
|
|
cpumask_var_t freqdomain_cpus;
|
|
void (*cpu_freq_write)(struct acpi_pct_register *, u32);
|
|
u32 (*cpu_freq_read)(struct acpi_pct_register *);
|
|
};
|
|
|
|
struct drv_cmd {
|
|
struct acpi_pct_register *reg;
|
|
u32 val;
|
|
union {
|
|
void (*write)(struct acpi_pct_register *, u32);
|
|
u32 (*read)(struct acpi_pct_register *);
|
|
} func;
|
|
};
|
|
|
|
struct lg_drv_data {
|
|
unsigned long quirks;
|
|
void *device_props;
|
|
};
|
|
|
|
typedef int (*snd_seq_dump_func_t)(void *, void *, int);
|
|
|
|
enum snd_compr_direction {
|
|
SND_COMPRESS_PLAYBACK = 0,
|
|
SND_COMPRESS_CAPTURE = 1,
|
|
};
|
|
|
|
struct snd_compr_ops;
|
|
|
|
struct snd_compr_runtime;
|
|
|
|
struct snd_compr;
|
|
|
|
struct snd_compr_stream {
|
|
const char *name;
|
|
struct snd_compr_ops *ops;
|
|
struct snd_compr_runtime *runtime;
|
|
struct snd_compr *device;
|
|
struct delayed_work error_work;
|
|
enum snd_compr_direction direction;
|
|
bool metadata_set;
|
|
bool next_track;
|
|
bool partial_drain;
|
|
bool pause_in_draining;
|
|
void *private_data;
|
|
struct snd_dma_buffer dma_buffer;
|
|
};
|
|
|
|
struct snd_compr_params;
|
|
|
|
struct snd_codec;
|
|
|
|
struct snd_compr_metadata;
|
|
|
|
struct snd_compr_tstamp;
|
|
|
|
struct snd_compr_caps;
|
|
|
|
struct snd_compr_codec_caps;
|
|
|
|
struct snd_compr_ops {
|
|
int (*open)(struct snd_compr_stream *);
|
|
int (*free)(struct snd_compr_stream *);
|
|
int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *);
|
|
int (*get_params)(struct snd_compr_stream *, struct snd_codec *);
|
|
int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *);
|
|
int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *);
|
|
int (*trigger)(struct snd_compr_stream *, int);
|
|
int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *);
|
|
int (*copy)(struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t);
|
|
int (*mmap)(struct snd_compr_stream *, struct vm_area_struct *);
|
|
int (*ack)(struct snd_compr_stream *, size_t);
|
|
int (*get_caps)(struct snd_compr_stream *, struct snd_compr_caps *);
|
|
int (*get_codec_caps)(struct snd_compr_stream *, struct snd_compr_codec_caps *);
|
|
};
|
|
|
|
struct snd_compressed_buffer {
|
|
__u32 fragment_size;
|
|
__u32 fragments;
|
|
};
|
|
|
|
struct snd_enc_wma {
|
|
__u32 super_block_align;
|
|
};
|
|
|
|
struct snd_enc_vorbis {
|
|
__s32 quality;
|
|
__u32 managed;
|
|
__u32 max_bit_rate;
|
|
__u32 min_bit_rate;
|
|
__u32 downmix;
|
|
};
|
|
|
|
struct snd_enc_real {
|
|
__u32 quant_bits;
|
|
__u32 start_region;
|
|
__u32 num_regions;
|
|
};
|
|
|
|
struct snd_enc_flac {
|
|
__u32 num;
|
|
__u32 gain;
|
|
};
|
|
|
|
struct snd_enc_generic {
|
|
__u32 bw;
|
|
__s32 reserved[15];
|
|
};
|
|
|
|
struct snd_dec_flac {
|
|
__u16 sample_size;
|
|
__u16 min_blk_size;
|
|
__u16 max_blk_size;
|
|
__u16 min_frame_size;
|
|
__u16 max_frame_size;
|
|
__u16 reserved;
|
|
};
|
|
|
|
struct snd_dec_wma {
|
|
__u32 encoder_option;
|
|
__u32 adv_encoder_option;
|
|
__u32 adv_encoder_option2;
|
|
__u32 reserved;
|
|
};
|
|
|
|
struct snd_dec_alac {
|
|
__u32 frame_length;
|
|
__u8 compatible_version;
|
|
__u8 pb;
|
|
__u8 mb;
|
|
__u8 kb;
|
|
__u32 max_run;
|
|
__u32 max_frame_bytes;
|
|
};
|
|
|
|
struct snd_dec_ape {
|
|
__u16 compatible_version;
|
|
__u16 compression_level;
|
|
__u32 format_flags;
|
|
__u32 blocks_per_frame;
|
|
__u32 final_frame_blocks;
|
|
__u32 total_frames;
|
|
__u32 seek_table_present;
|
|
};
|
|
|
|
union snd_codec_options {
|
|
struct snd_enc_wma wma;
|
|
struct snd_enc_vorbis vorbis;
|
|
struct snd_enc_real real;
|
|
struct snd_enc_flac flac;
|
|
struct snd_enc_generic generic;
|
|
struct snd_dec_flac flac_d;
|
|
struct snd_dec_wma wma_d;
|
|
struct snd_dec_alac alac_d;
|
|
struct snd_dec_ape ape_d;
|
|
};
|
|
|
|
struct snd_codec {
|
|
__u32 id;
|
|
__u32 ch_in;
|
|
__u32 ch_out;
|
|
__u32 sample_rate;
|
|
__u32 bit_rate;
|
|
__u32 rate_control;
|
|
__u32 profile;
|
|
__u32 level;
|
|
__u32 ch_mode;
|
|
__u32 format;
|
|
__u32 align;
|
|
union snd_codec_options options;
|
|
__u32 reserved[3];
|
|
};
|
|
|
|
struct snd_compr_params {
|
|
struct snd_compressed_buffer buffer;
|
|
struct snd_codec codec;
|
|
__u8 no_wake_mode;
|
|
};
|
|
|
|
struct snd_compr_metadata {
|
|
__u32 key;
|
|
__u32 value[8];
|
|
};
|
|
|
|
struct snd_compr_tstamp {
|
|
__u32 byte_offset;
|
|
__u32 copied_total;
|
|
__u32 pcm_frames;
|
|
__u32 pcm_io_frames;
|
|
__u32 sampling_rate;
|
|
};
|
|
|
|
struct snd_compr_caps {
|
|
__u32 num_codecs;
|
|
__u32 direction;
|
|
__u32 min_fragment_size;
|
|
__u32 max_fragment_size;
|
|
__u32 min_fragments;
|
|
__u32 max_fragments;
|
|
__u32 codecs[32];
|
|
__u32 reserved[11];
|
|
};
|
|
|
|
struct snd_codec_desc {
|
|
__u32 max_ch;
|
|
__u32 sample_rates[32];
|
|
__u32 num_sample_rates;
|
|
__u32 bit_rate[32];
|
|
__u32 num_bitrates;
|
|
__u32 rate_control;
|
|
__u32 profiles;
|
|
__u32 modes;
|
|
__u32 formats;
|
|
__u32 min_buffer;
|
|
__u32 reserved[15];
|
|
};
|
|
|
|
struct snd_compr_codec_caps {
|
|
__u32 codec;
|
|
__u32 num_descriptors;
|
|
struct snd_codec_desc descriptor[32];
|
|
};
|
|
|
|
struct snd_compr_runtime {
|
|
snd_pcm_state_t state;
|
|
struct snd_compr_ops *ops;
|
|
void *buffer;
|
|
u64 buffer_size;
|
|
u32 fragment_size;
|
|
u32 fragments;
|
|
u64 total_bytes_available;
|
|
u64 total_bytes_transferred;
|
|
wait_queue_head_t sleep;
|
|
void *private_data;
|
|
unsigned char *dma_area;
|
|
dma_addr_t dma_addr;
|
|
size_t dma_bytes;
|
|
struct snd_dma_buffer *dma_buffer_p;
|
|
};
|
|
|
|
struct snd_compr {
|
|
const char *name;
|
|
struct device dev;
|
|
struct snd_compr_ops *ops;
|
|
void *private_data;
|
|
struct snd_card *card;
|
|
unsigned int direction;
|
|
struct mutex lock;
|
|
int device;
|
|
bool use_pause_in_draining;
|
|
char id[64];
|
|
struct snd_info_entry *proc_root;
|
|
struct snd_info_entry *proc_info_entry;
|
|
};
|
|
|
|
enum {
|
|
NETDEV_A_DEV_IFINDEX = 1,
|
|
NETDEV_A_DEV_PAD = 2,
|
|
NETDEV_A_DEV_XDP_FEATURES = 3,
|
|
__NETDEV_A_DEV_MAX = 4,
|
|
NETDEV_A_DEV_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
NETDEV_CMD_DEV_GET = 1,
|
|
NETDEV_CMD_DEV_ADD_NTF = 2,
|
|
NETDEV_CMD_DEV_DEL_NTF = 3,
|
|
NETDEV_CMD_DEV_CHANGE_NTF = 4,
|
|
__NETDEV_CMD_MAX = 5,
|
|
NETDEV_CMD_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
NETDEV_NLGRP_MGMT = 0,
|
|
};
|
|
|
|
enum netdev_lag_tx_type {
|
|
NETDEV_LAG_TX_TYPE_UNKNOWN = 0,
|
|
NETDEV_LAG_TX_TYPE_RANDOM = 1,
|
|
NETDEV_LAG_TX_TYPE_BROADCAST = 2,
|
|
NETDEV_LAG_TX_TYPE_ROUNDROBIN = 3,
|
|
NETDEV_LAG_TX_TYPE_ACTIVEBACKUP = 4,
|
|
NETDEV_LAG_TX_TYPE_HASH = 5,
|
|
};
|
|
|
|
enum netdev_lag_hash {
|
|
NETDEV_LAG_HASH_NONE = 0,
|
|
NETDEV_LAG_HASH_L2 = 1,
|
|
NETDEV_LAG_HASH_L34 = 2,
|
|
NETDEV_LAG_HASH_L23 = 3,
|
|
NETDEV_LAG_HASH_E23 = 4,
|
|
NETDEV_LAG_HASH_E34 = 5,
|
|
NETDEV_LAG_HASH_VLAN_SRCMAC = 6,
|
|
NETDEV_LAG_HASH_UNKNOWN = 7,
|
|
};
|
|
|
|
struct netdev_lag_upper_info {
|
|
enum netdev_lag_tx_type tx_type;
|
|
enum netdev_lag_hash hash_type;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_DEBUG_UNSPEC = 0,
|
|
ETHTOOL_A_DEBUG_HEADER = 1,
|
|
ETHTOOL_A_DEBUG_MSGMASK = 2,
|
|
__ETHTOOL_A_DEBUG_CNT = 3,
|
|
ETHTOOL_A_DEBUG_MAX = 2,
|
|
};
|
|
|
|
struct debug_reply_data {
|
|
struct ethnl_reply_data base;
|
|
u32 msg_mask;
|
|
};
|
|
|
|
struct nf_ct_bridge_info {
|
|
struct nf_hook_ops *ops;
|
|
unsigned int ops_size;
|
|
struct module *me;
|
|
};
|
|
|
|
enum {
|
|
FR_ACT_UNSPEC = 0,
|
|
FR_ACT_TO_TBL = 1,
|
|
FR_ACT_GOTO = 2,
|
|
FR_ACT_NOP = 3,
|
|
FR_ACT_RES3 = 4,
|
|
FR_ACT_RES4 = 5,
|
|
FR_ACT_BLACKHOLE = 6,
|
|
FR_ACT_UNREACHABLE = 7,
|
|
FR_ACT_PROHIBIT = 8,
|
|
__FR_ACT_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
FRA_UNSPEC = 0,
|
|
FRA_DST = 1,
|
|
FRA_SRC = 2,
|
|
FRA_IIFNAME = 3,
|
|
FRA_GOTO = 4,
|
|
FRA_UNUSED2 = 5,
|
|
FRA_PRIORITY = 6,
|
|
FRA_UNUSED3 = 7,
|
|
FRA_UNUSED4 = 8,
|
|
FRA_UNUSED5 = 9,
|
|
FRA_FWMARK = 10,
|
|
FRA_FLOW = 11,
|
|
FRA_TUN_ID = 12,
|
|
FRA_SUPPRESS_IFGROUP = 13,
|
|
FRA_SUPPRESS_PREFIXLEN = 14,
|
|
FRA_TABLE = 15,
|
|
FRA_FWMASK = 16,
|
|
FRA_OIFNAME = 17,
|
|
FRA_PAD = 18,
|
|
FRA_L3MDEV = 19,
|
|
FRA_UID_RANGE = 20,
|
|
FRA_PROTOCOL = 21,
|
|
FRA_IP_PROTO = 22,
|
|
FRA_SPORT_RANGE = 23,
|
|
FRA_DPORT_RANGE = 24,
|
|
__FRA_MAX = 25,
|
|
};
|
|
|
|
struct fib4_rule {
|
|
struct fib_rule common;
|
|
u8 dst_len;
|
|
u8 src_len;
|
|
dscp_t dscp;
|
|
__be32 src;
|
|
__be32 srcmask;
|
|
__be32 dst;
|
|
__be32 dstmask;
|
|
};
|
|
|
|
struct tcp6_pseudohdr {
|
|
struct in6_addr saddr;
|
|
struct in6_addr daddr;
|
|
__be32 len;
|
|
__be32 protocol;
|
|
};
|
|
|
|
enum {
|
|
GSSX_NULL = 0,
|
|
GSSX_INDICATE_MECHS = 1,
|
|
GSSX_GET_CALL_CONTEXT = 2,
|
|
GSSX_IMPORT_AND_CANON_NAME = 3,
|
|
GSSX_EXPORT_CRED = 4,
|
|
GSSX_IMPORT_CRED = 5,
|
|
GSSX_ACQUIRE_CRED = 6,
|
|
GSSX_STORE_CRED = 7,
|
|
GSSX_INIT_SEC_CONTEXT = 8,
|
|
GSSX_ACCEPT_SEC_CONTEXT = 9,
|
|
GSSX_RELEASE_HANDLE = 10,
|
|
GSSX_GET_MIC = 11,
|
|
GSSX_VERIFY = 12,
|
|
GSSX_WRAP = 13,
|
|
GSSX_UNWRAP = 14,
|
|
GSSX_WRAP_SIZE_LIMIT = 15,
|
|
};
|
|
|
|
typedef struct xdr_netobj utf8string;
|
|
|
|
typedef struct xdr_netobj gssx_buffer;
|
|
|
|
struct gssx_option;
|
|
|
|
struct gssx_option_array {
|
|
u32 count;
|
|
struct gssx_option *data;
|
|
};
|
|
|
|
struct gssx_call_ctx {
|
|
utf8string locale;
|
|
gssx_buffer server_ctx;
|
|
struct gssx_option_array options;
|
|
};
|
|
|
|
struct gssx_ctx;
|
|
|
|
struct gssx_cred;
|
|
|
|
struct gssx_cb;
|
|
|
|
struct gssx_arg_accept_sec_context {
|
|
struct gssx_call_ctx call_ctx;
|
|
struct gssx_ctx *context_handle;
|
|
struct gssx_cred *cred_handle;
|
|
struct gssp_in_token input_token;
|
|
struct gssx_cb *input_cb;
|
|
u32 ret_deleg_cred;
|
|
struct gssx_option_array options;
|
|
struct page **pages;
|
|
unsigned int npages;
|
|
};
|
|
|
|
struct gssx_option {
|
|
gssx_buffer option;
|
|
gssx_buffer value;
|
|
};
|
|
|
|
typedef struct xdr_netobj gssx_OID;
|
|
|
|
struct gssx_name {
|
|
gssx_buffer display_name;
|
|
};
|
|
|
|
typedef struct gssx_name gssx_name;
|
|
|
|
struct gssx_ctx {
|
|
gssx_buffer exported_context_token;
|
|
gssx_buffer state;
|
|
u32 need_release;
|
|
gssx_OID mech;
|
|
gssx_name src_name;
|
|
gssx_name targ_name;
|
|
u64 lifetime;
|
|
u64 ctx_flags;
|
|
u32 locally_initiated;
|
|
u32 open;
|
|
struct gssx_option_array options;
|
|
};
|
|
|
|
struct gssx_cred_element;
|
|
|
|
struct gssx_cred_element_array {
|
|
u32 count;
|
|
struct gssx_cred_element *data;
|
|
};
|
|
|
|
struct gssx_cred {
|
|
gssx_name desired_name;
|
|
struct gssx_cred_element_array elements;
|
|
gssx_buffer cred_handle_reference;
|
|
u32 needs_release;
|
|
};
|
|
|
|
struct gssx_cred_element {
|
|
gssx_name MN;
|
|
gssx_OID mech;
|
|
u32 cred_usage;
|
|
u64 initiator_time_rec;
|
|
u64 acceptor_time_rec;
|
|
struct gssx_option_array options;
|
|
};
|
|
|
|
struct gssx_cb {
|
|
u64 initiator_addrtype;
|
|
gssx_buffer initiator_address;
|
|
u64 acceptor_addrtype;
|
|
gssx_buffer acceptor_address;
|
|
gssx_buffer application_data;
|
|
};
|
|
|
|
struct gssx_status {
|
|
u64 major_status;
|
|
gssx_OID mech;
|
|
u64 minor_status;
|
|
utf8string major_status_string;
|
|
utf8string minor_status_string;
|
|
gssx_buffer server_ctx;
|
|
struct gssx_option_array options;
|
|
};
|
|
|
|
struct gssx_res_accept_sec_context {
|
|
struct gssx_status status;
|
|
struct gssx_ctx *context_handle;
|
|
gssx_buffer *output_token;
|
|
struct gssx_option_array options;
|
|
};
|
|
|
|
enum {
|
|
dns_key_data = 0,
|
|
dns_key_error = 1,
|
|
};
|
|
|
|
struct mptcp_info {
|
|
__u8 mptcpi_subflows;
|
|
__u8 mptcpi_add_addr_signal;
|
|
__u8 mptcpi_add_addr_accepted;
|
|
__u8 mptcpi_subflows_max;
|
|
__u8 mptcpi_add_addr_signal_max;
|
|
__u8 mptcpi_add_addr_accepted_max;
|
|
__u32 mptcpi_flags;
|
|
__u32 mptcpi_token;
|
|
__u64 mptcpi_write_seq;
|
|
__u64 mptcpi_snd_una;
|
|
__u64 mptcpi_rcv_nxt;
|
|
__u8 mptcpi_local_addr_used;
|
|
__u8 mptcpi_local_addr_max;
|
|
__u8 mptcpi_csum_enabled;
|
|
};
|
|
|
|
struct mptcp_subflow_data {
|
|
__u32 size_subflow_data;
|
|
__u32 num_subflows;
|
|
__u32 size_kernel;
|
|
__u32 size_user;
|
|
};
|
|
|
|
struct mptcp_subflow_addrs {
|
|
union {
|
|
__kernel_sa_family_t sa_family;
|
|
struct sockaddr sa_local;
|
|
struct sockaddr_in sin_local;
|
|
struct sockaddr_in6 sin6_local;
|
|
struct __kernel_sockaddr_storage ss_local;
|
|
};
|
|
union {
|
|
struct sockaddr sa_remote;
|
|
struct sockaddr_in sin_remote;
|
|
struct sockaddr_in6 sin6_remote;
|
|
struct __kernel_sockaddr_storage ss_remote;
|
|
};
|
|
};
|
|
|
|
struct tcp_info {
|
|
__u8 tcpi_state;
|
|
__u8 tcpi_ca_state;
|
|
__u8 tcpi_retransmits;
|
|
__u8 tcpi_probes;
|
|
__u8 tcpi_backoff;
|
|
__u8 tcpi_options;
|
|
__u8 tcpi_snd_wscale: 4;
|
|
__u8 tcpi_rcv_wscale: 4;
|
|
__u8 tcpi_delivery_rate_app_limited: 1;
|
|
__u8 tcpi_fastopen_client_fail: 2;
|
|
__u32 tcpi_rto;
|
|
__u32 tcpi_ato;
|
|
__u32 tcpi_snd_mss;
|
|
__u32 tcpi_rcv_mss;
|
|
__u32 tcpi_unacked;
|
|
__u32 tcpi_sacked;
|
|
__u32 tcpi_lost;
|
|
__u32 tcpi_retrans;
|
|
__u32 tcpi_fackets;
|
|
__u32 tcpi_last_data_sent;
|
|
__u32 tcpi_last_ack_sent;
|
|
__u32 tcpi_last_data_recv;
|
|
__u32 tcpi_last_ack_recv;
|
|
__u32 tcpi_pmtu;
|
|
__u32 tcpi_rcv_ssthresh;
|
|
__u32 tcpi_rtt;
|
|
__u32 tcpi_rttvar;
|
|
__u32 tcpi_snd_ssthresh;
|
|
__u32 tcpi_snd_cwnd;
|
|
__u32 tcpi_advmss;
|
|
__u32 tcpi_reordering;
|
|
__u32 tcpi_rcv_rtt;
|
|
__u32 tcpi_rcv_space;
|
|
__u32 tcpi_total_retrans;
|
|
__u64 tcpi_pacing_rate;
|
|
__u64 tcpi_max_pacing_rate;
|
|
__u64 tcpi_bytes_acked;
|
|
__u64 tcpi_bytes_received;
|
|
__u32 tcpi_segs_out;
|
|
__u32 tcpi_segs_in;
|
|
__u32 tcpi_notsent_bytes;
|
|
__u32 tcpi_min_rtt;
|
|
__u32 tcpi_data_segs_in;
|
|
__u32 tcpi_data_segs_out;
|
|
__u64 tcpi_delivery_rate;
|
|
__u64 tcpi_busy_time;
|
|
__u64 tcpi_rwnd_limited;
|
|
__u64 tcpi_sndbuf_limited;
|
|
__u32 tcpi_delivered;
|
|
__u32 tcpi_delivered_ce;
|
|
__u64 tcpi_bytes_sent;
|
|
__u64 tcpi_bytes_retrans;
|
|
__u32 tcpi_dsack_dups;
|
|
__u32 tcpi_reord_seen;
|
|
__u32 tcpi_rcv_ooopack;
|
|
__u32 tcpi_snd_wnd;
|
|
__u32 tcpi_rcv_wnd;
|
|
__u32 tcpi_rehash;
|
|
};
|
|
|
|
typedef struct {
|
|
unsigned long key[2];
|
|
} hsiphash_key_t;
|
|
|
|
union cpuid_0x80000022_ebx {
|
|
struct {
|
|
unsigned int num_core_pmc: 4;
|
|
unsigned int lbr_v2_stack_sz: 6;
|
|
unsigned int num_df_pmc: 6;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int);
|
|
|
|
struct nmi_stats {
|
|
unsigned int normal;
|
|
unsigned int unknown;
|
|
unsigned int external;
|
|
unsigned int swallow;
|
|
unsigned long recv_jiffies;
|
|
unsigned long idt_seq;
|
|
unsigned long idt_nmi_seq;
|
|
unsigned long idt_ignored;
|
|
atomic_long_t idt_calls;
|
|
unsigned long idt_seq_snap;
|
|
unsigned long idt_nmi_seq_snap;
|
|
unsigned long idt_ignored_snap;
|
|
long idt_calls_snap;
|
|
};
|
|
|
|
enum nmi_states {
|
|
NMI_NOT_RUNNING = 0,
|
|
NMI_EXECUTING = 1,
|
|
NMI_LATCHED = 2,
|
|
};
|
|
|
|
struct nmi_desc {
|
|
raw_spinlock_t lock;
|
|
struct list_head head;
|
|
};
|
|
|
|
struct trace_event_raw_nmi_handler {
|
|
struct trace_entry ent;
|
|
void *handler;
|
|
s64 delta_ns;
|
|
int handled;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_nmi_handler {};
|
|
|
|
struct cstate_entry {
|
|
struct {
|
|
unsigned int eax;
|
|
unsigned int ecx;
|
|
} states[8];
|
|
};
|
|
|
|
struct hpet_channel;
|
|
|
|
struct hpet_base {
|
|
unsigned int nr_channels;
|
|
unsigned int nr_clockevents;
|
|
unsigned int boot_cfg;
|
|
struct hpet_channel *channels;
|
|
};
|
|
|
|
enum hpet_mode {
|
|
HPET_MODE_UNUSED = 0,
|
|
HPET_MODE_LEGACY = 1,
|
|
HPET_MODE_CLOCKEVT = 2,
|
|
HPET_MODE_DEVICE = 3,
|
|
};
|
|
|
|
struct hpet_channel {
|
|
struct clock_event_device evt;
|
|
unsigned int num;
|
|
unsigned int cpu;
|
|
unsigned int irq;
|
|
unsigned int in_use;
|
|
enum hpet_mode mode;
|
|
unsigned int boot_cfg;
|
|
char name[10];
|
|
long: 48;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
union hpet_lock {
|
|
struct {
|
|
arch_spinlock_t lock;
|
|
u32 value;
|
|
};
|
|
u64 lockval;
|
|
};
|
|
|
|
typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int);
|
|
|
|
typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *);
|
|
|
|
typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *);
|
|
|
|
typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t);
|
|
|
|
typedef void (*btf_trace_sched_waking)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int);
|
|
|
|
typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int);
|
|
|
|
typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_process_wait)(void *, struct pid *);
|
|
|
|
typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *);
|
|
|
|
typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64);
|
|
|
|
typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64);
|
|
|
|
typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64);
|
|
|
|
typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64);
|
|
|
|
typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64);
|
|
|
|
typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *);
|
|
|
|
typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int);
|
|
|
|
typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int);
|
|
|
|
typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int);
|
|
|
|
typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int);
|
|
|
|
typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *);
|
|
|
|
typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *);
|
|
|
|
typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *);
|
|
|
|
typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *);
|
|
|
|
typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *);
|
|
|
|
typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *);
|
|
|
|
typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *);
|
|
|
|
typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool);
|
|
|
|
typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *);
|
|
|
|
typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *);
|
|
|
|
typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int);
|
|
|
|
enum {
|
|
preempt_dynamic_undefined = -1,
|
|
preempt_dynamic_none = 0,
|
|
preempt_dynamic_voluntary = 1,
|
|
preempt_dynamic_full = 2,
|
|
};
|
|
|
|
enum {
|
|
cpuset = 0,
|
|
possible = 1,
|
|
fail = 2,
|
|
};
|
|
|
|
enum {
|
|
MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1,
|
|
MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2,
|
|
MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4,
|
|
MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8,
|
|
MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16,
|
|
MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32,
|
|
MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64,
|
|
MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128,
|
|
};
|
|
|
|
union cpumask_rcuhead {
|
|
cpumask_t cpumask;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct trace_event_raw_sched_kthread_stop {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_kthread_stop_ret {
|
|
struct trace_entry ent;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_kthread_work_queue_work {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
void *function;
|
|
void *worker;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_kthread_work_execute_start {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
void *function;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_kthread_work_execute_end {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
void *function;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_wakeup_template {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
int prio;
|
|
int target_cpu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_switch {
|
|
struct trace_entry ent;
|
|
char prev_comm[16];
|
|
pid_t prev_pid;
|
|
int prev_prio;
|
|
long prev_state;
|
|
char next_comm[16];
|
|
pid_t next_pid;
|
|
int next_prio;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_migrate_task {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
int prio;
|
|
int orig_cpu;
|
|
int dest_cpu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_process_template {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
int prio;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_process_wait {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
int prio;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_process_fork {
|
|
struct trace_entry ent;
|
|
char parent_comm[16];
|
|
pid_t parent_pid;
|
|
char child_comm[16];
|
|
pid_t child_pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_process_exec {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_filename;
|
|
pid_t pid;
|
|
pid_t old_pid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_stat_template {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
u64 delay;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_stat_runtime {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
u64 runtime;
|
|
u64 vruntime;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_pi_setprio {
|
|
struct trace_entry ent;
|
|
char comm[16];
|
|
pid_t pid;
|
|
int oldprio;
|
|
int newprio;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_move_numa {
|
|
struct trace_entry ent;
|
|
pid_t pid;
|
|
pid_t tgid;
|
|
pid_t ngid;
|
|
int src_cpu;
|
|
int src_nid;
|
|
int dst_cpu;
|
|
int dst_nid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_numa_pair_template {
|
|
struct trace_entry ent;
|
|
pid_t src_pid;
|
|
pid_t src_tgid;
|
|
pid_t src_ngid;
|
|
int src_cpu;
|
|
int src_nid;
|
|
pid_t dst_pid;
|
|
pid_t dst_tgid;
|
|
pid_t dst_ngid;
|
|
int dst_cpu;
|
|
int dst_nid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_sched_wake_idle_without_ipi {
|
|
struct trace_entry ent;
|
|
int cpu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_sched_process_exec {
|
|
u32 filename;
|
|
};
|
|
|
|
struct set_affinity_pending;
|
|
|
|
struct migration_arg {
|
|
struct task_struct *task;
|
|
int dest_cpu;
|
|
struct set_affinity_pending *pending;
|
|
};
|
|
|
|
struct set_affinity_pending {
|
|
refcount_t refs;
|
|
unsigned int stop_pending;
|
|
struct completion done;
|
|
struct cpu_stop_work stop_work;
|
|
struct migration_arg arg;
|
|
};
|
|
|
|
struct trace_event_data_offsets_sched_kthread_stop {};
|
|
|
|
struct trace_event_data_offsets_sched_kthread_stop_ret {};
|
|
|
|
struct trace_event_data_offsets_sched_kthread_work_queue_work {};
|
|
|
|
struct trace_event_data_offsets_sched_kthread_work_execute_start {};
|
|
|
|
struct trace_event_data_offsets_sched_kthread_work_execute_end {};
|
|
|
|
struct trace_event_data_offsets_sched_wakeup_template {};
|
|
|
|
struct trace_event_data_offsets_sched_switch {};
|
|
|
|
struct trace_event_data_offsets_sched_migrate_task {};
|
|
|
|
struct trace_event_data_offsets_sched_process_template {};
|
|
|
|
struct trace_event_data_offsets_sched_process_wait {};
|
|
|
|
struct trace_event_data_offsets_sched_process_fork {};
|
|
|
|
struct trace_event_data_offsets_sched_stat_template {};
|
|
|
|
struct trace_event_data_offsets_sched_stat_runtime {};
|
|
|
|
struct trace_event_data_offsets_sched_pi_setprio {};
|
|
|
|
struct trace_event_data_offsets_sched_move_numa {};
|
|
|
|
struct trace_event_data_offsets_sched_numa_pair_template {};
|
|
|
|
struct trace_event_data_offsets_sched_wake_idle_without_ipi {};
|
|
|
|
typedef int (*tg_visitor)(struct task_group *, void *);
|
|
|
|
struct bpf_map_desc {
|
|
int map_fd;
|
|
__u32 max_entries;
|
|
__u64 initial_value;
|
|
};
|
|
|
|
struct bpf_prog_desc {
|
|
int prog_fd;
|
|
};
|
|
|
|
struct bpf_loader_ctx {
|
|
__u32 sz;
|
|
__u32 flags;
|
|
__u32 log_level;
|
|
__u32 log_size;
|
|
__u64 log_buf;
|
|
};
|
|
|
|
struct iterators_bpf__rodata;
|
|
|
|
struct iterators_bpf {
|
|
struct bpf_loader_ctx ctx;
|
|
struct {
|
|
struct bpf_map_desc rodata;
|
|
} maps;
|
|
struct {
|
|
struct bpf_prog_desc dump_bpf_map;
|
|
struct bpf_prog_desc dump_bpf_prog;
|
|
} progs;
|
|
struct {
|
|
int dump_bpf_map_fd;
|
|
int dump_bpf_prog_fd;
|
|
} links;
|
|
struct iterators_bpf__rodata *rodata;
|
|
};
|
|
|
|
struct iterators_bpf__rodata {};
|
|
|
|
enum {
|
|
BPF_SKEL_KERNEL = 1,
|
|
};
|
|
|
|
struct bpf_load_and_run_opts {
|
|
struct bpf_loader_ctx *ctx;
|
|
const void *data;
|
|
const void *insns;
|
|
__u32 data_sz;
|
|
__u32 insns_sz;
|
|
const char *errstr;
|
|
};
|
|
|
|
struct vm_event_state {
|
|
unsigned long event[76];
|
|
};
|
|
|
|
enum writeback_stat_item {
|
|
NR_DIRTY_THRESHOLD = 0,
|
|
NR_DIRTY_BG_THRESHOLD = 1,
|
|
NR_VM_WRITEBACK_STAT_ITEMS = 2,
|
|
};
|
|
|
|
struct contig_page_info {
|
|
unsigned long free_pages;
|
|
unsigned long free_blocks_total;
|
|
unsigned long free_blocks_suitable;
|
|
};
|
|
|
|
struct memblock {
|
|
bool bottom_up;
|
|
phys_addr_t current_limit;
|
|
struct memblock_type memory;
|
|
struct memblock_type reserved;
|
|
};
|
|
|
|
struct kobj_map;
|
|
|
|
struct char_device_struct {
|
|
struct char_device_struct *next;
|
|
unsigned int major;
|
|
unsigned int baseminor;
|
|
int minorct;
|
|
char name[64];
|
|
struct cdev *cdev;
|
|
};
|
|
|
|
enum umount_tree_flags {
|
|
UMOUNT_SYNC = 1,
|
|
UMOUNT_PROPAGATE = 2,
|
|
UMOUNT_CONNECTED = 4,
|
|
};
|
|
|
|
struct mount_attr {
|
|
__u64 attr_set;
|
|
__u64 attr_clr;
|
|
__u64 propagation;
|
|
__u64 userns_fd;
|
|
};
|
|
|
|
struct mount_kattr {
|
|
unsigned int attr_set;
|
|
unsigned int attr_clr;
|
|
unsigned int propagation;
|
|
unsigned int lookup_flags;
|
|
bool recurse;
|
|
struct user_namespace *mnt_userns;
|
|
struct mnt_idmap *mnt_idmap;
|
|
};
|
|
|
|
struct mnt_idmap {
|
|
struct user_namespace *owner;
|
|
refcount_t count;
|
|
};
|
|
|
|
struct proc_mounts {
|
|
struct mnt_namespace *ns;
|
|
struct path root;
|
|
int (*show)(struct seq_file *, struct vfsmount *);
|
|
struct mount cursor;
|
|
};
|
|
|
|
struct elf_thread_core_info___2;
|
|
|
|
struct elf_note_info___2 {
|
|
struct elf_thread_core_info___2 *thread;
|
|
struct memelfnote psinfo;
|
|
struct memelfnote signote;
|
|
struct memelfnote auxv;
|
|
struct memelfnote files;
|
|
siginfo_t csigdata;
|
|
size_t size;
|
|
int thread_notes;
|
|
};
|
|
|
|
struct elf_thread_core_info___2 {
|
|
struct elf_thread_core_info___2 *next;
|
|
struct task_struct *task;
|
|
struct elf_prstatus prstatus;
|
|
struct memelfnote notes[0];
|
|
};
|
|
|
|
enum {
|
|
EXT4_FC_STATUS_OK = 0,
|
|
EXT4_FC_STATUS_INELIGIBLE = 1,
|
|
EXT4_FC_STATUS_SKIPPED = 2,
|
|
EXT4_FC_STATUS_FAILED = 3,
|
|
};
|
|
|
|
struct ext4_fc_dentry_update {
|
|
int fcd_op;
|
|
int fcd_parent;
|
|
int fcd_ino;
|
|
struct qstr fcd_name;
|
|
unsigned char fcd_iname[32];
|
|
struct list_head fcd_list;
|
|
struct list_head fcd_dilist;
|
|
};
|
|
|
|
struct __track_dentry_update_args {
|
|
struct dentry *dentry;
|
|
int op;
|
|
};
|
|
|
|
struct __track_range_args {
|
|
ext4_lblk_t start;
|
|
ext4_lblk_t end;
|
|
};
|
|
|
|
struct ext4_fc_tl {
|
|
__le16 fc_tag;
|
|
__le16 fc_len;
|
|
};
|
|
|
|
struct ext4_fc_head {
|
|
__le32 fc_features;
|
|
__le32 fc_tid;
|
|
};
|
|
|
|
struct ext4_fc_dentry_info {
|
|
__le32 fc_parent_ino;
|
|
__le32 fc_ino;
|
|
__u8 fc_dname[0];
|
|
};
|
|
|
|
struct ext4_fc_tail {
|
|
__le32 fc_tid;
|
|
__le32 fc_crc;
|
|
};
|
|
|
|
struct ext4_fc_add_range {
|
|
__le32 fc_ino;
|
|
__u8 fc_ex[12];
|
|
};
|
|
|
|
struct ext4_fc_inode {
|
|
__le32 fc_ino;
|
|
__u8 fc_raw_inode[0];
|
|
};
|
|
|
|
struct ext4_fc_del_range {
|
|
__le32 fc_ino;
|
|
__le32 fc_lblk;
|
|
__le32 fc_len;
|
|
};
|
|
|
|
struct dentry_info_args {
|
|
int parent_ino;
|
|
int dname_len;
|
|
int ino;
|
|
int inode_len;
|
|
char *dname;
|
|
};
|
|
|
|
struct isofs_fid {
|
|
u32 block;
|
|
u16 offset;
|
|
u16 parent_offset;
|
|
u32 generation;
|
|
u32 parent_block;
|
|
u32 parent_generation;
|
|
};
|
|
|
|
struct nfs_referral_count {
|
|
struct list_head list;
|
|
const struct task_struct *task;
|
|
unsigned int referral_count;
|
|
};
|
|
|
|
typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *);
|
|
|
|
enum {
|
|
Opt_debug___3 = 0,
|
|
Opt_dfltuid = 1,
|
|
Opt_dfltgid = 2,
|
|
Opt_afid = 3,
|
|
Opt_uname = 4,
|
|
Opt_remotename = 5,
|
|
Opt_cache = 6,
|
|
Opt_cachetag = 7,
|
|
Opt_nodevmap = 8,
|
|
Opt_cache_loose = 9,
|
|
Opt_fscache___2 = 10,
|
|
Opt_mmap = 11,
|
|
Opt_access = 12,
|
|
Opt_posixacl = 13,
|
|
Opt_locktimeout = 14,
|
|
Opt_err___7 = 15,
|
|
};
|
|
|
|
struct sel_netport_bkt {
|
|
int size;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct netport_security_struct {
|
|
u32 sid;
|
|
u16 port;
|
|
u8 protocol;
|
|
};
|
|
|
|
struct sel_netport {
|
|
struct netport_security_struct psec;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct crypto_kpp {
|
|
unsigned int reqsize;
|
|
struct crypto_tfm base;
|
|
};
|
|
|
|
struct kpp_request;
|
|
|
|
struct kpp_alg {
|
|
int (*set_secret)(struct crypto_kpp *, const void *, unsigned int);
|
|
int (*generate_public_key)(struct kpp_request *);
|
|
int (*compute_shared_secret)(struct kpp_request *);
|
|
unsigned int (*max_size)(struct crypto_kpp *);
|
|
int (*init)(struct crypto_kpp *);
|
|
void (*exit)(struct crypto_kpp *);
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct kpp_request {
|
|
struct crypto_async_request base;
|
|
struct scatterlist *src;
|
|
struct scatterlist *dst;
|
|
unsigned int src_len;
|
|
unsigned int dst_len;
|
|
void *__ctx[0];
|
|
};
|
|
|
|
struct kpp_instance {
|
|
void (*free)(struct kpp_instance *);
|
|
union {
|
|
struct {
|
|
char head[48];
|
|
struct crypto_instance base;
|
|
} s;
|
|
struct kpp_alg alg;
|
|
};
|
|
};
|
|
|
|
struct crypto_kpp_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct crypto_report_kpp {
|
|
char type[64];
|
|
};
|
|
|
|
typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int);
|
|
|
|
typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *);
|
|
|
|
enum {
|
|
KYBER_READ = 0,
|
|
KYBER_WRITE = 1,
|
|
KYBER_DISCARD = 2,
|
|
KYBER_OTHER = 3,
|
|
KYBER_NUM_DOMAINS = 4,
|
|
};
|
|
|
|
enum {
|
|
KYBER_TOTAL_LATENCY = 0,
|
|
KYBER_IO_LATENCY = 1,
|
|
};
|
|
|
|
enum {
|
|
KYBER_LATENCY_SHIFT = 2,
|
|
KYBER_GOOD_BUCKETS = 4,
|
|
KYBER_LATENCY_BUCKETS = 8,
|
|
};
|
|
|
|
enum {
|
|
KYBER_ASYNC_PERCENT = 75,
|
|
};
|
|
|
|
struct trace_event_raw_kyber_latency {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
char domain[16];
|
|
char type[8];
|
|
u8 percentile;
|
|
u8 numerator;
|
|
u8 denominator;
|
|
unsigned int samples;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_kyber_adjust {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
char domain[16];
|
|
unsigned int depth;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_kyber_throttled {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
char domain[16];
|
|
char __data[0];
|
|
};
|
|
|
|
struct kyber_cpu_latency {
|
|
atomic_t buckets[48];
|
|
};
|
|
|
|
struct kyber_queue_data {
|
|
struct request_queue *q;
|
|
dev_t dev;
|
|
struct sbitmap_queue domain_tokens[4];
|
|
unsigned int async_depth;
|
|
struct kyber_cpu_latency __attribute__((btf_type_tag("percpu"))) *cpu_latency;
|
|
struct timer_list timer;
|
|
unsigned int latency_buckets[48];
|
|
unsigned long latency_timeout[3];
|
|
int domain_p99[3];
|
|
u64 latency_targets[3];
|
|
};
|
|
|
|
struct kyber_ctx_queue {
|
|
spinlock_t lock;
|
|
struct list_head rq_list[4];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct kyber_hctx_data {
|
|
spinlock_t lock;
|
|
struct list_head rqs[4];
|
|
unsigned int cur_domain;
|
|
unsigned int batching;
|
|
struct kyber_ctx_queue *kcqs;
|
|
struct sbitmap kcq_map[4];
|
|
struct sbq_wait domain_wait[4];
|
|
struct sbq_wait_state *domain_ws[4];
|
|
atomic_t wait_index[4];
|
|
};
|
|
|
|
struct flush_kcq_data {
|
|
struct kyber_hctx_data *khd;
|
|
unsigned int sched_domain;
|
|
struct list_head *list;
|
|
};
|
|
|
|
struct trace_event_data_offsets_kyber_latency {};
|
|
|
|
struct trace_event_data_offsets_kyber_adjust {};
|
|
|
|
struct trace_event_data_offsets_kyber_throttled {};
|
|
|
|
struct once_work {
|
|
struct work_struct work;
|
|
struct static_key_true *key;
|
|
struct module *module;
|
|
};
|
|
|
|
typedef struct {
|
|
u64 a;
|
|
u64 b;
|
|
} u128;
|
|
|
|
struct gf128mul_64k {
|
|
struct gf128mul_4k *t[16];
|
|
};
|
|
|
|
typedef struct {
|
|
__le64 b;
|
|
__le64 a;
|
|
} le128;
|
|
|
|
enum msi_desc_filter {
|
|
MSI_DESC_ALL = 0,
|
|
MSI_DESC_NOTASSOCIATED = 1,
|
|
MSI_DESC_ASSOCIATED = 2,
|
|
};
|
|
|
|
enum dw_dmac_flags {
|
|
DW_DMA_IS_CYCLIC = 0,
|
|
DW_DMA_IS_SOFT_LLP = 1,
|
|
DW_DMA_IS_PAUSED = 2,
|
|
DW_DMA_IS_INITIALIZED = 3,
|
|
};
|
|
|
|
enum dw_dma_fc {
|
|
DW_DMA_FC_D_M2M = 0,
|
|
DW_DMA_FC_D_M2P = 1,
|
|
DW_DMA_FC_D_P2M = 2,
|
|
DW_DMA_FC_D_P2P = 3,
|
|
DW_DMA_FC_P_P2M = 4,
|
|
DW_DMA_FC_SP_P2P = 5,
|
|
DW_DMA_FC_P_M2P = 6,
|
|
DW_DMA_FC_DP_P2P = 7,
|
|
};
|
|
|
|
struct dw_lli {
|
|
__le32 sar;
|
|
__le32 dar;
|
|
__le32 llp;
|
|
__le32 ctllo;
|
|
__le32 ctlhi;
|
|
__le32 sstat;
|
|
__le32 dstat;
|
|
};
|
|
|
|
struct dw_desc {
|
|
struct dw_lli lli;
|
|
struct list_head desc_node;
|
|
struct list_head tx_list;
|
|
struct dma_async_tx_descriptor txd;
|
|
size_t len;
|
|
size_t total_len;
|
|
u32 residue;
|
|
};
|
|
|
|
struct exar8250;
|
|
|
|
struct exar8250_board {
|
|
unsigned int num_ports;
|
|
unsigned int reg_shift;
|
|
int (*setup)(struct exar8250 *, struct pci_dev *, struct uart_8250_port *, int);
|
|
void (*exit)(struct pci_dev *);
|
|
};
|
|
|
|
struct exar8250 {
|
|
unsigned int nr;
|
|
struct exar8250_board *board;
|
|
void *virt;
|
|
int line[0];
|
|
};
|
|
|
|
struct exar8250_platform {
|
|
int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *);
|
|
const struct serial_rs485 *rs485_supported;
|
|
int (*register_gpio)(struct pci_dev *, struct uart_8250_port *);
|
|
void (*unregister_gpio)(struct uart_8250_port *);
|
|
};
|
|
|
|
struct iova {
|
|
struct rb_node node;
|
|
unsigned long pfn_hi;
|
|
unsigned long pfn_lo;
|
|
};
|
|
|
|
struct iova_rcache;
|
|
|
|
struct iova_domain {
|
|
spinlock_t iova_rbtree_lock;
|
|
struct rb_root rbroot;
|
|
struct rb_node *cached_node;
|
|
struct rb_node *cached32_node;
|
|
unsigned long granule;
|
|
unsigned long start_pfn;
|
|
unsigned long dma_32bit_pfn;
|
|
unsigned long max32_alloc_size;
|
|
struct iova anchor;
|
|
struct iova_rcache *rcaches;
|
|
struct hlist_node cpuhp_dead;
|
|
};
|
|
|
|
enum iommu_dma_cookie_type {
|
|
IOMMU_DMA_IOVA_COOKIE = 0,
|
|
IOMMU_DMA_MSI_COOKIE = 1,
|
|
};
|
|
|
|
struct iova_fq;
|
|
|
|
struct iommu_dma_cookie {
|
|
enum iommu_dma_cookie_type type;
|
|
union {
|
|
struct {
|
|
struct iova_domain iovad;
|
|
struct iova_fq __attribute__((btf_type_tag("percpu"))) *fq;
|
|
atomic64_t fq_flush_start_cnt;
|
|
atomic64_t fq_flush_finish_cnt;
|
|
struct timer_list fq_timer;
|
|
atomic_t fq_timer_on;
|
|
};
|
|
dma_addr_t msi_iova;
|
|
};
|
|
struct list_head msi_page_list;
|
|
struct iommu_domain *fq_domain;
|
|
struct mutex mutex;
|
|
};
|
|
|
|
struct iova_fq_entry {
|
|
unsigned long iova_pfn;
|
|
unsigned long pages;
|
|
struct list_head freelist;
|
|
u64 counter;
|
|
};
|
|
|
|
struct iova_fq {
|
|
struct iova_fq_entry entries[256];
|
|
unsigned int head;
|
|
unsigned int tail;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct iommu_dma_msi_page {
|
|
struct list_head list;
|
|
dma_addr_t iova;
|
|
phys_addr_t phys;
|
|
};
|
|
|
|
struct dma_sgt_handle {
|
|
struct sg_table sgt;
|
|
struct page **pages;
|
|
};
|
|
|
|
struct drm_property_enum {
|
|
uint64_t value;
|
|
struct list_head head;
|
|
char name[32];
|
|
};
|
|
|
|
struct drm_mode_get_property {
|
|
__u64 values_ptr;
|
|
__u64 enum_blob_ptr;
|
|
__u32 prop_id;
|
|
__u32 flags;
|
|
char name[32];
|
|
__u32 count_values;
|
|
__u32 count_enum_blobs;
|
|
};
|
|
|
|
struct drm_mode_property_enum {
|
|
__u64 value;
|
|
char name[32];
|
|
};
|
|
|
|
struct drm_mode_get_blob {
|
|
__u32 blob_id;
|
|
__u32 length;
|
|
__u64 data;
|
|
};
|
|
|
|
struct drm_mode_create_blob {
|
|
__u64 data;
|
|
__u32 length;
|
|
__u32 blob_id;
|
|
};
|
|
|
|
struct drm_mode_destroy_blob {
|
|
__u32 blob_id;
|
|
};
|
|
|
|
struct sil164_priv {
|
|
bool quiet;
|
|
};
|
|
|
|
struct hdcp2_hdmi_msg_timeout {
|
|
u8 msg_id;
|
|
u16 timeout;
|
|
};
|
|
|
|
struct scsi_host_busy_iter_data {
|
|
bool (*fn)(struct scsi_cmnd *, void *);
|
|
void *priv;
|
|
};
|
|
|
|
struct ich_laptop {
|
|
u16 device;
|
|
u16 subvendor;
|
|
u16 subdevice;
|
|
};
|
|
|
|
struct piix_map_db {
|
|
const u32 mask;
|
|
const u16 port_enable;
|
|
const int map[0];
|
|
};
|
|
|
|
enum piix_controller_ids {
|
|
piix_pata_mwdma = 0,
|
|
piix_pata_33 = 1,
|
|
ich_pata_33 = 2,
|
|
ich_pata_66 = 3,
|
|
ich_pata_100 = 4,
|
|
ich_pata_100_nomwdma1 = 5,
|
|
ich5_sata = 6,
|
|
ich6_sata = 7,
|
|
ich6m_sata = 8,
|
|
ich8_sata = 9,
|
|
ich8_2port_sata = 10,
|
|
ich8m_apple_sata = 11,
|
|
tolapai_sata = 12,
|
|
piix_pata_vmw = 13,
|
|
ich8_sata_snb = 14,
|
|
ich8_2port_sata_snb = 15,
|
|
ich8_2port_sata_byt = 16,
|
|
};
|
|
|
|
enum {
|
|
PIIX_IOCFG = 84,
|
|
ICH5_PMR = 144,
|
|
ICH5_PCS = 146,
|
|
PIIX_SIDPR_BAR = 5,
|
|
PIIX_SIDPR_LEN = 16,
|
|
PIIX_SIDPR_IDX = 0,
|
|
PIIX_SIDPR_DATA = 4,
|
|
PIIX_FLAG_CHECKINTR = 268435456,
|
|
PIIX_FLAG_SIDPR = 536870912,
|
|
PIIX_PATA_FLAGS = 1,
|
|
PIIX_SATA_FLAGS = 268435458,
|
|
PIIX_FLAG_PIO16 = 1073741824,
|
|
PIIX_80C_PRI = 48,
|
|
PIIX_80C_SEC = 192,
|
|
P0 = 0,
|
|
P1 = 1,
|
|
P2 = 2,
|
|
P3 = 3,
|
|
IDE = -1,
|
|
NA = -2,
|
|
RV = -3,
|
|
PIIX_AHCI_DEVICE = 6,
|
|
PIIX_HOST_BROKEN_SUSPEND = 16777216,
|
|
};
|
|
|
|
struct piix_host_priv {
|
|
const int *map;
|
|
u32 saved_iocfg;
|
|
void *sidpr;
|
|
};
|
|
|
|
struct iso_rec {
|
|
int error_count;
|
|
int numdesc;
|
|
};
|
|
|
|
struct mon_bin_hdr {
|
|
u64 id;
|
|
unsigned char type;
|
|
unsigned char xfer_type;
|
|
unsigned char epnum;
|
|
unsigned char devnum;
|
|
unsigned short busnum;
|
|
char flag_setup;
|
|
char flag_data;
|
|
s64 ts_sec;
|
|
s32 ts_usec;
|
|
int status;
|
|
unsigned int len_urb;
|
|
unsigned int len_cap;
|
|
union {
|
|
unsigned char setup[8];
|
|
struct iso_rec iso;
|
|
} s;
|
|
int interval;
|
|
int start_frame;
|
|
unsigned int xfer_flags;
|
|
unsigned int ndesc;
|
|
};
|
|
|
|
struct mon_bin_mfetch {
|
|
u32 __attribute__((btf_type_tag("user"))) *offvec;
|
|
u32 nfetch;
|
|
u32 nflush;
|
|
};
|
|
|
|
struct mon_bin_stats {
|
|
u32 queued;
|
|
u32 dropped;
|
|
};
|
|
|
|
struct mon_bin_mfetch32 {
|
|
u32 offvec32;
|
|
u32 nfetch32;
|
|
u32 nflush32;
|
|
};
|
|
|
|
struct mon_bin_isodesc {
|
|
int iso_status;
|
|
unsigned int iso_off;
|
|
unsigned int iso_len;
|
|
u32 _pad;
|
|
};
|
|
|
|
struct mon_pgmap;
|
|
|
|
struct mon_reader_bin {
|
|
spinlock_t b_lock;
|
|
unsigned int b_size;
|
|
unsigned int b_cnt;
|
|
unsigned int b_in;
|
|
unsigned int b_out;
|
|
unsigned int b_read;
|
|
struct mon_pgmap *b_vec;
|
|
wait_queue_head_t b_wait;
|
|
struct mutex fetch_lock;
|
|
int mmap_active;
|
|
struct mon_reader r;
|
|
unsigned int cnt_lost;
|
|
};
|
|
|
|
struct mon_pgmap {
|
|
struct page *pg;
|
|
unsigned char *ptr;
|
|
};
|
|
|
|
struct mon_bin_get {
|
|
struct mon_bin_hdr __attribute__((btf_type_tag("user"))) *hdr;
|
|
void __attribute__((btf_type_tag("user"))) *data;
|
|
size_t alloc;
|
|
};
|
|
|
|
struct mon_bin_get32 {
|
|
u32 hdr32;
|
|
u32 data32;
|
|
u32 alloc32;
|
|
};
|
|
|
|
struct input_dev_poller {
|
|
void (*poll)(struct input_dev *);
|
|
unsigned int poll_interval;
|
|
unsigned int poll_interval_max;
|
|
unsigned int poll_interval_min;
|
|
struct input_dev *input;
|
|
struct delayed_work work;
|
|
};
|
|
|
|
struct hwmon_type_attr_list {
|
|
const u32 *attrs;
|
|
size_t n_attrs;
|
|
};
|
|
|
|
enum hwmon_temp_attributes {
|
|
hwmon_temp_enable = 0,
|
|
hwmon_temp_input = 1,
|
|
hwmon_temp_type = 2,
|
|
hwmon_temp_lcrit = 3,
|
|
hwmon_temp_lcrit_hyst = 4,
|
|
hwmon_temp_min = 5,
|
|
hwmon_temp_min_hyst = 6,
|
|
hwmon_temp_max = 7,
|
|
hwmon_temp_max_hyst = 8,
|
|
hwmon_temp_crit = 9,
|
|
hwmon_temp_crit_hyst = 10,
|
|
hwmon_temp_emergency = 11,
|
|
hwmon_temp_emergency_hyst = 12,
|
|
hwmon_temp_alarm = 13,
|
|
hwmon_temp_lcrit_alarm = 14,
|
|
hwmon_temp_min_alarm = 15,
|
|
hwmon_temp_max_alarm = 16,
|
|
hwmon_temp_crit_alarm = 17,
|
|
hwmon_temp_emergency_alarm = 18,
|
|
hwmon_temp_fault = 19,
|
|
hwmon_temp_offset = 20,
|
|
hwmon_temp_label = 21,
|
|
hwmon_temp_lowest = 22,
|
|
hwmon_temp_highest = 23,
|
|
hwmon_temp_reset_history = 24,
|
|
hwmon_temp_rated_min = 25,
|
|
hwmon_temp_rated_max = 26,
|
|
};
|
|
|
|
struct power_supply_hwmon {
|
|
struct power_supply *psy;
|
|
unsigned long *props;
|
|
};
|
|
|
|
struct md_setup_args {
|
|
int minor;
|
|
int partitioned;
|
|
int level;
|
|
int chunk;
|
|
char *device_names;
|
|
};
|
|
|
|
struct dmi_memdev_info {
|
|
const char *device;
|
|
const char *bank;
|
|
u64 size;
|
|
u16 handle;
|
|
u8 type;
|
|
};
|
|
|
|
enum dmi_device_type {
|
|
DMI_DEV_TYPE_ANY = 0,
|
|
DMI_DEV_TYPE_OTHER = 1,
|
|
DMI_DEV_TYPE_UNKNOWN = 2,
|
|
DMI_DEV_TYPE_VIDEO = 3,
|
|
DMI_DEV_TYPE_SCSI = 4,
|
|
DMI_DEV_TYPE_ETHERNET = 5,
|
|
DMI_DEV_TYPE_TOKENRING = 6,
|
|
DMI_DEV_TYPE_SOUND = 7,
|
|
DMI_DEV_TYPE_PATA = 8,
|
|
DMI_DEV_TYPE_SATA = 9,
|
|
DMI_DEV_TYPE_SAS = 10,
|
|
DMI_DEV_TYPE_IPMI = -1,
|
|
DMI_DEV_TYPE_OEM_STRING = -2,
|
|
DMI_DEV_TYPE_DEV_ONBOARD = -3,
|
|
DMI_DEV_TYPE_DEV_SLOT = -4,
|
|
};
|
|
|
|
struct dmi_device {
|
|
struct list_head list;
|
|
int type;
|
|
const char *name;
|
|
void *device_data;
|
|
};
|
|
|
|
struct dmi_dev_onboard {
|
|
struct dmi_device dev;
|
|
int instance;
|
|
int segment;
|
|
int bus;
|
|
int devfn;
|
|
};
|
|
|
|
enum flow_dissect_ret {
|
|
FLOW_DISSECT_RET_OUT_GOOD = 0,
|
|
FLOW_DISSECT_RET_OUT_BAD = 1,
|
|
FLOW_DISSECT_RET_PROTO_AGAIN = 2,
|
|
FLOW_DISSECT_RET_IPPROTO_AGAIN = 3,
|
|
FLOW_DISSECT_RET_CONTINUE = 4,
|
|
};
|
|
|
|
enum batadv_packettype {
|
|
BATADV_IV_OGM = 0,
|
|
BATADV_BCAST = 1,
|
|
BATADV_CODED = 2,
|
|
BATADV_ELP = 3,
|
|
BATADV_OGM2 = 4,
|
|
BATADV_MCAST = 5,
|
|
BATADV_UNICAST = 64,
|
|
BATADV_UNICAST_FRAG = 65,
|
|
BATADV_UNICAST_4ADDR = 66,
|
|
BATADV_ICMP = 67,
|
|
BATADV_UNICAST_TVLV = 68,
|
|
};
|
|
|
|
struct _flow_keys_digest_data {
|
|
__be16 n_proto;
|
|
u8 ip_proto;
|
|
u8 padding;
|
|
__be32 ports;
|
|
__be32 src;
|
|
__be32 dst;
|
|
};
|
|
|
|
struct tipc_basic_hdr {
|
|
__be32 w[4];
|
|
};
|
|
|
|
struct batadv_unicast_packet {
|
|
__u8 packet_type;
|
|
__u8 version;
|
|
__u8 ttl;
|
|
__u8 ttvn;
|
|
__u8 dest[6];
|
|
};
|
|
|
|
struct pppoe_tag {
|
|
__be16 tag_type;
|
|
__be16 tag_len;
|
|
char tag_data[0];
|
|
};
|
|
|
|
struct pppoe_hdr {
|
|
__u8 type: 4;
|
|
__u8 ver: 4;
|
|
__u8 code;
|
|
__be16 sid;
|
|
__be16 length;
|
|
struct pppoe_tag tag[0];
|
|
};
|
|
|
|
struct hsr_tag {
|
|
__be16 path_and_LSDU_size;
|
|
__be16 sequence_nr;
|
|
__be16 encap_proto;
|
|
};
|
|
|
|
struct flow_keys_digest {
|
|
u8 data[16];
|
|
};
|
|
|
|
enum tc_fifo_command {
|
|
TC_FIFO_REPLACE = 0,
|
|
TC_FIFO_DESTROY = 1,
|
|
TC_FIFO_STATS = 2,
|
|
};
|
|
|
|
struct tc_fifo_qopt {
|
|
__u32 limit;
|
|
};
|
|
|
|
struct tc_fifo_qopt_offload {
|
|
enum tc_fifo_command command;
|
|
u32 handle;
|
|
u32 parent;
|
|
union {
|
|
struct tc_qopt_offload_stats stats;
|
|
};
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_EEE_UNSPEC = 0,
|
|
ETHTOOL_A_EEE_HEADER = 1,
|
|
ETHTOOL_A_EEE_MODES_OURS = 2,
|
|
ETHTOOL_A_EEE_MODES_PEER = 3,
|
|
ETHTOOL_A_EEE_ACTIVE = 4,
|
|
ETHTOOL_A_EEE_ENABLED = 5,
|
|
ETHTOOL_A_EEE_TX_LPI_ENABLED = 6,
|
|
ETHTOOL_A_EEE_TX_LPI_TIMER = 7,
|
|
__ETHTOOL_A_EEE_CNT = 8,
|
|
ETHTOOL_A_EEE_MAX = 7,
|
|
};
|
|
|
|
struct eee_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_eee eee;
|
|
};
|
|
|
|
struct rt_cache_stat {
|
|
unsigned int in_slow_tot;
|
|
unsigned int in_slow_mc;
|
|
unsigned int in_no_route;
|
|
unsigned int in_brd;
|
|
unsigned int in_martian_dst;
|
|
unsigned int in_martian_src;
|
|
unsigned int out_slow_tot;
|
|
unsigned int out_slow_mc;
|
|
};
|
|
|
|
struct ping_table {
|
|
struct hlist_nulls_head hash[64];
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct pingv6_ops {
|
|
int (*ipv6_recv_error)(struct sock *, struct msghdr *, int, int *);
|
|
void (*ip6_datagram_recv_common_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
|
|
void (*ip6_datagram_recv_specific_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
|
|
int (*icmpv6_err_convert)(u8, u8, int *);
|
|
void (*ipv6_icmp_error)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
|
|
int (*ipv6_chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int);
|
|
};
|
|
|
|
struct icmp6_filter {
|
|
__u32 data[8];
|
|
};
|
|
|
|
struct raw6_sock {
|
|
struct inet_sock inet;
|
|
__u32 checksum;
|
|
__u32 offset;
|
|
struct icmp6_filter filter;
|
|
__u32 ip6mr_table;
|
|
struct ipv6_pinfo inet6;
|
|
};
|
|
|
|
struct raw6_frag_vec {
|
|
struct msghdr *msg;
|
|
int hlen;
|
|
char c[4];
|
|
};
|
|
|
|
struct ip6t_ipv6header_info {
|
|
__u8 matchflags;
|
|
__u8 invflags;
|
|
__u8 modeflag;
|
|
};
|
|
|
|
struct xsk_map;
|
|
|
|
struct xsk_map_node {
|
|
struct list_head node;
|
|
struct xsk_map *map;
|
|
struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry;
|
|
};
|
|
|
|
struct xsk_map {
|
|
struct bpf_map map;
|
|
spinlock_t lock;
|
|
atomic_t count;
|
|
struct xdp_sock __attribute__((btf_type_tag("rcu"))) *xsk_map[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct sockaddr_xdp {
|
|
__u16 sxdp_family;
|
|
__u16 sxdp_flags;
|
|
__u32 sxdp_ifindex;
|
|
__u32 sxdp_queue_id;
|
|
__u32 sxdp_shared_umem_fd;
|
|
};
|
|
|
|
struct xdp_ring_offset_v1 {
|
|
__u64 producer;
|
|
__u64 consumer;
|
|
__u64 desc;
|
|
};
|
|
|
|
struct xdp_statistics {
|
|
__u64 rx_dropped;
|
|
__u64 rx_invalid_descs;
|
|
__u64 tx_invalid_descs;
|
|
__u64 rx_ring_full;
|
|
__u64 rx_fill_ring_empty_descs;
|
|
__u64 tx_ring_empty_descs;
|
|
};
|
|
|
|
struct xdp_ring_offset {
|
|
__u64 producer;
|
|
__u64 consumer;
|
|
__u64 desc;
|
|
__u64 flags;
|
|
};
|
|
|
|
struct xdp_mmap_offsets {
|
|
struct xdp_ring_offset rx;
|
|
struct xdp_ring_offset tx;
|
|
struct xdp_ring_offset fr;
|
|
struct xdp_ring_offset cr;
|
|
};
|
|
|
|
struct xdp_mmap_offsets_v1 {
|
|
struct xdp_ring_offset_v1 rx;
|
|
struct xdp_ring_offset_v1 tx;
|
|
struct xdp_ring_offset_v1 fr;
|
|
struct xdp_ring_offset_v1 cr;
|
|
};
|
|
|
|
struct xdp_options {
|
|
__u32 flags;
|
|
};
|
|
|
|
struct cpu_perf_ibs;
|
|
|
|
struct perf_ibs {
|
|
struct pmu pmu;
|
|
unsigned int msr;
|
|
u64 config_mask;
|
|
u64 cnt_mask;
|
|
u64 enable_mask;
|
|
u64 valid_mask;
|
|
u64 max_period;
|
|
unsigned long offset_mask[1];
|
|
int offset_max;
|
|
unsigned int fetch_count_reset_broken: 1;
|
|
unsigned int fetch_ignore_if_zero_rip: 1;
|
|
struct cpu_perf_ibs __attribute__((btf_type_tag("percpu"))) *pcpu;
|
|
u64 (*get_count)(u64);
|
|
};
|
|
|
|
struct cpu_perf_ibs {
|
|
struct perf_event *event;
|
|
unsigned long state[1];
|
|
};
|
|
|
|
enum ibs_states {
|
|
IBS_ENABLED = 0,
|
|
IBS_STARTED = 1,
|
|
IBS_STOPPING = 2,
|
|
IBS_STOPPED = 3,
|
|
IBS_MAX_STATES = 4,
|
|
};
|
|
|
|
union ibs_fetch_ctl {
|
|
__u64 val;
|
|
struct {
|
|
__u64 fetch_maxcnt: 16;
|
|
__u64 fetch_cnt: 16;
|
|
__u64 fetch_lat: 16;
|
|
__u64 fetch_en: 1;
|
|
__u64 fetch_val: 1;
|
|
__u64 fetch_comp: 1;
|
|
__u64 ic_miss: 1;
|
|
__u64 phy_addr_valid: 1;
|
|
__u64 l1tlb_pgsz: 2;
|
|
__u64 l1tlb_miss: 1;
|
|
__u64 l2tlb_miss: 1;
|
|
__u64 rand_en: 1;
|
|
__u64 fetch_l2_miss: 1;
|
|
__u64 l3_miss_only: 1;
|
|
__u64 fetch_oc_miss: 1;
|
|
__u64 fetch_l3_miss: 1;
|
|
__u64 reserved: 2;
|
|
};
|
|
};
|
|
|
|
union ibs_op_ctl {
|
|
__u64 val;
|
|
struct {
|
|
__u64 opmaxcnt: 16;
|
|
__u64 l3_miss_only: 1;
|
|
__u64 op_en: 1;
|
|
__u64 op_val: 1;
|
|
__u64 cnt_ctl: 1;
|
|
__u64 opmaxcnt_ext: 7;
|
|
__u64 reserved0: 5;
|
|
__u64 opcurcnt: 27;
|
|
__u64 reserved1: 5;
|
|
};
|
|
};
|
|
|
|
struct perf_ibs_data {
|
|
u32 size;
|
|
union {
|
|
u32 data[0];
|
|
u32 caps;
|
|
};
|
|
u64 regs[8];
|
|
};
|
|
|
|
union ibs_op_data3 {
|
|
__u64 val;
|
|
struct {
|
|
__u64 ld_op: 1;
|
|
__u64 st_op: 1;
|
|
__u64 dc_l1tlb_miss: 1;
|
|
__u64 dc_l2tlb_miss: 1;
|
|
__u64 dc_l1tlb_hit_2m: 1;
|
|
__u64 dc_l1tlb_hit_1g: 1;
|
|
__u64 dc_l2tlb_hit_2m: 1;
|
|
__u64 dc_miss: 1;
|
|
__u64 dc_mis_acc: 1;
|
|
__u64 reserved: 4;
|
|
__u64 dc_wc_mem_acc: 1;
|
|
__u64 dc_uc_mem_acc: 1;
|
|
__u64 dc_locked_op: 1;
|
|
__u64 dc_miss_no_mab_alloc: 1;
|
|
__u64 dc_lin_addr_valid: 1;
|
|
__u64 dc_phy_addr_valid: 1;
|
|
__u64 dc_l2_tlb_hit_1g: 1;
|
|
__u64 l2_miss: 1;
|
|
__u64 sw_pf: 1;
|
|
__u64 op_mem_width: 4;
|
|
__u64 op_dc_miss_open_mem_reqs: 6;
|
|
__u64 dc_miss_lat: 16;
|
|
__u64 tlb_refill_lat: 16;
|
|
};
|
|
};
|
|
|
|
union ibs_op_data2 {
|
|
__u64 val;
|
|
struct {
|
|
__u64 data_src_lo: 3;
|
|
__u64 reserved0: 1;
|
|
__u64 rmt_node: 1;
|
|
__u64 cache_hit_st: 1;
|
|
__u64 data_src_hi: 2;
|
|
__u64 reserved1: 56;
|
|
};
|
|
};
|
|
|
|
union ibs_op_data {
|
|
__u64 val;
|
|
struct {
|
|
__u64 comp_to_ret_ctr: 16;
|
|
__u64 tag_to_ret_ctr: 16;
|
|
__u64 reserved1: 2;
|
|
__u64 op_return: 1;
|
|
__u64 op_brn_taken: 1;
|
|
__u64 op_brn_misp: 1;
|
|
__u64 op_brn_ret: 1;
|
|
__u64 op_rip_invalid: 1;
|
|
__u64 op_brn_fuse: 1;
|
|
__u64 op_microcode: 1;
|
|
__u64 reserved2: 23;
|
|
};
|
|
};
|
|
|
|
struct mp_ioapic_gsi {
|
|
u32 gsi_base;
|
|
u32 gsi_end;
|
|
};
|
|
|
|
struct IO_APIC_route_entry;
|
|
|
|
struct ioapic {
|
|
int nr_registers;
|
|
struct IO_APIC_route_entry *saved_registers;
|
|
struct mpc_ioapic mp_config;
|
|
struct mp_ioapic_gsi gsi_config;
|
|
struct ioapic_domain_cfg irqdomain_cfg;
|
|
struct irq_domain *irqdomain;
|
|
struct resource *iomem_res;
|
|
};
|
|
|
|
struct IO_APIC_route_entry {
|
|
union {
|
|
struct {
|
|
u64 vector: 8;
|
|
u64 delivery_mode: 3;
|
|
u64 dest_mode_logical: 1;
|
|
u64 delivery_status: 1;
|
|
u64 active_low: 1;
|
|
u64 irr: 1;
|
|
u64 is_level: 1;
|
|
u64 masked: 1;
|
|
u64 reserved_0: 15;
|
|
u64 reserved_1: 17;
|
|
u64 virt_destid_8_14: 7;
|
|
u64 destid_0_7: 8;
|
|
};
|
|
struct {
|
|
u64 ir_shared_0: 8;
|
|
u64 ir_zero: 3;
|
|
u64 ir_index_15: 1;
|
|
u64 ir_shared_1: 5;
|
|
u64 ir_reserved_0: 31;
|
|
u64 ir_format: 1;
|
|
u64 ir_index_0_14: 15;
|
|
};
|
|
struct {
|
|
u64 w1: 32;
|
|
u64 w2: 32;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct irq_pin_list {
|
|
struct list_head list;
|
|
int apic;
|
|
int pin;
|
|
};
|
|
|
|
struct io_apic {
|
|
unsigned int index;
|
|
unsigned int unused[3];
|
|
unsigned int data;
|
|
unsigned int unused2[11];
|
|
unsigned int eoi;
|
|
};
|
|
|
|
union IO_APIC_reg_00 {
|
|
u32 raw;
|
|
struct {
|
|
u32 __reserved_2: 14;
|
|
u32 LTS: 1;
|
|
u32 delivery_type: 1;
|
|
u32 __reserved_1: 8;
|
|
u32 ID: 8;
|
|
} bits;
|
|
};
|
|
|
|
union IO_APIC_reg_01 {
|
|
u32 raw;
|
|
struct {
|
|
u32 version: 8;
|
|
u32 __reserved_2: 7;
|
|
u32 PRQ: 1;
|
|
u32 entries: 8;
|
|
u32 __reserved_1: 8;
|
|
} bits;
|
|
};
|
|
|
|
union IO_APIC_reg_02 {
|
|
u32 raw;
|
|
struct {
|
|
u32 __reserved_2: 24;
|
|
u32 arbitration: 4;
|
|
u32 __reserved_1: 4;
|
|
} bits;
|
|
};
|
|
|
|
struct mp_chip_data {
|
|
struct list_head irq_2_pin;
|
|
struct IO_APIC_route_entry entry;
|
|
bool is_level;
|
|
bool active_low;
|
|
bool isa_irq;
|
|
u32 count;
|
|
};
|
|
|
|
union IO_APIC_reg_03 {
|
|
u32 raw;
|
|
struct {
|
|
u32 boot_DT: 1;
|
|
u32 __reserved_1: 31;
|
|
} bits;
|
|
};
|
|
|
|
typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long);
|
|
|
|
typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *);
|
|
|
|
enum {
|
|
FUTEX_STATE_OK = 0,
|
|
FUTEX_STATE_EXITING = 1,
|
|
FUTEX_STATE_DEAD = 2,
|
|
};
|
|
|
|
struct trace_event_raw_task_newtask {
|
|
struct trace_entry ent;
|
|
pid_t pid;
|
|
char comm[16];
|
|
unsigned long clone_flags;
|
|
short oom_score_adj;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_task_rename {
|
|
struct trace_entry ent;
|
|
pid_t pid;
|
|
char oldcomm[16];
|
|
char newcomm[16];
|
|
short oom_score_adj;
|
|
char __data[0];
|
|
};
|
|
|
|
struct vm_stack {
|
|
struct callback_head rcu;
|
|
struct vm_struct *stack_vm_area;
|
|
};
|
|
|
|
struct clone_args {
|
|
__u64 flags;
|
|
__u64 pidfd;
|
|
__u64 child_tid;
|
|
__u64 parent_tid;
|
|
__u64 exit_signal;
|
|
__u64 stack;
|
|
__u64 stack_size;
|
|
__u64 tls;
|
|
__u64 set_tid;
|
|
__u64 set_tid_size;
|
|
__u64 cgroup;
|
|
};
|
|
|
|
struct trace_event_data_offsets_task_newtask {};
|
|
|
|
struct trace_event_data_offsets_task_rename {};
|
|
|
|
enum rcutorture_type {
|
|
RCU_FLAVOR = 0,
|
|
RCU_TASKS_FLAVOR = 1,
|
|
RCU_TASKS_RUDE_FLAVOR = 2,
|
|
RCU_TASKS_TRACING_FLAVOR = 3,
|
|
RCU_TRIVIAL_FLAVOR = 4,
|
|
SRCU_FLAVOR = 5,
|
|
INVALID_RCU_FLAVOR = 6,
|
|
};
|
|
|
|
struct stacktrace_cookie {
|
|
unsigned long *store;
|
|
unsigned int size;
|
|
unsigned int skip;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct syscall_trace_enter {
|
|
struct trace_entry ent;
|
|
int nr;
|
|
unsigned long args[0];
|
|
};
|
|
|
|
struct syscall_trace_exit {
|
|
struct trace_entry ent;
|
|
int nr;
|
|
long ret;
|
|
};
|
|
|
|
struct syscall_tp_t {
|
|
unsigned long long regs;
|
|
unsigned long syscall_nr;
|
|
unsigned long args[6];
|
|
};
|
|
|
|
struct syscall_tp_t___2 {
|
|
unsigned long long regs;
|
|
unsigned long syscall_nr;
|
|
unsigned long ret;
|
|
};
|
|
|
|
struct bpf_lru_list {
|
|
struct list_head lists[3];
|
|
unsigned int counts[2];
|
|
struct list_head *next_inactive_rotation;
|
|
raw_spinlock_t lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_lru_locallist;
|
|
|
|
struct bpf_common_lru {
|
|
struct bpf_lru_list lru_list;
|
|
struct bpf_lru_locallist __attribute__((btf_type_tag("percpu"))) *local_list;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_lru_node;
|
|
|
|
typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *);
|
|
|
|
struct bpf_lru {
|
|
union {
|
|
struct bpf_common_lru common_lru;
|
|
struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru;
|
|
};
|
|
del_from_htab_func del_from_htab;
|
|
void *del_arg;
|
|
unsigned int hash_offset;
|
|
unsigned int nr_scans;
|
|
bool percpu;
|
|
long: 56;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bucket;
|
|
|
|
struct htab_elem;
|
|
|
|
struct bpf_htab {
|
|
struct bpf_map map;
|
|
struct bpf_mem_alloc ma;
|
|
struct bpf_mem_alloc pcpu_ma;
|
|
struct bucket *buckets;
|
|
void *elems;
|
|
long: 64;
|
|
long: 64;
|
|
union {
|
|
struct pcpu_freelist freelist;
|
|
struct bpf_lru lru;
|
|
};
|
|
struct htab_elem * __attribute__((btf_type_tag("percpu"))) *extra_elems;
|
|
struct percpu_counter pcount;
|
|
atomic_t count;
|
|
bool use_percpu_counter;
|
|
u32 n_buckets;
|
|
u32 elem_size;
|
|
u32 hashrnd;
|
|
struct lock_class_key lockdep_key;
|
|
int __attribute__((btf_type_tag("percpu"))) *map_locked[8];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bucket {
|
|
struct hlist_nulls_head head;
|
|
raw_spinlock_t raw_lock;
|
|
};
|
|
|
|
struct bpf_lru_locallist {
|
|
struct list_head lists[2];
|
|
u16 next_steal;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
struct bpf_lru_node {
|
|
struct list_head list;
|
|
u16 cpu;
|
|
u8 type;
|
|
u8 ref;
|
|
};
|
|
|
|
struct htab_elem {
|
|
union {
|
|
struct hlist_nulls_node hash_node;
|
|
struct {
|
|
void *padding;
|
|
union {
|
|
struct pcpu_freelist_node fnode;
|
|
struct htab_elem *batch_flink;
|
|
};
|
|
};
|
|
};
|
|
union {
|
|
void *ptr_to_pptr;
|
|
struct bpf_lru_node lru_node;
|
|
};
|
|
u32 hash;
|
|
int: 32;
|
|
char key[0];
|
|
};
|
|
|
|
struct bpf_iter_seq_hash_map_info {
|
|
struct bpf_map *map;
|
|
struct bpf_htab *htab;
|
|
void *percpu_value_buf;
|
|
u32 bucket_id;
|
|
u32 skip_elems;
|
|
};
|
|
|
|
struct cgroup_lsm_atype {
|
|
u32 attach_btf_id;
|
|
int refcnt;
|
|
};
|
|
|
|
enum {
|
|
BPF_F_SYSCTL_BASE_NAME = 1,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64);
|
|
|
|
typedef u64 (*btf_bpf_get_retval)();
|
|
|
|
typedef u64 (*btf_bpf_set_retval)(int);
|
|
|
|
struct bpf_sysctl_kern;
|
|
|
|
typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64);
|
|
|
|
struct bpf_sysctl_kern {
|
|
struct ctl_table_header *head;
|
|
struct ctl_table *table;
|
|
void *cur_val;
|
|
size_t cur_len;
|
|
void *new_val;
|
|
size_t new_len;
|
|
int new_updated;
|
|
int write;
|
|
loff_t *ppos;
|
|
u64 tmp_reg;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t);
|
|
|
|
typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t);
|
|
|
|
typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t);
|
|
|
|
struct bpf_sockopt_kern;
|
|
|
|
typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *);
|
|
|
|
struct bpf_sockopt_kern {
|
|
struct sock *sk;
|
|
u8 *optval;
|
|
u8 *optval_end;
|
|
s32 level;
|
|
s32 optname;
|
|
s32 optlen;
|
|
struct task_struct *current_task;
|
|
u64 tmp_reg;
|
|
};
|
|
|
|
struct bpf_cgroup_link;
|
|
|
|
struct bpf_prog_list {
|
|
struct hlist_node node;
|
|
struct bpf_prog *prog;
|
|
struct bpf_cgroup_link *link;
|
|
struct bpf_cgroup_storage *storage[2];
|
|
};
|
|
|
|
struct bpf_cgroup_link {
|
|
struct bpf_link link;
|
|
struct cgroup *cgroup;
|
|
enum bpf_attach_type type;
|
|
};
|
|
|
|
struct bpf_cg_run_ctx {
|
|
struct bpf_run_ctx run_ctx;
|
|
const struct bpf_prog_array_item *prog_item;
|
|
int retval;
|
|
};
|
|
|
|
struct bpf_sockopt_buf {
|
|
u8 data[32];
|
|
};
|
|
|
|
struct bpf_cgroup_dev_ctx {
|
|
__u32 access_type;
|
|
__u32 major;
|
|
__u32 minor;
|
|
};
|
|
|
|
typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long);
|
|
|
|
typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int);
|
|
|
|
typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int);
|
|
|
|
typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int);
|
|
|
|
typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int);
|
|
|
|
struct anon_vma_chain {
|
|
struct vm_area_struct *vma;
|
|
struct anon_vma *anon_vma;
|
|
struct list_head same_vma;
|
|
struct rb_node rb;
|
|
unsigned long rb_subtree_last;
|
|
};
|
|
|
|
struct trace_event_raw_tlb_flush {
|
|
struct trace_entry ent;
|
|
int reason;
|
|
unsigned long pages;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_migrate_pages {
|
|
struct trace_entry ent;
|
|
unsigned long succeeded;
|
|
unsigned long failed;
|
|
unsigned long thp_succeeded;
|
|
unsigned long thp_failed;
|
|
unsigned long thp_split;
|
|
enum migrate_mode mode;
|
|
int reason;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_migrate_pages_start {
|
|
struct trace_entry ent;
|
|
enum migrate_mode mode;
|
|
int reason;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_migration_pte {
|
|
struct trace_entry ent;
|
|
unsigned long addr;
|
|
unsigned long pte;
|
|
int order;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_tlb_flush {};
|
|
|
|
struct trace_event_data_offsets_mm_migrate_pages {};
|
|
|
|
struct trace_event_data_offsets_mm_migrate_pages_start {};
|
|
|
|
struct trace_event_data_offsets_migration_pte {};
|
|
|
|
struct folio_referenced_arg {
|
|
int mapcount;
|
|
int referenced;
|
|
unsigned long vm_flags;
|
|
struct mem_cgroup *memcg;
|
|
};
|
|
|
|
struct f_owner_ex {
|
|
int type;
|
|
__kernel_pid_t pid;
|
|
};
|
|
|
|
typedef s64 compat_loff_t;
|
|
|
|
struct compat_flock64 {
|
|
short l_type;
|
|
short l_whence;
|
|
compat_loff_t l_start;
|
|
compat_loff_t l_len;
|
|
compat_pid_t l_pid;
|
|
} __attribute__((packed));
|
|
|
|
struct compat_flock {
|
|
short l_type;
|
|
short l_whence;
|
|
compat_off_t l_start;
|
|
compat_off_t l_len;
|
|
compat_pid_t l_pid;
|
|
};
|
|
|
|
enum fsconfig_command {
|
|
FSCONFIG_SET_FLAG = 0,
|
|
FSCONFIG_SET_STRING = 1,
|
|
FSCONFIG_SET_BINARY = 2,
|
|
FSCONFIG_SET_PATH = 3,
|
|
FSCONFIG_SET_PATH_EMPTY = 4,
|
|
FSCONFIG_SET_FD = 5,
|
|
FSCONFIG_CMD_CREATE = 6,
|
|
FSCONFIG_CMD_RECONFIGURE = 7,
|
|
};
|
|
|
|
struct signalfd_siginfo {
|
|
__u32 ssi_signo;
|
|
__s32 ssi_errno;
|
|
__s32 ssi_code;
|
|
__u32 ssi_pid;
|
|
__u32 ssi_uid;
|
|
__s32 ssi_fd;
|
|
__u32 ssi_tid;
|
|
__u32 ssi_band;
|
|
__u32 ssi_overrun;
|
|
__u32 ssi_trapno;
|
|
__s32 ssi_status;
|
|
__s32 ssi_int;
|
|
__u64 ssi_ptr;
|
|
__u64 ssi_utime;
|
|
__u64 ssi_stime;
|
|
__u64 ssi_addr;
|
|
__u16 ssi_addr_lsb;
|
|
__u16 __pad2;
|
|
__s32 ssi_syscall;
|
|
__u64 ssi_call_addr;
|
|
__u32 ssi_arch;
|
|
__u8 __pad[28];
|
|
};
|
|
|
|
struct signalfd_ctx {
|
|
sigset_t sigmask;
|
|
};
|
|
|
|
enum {
|
|
Opt_block = 0,
|
|
Opt_check_r___2 = 1,
|
|
Opt_check_s___2 = 2,
|
|
Opt_cruft = 3,
|
|
Opt_gid___6 = 4,
|
|
Opt_ignore = 5,
|
|
Opt_iocharset = 6,
|
|
Opt_map_a = 7,
|
|
Opt_map_n = 8,
|
|
Opt_map_o = 9,
|
|
Opt_mode___4 = 10,
|
|
Opt_nojoliet = 11,
|
|
Opt_norock = 12,
|
|
Opt_sb___2 = 13,
|
|
Opt_session = 14,
|
|
Opt_uid___5 = 15,
|
|
Opt_unhide = 16,
|
|
Opt_utf8 = 17,
|
|
Opt_err___8 = 18,
|
|
Opt_nocompress = 19,
|
|
Opt_hide = 20,
|
|
Opt_showassoc = 21,
|
|
Opt_dmode = 22,
|
|
Opt_overriderockperm = 23,
|
|
};
|
|
|
|
struct isofs_iget5_callback_data {
|
|
unsigned long block;
|
|
unsigned long offset;
|
|
};
|
|
|
|
struct iso_volume_descriptor {
|
|
__u8 type[1];
|
|
char id[5];
|
|
__u8 version[1];
|
|
__u8 data[2041];
|
|
};
|
|
|
|
struct hs_volume_descriptor {
|
|
__u8 foo[8];
|
|
__u8 type[1];
|
|
char id[5];
|
|
__u8 version[1];
|
|
__u8 data[2033];
|
|
};
|
|
|
|
struct iso_primary_descriptor {
|
|
__u8 type[1];
|
|
char id[5];
|
|
__u8 version[1];
|
|
__u8 unused1[1];
|
|
char system_id[32];
|
|
char volume_id[32];
|
|
__u8 unused2[8];
|
|
__u8 volume_space_size[8];
|
|
__u8 unused3[32];
|
|
__u8 volume_set_size[4];
|
|
__u8 volume_sequence_number[4];
|
|
__u8 logical_block_size[4];
|
|
__u8 path_table_size[8];
|
|
__u8 type_l_path_table[4];
|
|
__u8 opt_type_l_path_table[4];
|
|
__u8 type_m_path_table[4];
|
|
__u8 opt_type_m_path_table[4];
|
|
__u8 root_directory_record[34];
|
|
char volume_set_id[128];
|
|
char publisher_id[128];
|
|
char preparer_id[128];
|
|
char application_id[128];
|
|
char copyright_file_id[37];
|
|
char abstract_file_id[37];
|
|
char bibliographic_file_id[37];
|
|
__u8 creation_date[17];
|
|
__u8 modification_date[17];
|
|
__u8 expiration_date[17];
|
|
__u8 effective_date[17];
|
|
__u8 file_structure_version[1];
|
|
__u8 unused4[1];
|
|
__u8 application_data[512];
|
|
__u8 unused5[653];
|
|
};
|
|
|
|
struct iso_supplementary_descriptor {
|
|
__u8 type[1];
|
|
char id[5];
|
|
__u8 version[1];
|
|
__u8 flags[1];
|
|
char system_id[32];
|
|
char volume_id[32];
|
|
__u8 unused2[8];
|
|
__u8 volume_space_size[8];
|
|
__u8 escape[32];
|
|
__u8 volume_set_size[4];
|
|
__u8 volume_sequence_number[4];
|
|
__u8 logical_block_size[4];
|
|
__u8 path_table_size[8];
|
|
__u8 type_l_path_table[4];
|
|
__u8 opt_type_l_path_table[4];
|
|
__u8 type_m_path_table[4];
|
|
__u8 opt_type_m_path_table[4];
|
|
__u8 root_directory_record[34];
|
|
char volume_set_id[128];
|
|
char publisher_id[128];
|
|
char preparer_id[128];
|
|
char application_id[128];
|
|
char copyright_file_id[37];
|
|
char abstract_file_id[37];
|
|
char bibliographic_file_id[37];
|
|
__u8 creation_date[17];
|
|
__u8 modification_date[17];
|
|
__u8 expiration_date[17];
|
|
__u8 effective_date[17];
|
|
__u8 file_structure_version[1];
|
|
__u8 unused4[1];
|
|
__u8 application_data[512];
|
|
__u8 unused5[653];
|
|
};
|
|
|
|
struct hs_primary_descriptor {
|
|
__u8 foo[8];
|
|
__u8 type[1];
|
|
__u8 id[5];
|
|
__u8 version[1];
|
|
__u8 unused1[1];
|
|
char system_id[32];
|
|
char volume_id[32];
|
|
__u8 unused2[8];
|
|
__u8 volume_space_size[8];
|
|
__u8 unused3[32];
|
|
__u8 volume_set_size[4];
|
|
__u8 volume_sequence_number[4];
|
|
__u8 logical_block_size[4];
|
|
__u8 path_table_size[8];
|
|
__u8 type_l_path_table[4];
|
|
__u8 unused4[28];
|
|
__u8 root_directory_record[34];
|
|
};
|
|
|
|
struct iso9660_options {
|
|
unsigned int rock: 1;
|
|
unsigned int joliet: 1;
|
|
unsigned int cruft: 1;
|
|
unsigned int hide: 1;
|
|
unsigned int showassoc: 1;
|
|
unsigned int nocompress: 1;
|
|
unsigned int overriderockperm: 1;
|
|
unsigned int uid_set: 1;
|
|
unsigned int gid_set: 1;
|
|
unsigned char map;
|
|
unsigned char check;
|
|
unsigned int blocksize;
|
|
umode_t fmode;
|
|
umode_t dmode;
|
|
kgid_t gid;
|
|
kuid_t uid;
|
|
char *iocharset;
|
|
s32 session;
|
|
s32 sbsector;
|
|
};
|
|
|
|
struct nfs3_createdata {
|
|
struct rpc_message msg;
|
|
union {
|
|
struct nfs3_createargs create;
|
|
struct nfs3_mkdirargs mkdir;
|
|
struct nfs3_symlinkargs symlink;
|
|
struct nfs3_mknodargs mknod;
|
|
} arg;
|
|
struct nfs3_diropres res;
|
|
struct nfs_fh fh;
|
|
struct nfs_fattr fattr;
|
|
struct nfs_fattr dir_attr;
|
|
};
|
|
|
|
enum {
|
|
Opt_err___9 = 0,
|
|
Opt_fd = 1,
|
|
Opt_uid___6 = 2,
|
|
Opt_gid___7 = 3,
|
|
Opt_pgrp = 4,
|
|
Opt_minproto = 5,
|
|
Opt_maxproto = 6,
|
|
Opt_indirect = 7,
|
|
Opt_direct = 8,
|
|
Opt_offset = 9,
|
|
Opt_strictexpire = 10,
|
|
Opt_ignore___2 = 11,
|
|
};
|
|
|
|
enum {
|
|
Opt_err___10 = 0,
|
|
Opt_enc = 1,
|
|
Opt_hash___2 = 2,
|
|
};
|
|
|
|
struct sel_netnode_bkt {
|
|
unsigned int size;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct netnode_security_struct {
|
|
union {
|
|
__be32 ipv4;
|
|
struct in6_addr ipv6;
|
|
} addr;
|
|
u32 sid;
|
|
u16 family;
|
|
};
|
|
|
|
struct sel_netnode {
|
|
struct netnode_security_struct nsec;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
enum {
|
|
CRYPTO_MSG_ALG_REQUEST = 0,
|
|
CRYPTO_MSG_ALG_REGISTER = 1,
|
|
CRYPTO_MSG_ALG_LOADED = 2,
|
|
};
|
|
|
|
enum {
|
|
CRYPTOA_UNSPEC = 0,
|
|
CRYPTOA_ALG = 1,
|
|
CRYPTOA_TYPE = 2,
|
|
__CRYPTOA_MAX = 3,
|
|
};
|
|
|
|
struct crypto_larval {
|
|
struct crypto_alg alg;
|
|
struct crypto_alg *adult;
|
|
struct completion completion;
|
|
u32 mask;
|
|
bool test_started;
|
|
};
|
|
|
|
struct crypto_attr_type {
|
|
u32 type;
|
|
u32 mask;
|
|
};
|
|
|
|
struct crypto_attr_alg {
|
|
char name[128];
|
|
};
|
|
|
|
struct cryptomgr_param {
|
|
struct rtattr *tb[34];
|
|
struct {
|
|
struct rtattr attr;
|
|
struct crypto_attr_type data;
|
|
} type;
|
|
struct {
|
|
struct rtattr attr;
|
|
struct crypto_attr_alg data;
|
|
} attrs[32];
|
|
char template[128];
|
|
struct crypto_larval *larval;
|
|
u32 otype;
|
|
u32 omask;
|
|
};
|
|
|
|
struct io_overflow_cqe {
|
|
struct list_head list;
|
|
struct io_uring_cqe cqe;
|
|
};
|
|
|
|
struct acpi_ioremap {
|
|
struct list_head list;
|
|
void *virt;
|
|
acpi_physical_address phys;
|
|
acpi_size size;
|
|
union {
|
|
unsigned long refcount;
|
|
struct rcu_work rwork;
|
|
} track;
|
|
};
|
|
|
|
struct acpi_os_dpc {
|
|
acpi_osd_exec_callback function;
|
|
void *context;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct acpi_hp_work {
|
|
struct work_struct work;
|
|
struct acpi_device *adev;
|
|
u32 src;
|
|
};
|
|
|
|
enum {
|
|
ACPI_RSC_INITGET = 0,
|
|
ACPI_RSC_INITSET = 1,
|
|
ACPI_RSC_FLAGINIT = 2,
|
|
ACPI_RSC_1BITFLAG = 3,
|
|
ACPI_RSC_2BITFLAG = 4,
|
|
ACPI_RSC_3BITFLAG = 5,
|
|
ACPI_RSC_6BITFLAG = 6,
|
|
ACPI_RSC_ADDRESS = 7,
|
|
ACPI_RSC_BITMASK = 8,
|
|
ACPI_RSC_BITMASK16 = 9,
|
|
ACPI_RSC_COUNT = 10,
|
|
ACPI_RSC_COUNT16 = 11,
|
|
ACPI_RSC_COUNT_GPIO_PIN = 12,
|
|
ACPI_RSC_COUNT_GPIO_RES = 13,
|
|
ACPI_RSC_COUNT_GPIO_VEN = 14,
|
|
ACPI_RSC_COUNT_SERIAL_RES = 15,
|
|
ACPI_RSC_COUNT_SERIAL_VEN = 16,
|
|
ACPI_RSC_DATA8 = 17,
|
|
ACPI_RSC_EXIT_EQ = 18,
|
|
ACPI_RSC_EXIT_LE = 19,
|
|
ACPI_RSC_EXIT_NE = 20,
|
|
ACPI_RSC_LENGTH = 21,
|
|
ACPI_RSC_MOVE_GPIO_PIN = 22,
|
|
ACPI_RSC_MOVE_GPIO_RES = 23,
|
|
ACPI_RSC_MOVE_SERIAL_RES = 24,
|
|
ACPI_RSC_MOVE_SERIAL_VEN = 25,
|
|
ACPI_RSC_MOVE8 = 26,
|
|
ACPI_RSC_MOVE16 = 27,
|
|
ACPI_RSC_MOVE32 = 28,
|
|
ACPI_RSC_MOVE64 = 29,
|
|
ACPI_RSC_SET8 = 30,
|
|
ACPI_RSC_SOURCE = 31,
|
|
ACPI_RSC_SOURCEX = 32,
|
|
};
|
|
|
|
typedef u32 acpi_rsdesc_size;
|
|
|
|
struct acpi_fan_fps {
|
|
u64 control;
|
|
u64 trip_point;
|
|
u64 speed;
|
|
u64 noise_level;
|
|
u64 power;
|
|
char name[20];
|
|
struct device_attribute dev_attr;
|
|
};
|
|
|
|
struct acpi_fan_fst {
|
|
u64 revision;
|
|
u64 control;
|
|
u64 speed;
|
|
};
|
|
|
|
struct acpi_fan_fif {
|
|
u8 revision;
|
|
u8 fine_grain_ctrl;
|
|
u8 step_size;
|
|
u8 low_speed_notification;
|
|
};
|
|
|
|
struct acpi_fan {
|
|
bool acpi4;
|
|
struct acpi_fan_fif fif;
|
|
struct acpi_fan_fps *fps;
|
|
int fps_count;
|
|
struct thermal_cooling_device *cdev;
|
|
struct device_attribute fst_speed;
|
|
struct device_attribute fine_grain_control;
|
|
};
|
|
|
|
struct dma_chan_tbl_ent {
|
|
struct dma_chan *chan;
|
|
};
|
|
|
|
struct dmaengine_unmap_pool {
|
|
struct kmem_cache *cache;
|
|
const char *name;
|
|
mempool_t *pool;
|
|
size_t size;
|
|
};
|
|
|
|
struct con_driver {
|
|
const struct consw *con;
|
|
const char *desc;
|
|
struct device *dev;
|
|
int node;
|
|
int first;
|
|
int last;
|
|
int flag;
|
|
};
|
|
|
|
struct interval {
|
|
uint32_t first;
|
|
uint32_t last;
|
|
};
|
|
|
|
enum {
|
|
blank_off = 0,
|
|
blank_normal_wait = 1,
|
|
blank_vesa_wait = 2,
|
|
};
|
|
|
|
enum {
|
|
ESnormal = 0,
|
|
ESesc = 1,
|
|
ESsquare = 2,
|
|
ESgetpars = 3,
|
|
ESfunckey = 4,
|
|
EShash = 5,
|
|
ESsetG0 = 6,
|
|
ESsetG1 = 7,
|
|
ESpercent = 8,
|
|
EScsiignore = 9,
|
|
ESnonstd = 10,
|
|
ESpalette = 11,
|
|
ESosc = 12,
|
|
ESapc = 13,
|
|
ESpm = 14,
|
|
ESdcs = 15,
|
|
};
|
|
|
|
enum {
|
|
EPecma = 0,
|
|
EPdec = 1,
|
|
EPeq = 2,
|
|
EPgt = 3,
|
|
EPlt = 4,
|
|
};
|
|
|
|
enum translation_map {
|
|
LAT1_MAP = 0,
|
|
GRAF_MAP = 1,
|
|
IBMPC_MAP = 2,
|
|
USER_MAP = 3,
|
|
FIRST_MAP = 0,
|
|
LAST_MAP = 3,
|
|
};
|
|
|
|
struct vc_draw_region {
|
|
unsigned long from;
|
|
unsigned long to;
|
|
int x;
|
|
};
|
|
|
|
struct rgb {
|
|
u8 r;
|
|
u8 g;
|
|
u8 b;
|
|
};
|
|
|
|
typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *);
|
|
|
|
typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *);
|
|
|
|
typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *);
|
|
|
|
typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t);
|
|
|
|
typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t);
|
|
|
|
typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int);
|
|
|
|
struct trace_event_raw_iommu_group_event {
|
|
struct trace_entry ent;
|
|
int gid;
|
|
u32 __data_loc_device;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iommu_device_event {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_device;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_map {
|
|
struct trace_entry ent;
|
|
u64 iova;
|
|
u64 paddr;
|
|
size_t size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_unmap {
|
|
struct trace_entry ent;
|
|
u64 iova;
|
|
size_t size;
|
|
size_t unmapped_size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iommu_error {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_device;
|
|
u32 __data_loc_driver;
|
|
u64 iova;
|
|
int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_iommu_group_event {
|
|
u32 device;
|
|
};
|
|
|
|
struct trace_event_data_offsets_iommu_device_event {
|
|
u32 device;
|
|
};
|
|
|
|
struct trace_event_data_offsets_iommu_error {
|
|
u32 device;
|
|
u32 driver;
|
|
};
|
|
|
|
struct trace_event_data_offsets_map {};
|
|
|
|
struct trace_event_data_offsets_unmap {};
|
|
|
|
struct drm_prime_member {
|
|
struct dma_buf *dma_buf;
|
|
uint32_t handle;
|
|
struct rb_node dmabuf_rb;
|
|
struct rb_node handle_rb;
|
|
};
|
|
|
|
struct drm_prime_handle {
|
|
__u32 handle;
|
|
__u32 flags;
|
|
__s32 fd;
|
|
};
|
|
|
|
struct ewma_psr_time {
|
|
unsigned long internal;
|
|
};
|
|
|
|
struct drm_self_refresh_data {
|
|
struct drm_crtc *crtc;
|
|
struct delayed_work entry_work;
|
|
struct mutex avg_mutex;
|
|
struct ewma_psr_time entry_avg_ms;
|
|
struct ewma_psr_time exit_avg_ms;
|
|
};
|
|
|
|
enum vga_switcheroo_state {
|
|
VGA_SWITCHEROO_OFF = 0,
|
|
VGA_SWITCHEROO_ON = 1,
|
|
VGA_SWITCHEROO_NOT_FOUND = 2,
|
|
};
|
|
|
|
enum vga_switcheroo_client_id {
|
|
VGA_SWITCHEROO_UNKNOWN_ID = 4096,
|
|
VGA_SWITCHEROO_IGD = 0,
|
|
VGA_SWITCHEROO_DIS = 1,
|
|
VGA_SWITCHEROO_MAX_CLIENTS = 2,
|
|
};
|
|
|
|
struct vga_switcheroo_client_ops {
|
|
void (*set_gpu_state)(struct pci_dev *, enum vga_switcheroo_state);
|
|
void (*reprobe)(struct pci_dev *);
|
|
bool (*can_switch)(struct pci_dev *);
|
|
void (*gpu_bound)(struct pci_dev *, enum vga_switcheroo_client_id);
|
|
};
|
|
|
|
struct gen6_ppgtt {
|
|
struct i915_ppgtt base;
|
|
struct mutex flush;
|
|
struct i915_vma *vma;
|
|
gen6_pte_t *pd_addr;
|
|
u32 pp_dir;
|
|
atomic_t pin_count;
|
|
bool scan_for_unused_pt;
|
|
};
|
|
|
|
struct drm_i915_gem_userptr {
|
|
__u64 user_ptr;
|
|
__u64 user_size;
|
|
__u32 flags;
|
|
__u32 handle;
|
|
};
|
|
|
|
struct hdcp2_dp_msg_data {
|
|
u8 msg_id;
|
|
u32 offset;
|
|
bool msg_detectable;
|
|
u32 timeout;
|
|
u32 timeout2;
|
|
u32 msg_read_timeout;
|
|
};
|
|
|
|
struct hdcp2_dp_errata_stream_type {
|
|
u8 msg_id;
|
|
u8 stream_type;
|
|
};
|
|
|
|
struct aggregate_device;
|
|
|
|
struct component {
|
|
struct list_head node;
|
|
struct aggregate_device *adev;
|
|
bool bound;
|
|
const struct component_ops *ops;
|
|
int subcomponent;
|
|
struct device *dev;
|
|
};
|
|
|
|
struct component_master_ops;
|
|
|
|
struct component_match;
|
|
|
|
struct aggregate_device {
|
|
struct list_head node;
|
|
bool bound;
|
|
const struct component_master_ops *ops;
|
|
struct device *parent;
|
|
struct component_match *match;
|
|
};
|
|
|
|
struct component_master_ops {
|
|
int (*bind)(struct device *);
|
|
void (*unbind)(struct device *);
|
|
};
|
|
|
|
struct component_match_array;
|
|
|
|
struct component_match {
|
|
size_t alloc;
|
|
size_t num;
|
|
struct component_match_array *compare;
|
|
};
|
|
|
|
struct component_match_array {
|
|
void *data;
|
|
int (*compare)(struct device *, void *);
|
|
int (*compare_typed)(struct device *, int, void *);
|
|
void (*release)(struct device *, void *);
|
|
struct component *component;
|
|
bool duplicate;
|
|
};
|
|
|
|
struct virtio_blk_vq;
|
|
|
|
struct virtio_blk {
|
|
struct mutex vdev_mutex;
|
|
struct virtio_device *vdev;
|
|
struct gendisk *disk;
|
|
struct blk_mq_tag_set tag_set;
|
|
struct work_struct config_work;
|
|
int index;
|
|
int num_vqs;
|
|
int io_queues[3];
|
|
struct virtio_blk_vq *vqs;
|
|
unsigned int zone_sectors;
|
|
};
|
|
|
|
struct virtio_blk_vq {
|
|
struct virtqueue *vq;
|
|
spinlock_t lock;
|
|
char name[16];
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct virtio_blk_outhdr {
|
|
__virtio32 type;
|
|
__virtio32 ioprio;
|
|
__virtio64 sector;
|
|
};
|
|
|
|
struct virtblk_req {
|
|
struct virtio_blk_outhdr out_hdr;
|
|
union {
|
|
u8 status;
|
|
struct {
|
|
u8 status;
|
|
u8 reserved[7];
|
|
__le64 append_sector;
|
|
} zone_append_in_hdr;
|
|
};
|
|
size_t in_hdr_len;
|
|
struct sg_table sg_table;
|
|
struct scatterlist sg[0];
|
|
};
|
|
|
|
struct virtio_blk_discard_write_zeroes {
|
|
__le64 sector;
|
|
__le32 num_sectors;
|
|
__le32 flags;
|
|
};
|
|
|
|
struct mem_entry {
|
|
u32 offset;
|
|
u32 len;
|
|
};
|
|
|
|
struct tg3_dev_id {
|
|
u32 vendor;
|
|
u32 device;
|
|
u32 rev;
|
|
};
|
|
|
|
struct tg3_dev_id___2 {
|
|
u32 vendor;
|
|
u32 device;
|
|
};
|
|
|
|
struct subsys_tbl_ent {
|
|
u16 subsys_vendor;
|
|
u16 subsys_devid;
|
|
u32 phy_id;
|
|
};
|
|
|
|
enum TG3_FLAGS {
|
|
TG3_FLAG_TAGGED_STATUS = 0,
|
|
TG3_FLAG_TXD_MBOX_HWBUG = 1,
|
|
TG3_FLAG_USE_LINKCHG_REG = 2,
|
|
TG3_FLAG_ERROR_PROCESSED = 3,
|
|
TG3_FLAG_ENABLE_ASF = 4,
|
|
TG3_FLAG_ASPM_WORKAROUND = 5,
|
|
TG3_FLAG_POLL_SERDES = 6,
|
|
TG3_FLAG_POLL_CPMU_LINK = 7,
|
|
TG3_FLAG_MBOX_WRITE_REORDER = 8,
|
|
TG3_FLAG_PCIX_TARGET_HWBUG = 9,
|
|
TG3_FLAG_WOL_SPEED_100MB = 10,
|
|
TG3_FLAG_WOL_ENABLE = 11,
|
|
TG3_FLAG_EEPROM_WRITE_PROT = 12,
|
|
TG3_FLAG_NVRAM = 13,
|
|
TG3_FLAG_NVRAM_BUFFERED = 14,
|
|
TG3_FLAG_SUPPORT_MSI = 15,
|
|
TG3_FLAG_SUPPORT_MSIX = 16,
|
|
TG3_FLAG_USING_MSI = 17,
|
|
TG3_FLAG_USING_MSIX = 18,
|
|
TG3_FLAG_PCIX_MODE = 19,
|
|
TG3_FLAG_PCI_HIGH_SPEED = 20,
|
|
TG3_FLAG_PCI_32BIT = 21,
|
|
TG3_FLAG_SRAM_USE_CONFIG = 22,
|
|
TG3_FLAG_TX_RECOVERY_PENDING = 23,
|
|
TG3_FLAG_WOL_CAP = 24,
|
|
TG3_FLAG_JUMBO_RING_ENABLE = 25,
|
|
TG3_FLAG_PAUSE_AUTONEG = 26,
|
|
TG3_FLAG_CPMU_PRESENT = 27,
|
|
TG3_FLAG_40BIT_DMA_BUG = 28,
|
|
TG3_FLAG_BROKEN_CHECKSUMS = 29,
|
|
TG3_FLAG_JUMBO_CAPABLE = 30,
|
|
TG3_FLAG_CHIP_RESETTING = 31,
|
|
TG3_FLAG_INIT_COMPLETE = 32,
|
|
TG3_FLAG_MAX_RXPEND_64 = 33,
|
|
TG3_FLAG_PCI_EXPRESS = 34,
|
|
TG3_FLAG_ASF_NEW_HANDSHAKE = 35,
|
|
TG3_FLAG_HW_AUTONEG = 36,
|
|
TG3_FLAG_IS_NIC = 37,
|
|
TG3_FLAG_FLASH = 38,
|
|
TG3_FLAG_FW_TSO = 39,
|
|
TG3_FLAG_HW_TSO_1 = 40,
|
|
TG3_FLAG_HW_TSO_2 = 41,
|
|
TG3_FLAG_HW_TSO_3 = 42,
|
|
TG3_FLAG_TSO_CAPABLE = 43,
|
|
TG3_FLAG_TSO_BUG = 44,
|
|
TG3_FLAG_ICH_WORKAROUND = 45,
|
|
TG3_FLAG_1SHOT_MSI = 46,
|
|
TG3_FLAG_NO_FWARE_REPORTED = 47,
|
|
TG3_FLAG_NO_NVRAM_ADDR_TRANS = 48,
|
|
TG3_FLAG_ENABLE_APE = 49,
|
|
TG3_FLAG_PROTECTED_NVRAM = 50,
|
|
TG3_FLAG_5701_DMA_BUG = 51,
|
|
TG3_FLAG_USE_PHYLIB = 52,
|
|
TG3_FLAG_MDIOBUS_INITED = 53,
|
|
TG3_FLAG_LRG_PROD_RING_CAP = 54,
|
|
TG3_FLAG_RGMII_INBAND_DISABLE = 55,
|
|
TG3_FLAG_RGMII_EXT_IBND_RX_EN = 56,
|
|
TG3_FLAG_RGMII_EXT_IBND_TX_EN = 57,
|
|
TG3_FLAG_CLKREQ_BUG = 58,
|
|
TG3_FLAG_NO_NVRAM = 59,
|
|
TG3_FLAG_ENABLE_RSS = 60,
|
|
TG3_FLAG_ENABLE_TSS = 61,
|
|
TG3_FLAG_SHORT_DMA_BUG = 62,
|
|
TG3_FLAG_USE_JUMBO_BDFLAG = 63,
|
|
TG3_FLAG_L1PLLPD_EN = 64,
|
|
TG3_FLAG_APE_HAS_NCSI = 65,
|
|
TG3_FLAG_TX_TSTAMP_EN = 66,
|
|
TG3_FLAG_4K_FIFO_LIMIT = 67,
|
|
TG3_FLAG_5719_5720_RDMA_BUG = 68,
|
|
TG3_FLAG_RESET_TASK_PENDING = 69,
|
|
TG3_FLAG_PTP_CAPABLE = 70,
|
|
TG3_FLAG_5705_PLUS = 71,
|
|
TG3_FLAG_IS_5788 = 72,
|
|
TG3_FLAG_5750_PLUS = 73,
|
|
TG3_FLAG_5780_CLASS = 74,
|
|
TG3_FLAG_5755_PLUS = 75,
|
|
TG3_FLAG_57765_PLUS = 76,
|
|
TG3_FLAG_57765_CLASS = 77,
|
|
TG3_FLAG_5717_PLUS = 78,
|
|
TG3_FLAG_IS_SSB_CORE = 79,
|
|
TG3_FLAG_FLUSH_POSTED_WRITES = 80,
|
|
TG3_FLAG_ROBOSWITCH = 81,
|
|
TG3_FLAG_ONE_DMA_AT_ONCE = 82,
|
|
TG3_FLAG_RGMII_MODE = 83,
|
|
TG3_FLAG_NUMBER_OF_FLAGS = 84,
|
|
};
|
|
|
|
struct tg3_rx_buffer_desc;
|
|
|
|
struct tg3_ext_rx_buffer_desc;
|
|
|
|
struct ring_info___2;
|
|
|
|
struct tg3_rx_prodring_set {
|
|
u32 rx_std_prod_idx;
|
|
u32 rx_std_cons_idx;
|
|
u32 rx_jmb_prod_idx;
|
|
u32 rx_jmb_cons_idx;
|
|
struct tg3_rx_buffer_desc *rx_std;
|
|
struct tg3_ext_rx_buffer_desc *rx_jmb;
|
|
struct ring_info___2 *rx_std_buffers;
|
|
struct ring_info___2 *rx_jmb_buffers;
|
|
dma_addr_t rx_std_mapping;
|
|
dma_addr_t rx_jmb_mapping;
|
|
};
|
|
|
|
struct tg3;
|
|
|
|
struct tg3_hw_status;
|
|
|
|
struct tg3_tx_buffer_desc;
|
|
|
|
struct tg3_tx_ring_info;
|
|
|
|
struct tg3_napi {
|
|
struct napi_struct napi;
|
|
struct tg3 *tp;
|
|
struct tg3_hw_status *hw_status;
|
|
u32 chk_msi_cnt;
|
|
u32 last_tag;
|
|
u32 last_irq_tag;
|
|
u32 int_mbox;
|
|
u32 coal_now;
|
|
long: 32;
|
|
long: 64;
|
|
u32 consmbox;
|
|
u32 rx_rcb_ptr;
|
|
u32 last_rx_cons;
|
|
u16 *rx_rcb_prod_idx;
|
|
struct tg3_rx_prodring_set prodring;
|
|
struct tg3_rx_buffer_desc *rx_rcb;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
u32 tx_prod;
|
|
u32 tx_cons;
|
|
u32 tx_pending;
|
|
u32 last_tx_cons;
|
|
u32 prodmbox;
|
|
struct tg3_tx_buffer_desc *tx_ring;
|
|
struct tg3_tx_ring_info *tx_buffers;
|
|
dma_addr_t status_mapping;
|
|
dma_addr_t rx_rcb_mapping;
|
|
dma_addr_t tx_desc_mapping;
|
|
char irq_lbl[16];
|
|
unsigned int irq_vec;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct tg3_ethtool_stats {
|
|
u64 rx_octets;
|
|
u64 rx_fragments;
|
|
u64 rx_ucast_packets;
|
|
u64 rx_mcast_packets;
|
|
u64 rx_bcast_packets;
|
|
u64 rx_fcs_errors;
|
|
u64 rx_align_errors;
|
|
u64 rx_xon_pause_rcvd;
|
|
u64 rx_xoff_pause_rcvd;
|
|
u64 rx_mac_ctrl_rcvd;
|
|
u64 rx_xoff_entered;
|
|
u64 rx_frame_too_long_errors;
|
|
u64 rx_jabbers;
|
|
u64 rx_undersize_packets;
|
|
u64 rx_in_length_errors;
|
|
u64 rx_out_length_errors;
|
|
u64 rx_64_or_less_octet_packets;
|
|
u64 rx_65_to_127_octet_packets;
|
|
u64 rx_128_to_255_octet_packets;
|
|
u64 rx_256_to_511_octet_packets;
|
|
u64 rx_512_to_1023_octet_packets;
|
|
u64 rx_1024_to_1522_octet_packets;
|
|
u64 rx_1523_to_2047_octet_packets;
|
|
u64 rx_2048_to_4095_octet_packets;
|
|
u64 rx_4096_to_8191_octet_packets;
|
|
u64 rx_8192_to_9022_octet_packets;
|
|
u64 tx_octets;
|
|
u64 tx_collisions;
|
|
u64 tx_xon_sent;
|
|
u64 tx_xoff_sent;
|
|
u64 tx_flow_control;
|
|
u64 tx_mac_errors;
|
|
u64 tx_single_collisions;
|
|
u64 tx_mult_collisions;
|
|
u64 tx_deferred;
|
|
u64 tx_excessive_collisions;
|
|
u64 tx_late_collisions;
|
|
u64 tx_collide_2times;
|
|
u64 tx_collide_3times;
|
|
u64 tx_collide_4times;
|
|
u64 tx_collide_5times;
|
|
u64 tx_collide_6times;
|
|
u64 tx_collide_7times;
|
|
u64 tx_collide_8times;
|
|
u64 tx_collide_9times;
|
|
u64 tx_collide_10times;
|
|
u64 tx_collide_11times;
|
|
u64 tx_collide_12times;
|
|
u64 tx_collide_13times;
|
|
u64 tx_collide_14times;
|
|
u64 tx_collide_15times;
|
|
u64 tx_ucast_packets;
|
|
u64 tx_mcast_packets;
|
|
u64 tx_bcast_packets;
|
|
u64 tx_carrier_sense_errors;
|
|
u64 tx_discards;
|
|
u64 tx_errors;
|
|
u64 dma_writeq_full;
|
|
u64 dma_write_prioq_full;
|
|
u64 rxbds_empty;
|
|
u64 rx_discards;
|
|
u64 rx_errors;
|
|
u64 rx_threshold_hit;
|
|
u64 dma_readq_full;
|
|
u64 dma_read_prioq_full;
|
|
u64 tx_comp_queue_full;
|
|
u64 ring_set_send_prod_index;
|
|
u64 ring_status_update;
|
|
u64 nic_irqs;
|
|
u64 nic_avoided_irqs;
|
|
u64 nic_tx_threshold_hit;
|
|
u64 mbuf_lwm_thresh_hit;
|
|
};
|
|
|
|
struct tg3_link_config {
|
|
u32 advertising;
|
|
u32 speed;
|
|
u8 duplex;
|
|
u8 autoneg;
|
|
u8 flowctrl;
|
|
u8 active_flowctrl;
|
|
u8 active_duplex;
|
|
u32 active_speed;
|
|
u32 rmt_adv;
|
|
};
|
|
|
|
struct tg3_bufmgr_config {
|
|
u32 mbuf_read_dma_low_water;
|
|
u32 mbuf_mac_rx_low_water;
|
|
u32 mbuf_high_water;
|
|
u32 mbuf_read_dma_low_water_jumbo;
|
|
u32 mbuf_mac_rx_low_water_jumbo;
|
|
u32 mbuf_high_water_jumbo;
|
|
u32 dma_low_water;
|
|
u32 dma_high_water;
|
|
};
|
|
|
|
struct tg3_hw_stats;
|
|
|
|
struct tg3 {
|
|
unsigned int irq_sync;
|
|
spinlock_t lock;
|
|
spinlock_t indirect_lock;
|
|
u32 (*read32)(struct tg3 *, u32);
|
|
void (*write32)(struct tg3 *, u32, u32);
|
|
u32 (*read32_mbox)(struct tg3 *, u32);
|
|
void (*write32_mbox)(struct tg3 *, u32, u32);
|
|
void *regs;
|
|
void *aperegs;
|
|
struct net_device *dev;
|
|
struct pci_dev *pdev;
|
|
u32 coal_now;
|
|
u32 msg_enable;
|
|
struct ptp_clock_info ptp_info;
|
|
struct ptp_clock *ptp_clock;
|
|
s64 ptp_adjust;
|
|
void (*write32_tx_mbox)(struct tg3 *, u32, u32);
|
|
u32 dma_limit;
|
|
u32 txq_req;
|
|
u32 txq_cnt;
|
|
u32 txq_max;
|
|
long: 64;
|
|
long: 64;
|
|
struct tg3_napi napi[5];
|
|
void (*write32_rx_mbox)(struct tg3 *, u32, u32);
|
|
u32 rx_copy_thresh;
|
|
u32 rx_std_ring_mask;
|
|
u32 rx_jmb_ring_mask;
|
|
u32 rx_ret_ring_mask;
|
|
u32 rx_pending;
|
|
u32 rx_jumbo_pending;
|
|
u32 rx_std_max_post;
|
|
u32 rx_offset;
|
|
u32 rx_pkt_map_sz;
|
|
u32 rxq_req;
|
|
u32 rxq_cnt;
|
|
u32 rxq_max;
|
|
bool rx_refill;
|
|
unsigned long rx_dropped;
|
|
unsigned long tx_dropped;
|
|
struct rtnl_link_stats64 net_stats_prev;
|
|
struct tg3_ethtool_stats estats_prev;
|
|
unsigned long tg3_flags[2];
|
|
union {
|
|
unsigned long phy_crc_errors;
|
|
unsigned long last_event_jiffies;
|
|
};
|
|
struct timer_list timer;
|
|
u16 timer_counter;
|
|
u16 timer_multiplier;
|
|
u32 timer_offset;
|
|
u16 asf_counter;
|
|
u16 asf_multiplier;
|
|
u32 serdes_counter;
|
|
struct tg3_link_config link_config;
|
|
struct tg3_bufmgr_config bufmgr_config;
|
|
u32 rx_mode;
|
|
u32 tx_mode;
|
|
u32 mac_mode;
|
|
u32 mi_mode;
|
|
u32 misc_host_ctrl;
|
|
u32 grc_mode;
|
|
u32 grc_local_ctrl;
|
|
u32 dma_rwctrl;
|
|
u32 coalesce_mode;
|
|
u32 pwrmgmt_thresh;
|
|
u32 rxptpctl;
|
|
u32 pci_chip_rev_id;
|
|
u16 pci_cmd;
|
|
u8 pci_cacheline_sz;
|
|
u8 pci_lat_timer;
|
|
int pci_fn;
|
|
int msi_cap;
|
|
int pcix_cap;
|
|
int pcie_readrq;
|
|
struct mii_bus *mdio_bus;
|
|
int old_link;
|
|
u8 phy_addr;
|
|
u8 phy_ape_lock;
|
|
u32 phy_id;
|
|
u32 phy_flags;
|
|
u32 led_ctrl;
|
|
u32 phy_otp;
|
|
u32 setlpicnt;
|
|
u8 rss_ind_tbl[128];
|
|
char board_part_number[24];
|
|
char fw_ver[32];
|
|
u32 nic_sram_data_cfg;
|
|
u32 pci_clock_ctrl;
|
|
struct pci_dev *pdev_peer;
|
|
struct tg3_hw_stats *hw_stats;
|
|
dma_addr_t stats_mapping;
|
|
struct work_struct reset_task;
|
|
int nvram_lock_cnt;
|
|
u32 nvram_size;
|
|
u32 nvram_pagesize;
|
|
u32 nvram_jedecnum;
|
|
unsigned int irq_max;
|
|
unsigned int irq_cnt;
|
|
struct ethtool_coalesce coal;
|
|
struct ethtool_eee eee;
|
|
const char *fw_needed;
|
|
const struct firmware *fw;
|
|
u32 fw_len;
|
|
struct device *hwmon_dev;
|
|
bool link_up;
|
|
bool pcierr_recovery;
|
|
u32 ape_hb;
|
|
unsigned long ape_hb_interval;
|
|
unsigned long ape_hb_jiffies;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct tg3_hw_status {
|
|
u32 status;
|
|
u32 status_tag;
|
|
u16 rx_jumbo_consumer;
|
|
u16 rx_consumer;
|
|
u16 rx_mini_consumer;
|
|
u16 reserved;
|
|
struct {
|
|
u16 rx_producer;
|
|
u16 tx_consumer;
|
|
} idx[16];
|
|
};
|
|
|
|
struct tg3_rx_buffer_desc {
|
|
u32 addr_hi;
|
|
u32 addr_lo;
|
|
u32 idx_len;
|
|
u32 type_flags;
|
|
u32 ip_tcp_csum;
|
|
u32 err_vlan;
|
|
u32 reserved;
|
|
u32 opaque;
|
|
};
|
|
|
|
struct tg3_ext_rx_buffer_desc {
|
|
struct {
|
|
u32 addr_hi;
|
|
u32 addr_lo;
|
|
} addrlist[3];
|
|
u32 len2_len1;
|
|
u32 resv_len3;
|
|
struct tg3_rx_buffer_desc std;
|
|
};
|
|
|
|
struct ring_info___2 {
|
|
u8 *data;
|
|
dma_addr_t mapping;
|
|
};
|
|
|
|
struct tg3_tx_buffer_desc {
|
|
u32 addr_hi;
|
|
u32 addr_lo;
|
|
u32 len_flags;
|
|
u32 vlan_tag;
|
|
};
|
|
|
|
struct tg3_tx_ring_info {
|
|
struct sk_buff *skb;
|
|
dma_addr_t mapping;
|
|
bool fragmented;
|
|
};
|
|
|
|
typedef struct {
|
|
u32 high;
|
|
u32 low;
|
|
} tg3_stat64_t;
|
|
|
|
struct tg3_hw_stats {
|
|
u8 __reserved0[256];
|
|
tg3_stat64_t rx_octets;
|
|
u64 __reserved1;
|
|
tg3_stat64_t rx_fragments;
|
|
tg3_stat64_t rx_ucast_packets;
|
|
tg3_stat64_t rx_mcast_packets;
|
|
tg3_stat64_t rx_bcast_packets;
|
|
tg3_stat64_t rx_fcs_errors;
|
|
tg3_stat64_t rx_align_errors;
|
|
tg3_stat64_t rx_xon_pause_rcvd;
|
|
tg3_stat64_t rx_xoff_pause_rcvd;
|
|
tg3_stat64_t rx_mac_ctrl_rcvd;
|
|
tg3_stat64_t rx_xoff_entered;
|
|
tg3_stat64_t rx_frame_too_long_errors;
|
|
tg3_stat64_t rx_jabbers;
|
|
tg3_stat64_t rx_undersize_packets;
|
|
tg3_stat64_t rx_in_length_errors;
|
|
tg3_stat64_t rx_out_length_errors;
|
|
tg3_stat64_t rx_64_or_less_octet_packets;
|
|
tg3_stat64_t rx_65_to_127_octet_packets;
|
|
tg3_stat64_t rx_128_to_255_octet_packets;
|
|
tg3_stat64_t rx_256_to_511_octet_packets;
|
|
tg3_stat64_t rx_512_to_1023_octet_packets;
|
|
tg3_stat64_t rx_1024_to_1522_octet_packets;
|
|
tg3_stat64_t rx_1523_to_2047_octet_packets;
|
|
tg3_stat64_t rx_2048_to_4095_octet_packets;
|
|
tg3_stat64_t rx_4096_to_8191_octet_packets;
|
|
tg3_stat64_t rx_8192_to_9022_octet_packets;
|
|
u64 __unused0[37];
|
|
tg3_stat64_t tx_octets;
|
|
u64 __reserved2;
|
|
tg3_stat64_t tx_collisions;
|
|
tg3_stat64_t tx_xon_sent;
|
|
tg3_stat64_t tx_xoff_sent;
|
|
tg3_stat64_t tx_flow_control;
|
|
tg3_stat64_t tx_mac_errors;
|
|
tg3_stat64_t tx_single_collisions;
|
|
tg3_stat64_t tx_mult_collisions;
|
|
tg3_stat64_t tx_deferred;
|
|
u64 __reserved3;
|
|
tg3_stat64_t tx_excessive_collisions;
|
|
tg3_stat64_t tx_late_collisions;
|
|
tg3_stat64_t tx_collide_2times;
|
|
tg3_stat64_t tx_collide_3times;
|
|
tg3_stat64_t tx_collide_4times;
|
|
tg3_stat64_t tx_collide_5times;
|
|
tg3_stat64_t tx_collide_6times;
|
|
tg3_stat64_t tx_collide_7times;
|
|
tg3_stat64_t tx_collide_8times;
|
|
tg3_stat64_t tx_collide_9times;
|
|
tg3_stat64_t tx_collide_10times;
|
|
tg3_stat64_t tx_collide_11times;
|
|
tg3_stat64_t tx_collide_12times;
|
|
tg3_stat64_t tx_collide_13times;
|
|
tg3_stat64_t tx_collide_14times;
|
|
tg3_stat64_t tx_collide_15times;
|
|
tg3_stat64_t tx_ucast_packets;
|
|
tg3_stat64_t tx_mcast_packets;
|
|
tg3_stat64_t tx_bcast_packets;
|
|
tg3_stat64_t tx_carrier_sense_errors;
|
|
tg3_stat64_t tx_discards;
|
|
tg3_stat64_t tx_errors;
|
|
u64 __unused1[31];
|
|
tg3_stat64_t COS_rx_packets[16];
|
|
tg3_stat64_t COS_rx_filter_dropped;
|
|
tg3_stat64_t dma_writeq_full;
|
|
tg3_stat64_t dma_write_prioq_full;
|
|
tg3_stat64_t rxbds_empty;
|
|
tg3_stat64_t rx_discards;
|
|
tg3_stat64_t rx_errors;
|
|
tg3_stat64_t rx_threshold_hit;
|
|
u64 __unused2[9];
|
|
tg3_stat64_t COS_out_packets[16];
|
|
tg3_stat64_t dma_readq_full;
|
|
tg3_stat64_t dma_read_prioq_full;
|
|
tg3_stat64_t tx_comp_queue_full;
|
|
tg3_stat64_t ring_set_send_prod_index;
|
|
tg3_stat64_t ring_status_update;
|
|
tg3_stat64_t nic_irqs;
|
|
tg3_stat64_t nic_avoided_irqs;
|
|
tg3_stat64_t nic_tx_threshold_hit;
|
|
tg3_stat64_t mbuf_lwm_thresh_hit;
|
|
u8 __reserved4[312];
|
|
};
|
|
|
|
struct tg3_firmware_hdr {
|
|
__be32 version;
|
|
__be32 base_addr;
|
|
__be32 len;
|
|
};
|
|
|
|
struct tg3_fiber_aneginfo {
|
|
int state;
|
|
u32 flags;
|
|
unsigned long link_time;
|
|
unsigned long cur_time;
|
|
u32 ability_match_cfg;
|
|
int ability_match_count;
|
|
char ability_match;
|
|
char idle_match;
|
|
char ack_match;
|
|
u32 txconfig;
|
|
u32 rxconfig;
|
|
};
|
|
|
|
struct tg3_ocir {
|
|
u32 signature;
|
|
u16 version_flags;
|
|
u16 refresh_int;
|
|
u32 refresh_tmr;
|
|
u32 update_tmr;
|
|
u32 dst_base_addr;
|
|
u16 src_hdr_offset;
|
|
u16 src_hdr_length;
|
|
u16 src_data_offset;
|
|
u16 src_data_length;
|
|
u16 dst_hdr_offset;
|
|
u16 dst_data_offset;
|
|
u16 dst_reg_upd_offset;
|
|
u16 dst_sem_offset;
|
|
u32 reserved1[2];
|
|
u32 port0_flags;
|
|
u32 port1_flags;
|
|
u32 port2_flags;
|
|
u32 port3_flags;
|
|
u32 reserved2;
|
|
};
|
|
|
|
struct tg3_internal_buffer_desc {
|
|
u32 addr_hi;
|
|
u32 addr_lo;
|
|
u32 nic_mbuf;
|
|
u16 len;
|
|
u16 cqid_sqid;
|
|
u32 flags;
|
|
u32 __cookie1;
|
|
u32 __cookie2;
|
|
u32 __cookie3;
|
|
};
|
|
|
|
struct ntrig_data {
|
|
__u16 x;
|
|
__u16 y;
|
|
__u16 w;
|
|
__u16 h;
|
|
__u16 id;
|
|
bool tipswitch;
|
|
bool confidence;
|
|
bool first_contact_touch;
|
|
bool reading_mt;
|
|
__u8 mt_footer[4];
|
|
__u8 mt_foot_count;
|
|
__s8 act_state;
|
|
__s8 deactivate_slack;
|
|
__s8 activate_slack;
|
|
__u16 min_width;
|
|
__u16 min_height;
|
|
__u16 activation_width;
|
|
__u16 activation_height;
|
|
__u16 sensor_logical_width;
|
|
__u16 sensor_logical_height;
|
|
__u16 sensor_physical_width;
|
|
__u16 sensor_physical_height;
|
|
};
|
|
|
|
struct channel_map_table {
|
|
unsigned char map;
|
|
int spk_mask;
|
|
};
|
|
|
|
struct hdac_cea_channel_speaker_allocation {
|
|
int ca_index;
|
|
int speakers[8];
|
|
int channels;
|
|
int spk_mask;
|
|
};
|
|
|
|
struct hdac_chmap;
|
|
|
|
struct hdac_chmap_ops {
|
|
int (*chmap_cea_alloc_validate_get_type)(struct hdac_chmap *, struct hdac_cea_channel_speaker_allocation *, int);
|
|
void (*cea_alloc_to_tlv_chmap)(struct hdac_chmap *, struct hdac_cea_channel_speaker_allocation *, unsigned int *, int);
|
|
int (*chmap_validate)(struct hdac_chmap *, int, int, unsigned char *);
|
|
int (*get_spk_alloc)(struct hdac_device *, int);
|
|
void (*get_chmap)(struct hdac_device *, int, unsigned char *);
|
|
void (*set_chmap)(struct hdac_device *, int, unsigned char *, int);
|
|
bool (*is_pcm_attached)(struct hdac_device *, int);
|
|
int (*pin_get_slot_channel)(struct hdac_device *, hda_nid_t, int);
|
|
int (*pin_set_slot_channel)(struct hdac_device *, hda_nid_t, int, int);
|
|
void (*set_channel_count)(struct hdac_device *, hda_nid_t, int);
|
|
};
|
|
|
|
struct hdac_chmap {
|
|
unsigned int channels_max;
|
|
struct hdac_chmap_ops ops;
|
|
struct hdac_device *hdac;
|
|
};
|
|
|
|
struct tc_ratespec {
|
|
unsigned char cell_log;
|
|
__u8 linklayer;
|
|
unsigned short overhead;
|
|
short cell_align;
|
|
unsigned short mpu;
|
|
__u32 rate;
|
|
};
|
|
|
|
struct qdisc_rate_table {
|
|
struct tc_ratespec rate;
|
|
u32 data[256];
|
|
struct qdisc_rate_table *next;
|
|
int refcnt;
|
|
};
|
|
|
|
enum tc_link_layer {
|
|
TC_LINKLAYER_UNAWARE = 0,
|
|
TC_LINKLAYER_ETHERNET = 1,
|
|
TC_LINKLAYER_ATM = 2,
|
|
};
|
|
|
|
enum {
|
|
TCA_STAB_UNSPEC = 0,
|
|
TCA_STAB_BASE = 1,
|
|
TCA_STAB_DATA = 2,
|
|
__TCA_STAB_MAX = 3,
|
|
};
|
|
|
|
enum tc_root_command {
|
|
TC_ROOT_GRAFT = 0,
|
|
};
|
|
|
|
struct Qdisc_class_common {
|
|
u32 classid;
|
|
struct hlist_node hnode;
|
|
};
|
|
|
|
struct qdisc_watchdog {
|
|
u64 last_expires;
|
|
struct hrtimer timer;
|
|
struct Qdisc *qdisc;
|
|
};
|
|
|
|
struct check_loop_arg {
|
|
struct qdisc_walker w;
|
|
struct Qdisc *p;
|
|
int depth;
|
|
};
|
|
|
|
struct tc_bind_class_args {
|
|
struct qdisc_walker w;
|
|
unsigned long new_cl;
|
|
u32 portid;
|
|
u32 clid;
|
|
};
|
|
|
|
struct qdisc_dump_args {
|
|
struct qdisc_walker w;
|
|
struct sk_buff *skb;
|
|
struct netlink_callback *cb;
|
|
};
|
|
|
|
struct tc_root_qopt_offload {
|
|
enum tc_root_command command;
|
|
u32 handle;
|
|
bool ingress;
|
|
};
|
|
|
|
struct Qdisc_class_hash {
|
|
struct hlist_head *hash;
|
|
unsigned int hashsize;
|
|
unsigned int hashmask;
|
|
unsigned int hashelems;
|
|
};
|
|
|
|
struct tc_query_caps_base {
|
|
enum tc_setup_type type;
|
|
void *caps;
|
|
};
|
|
|
|
struct tcf_bind_args {
|
|
struct tcf_walker w;
|
|
unsigned long base;
|
|
unsigned long cl;
|
|
u32 classid;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_STATS_ETH_PHY = 0,
|
|
ETHTOOL_STATS_ETH_MAC = 1,
|
|
ETHTOOL_STATS_ETH_CTRL = 2,
|
|
ETHTOOL_STATS_RMON = 3,
|
|
__ETHTOOL_STATS_CNT = 4,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STATS_UNSPEC = 0,
|
|
ETHTOOL_A_STATS_PAD = 1,
|
|
ETHTOOL_A_STATS_HEADER = 2,
|
|
ETHTOOL_A_STATS_GROUPS = 3,
|
|
ETHTOOL_A_STATS_GRP = 4,
|
|
ETHTOOL_A_STATS_SRC = 5,
|
|
__ETHTOOL_A_STATS_CNT = 6,
|
|
ETHTOOL_A_STATS_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STATS_GRP_UNSPEC = 0,
|
|
ETHTOOL_A_STATS_GRP_PAD = 1,
|
|
ETHTOOL_A_STATS_GRP_ID = 2,
|
|
ETHTOOL_A_STATS_GRP_SS_ID = 3,
|
|
ETHTOOL_A_STATS_GRP_STAT = 4,
|
|
ETHTOOL_A_STATS_GRP_HIST_RX = 5,
|
|
ETHTOOL_A_STATS_GRP_HIST_TX = 6,
|
|
ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7,
|
|
ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8,
|
|
ETHTOOL_A_STATS_GRP_HIST_VAL = 9,
|
|
__ETHTOOL_A_STATS_GRP_CNT = 10,
|
|
ETHTOOL_A_STATS_GRP_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0,
|
|
__ETHTOOL_A_STATS_ETH_PHY_CNT = 1,
|
|
ETHTOOL_A_STATS_ETH_PHY_MAX = 0,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0,
|
|
ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1,
|
|
ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2,
|
|
ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3,
|
|
ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4,
|
|
ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5,
|
|
ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6,
|
|
ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7,
|
|
ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8,
|
|
ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9,
|
|
ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10,
|
|
ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11,
|
|
ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12,
|
|
ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13,
|
|
ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14,
|
|
ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15,
|
|
ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16,
|
|
ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17,
|
|
ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18,
|
|
ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19,
|
|
ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20,
|
|
ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21,
|
|
__ETHTOOL_A_STATS_ETH_MAC_CNT = 22,
|
|
ETHTOOL_A_STATS_ETH_MAC_MAX = 21,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0,
|
|
ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1,
|
|
ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2,
|
|
__ETHTOOL_A_STATS_ETH_CTRL_CNT = 3,
|
|
ETHTOOL_A_STATS_ETH_CTRL_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_STATS_RMON_UNDERSIZE = 0,
|
|
ETHTOOL_A_STATS_RMON_OVERSIZE = 1,
|
|
ETHTOOL_A_STATS_RMON_FRAG = 2,
|
|
ETHTOOL_A_STATS_RMON_JABBER = 3,
|
|
__ETHTOOL_A_STATS_RMON_CNT = 4,
|
|
ETHTOOL_A_STATS_RMON_MAX = 3,
|
|
};
|
|
|
|
struct stats_req_info {
|
|
struct ethnl_req_info base;
|
|
unsigned long stat_mask[1];
|
|
enum ethtool_mac_stats_src src;
|
|
};
|
|
|
|
struct stats_reply_data {
|
|
struct ethnl_reply_data base;
|
|
union {
|
|
struct {
|
|
struct ethtool_eth_phy_stats phy_stats;
|
|
struct ethtool_eth_mac_stats mac_stats;
|
|
struct ethtool_eth_ctrl_stats ctrl_stats;
|
|
struct ethtool_rmon_stats rmon_stats;
|
|
};
|
|
struct {
|
|
struct ethtool_eth_phy_stats phy_stats;
|
|
struct ethtool_eth_mac_stats mac_stats;
|
|
struct ethtool_eth_ctrl_stats ctrl_stats;
|
|
struct ethtool_rmon_stats rmon_stats;
|
|
} stats;
|
|
};
|
|
const struct ethtool_rmon_hist_range *rmon_ranges;
|
|
};
|
|
|
|
struct icmp_err {
|
|
int errno;
|
|
unsigned int fatal: 1;
|
|
};
|
|
|
|
struct icmp_control {
|
|
enum skb_drop_reason (*handler)(struct sk_buff *);
|
|
short error;
|
|
};
|
|
|
|
struct icmp_bxm {
|
|
struct sk_buff *skb;
|
|
int offset;
|
|
int data_len;
|
|
struct {
|
|
struct icmphdr icmph;
|
|
__be32 times[3];
|
|
} data;
|
|
int head_len;
|
|
struct ip_options_data replyopts;
|
|
};
|
|
|
|
struct icmp_extobj_hdr {
|
|
__be16 length;
|
|
__u8 class_num;
|
|
__u8 class_type;
|
|
};
|
|
|
|
struct icmp_ext_hdr {
|
|
__u8 reserved1: 4;
|
|
__u8 version: 4;
|
|
__u8 reserved2;
|
|
__sum16 checksum;
|
|
};
|
|
|
|
struct icmp_ext_echo_ctype3_hdr {
|
|
__be16 afi;
|
|
__u8 addrlen;
|
|
__u8 reserved;
|
|
};
|
|
|
|
struct icmp_ext_echo_iio {
|
|
struct icmp_extobj_hdr extobj_hdr;
|
|
union {
|
|
char name[16];
|
|
__be32 ifindex;
|
|
struct {
|
|
struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
|
|
union {
|
|
__be32 ipv4_addr;
|
|
struct in6_addr ipv6_addr;
|
|
} ip_addr;
|
|
} addr;
|
|
} ident;
|
|
};
|
|
|
|
enum ip6t_reject_with {
|
|
IP6T_ICMP6_NO_ROUTE = 0,
|
|
IP6T_ICMP6_ADM_PROHIBITED = 1,
|
|
IP6T_ICMP6_NOT_NEIGHBOUR = 2,
|
|
IP6T_ICMP6_ADDR_UNREACH = 3,
|
|
IP6T_ICMP6_PORT_UNREACH = 4,
|
|
IP6T_ICMP6_ECHOREPLY = 5,
|
|
IP6T_TCP_RESET = 6,
|
|
IP6T_ICMP6_POLICY_FAIL = 7,
|
|
IP6T_ICMP6_REJECT_ROUTE = 8,
|
|
};
|
|
|
|
struct ip6t_reject_info {
|
|
__u32 with;
|
|
};
|
|
|
|
struct cache_queue {
|
|
struct list_head list;
|
|
int reader;
|
|
};
|
|
|
|
struct cache_request {
|
|
struct cache_queue q;
|
|
struct cache_head *item;
|
|
char *buf;
|
|
int len;
|
|
int readers;
|
|
};
|
|
|
|
struct thread_deferred_req {
|
|
struct cache_deferred_req handle;
|
|
struct completion completion;
|
|
};
|
|
|
|
struct cache_reader {
|
|
struct cache_queue q;
|
|
int offset;
|
|
};
|
|
|
|
struct netlbl_domhsh_tbl {
|
|
struct list_head *tbl;
|
|
u32 size;
|
|
};
|
|
|
|
struct netlbl_af4list {
|
|
__be32 addr;
|
|
__be32 mask;
|
|
u32 valid;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct netlbl_domaddr4_map {
|
|
struct netlbl_dommap_def def;
|
|
struct netlbl_af4list list;
|
|
};
|
|
|
|
struct netlbl_af6list {
|
|
struct in6_addr addr;
|
|
struct in6_addr mask;
|
|
u32 valid;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct netlbl_domaddr6_map {
|
|
struct netlbl_dommap_def def;
|
|
struct netlbl_af6list list;
|
|
};
|
|
|
|
enum {
|
|
NLBL_MGMT_A_UNSPEC = 0,
|
|
NLBL_MGMT_A_DOMAIN = 1,
|
|
NLBL_MGMT_A_PROTOCOL = 2,
|
|
NLBL_MGMT_A_VERSION = 3,
|
|
NLBL_MGMT_A_CV4DOI = 4,
|
|
NLBL_MGMT_A_IPV6ADDR = 5,
|
|
NLBL_MGMT_A_IPV6MASK = 6,
|
|
NLBL_MGMT_A_IPV4ADDR = 7,
|
|
NLBL_MGMT_A_IPV4MASK = 8,
|
|
NLBL_MGMT_A_ADDRSELECTOR = 9,
|
|
NLBL_MGMT_A_SELECTORLIST = 10,
|
|
NLBL_MGMT_A_FAMILY = 11,
|
|
NLBL_MGMT_A_CLPDOI = 12,
|
|
__NLBL_MGMT_A_MAX = 13,
|
|
};
|
|
|
|
enum {
|
|
NLBL_MGMT_C_UNSPEC = 0,
|
|
NLBL_MGMT_C_ADD = 1,
|
|
NLBL_MGMT_C_REMOVE = 2,
|
|
NLBL_MGMT_C_LISTALL = 3,
|
|
NLBL_MGMT_C_ADDDEF = 4,
|
|
NLBL_MGMT_C_REMOVEDEF = 5,
|
|
NLBL_MGMT_C_LISTDEF = 6,
|
|
NLBL_MGMT_C_PROTOCOLS = 7,
|
|
NLBL_MGMT_C_VERSION = 8,
|
|
__NLBL_MGMT_C_MAX = 9,
|
|
};
|
|
|
|
struct netlbl_domhsh_walk_arg___2 {
|
|
struct netlink_callback *nl_cb;
|
|
struct sk_buff *skb;
|
|
u32 seq;
|
|
};
|
|
|
|
struct amd_hostbridge {
|
|
u32 bus;
|
|
u32 slot;
|
|
u32 device;
|
|
};
|
|
|
|
struct restore_data_record {
|
|
unsigned long jump_address;
|
|
unsigned long jump_address_phys;
|
|
unsigned long cr3;
|
|
unsigned long magic;
|
|
unsigned long e820_checksum;
|
|
};
|
|
|
|
typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *);
|
|
|
|
typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *);
|
|
|
|
typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *);
|
|
|
|
enum maple_type {
|
|
maple_dense = 0,
|
|
maple_leaf_64 = 1,
|
|
maple_range_64 = 2,
|
|
maple_arange_64 = 3,
|
|
};
|
|
|
|
struct trace_event_raw_ma_op {
|
|
struct trace_entry ent;
|
|
const char *fn;
|
|
unsigned long min;
|
|
unsigned long max;
|
|
unsigned long index;
|
|
unsigned long last;
|
|
void *node;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ma_read {
|
|
struct trace_entry ent;
|
|
const char *fn;
|
|
unsigned long min;
|
|
unsigned long max;
|
|
unsigned long index;
|
|
unsigned long last;
|
|
void *node;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ma_write {
|
|
struct trace_entry ent;
|
|
const char *fn;
|
|
unsigned long min;
|
|
unsigned long max;
|
|
unsigned long index;
|
|
unsigned long last;
|
|
unsigned long piv;
|
|
void *val;
|
|
void *node;
|
|
char __data[0];
|
|
};
|
|
|
|
struct maple_pnode;
|
|
|
|
struct maple_metadata {
|
|
unsigned char end;
|
|
unsigned char gap;
|
|
};
|
|
|
|
struct maple_range_64 {
|
|
struct maple_pnode *parent;
|
|
unsigned long pivot[15];
|
|
union {
|
|
void __attribute__((btf_type_tag("rcu"))) *slot[16];
|
|
struct {
|
|
void __attribute__((btf_type_tag("rcu"))) *pad[15];
|
|
struct maple_metadata meta;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct maple_arange_64 {
|
|
struct maple_pnode *parent;
|
|
unsigned long pivot[9];
|
|
void __attribute__((btf_type_tag("rcu"))) *slot[10];
|
|
unsigned long gap[10];
|
|
struct maple_metadata meta;
|
|
};
|
|
|
|
struct maple_node {
|
|
union {
|
|
struct {
|
|
struct maple_pnode *parent;
|
|
void __attribute__((btf_type_tag("rcu"))) *slot[31];
|
|
};
|
|
struct {
|
|
void *pad;
|
|
struct callback_head rcu;
|
|
struct maple_enode *piv_parent;
|
|
unsigned char parent_slot;
|
|
enum maple_type type;
|
|
unsigned char slot_len;
|
|
unsigned int ma_flags;
|
|
};
|
|
struct maple_range_64 mr64;
|
|
struct maple_arange_64 ma64;
|
|
struct maple_alloc alloc;
|
|
};
|
|
};
|
|
|
|
struct maple_topiary {
|
|
struct maple_pnode *parent;
|
|
struct maple_enode *next;
|
|
};
|
|
|
|
struct ma_wr_state {
|
|
struct ma_state *mas;
|
|
struct maple_node *node;
|
|
unsigned long r_min;
|
|
unsigned long r_max;
|
|
enum maple_type type;
|
|
unsigned char offset_end;
|
|
unsigned char node_end;
|
|
unsigned long *pivots;
|
|
unsigned long end_piv;
|
|
void __attribute__((btf_type_tag("rcu"))) **slots;
|
|
void *entry;
|
|
void *content;
|
|
};
|
|
|
|
struct maple_big_node {
|
|
struct maple_pnode *parent;
|
|
unsigned long pivot[33];
|
|
union {
|
|
struct maple_enode *slot[34];
|
|
struct {
|
|
unsigned long padding[21];
|
|
unsigned long gap[21];
|
|
};
|
|
};
|
|
unsigned char b_end;
|
|
enum maple_type type;
|
|
};
|
|
|
|
struct ma_topiary;
|
|
|
|
struct maple_subtree_state {
|
|
struct ma_state *orig_l;
|
|
struct ma_state *orig_r;
|
|
struct ma_state *l;
|
|
struct ma_state *m;
|
|
struct ma_state *r;
|
|
struct ma_topiary *free;
|
|
struct ma_topiary *destroy;
|
|
struct maple_big_node *bn;
|
|
};
|
|
|
|
struct ma_topiary {
|
|
struct maple_enode *head;
|
|
struct maple_enode *tail;
|
|
struct maple_tree *mtree;
|
|
};
|
|
|
|
struct trace_event_data_offsets_ma_op {};
|
|
|
|
struct trace_event_data_offsets_ma_read {};
|
|
|
|
struct trace_event_data_offsets_ma_write {};
|
|
|
|
enum {
|
|
PERF_BR_SPEC_NA = 0,
|
|
PERF_BR_SPEC_WRONG_PATH = 1,
|
|
PERF_BR_NON_SPEC_CORRECT_PATH = 2,
|
|
PERF_BR_SPEC_CORRECT_PATH = 3,
|
|
PERF_BR_SPEC_MAX = 4,
|
|
};
|
|
|
|
enum perf_branch_sample_type_shift {
|
|
PERF_SAMPLE_BRANCH_USER_SHIFT = 0,
|
|
PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1,
|
|
PERF_SAMPLE_BRANCH_HV_SHIFT = 2,
|
|
PERF_SAMPLE_BRANCH_ANY_SHIFT = 3,
|
|
PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4,
|
|
PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5,
|
|
PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6,
|
|
PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7,
|
|
PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8,
|
|
PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9,
|
|
PERF_SAMPLE_BRANCH_COND_SHIFT = 10,
|
|
PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11,
|
|
PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12,
|
|
PERF_SAMPLE_BRANCH_CALL_SHIFT = 13,
|
|
PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14,
|
|
PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15,
|
|
PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16,
|
|
PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17,
|
|
PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18,
|
|
PERF_SAMPLE_BRANCH_MAX_SHIFT = 19,
|
|
};
|
|
|
|
struct branch_entry {
|
|
union {
|
|
struct {
|
|
u64 ip: 58;
|
|
u64 ip_sign_ext: 5;
|
|
u64 mispredict: 1;
|
|
} split;
|
|
u64 full;
|
|
} from;
|
|
union {
|
|
struct {
|
|
u64 ip: 58;
|
|
u64 ip_sign_ext: 3;
|
|
u64 reserved: 1;
|
|
u64 spec: 1;
|
|
u64 valid: 1;
|
|
} split;
|
|
u64 full;
|
|
} to;
|
|
};
|
|
|
|
enum kcmp_type {
|
|
KCMP_FILE = 0,
|
|
KCMP_VM = 1,
|
|
KCMP_FILES = 2,
|
|
KCMP_FS = 3,
|
|
KCMP_SIGHAND = 4,
|
|
KCMP_IO = 5,
|
|
KCMP_SYSVSEM = 6,
|
|
KCMP_EPOLL_TFD = 7,
|
|
KCMP_TYPES = 8,
|
|
};
|
|
|
|
struct kcmp_epoll_slot {
|
|
__u32 efd;
|
|
__u32 tfd;
|
|
__u32 toff;
|
|
};
|
|
|
|
struct dma_chan___2 {
|
|
int lock;
|
|
const char *device_id;
|
|
};
|
|
|
|
enum {
|
|
Blktrace_setup = 1,
|
|
Blktrace_running = 2,
|
|
Blktrace_stopped = 3,
|
|
};
|
|
|
|
enum blktrace_cat {
|
|
BLK_TC_READ = 1,
|
|
BLK_TC_WRITE = 2,
|
|
BLK_TC_FLUSH = 4,
|
|
BLK_TC_SYNC = 8,
|
|
BLK_TC_SYNCIO = 8,
|
|
BLK_TC_QUEUE = 16,
|
|
BLK_TC_REQUEUE = 32,
|
|
BLK_TC_ISSUE = 64,
|
|
BLK_TC_COMPLETE = 128,
|
|
BLK_TC_FS = 256,
|
|
BLK_TC_PC = 512,
|
|
BLK_TC_NOTIFY = 1024,
|
|
BLK_TC_AHEAD = 2048,
|
|
BLK_TC_META = 4096,
|
|
BLK_TC_DISCARD = 8192,
|
|
BLK_TC_DRV_DATA = 16384,
|
|
BLK_TC_FUA = 32768,
|
|
BLK_TC_END = 32768,
|
|
};
|
|
|
|
enum blktrace_notify {
|
|
__BLK_TN_PROCESS = 0,
|
|
__BLK_TN_TIMESTAMP = 1,
|
|
__BLK_TN_MESSAGE = 2,
|
|
__BLK_TN_CGROUP = 256,
|
|
};
|
|
|
|
enum blktrace_act {
|
|
__BLK_TA_QUEUE = 1,
|
|
__BLK_TA_BACKMERGE = 2,
|
|
__BLK_TA_FRONTMERGE = 3,
|
|
__BLK_TA_GETRQ = 4,
|
|
__BLK_TA_SLEEPRQ = 5,
|
|
__BLK_TA_REQUEUE = 6,
|
|
__BLK_TA_ISSUE = 7,
|
|
__BLK_TA_COMPLETE = 8,
|
|
__BLK_TA_PLUG = 9,
|
|
__BLK_TA_UNPLUG_IO = 10,
|
|
__BLK_TA_UNPLUG_TIMER = 11,
|
|
__BLK_TA_INSERT = 12,
|
|
__BLK_TA_SPLIT = 13,
|
|
__BLK_TA_BOUNCE = 14,
|
|
__BLK_TA_REMAP = 15,
|
|
__BLK_TA_ABORT = 16,
|
|
__BLK_TA_DRV_DATA = 17,
|
|
__BLK_TA_CGROUP = 256,
|
|
};
|
|
|
|
struct blk_io_trace {
|
|
__u32 magic;
|
|
__u32 sequence;
|
|
__u64 time;
|
|
__u64 sector;
|
|
__u32 bytes;
|
|
__u32 action;
|
|
__u32 pid;
|
|
__u32 device;
|
|
__u32 cpu;
|
|
__u16 error;
|
|
__u16 pdu_len;
|
|
};
|
|
|
|
struct blk_user_trace_setup {
|
|
char name[32];
|
|
__u16 act_mask;
|
|
__u32 buf_size;
|
|
__u32 buf_nr;
|
|
__u64 start_lba;
|
|
__u64 end_lba;
|
|
__u32 pid;
|
|
};
|
|
|
|
struct compat_blk_user_trace_setup {
|
|
char name[32];
|
|
u16 act_mask;
|
|
short: 16;
|
|
u32 buf_size;
|
|
u32 buf_nr;
|
|
compat_u64 start_lba;
|
|
compat_u64 end_lba;
|
|
u32 pid;
|
|
} __attribute__((packed));
|
|
|
|
struct blk_io_trace_remap {
|
|
__be32 device_from;
|
|
__be32 device_to;
|
|
__be64 sector_from;
|
|
};
|
|
|
|
typedef void blk_log_action_t(struct trace_iterator *, const char *, bool);
|
|
|
|
struct bpf_empty_prog_array {
|
|
struct bpf_prog_array hdr;
|
|
struct bpf_prog *null_prog;
|
|
};
|
|
|
|
typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32);
|
|
|
|
typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int);
|
|
|
|
typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
|
|
|
|
typedef void (*btf_trace_xdp_redirect_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
|
|
|
|
typedef void (*btf_trace_xdp_redirect_map)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
|
|
|
|
typedef void (*btf_trace_xdp_redirect_map_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
|
|
|
|
typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *);
|
|
|
|
typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int);
|
|
|
|
typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *);
|
|
|
|
typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *);
|
|
|
|
typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *);
|
|
|
|
struct latch_tree_root {
|
|
seqcount_latch_t seq;
|
|
struct rb_root tree[2];
|
|
};
|
|
|
|
struct latch_tree_ops {
|
|
bool (*less)(struct latch_tree_node *, struct latch_tree_node *);
|
|
int (*comp)(void *, struct latch_tree_node *);
|
|
};
|
|
|
|
struct bpf_prog_dummy {
|
|
struct bpf_prog prog;
|
|
};
|
|
|
|
struct bpf_prog_pack {
|
|
struct list_head list;
|
|
void *ptr;
|
|
unsigned long bitmap[0];
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_user_rnd_u32)();
|
|
|
|
typedef u64 (*btf_bpf_get_raw_cpu_id)();
|
|
|
|
struct trace_event_raw_xdp_exception {
|
|
struct trace_entry ent;
|
|
int prog_id;
|
|
u32 act;
|
|
int ifindex;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xdp_bulk_tx {
|
|
struct trace_entry ent;
|
|
int ifindex;
|
|
u32 act;
|
|
int drops;
|
|
int sent;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct _bpf_dtab_netdev {
|
|
struct net_device *dev;
|
|
};
|
|
|
|
struct trace_event_raw_xdp_redirect_template {
|
|
struct trace_entry ent;
|
|
int prog_id;
|
|
u32 act;
|
|
int ifindex;
|
|
int err;
|
|
int to_ifindex;
|
|
u32 map_id;
|
|
int map_index;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xdp_cpumap_kthread {
|
|
struct trace_entry ent;
|
|
int map_id;
|
|
u32 act;
|
|
int cpu;
|
|
unsigned int drops;
|
|
unsigned int processed;
|
|
int sched;
|
|
unsigned int xdp_pass;
|
|
unsigned int xdp_drop;
|
|
unsigned int xdp_redirect;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xdp_cpumap_enqueue {
|
|
struct trace_entry ent;
|
|
int map_id;
|
|
u32 act;
|
|
int cpu;
|
|
unsigned int drops;
|
|
unsigned int processed;
|
|
int to_cpu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_xdp_devmap_xmit {
|
|
struct trace_entry ent;
|
|
int from_ifindex;
|
|
u32 act;
|
|
int to_ifindex;
|
|
int drops;
|
|
int sent;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mem_disconnect {
|
|
struct trace_entry ent;
|
|
const struct xdp_mem_allocator *xa;
|
|
u32 mem_id;
|
|
u32 mem_type;
|
|
const void *allocator;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mem_connect {
|
|
struct trace_entry ent;
|
|
const struct xdp_mem_allocator *xa;
|
|
u32 mem_id;
|
|
u32 mem_type;
|
|
const void *allocator;
|
|
const struct xdp_rxq_info *rxq;
|
|
int ifindex;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mem_return_failed {
|
|
struct trace_entry ent;
|
|
const struct page *page;
|
|
u32 mem_id;
|
|
u32 mem_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_xdp_exception {};
|
|
|
|
struct trace_event_data_offsets_xdp_bulk_tx {};
|
|
|
|
struct trace_event_data_offsets_xdp_redirect_template {};
|
|
|
|
struct trace_event_data_offsets_xdp_cpumap_kthread {};
|
|
|
|
struct trace_event_data_offsets_xdp_cpumap_enqueue {};
|
|
|
|
struct trace_event_data_offsets_xdp_devmap_xmit {};
|
|
|
|
struct trace_event_data_offsets_mem_disconnect {};
|
|
|
|
struct trace_event_data_offsets_mem_connect {};
|
|
|
|
struct trace_event_data_offsets_mem_return_failed {};
|
|
|
|
typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *);
|
|
|
|
typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int);
|
|
|
|
typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64);
|
|
|
|
typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64);
|
|
|
|
typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64);
|
|
|
|
typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64);
|
|
|
|
typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *);
|
|
|
|
typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *);
|
|
|
|
typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *);
|
|
|
|
typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long);
|
|
|
|
struct trace_event_raw_iomap_readpage_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 ino;
|
|
int nr_pages;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iomap_range_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 ino;
|
|
loff_t size;
|
|
loff_t offset;
|
|
u64 length;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iomap_class {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 ino;
|
|
u64 addr;
|
|
loff_t offset;
|
|
u64 length;
|
|
u16 type;
|
|
u16 flags;
|
|
dev_t bdev;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iomap_iter {
|
|
struct trace_entry ent;
|
|
dev_t dev;
|
|
u64 ino;
|
|
loff_t pos;
|
|
u64 length;
|
|
unsigned int flags;
|
|
const void *ops;
|
|
unsigned long caller;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_iomap_readpage_class {};
|
|
|
|
struct trace_event_data_offsets_iomap_range_class {};
|
|
|
|
struct trace_event_data_offsets_iomap_class {};
|
|
|
|
struct trace_event_data_offsets_iomap_iter {};
|
|
|
|
struct pending_reservation {
|
|
struct rb_node rb_node;
|
|
ext4_lblk_t lclu;
|
|
};
|
|
|
|
struct rsvd_count {
|
|
int ndelonly;
|
|
bool first_do_lblk_found;
|
|
ext4_lblk_t first_do_lblk;
|
|
ext4_lblk_t last_do_lblk;
|
|
struct extent_status *left_es;
|
|
bool partial;
|
|
ext4_lblk_t lclu;
|
|
};
|
|
|
|
struct jbd2_revoke_table_s {
|
|
int hash_size;
|
|
int hash_shift;
|
|
struct list_head *hash_table;
|
|
};
|
|
|
|
struct jbd2_revoke_record_s {
|
|
struct list_head hash;
|
|
tid_t sequence;
|
|
unsigned long long blocknr;
|
|
};
|
|
|
|
struct vfs_cap_data {
|
|
__le32 magic_etc;
|
|
struct {
|
|
__le32 permitted;
|
|
__le32 inheritable;
|
|
} data[2];
|
|
};
|
|
|
|
struct vfs_ns_cap_data {
|
|
__le32 magic_etc;
|
|
struct {
|
|
__le32 permitted;
|
|
__le32 inheritable;
|
|
} data[2];
|
|
__le32 rootid;
|
|
};
|
|
|
|
struct cpu_vfs_cap_data {
|
|
__u32 magic_etc;
|
|
kernel_cap_t permitted;
|
|
kernel_cap_t inheritable;
|
|
kuid_t rootid;
|
|
};
|
|
|
|
enum data_formats {
|
|
DATA_FMT_DIGEST = 0,
|
|
DATA_FMT_DIGEST_WITH_ALGO = 1,
|
|
DATA_FMT_DIGEST_WITH_TYPE_AND_ALGO = 2,
|
|
DATA_FMT_STRING = 3,
|
|
DATA_FMT_HEX = 4,
|
|
DATA_FMT_UINT = 5,
|
|
};
|
|
|
|
enum digest_type {
|
|
DIGEST_TYPE_IMA = 0,
|
|
DIGEST_TYPE_VERITY = 1,
|
|
DIGEST_TYPE__LAST = 2,
|
|
};
|
|
|
|
struct acomp_alg {
|
|
int (*compress)(struct acomp_req *);
|
|
int (*decompress)(struct acomp_req *);
|
|
void (*dst_free)(struct scatterlist *);
|
|
int (*init)(struct crypto_acomp *);
|
|
void (*exit)(struct crypto_acomp *);
|
|
unsigned int reqsize;
|
|
struct crypto_alg base;
|
|
};
|
|
|
|
struct crypto_report_acomp {
|
|
char type[64];
|
|
};
|
|
|
|
struct blk_major_name {
|
|
struct blk_major_name *next;
|
|
int major;
|
|
char name[16];
|
|
void (*probe)(dev_t);
|
|
};
|
|
|
|
enum {
|
|
IORING_MSG_DATA = 0,
|
|
IORING_MSG_SEND_FD = 1,
|
|
};
|
|
|
|
struct io_msg {
|
|
struct file *file;
|
|
struct file *src_file;
|
|
struct callback_head tw;
|
|
u64 user_data;
|
|
u32 len;
|
|
u32 cmd;
|
|
u32 src_fd;
|
|
union {
|
|
u32 dst_fd;
|
|
u32 cqe_flags;
|
|
};
|
|
u32 flags;
|
|
};
|
|
|
|
enum dock_callback_type {
|
|
DOCK_CALL_HANDLER = 0,
|
|
DOCK_CALL_FIXUP = 1,
|
|
DOCK_CALL_UEVENT = 2,
|
|
};
|
|
|
|
struct dock_station {
|
|
acpi_handle handle;
|
|
unsigned long last_dock_time;
|
|
u32 flags;
|
|
struct list_head dependent_devices;
|
|
struct list_head sibling;
|
|
struct platform_device *dock_device;
|
|
};
|
|
|
|
struct dock_dependent_device {
|
|
struct list_head list;
|
|
struct acpi_device *adev;
|
|
};
|
|
|
|
struct acpi_lpat {
|
|
int temp;
|
|
int raw;
|
|
};
|
|
|
|
struct acpi_lpat_conversion_table {
|
|
struct acpi_lpat *lpat;
|
|
int lpat_count;
|
|
};
|
|
|
|
struct acpi_init_walk_info {
|
|
u32 table_index;
|
|
u32 object_count;
|
|
u32 method_count;
|
|
u32 serial_method_count;
|
|
u32 non_serial_method_count;
|
|
u32 serialized_method_count;
|
|
u32 device_count;
|
|
u32 op_region_count;
|
|
u32 field_count;
|
|
u32 buffer_count;
|
|
u32 package_count;
|
|
u32 op_region_init;
|
|
u32 field_init;
|
|
u32 buffer_init;
|
|
u32 package_init;
|
|
acpi_owner_id owner_id;
|
|
};
|
|
|
|
enum wmi_brightness_method {
|
|
WMI_BRIGHTNESS_METHOD_LEVEL = 1,
|
|
WMI_BRIGHTNESS_METHOD_SOURCE = 2,
|
|
WMI_BRIGHTNESS_METHOD_MAX = 3,
|
|
};
|
|
|
|
enum wmi_brightness_source {
|
|
WMI_BRIGHTNESS_SOURCE_GPU = 1,
|
|
WMI_BRIGHTNESS_SOURCE_EC = 2,
|
|
WMI_BRIGHTNESS_SOURCE_AUX = 3,
|
|
WMI_BRIGHTNESS_SOURCE_MAX = 4,
|
|
};
|
|
|
|
struct wmi_brightness_args {
|
|
u32 mode;
|
|
u32 val;
|
|
u32 ret;
|
|
u32 ignored[3];
|
|
};
|
|
|
|
struct ports_driver_data {
|
|
struct class *class;
|
|
struct dentry *debugfs_dir;
|
|
struct list_head portdevs;
|
|
struct list_head consoles;
|
|
};
|
|
|
|
struct hvc_struct;
|
|
|
|
struct hv_ops {
|
|
int (*get_chars)(uint32_t, char *, int);
|
|
int (*put_chars)(uint32_t, const char *, int);
|
|
int (*flush)(uint32_t, bool);
|
|
int (*notifier_add)(struct hvc_struct *, int);
|
|
void (*notifier_del)(struct hvc_struct *, int);
|
|
void (*notifier_hangup)(struct hvc_struct *, int);
|
|
int (*tiocmget)(struct hvc_struct *);
|
|
int (*tiocmset)(struct hvc_struct *, unsigned int, unsigned int);
|
|
void (*dtr_rts)(struct hvc_struct *, bool);
|
|
};
|
|
|
|
struct hvc_struct {
|
|
struct tty_port port;
|
|
spinlock_t lock;
|
|
int index;
|
|
int do_wakeup;
|
|
char *outbuf;
|
|
int outbuf_size;
|
|
int n_outbuf;
|
|
uint32_t vtermno;
|
|
const struct hv_ops *ops;
|
|
int irq_requested;
|
|
int data;
|
|
struct winsize ws;
|
|
struct work_struct tty_resize;
|
|
struct list_head next;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct console___2 {
|
|
struct list_head list;
|
|
struct hvc_struct *hvc;
|
|
struct winsize ws;
|
|
u32 vtermno;
|
|
};
|
|
|
|
struct port_stats {
|
|
unsigned long bytes_sent;
|
|
unsigned long bytes_received;
|
|
unsigned long bytes_discarded;
|
|
};
|
|
|
|
struct ports_device;
|
|
|
|
struct port_buffer;
|
|
|
|
struct port___3 {
|
|
struct list_head list;
|
|
struct ports_device *portdev;
|
|
struct port_buffer *inbuf;
|
|
spinlock_t inbuf_lock;
|
|
spinlock_t outvq_lock;
|
|
struct virtqueue *in_vq;
|
|
struct virtqueue *out_vq;
|
|
struct dentry *debugfs_file;
|
|
struct port_stats stats;
|
|
struct console___2 cons;
|
|
struct cdev *cdev;
|
|
struct device *dev;
|
|
struct kref kref;
|
|
wait_queue_head_t waitqueue;
|
|
char *name;
|
|
struct fasync_struct *async_queue;
|
|
u32 id;
|
|
bool outvq_full;
|
|
bool host_connected;
|
|
bool guest_connected;
|
|
};
|
|
|
|
struct virtio_console_control {
|
|
__virtio32 id;
|
|
__virtio16 event;
|
|
__virtio16 value;
|
|
};
|
|
|
|
struct ports_device {
|
|
struct list_head list;
|
|
struct work_struct control_work;
|
|
struct work_struct config_work;
|
|
struct list_head ports;
|
|
spinlock_t ports_lock;
|
|
spinlock_t c_ivq_lock;
|
|
spinlock_t c_ovq_lock;
|
|
u32 max_nr_ports;
|
|
struct virtio_device *vdev;
|
|
struct virtqueue *c_ivq;
|
|
struct virtqueue *c_ovq;
|
|
struct virtio_console_control cpkt;
|
|
struct virtqueue **in_vqs;
|
|
struct virtqueue **out_vqs;
|
|
int chr_major;
|
|
};
|
|
|
|
struct port_buffer {
|
|
char *buf;
|
|
size_t size;
|
|
size_t len;
|
|
size_t offset;
|
|
dma_addr_t dma;
|
|
struct device *dev;
|
|
struct list_head list;
|
|
unsigned int sgpages;
|
|
struct scatterlist sg[0];
|
|
};
|
|
|
|
struct sg_list {
|
|
unsigned int n;
|
|
unsigned int size;
|
|
size_t len;
|
|
struct scatterlist *sg;
|
|
};
|
|
|
|
struct iommu_group {
|
|
struct kobject kobj;
|
|
struct kobject *devices_kobj;
|
|
struct list_head devices;
|
|
struct xarray pasid_array;
|
|
struct mutex mutex;
|
|
void *iommu_data;
|
|
void (*iommu_data_release)(void *);
|
|
char *name;
|
|
int id;
|
|
struct iommu_domain *default_domain;
|
|
struct iommu_domain *blocking_domain;
|
|
struct iommu_domain *domain;
|
|
struct list_head entry;
|
|
unsigned int owner_cnt;
|
|
void *owner;
|
|
};
|
|
|
|
struct iommu_group_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct iommu_group *, char *);
|
|
ssize_t (*store)(struct iommu_group *, const char *, size_t);
|
|
};
|
|
|
|
enum iommu_fault_type {
|
|
IOMMU_FAULT_DMA_UNRECOV = 1,
|
|
IOMMU_FAULT_PAGE_REQ = 2,
|
|
};
|
|
|
|
enum fsl_mc_pool_type {
|
|
FSL_MC_POOL_DPMCP = 0,
|
|
FSL_MC_POOL_DPBP = 1,
|
|
FSL_MC_POOL_DPCON = 2,
|
|
FSL_MC_POOL_IRQ = 3,
|
|
FSL_MC_NUM_POOL_TYPES = 4,
|
|
};
|
|
|
|
struct group_device {
|
|
struct list_head list;
|
|
struct device *dev;
|
|
char *name;
|
|
};
|
|
|
|
struct fsl_mc_obj_desc {
|
|
char type[16];
|
|
int id;
|
|
u16 vendor;
|
|
u16 ver_major;
|
|
u16 ver_minor;
|
|
u8 irq_count;
|
|
u8 region_count;
|
|
u32 state;
|
|
char label[16];
|
|
u16 flags;
|
|
};
|
|
|
|
struct fsl_mc_io;
|
|
|
|
struct fsl_mc_device_irq;
|
|
|
|
struct fsl_mc_resource;
|
|
|
|
struct fsl_mc_device {
|
|
struct device dev;
|
|
u64 dma_mask;
|
|
u16 flags;
|
|
u32 icid;
|
|
u16 mc_handle;
|
|
struct fsl_mc_io *mc_io;
|
|
struct fsl_mc_obj_desc obj_desc;
|
|
struct resource *regions;
|
|
struct fsl_mc_device_irq **irqs;
|
|
struct fsl_mc_resource *resource;
|
|
struct device_link *consumer_link;
|
|
const char *driver_override;
|
|
};
|
|
|
|
struct fsl_mc_io {
|
|
struct device *dev;
|
|
u16 flags;
|
|
u32 portal_size;
|
|
phys_addr_t portal_phys_addr;
|
|
void *portal_virt_addr;
|
|
struct fsl_mc_device *dpmcp_dev;
|
|
union {
|
|
struct mutex mutex;
|
|
raw_spinlock_t spinlock;
|
|
};
|
|
};
|
|
|
|
struct fsl_mc_resource_pool;
|
|
|
|
struct fsl_mc_resource {
|
|
enum fsl_mc_pool_type type;
|
|
s32 id;
|
|
void *data;
|
|
struct fsl_mc_resource_pool *parent_pool;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct fsl_mc_device_irq {
|
|
unsigned int virq;
|
|
struct fsl_mc_device *mc_dev;
|
|
u8 dev_irq_index;
|
|
struct fsl_mc_resource resource;
|
|
};
|
|
|
|
struct __group_domain_type {
|
|
struct device *dev;
|
|
unsigned int type;
|
|
};
|
|
|
|
struct group_for_pci_data {
|
|
struct pci_dev *pdev;
|
|
struct iommu_group *group;
|
|
};
|
|
|
|
struct drm_gem_shmem_object___2 {
|
|
struct drm_gem_object___3 base;
|
|
struct mutex pages_lock;
|
|
struct page **pages;
|
|
unsigned int pages_use_count;
|
|
int madv;
|
|
struct list_head madv_list;
|
|
unsigned int pages_mark_dirty_on_put: 1;
|
|
unsigned int pages_mark_accessed_on_put: 1;
|
|
struct sg_table *sgt;
|
|
struct mutex vmap_lock;
|
|
void *vaddr;
|
|
unsigned int vmap_use_count;
|
|
bool map_wc;
|
|
};
|
|
|
|
struct ttm_global {
|
|
struct page *dummy_read_page;
|
|
struct list_head device_list;
|
|
atomic_t bo_count;
|
|
};
|
|
|
|
struct ttm_resource_cursor {
|
|
unsigned int priority;
|
|
};
|
|
|
|
enum {
|
|
DEBUG_FENCE_IDLE = 0,
|
|
DEBUG_FENCE_NOTIFY = 1,
|
|
};
|
|
|
|
struct i915_sw_dma_fence_cb_timer {
|
|
struct i915_sw_dma_fence_cb base;
|
|
struct dma_fence *dma;
|
|
struct timer_list timer;
|
|
struct irq_work work;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct pxp43_start_huc_auth_in {
|
|
struct pxp_cmd_header header;
|
|
__le64 huc_base_address;
|
|
};
|
|
|
|
struct pxp43_start_huc_auth_out {
|
|
struct pxp_cmd_header header;
|
|
};
|
|
|
|
enum dpm_order {
|
|
DPM_ORDER_NONE = 0,
|
|
DPM_ORDER_DEV_AFTER_PARENT = 1,
|
|
DPM_ORDER_PARENT_BEFORE_DEV = 2,
|
|
DPM_ORDER_DEV_LAST = 3,
|
|
};
|
|
|
|
struct fwnode_link {
|
|
struct fwnode_handle *supplier;
|
|
struct list_head s_hook;
|
|
struct fwnode_handle *consumer;
|
|
struct list_head c_hook;
|
|
u8 flags;
|
|
};
|
|
|
|
struct class_dir {
|
|
struct kobject kobj;
|
|
struct class *class;
|
|
};
|
|
|
|
struct root_device {
|
|
struct device dev;
|
|
struct module *owner;
|
|
};
|
|
|
|
union device_attr_group_devres {
|
|
const struct attribute_group *group;
|
|
const struct attribute_group **groups;
|
|
};
|
|
|
|
struct ata_acpi_hotplug_context {
|
|
struct acpi_hotplug_context hp;
|
|
union {
|
|
struct ata_port *ap;
|
|
struct ata_device *dev;
|
|
} data;
|
|
};
|
|
|
|
struct ata_acpi_gtf {
|
|
u8 tf[7];
|
|
};
|
|
|
|
enum {
|
|
e1000_igp_cable_length_10 = 10,
|
|
e1000_igp_cable_length_20 = 20,
|
|
e1000_igp_cable_length_30 = 30,
|
|
e1000_igp_cable_length_40 = 40,
|
|
e1000_igp_cable_length_50 = 50,
|
|
e1000_igp_cable_length_60 = 60,
|
|
e1000_igp_cable_length_70 = 70,
|
|
e1000_igp_cable_length_80 = 80,
|
|
e1000_igp_cable_length_90 = 90,
|
|
e1000_igp_cable_length_100 = 100,
|
|
e1000_igp_cable_length_110 = 110,
|
|
e1000_igp_cable_length_115 = 115,
|
|
e1000_igp_cable_length_120 = 120,
|
|
e1000_igp_cable_length_130 = 130,
|
|
e1000_igp_cable_length_140 = 140,
|
|
e1000_igp_cable_length_150 = 150,
|
|
e1000_igp_cable_length_160 = 160,
|
|
e1000_igp_cable_length_170 = 170,
|
|
e1000_igp_cable_length_180 = 180,
|
|
};
|
|
|
|
struct sky2_stat {
|
|
char name[32];
|
|
u16 offset;
|
|
};
|
|
|
|
enum {
|
|
PCI_DEV_REG1 = 64,
|
|
PCI_DEV_REG2 = 68,
|
|
PCI_DEV_STATUS = 124,
|
|
PCI_DEV_REG3 = 128,
|
|
PCI_DEV_REG4 = 132,
|
|
PCI_DEV_REG5 = 136,
|
|
PCI_CFG_REG_0 = 144,
|
|
PCI_CFG_REG_1 = 148,
|
|
PSM_CONFIG_REG0 = 152,
|
|
PSM_CONFIG_REG1 = 156,
|
|
PSM_CONFIG_REG2 = 352,
|
|
PSM_CONFIG_REG3 = 356,
|
|
PSM_CONFIG_REG4 = 360,
|
|
PCI_LDO_CTRL = 188,
|
|
};
|
|
|
|
enum csr_regs {
|
|
B0_RAP = 0,
|
|
B0_CTST = 4,
|
|
B0_POWER_CTRL = 7,
|
|
B0_ISRC = 8,
|
|
B0_IMSK = 12,
|
|
B0_HWE_ISRC = 16,
|
|
B0_HWE_IMSK = 20,
|
|
B0_Y2_SP_ISRC2 = 28,
|
|
B0_Y2_SP_ISRC3 = 32,
|
|
B0_Y2_SP_EISR = 36,
|
|
B0_Y2_SP_LISR = 40,
|
|
B0_Y2_SP_ICR = 44,
|
|
B2_MAC_1 = 256,
|
|
B2_MAC_2 = 264,
|
|
B2_MAC_3 = 272,
|
|
B2_CONN_TYP = 280,
|
|
B2_PMD_TYP = 281,
|
|
B2_MAC_CFG = 282,
|
|
B2_CHIP_ID = 283,
|
|
B2_E_0 = 284,
|
|
B2_Y2_CLK_GATE = 285,
|
|
B2_Y2_HW_RES = 286,
|
|
B2_E_3 = 287,
|
|
B2_Y2_CLK_CTRL = 288,
|
|
B2_TI_INI = 304,
|
|
B2_TI_VAL = 308,
|
|
B2_TI_CTRL = 312,
|
|
B2_TI_TEST = 313,
|
|
B2_TST_CTRL1 = 344,
|
|
B2_TST_CTRL2 = 345,
|
|
B2_GP_IO = 348,
|
|
B2_I2C_CTRL = 352,
|
|
B2_I2C_DATA = 356,
|
|
B2_I2C_IRQ = 360,
|
|
B2_I2C_SW = 364,
|
|
Y2_PEX_PHY_DATA = 368,
|
|
Y2_PEX_PHY_ADDR = 370,
|
|
B3_RAM_ADDR = 384,
|
|
B3_RAM_DATA_LO = 388,
|
|
B3_RAM_DATA_HI = 392,
|
|
B3_RI_WTO_R1 = 400,
|
|
B3_RI_WTO_XA1 = 401,
|
|
B3_RI_WTO_XS1 = 402,
|
|
B3_RI_RTO_R1 = 403,
|
|
B3_RI_RTO_XA1 = 404,
|
|
B3_RI_RTO_XS1 = 405,
|
|
B3_RI_WTO_R2 = 406,
|
|
B3_RI_WTO_XA2 = 407,
|
|
B3_RI_WTO_XS2 = 408,
|
|
B3_RI_RTO_R2 = 409,
|
|
B3_RI_RTO_XA2 = 410,
|
|
B3_RI_RTO_XS2 = 411,
|
|
B3_RI_TO_VAL = 412,
|
|
B3_RI_CTRL = 416,
|
|
B3_RI_TEST = 418,
|
|
B3_MA_TOINI_RX1 = 432,
|
|
B3_MA_TOINI_RX2 = 433,
|
|
B3_MA_TOINI_TX1 = 434,
|
|
B3_MA_TOINI_TX2 = 435,
|
|
B3_MA_TOVAL_RX1 = 436,
|
|
B3_MA_TOVAL_RX2 = 437,
|
|
B3_MA_TOVAL_TX1 = 438,
|
|
B3_MA_TOVAL_TX2 = 439,
|
|
B3_MA_TO_CTRL = 440,
|
|
B3_MA_TO_TEST = 442,
|
|
B3_MA_RCINI_RX1 = 448,
|
|
B3_MA_RCINI_RX2 = 449,
|
|
B3_MA_RCINI_TX1 = 450,
|
|
B3_MA_RCINI_TX2 = 451,
|
|
B3_MA_RCVAL_RX1 = 452,
|
|
B3_MA_RCVAL_RX2 = 453,
|
|
B3_MA_RCVAL_TX1 = 454,
|
|
B3_MA_RCVAL_TX2 = 455,
|
|
B3_MA_RC_CTRL = 456,
|
|
B3_MA_RC_TEST = 458,
|
|
B3_PA_TOINI_RX1 = 464,
|
|
B3_PA_TOINI_RX2 = 468,
|
|
B3_PA_TOINI_TX1 = 472,
|
|
B3_PA_TOINI_TX2 = 476,
|
|
B3_PA_TOVAL_RX1 = 480,
|
|
B3_PA_TOVAL_RX2 = 484,
|
|
B3_PA_TOVAL_TX1 = 488,
|
|
B3_PA_TOVAL_TX2 = 492,
|
|
B3_PA_CTRL = 496,
|
|
B3_PA_TEST = 498,
|
|
Y2_CFG_SPC = 7168,
|
|
Y2_CFG_AER = 7424,
|
|
};
|
|
|
|
enum {
|
|
Y2_VMAIN_AVAIL = 131072,
|
|
Y2_VAUX_AVAIL = 65536,
|
|
Y2_HW_WOL_ON = 32768,
|
|
Y2_HW_WOL_OFF = 16384,
|
|
Y2_ASF_ENABLE = 8192,
|
|
Y2_ASF_DISABLE = 4096,
|
|
Y2_CLK_RUN_ENA = 2048,
|
|
Y2_CLK_RUN_DIS = 1024,
|
|
Y2_LED_STAT_ON = 512,
|
|
Y2_LED_STAT_OFF = 256,
|
|
CS_ST_SW_IRQ = 128,
|
|
CS_CL_SW_IRQ = 64,
|
|
CS_STOP_DONE = 32,
|
|
CS_STOP_MAST = 16,
|
|
CS_MRST_CLR = 8,
|
|
CS_MRST_SET = 4,
|
|
CS_RST_CLR = 2,
|
|
CS_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
CFG_CHIP_R_MSK = 240,
|
|
CFG_DIS_M2_CLK = 2,
|
|
CFG_SNG_MAC = 1,
|
|
};
|
|
|
|
enum {
|
|
CHIP_ID_YUKON_XL = 179,
|
|
CHIP_ID_YUKON_EC_U = 180,
|
|
CHIP_ID_YUKON_EX = 181,
|
|
CHIP_ID_YUKON_EC = 182,
|
|
CHIP_ID_YUKON_FE = 183,
|
|
CHIP_ID_YUKON_FE_P = 184,
|
|
CHIP_ID_YUKON_SUPR = 185,
|
|
CHIP_ID_YUKON_UL_2 = 186,
|
|
CHIP_ID_YUKON_OPT = 188,
|
|
CHIP_ID_YUKON_PRM = 189,
|
|
CHIP_ID_YUKON_OP_2 = 190,
|
|
};
|
|
|
|
enum yukon_xl_rev {
|
|
CHIP_REV_YU_XL_A0 = 0,
|
|
CHIP_REV_YU_XL_A1 = 1,
|
|
CHIP_REV_YU_XL_A2 = 2,
|
|
CHIP_REV_YU_XL_A3 = 3,
|
|
};
|
|
|
|
enum yukon_ex_rev {
|
|
CHIP_REV_YU_EX_A0 = 1,
|
|
CHIP_REV_YU_EX_B0 = 2,
|
|
};
|
|
|
|
enum yukon_ec_rev {
|
|
CHIP_REV_YU_EC_A1 = 0,
|
|
CHIP_REV_YU_EC_A2 = 1,
|
|
CHIP_REV_YU_EC_A3 = 2,
|
|
};
|
|
|
|
enum yukon_fe_p_rev {
|
|
CHIP_REV_YU_FE2_A0 = 0,
|
|
};
|
|
|
|
enum yukon_supr_rev {
|
|
CHIP_REV_YU_SU_A0 = 0,
|
|
CHIP_REV_YU_SU_B0 = 1,
|
|
CHIP_REV_YU_SU_B1 = 3,
|
|
};
|
|
|
|
enum {
|
|
CFG_LED_MODE_MSK = 28,
|
|
CFG_LINK_2_AVAIL = 2,
|
|
CFG_LINK_1_AVAIL = 1,
|
|
};
|
|
|
|
enum {
|
|
Y2_STATUS_LNK2_INAC = 128,
|
|
Y2_CLK_GAT_LNK2_DIS = 64,
|
|
Y2_COR_CLK_LNK2_DIS = 32,
|
|
Y2_PCI_CLK_LNK2_DIS = 16,
|
|
Y2_STATUS_LNK1_INAC = 8,
|
|
Y2_CLK_GAT_LNK1_DIS = 4,
|
|
Y2_COR_CLK_LNK1_DIS = 2,
|
|
Y2_PCI_CLK_LNK1_DIS = 1,
|
|
};
|
|
|
|
enum {
|
|
Y2_IS_TIST_OV = 536870912,
|
|
Y2_IS_SENSOR = 268435456,
|
|
Y2_IS_MST_ERR = 134217728,
|
|
Y2_IS_IRQ_STAT = 67108864,
|
|
Y2_IS_PCI_EXP = 33554432,
|
|
Y2_IS_PCI_NEXP = 16777216,
|
|
Y2_IS_PAR_RD2 = 8192,
|
|
Y2_IS_PAR_WR2 = 4096,
|
|
Y2_IS_PAR_MAC2 = 2048,
|
|
Y2_IS_PAR_RX2 = 1024,
|
|
Y2_IS_TCP_TXS2 = 512,
|
|
Y2_IS_TCP_TXA2 = 256,
|
|
Y2_IS_PAR_RD1 = 32,
|
|
Y2_IS_PAR_WR1 = 16,
|
|
Y2_IS_PAR_MAC1 = 8,
|
|
Y2_IS_PAR_RX1 = 4,
|
|
Y2_IS_TCP_TXS1 = 2,
|
|
Y2_IS_TCP_TXA1 = 1,
|
|
Y2_HWE_L1_MASK = 63,
|
|
Y2_HWE_L2_MASK = 16128,
|
|
Y2_HWE_ALL_MASK = 738213695,
|
|
};
|
|
|
|
enum {
|
|
CPU_WDOG = 3656,
|
|
CPU_CNTR = 3660,
|
|
CPU_TIM = 3664,
|
|
CPU_AHB_ADDR = 3668,
|
|
CPU_AHB_WDATA = 3672,
|
|
CPU_AHB_RDATA = 3676,
|
|
HCU_MAP_BASE = 3680,
|
|
CPU_AHB_CTRL = 3684,
|
|
HCU_CCSR = 3688,
|
|
HCU_HCSR = 3692,
|
|
};
|
|
|
|
enum {
|
|
HCU_CCSR_SMBALERT_MONITOR = 134217728,
|
|
HCU_CCSR_CPU_SLEEP = 67108864,
|
|
HCU_CCSR_CS_TO = 33554432,
|
|
HCU_CCSR_WDOG = 16777216,
|
|
HCU_CCSR_CLR_IRQ_HOST = 131072,
|
|
HCU_CCSR_SET_IRQ_HCU = 65536,
|
|
HCU_CCSR_AHB_RST = 512,
|
|
HCU_CCSR_CPU_RST_MODE = 256,
|
|
HCU_CCSR_SET_SYNC_CPU = 32,
|
|
HCU_CCSR_CPU_CLK_DIVIDE_MSK = 24,
|
|
HCU_CCSR_CPU_CLK_DIVIDE_BASE = 8,
|
|
HCU_CCSR_OS_PRSNT = 4,
|
|
HCU_CCSR_UC_STATE_MSK = 3,
|
|
HCU_CCSR_UC_STATE_BASE = 1,
|
|
HCU_CCSR_ASF_RESET = 0,
|
|
HCU_CCSR_ASF_HALTED = 2,
|
|
HCU_CCSR_ASF_RUNNING = 1,
|
|
};
|
|
|
|
enum {
|
|
B28_Y2_SMB_CONFIG = 3648,
|
|
B28_Y2_SMB_CSD_REG = 3652,
|
|
B28_Y2_ASF_IRQ_V_BASE = 3680,
|
|
B28_Y2_ASF_STAT_CMD = 3688,
|
|
B28_Y2_ASF_HOST_COM = 3692,
|
|
B28_Y2_DATA_REG_1 = 3696,
|
|
B28_Y2_DATA_REG_2 = 3700,
|
|
B28_Y2_DATA_REG_3 = 3704,
|
|
B28_Y2_DATA_REG_4 = 3708,
|
|
};
|
|
|
|
enum {
|
|
Y2_ASF_OS_PRES = 16,
|
|
Y2_ASF_RESET = 8,
|
|
Y2_ASF_RUNNING = 4,
|
|
Y2_ASF_CLR_HSTI = 2,
|
|
Y2_ASF_IRQ = 1,
|
|
Y2_ASF_UC_STATE = 12,
|
|
Y2_ASF_CLK_HALT = 0,
|
|
};
|
|
|
|
enum {
|
|
TST_FRC_DPERR_MR = 128,
|
|
TST_FRC_DPERR_MW = 64,
|
|
TST_FRC_DPERR_TR = 32,
|
|
TST_FRC_DPERR_TW = 16,
|
|
TST_FRC_APERR_M = 8,
|
|
TST_FRC_APERR_T = 4,
|
|
TST_CFG_WRITE_ON = 2,
|
|
TST_CFG_WRITE_OFF = 1,
|
|
};
|
|
|
|
enum {
|
|
GMAC_CTRL = 3840,
|
|
GPHY_CTRL = 3844,
|
|
GMAC_IRQ_SRC = 3848,
|
|
GMAC_IRQ_MSK = 3852,
|
|
GMAC_LINK_CTRL = 3856,
|
|
WOL_CTRL_STAT = 3872,
|
|
WOL_MATCH_CTL = 3874,
|
|
WOL_MATCH_RES = 3875,
|
|
WOL_MAC_ADDR = 3876,
|
|
WOL_PATT_RPTR = 3884,
|
|
WOL_PATT_LEN_LO = 3888,
|
|
WOL_PATT_LEN_HI = 3892,
|
|
WOL_PATT_CNT_0 = 3896,
|
|
WOL_PATT_CNT_4 = 3900,
|
|
};
|
|
|
|
enum {
|
|
GMLC_RST_CLR = 2,
|
|
GMLC_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
GMC_SET_RST = 32768,
|
|
GMC_SEC_RST_OFF = 16384,
|
|
GMC_BYP_MACSECRX_ON = 8192,
|
|
GMC_BYP_MACSECRX_OFF = 4096,
|
|
GMC_BYP_MACSECTX_ON = 2048,
|
|
GMC_BYP_MACSECTX_OFF = 1024,
|
|
GMC_BYP_RETR_ON = 512,
|
|
GMC_BYP_RETR_OFF = 256,
|
|
GMC_H_BURST_ON = 128,
|
|
GMC_H_BURST_OFF = 64,
|
|
GMC_F_LOOPB_ON = 32,
|
|
GMC_F_LOOPB_OFF = 16,
|
|
GMC_PAUSE_ON = 8,
|
|
GMC_PAUSE_OFF = 4,
|
|
GMC_RST_CLR = 2,
|
|
GMC_RST_SET = 1,
|
|
};
|
|
|
|
enum pci_dev_reg_3 {
|
|
P_CLK_ASF_REGS_DIS = 262144,
|
|
P_CLK_COR_REGS_D0_DIS = 131072,
|
|
P_CLK_MACSEC_DIS = 131072,
|
|
P_CLK_PCI_REGS_D0_DIS = 65536,
|
|
P_CLK_COR_YTB_ARB_DIS = 32768,
|
|
P_CLK_MAC_LNK1_D3_DIS = 16384,
|
|
P_CLK_COR_LNK1_D0_DIS = 8192,
|
|
P_CLK_MAC_LNK1_D0_DIS = 4096,
|
|
P_CLK_COR_LNK1_D3_DIS = 2048,
|
|
P_CLK_PCI_MST_ARB_DIS = 1024,
|
|
P_CLK_COR_REGS_D3_DIS = 512,
|
|
P_CLK_PCI_REGS_D3_DIS = 256,
|
|
P_CLK_REF_LNK1_GM_DIS = 128,
|
|
P_CLK_COR_LNK1_GM_DIS = 64,
|
|
P_CLK_PCI_COMMON_DIS = 32,
|
|
P_CLK_COR_COMMON_DIS = 16,
|
|
P_CLK_PCI_LNK1_BMU_DIS = 8,
|
|
P_CLK_COR_LNK1_BMU_DIS = 4,
|
|
P_CLK_PCI_LNK1_BIU_DIS = 2,
|
|
P_CLK_COR_LNK1_BIU_DIS = 1,
|
|
PCIE_OUR3_WOL_D3_COLD_SET = 406548,
|
|
};
|
|
|
|
enum {
|
|
PEX_RD_ACCESS = -2147483648,
|
|
PEX_DB_ACCESS = 1073741824,
|
|
};
|
|
|
|
enum {
|
|
PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_MSK = 240,
|
|
PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_BASE = 4,
|
|
PSM_CONFIG_REG4_DEBUG_TIMER = 2,
|
|
PSM_CONFIG_REG4_RST_PHY_LINK_DETECT = 1,
|
|
};
|
|
|
|
enum yukon_prm_rev {
|
|
CHIP_REV_YU_PRM_Z1 = 1,
|
|
CHIP_REV_YU_PRM_A0 = 2,
|
|
};
|
|
|
|
enum {
|
|
GPC_TX_PAUSE = 1073741824,
|
|
GPC_RX_PAUSE = 536870912,
|
|
GPC_SPEED = 402653184,
|
|
GPC_LINK = 67108864,
|
|
GPC_DUPLEX = 33554432,
|
|
GPC_CLOCK = 16777216,
|
|
GPC_PDOWN = 8388608,
|
|
GPC_TSTMODE = 4194304,
|
|
GPC_REG18 = 2097152,
|
|
GPC_REG12SEL = 1572864,
|
|
GPC_REG18SEL = 393216,
|
|
GPC_SPILOCK = 65536,
|
|
GPC_LEDMUX = 49152,
|
|
GPC_INTPOL = 8192,
|
|
GPC_DETECT = 4096,
|
|
GPC_1000HD = 2048,
|
|
GPC_SLAVE = 1024,
|
|
GPC_PAUSE = 512,
|
|
GPC_LEDCTL = 192,
|
|
GPC_RST_CLR = 2,
|
|
GPC_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_FC_AUTO_SEL = 32768,
|
|
PHY_M_FC_AN_REG_ACC = 16384,
|
|
PHY_M_FC_RESOLUTION = 8192,
|
|
PHY_M_SER_IF_AN_BP = 4096,
|
|
PHY_M_SER_IF_BP_ST = 2048,
|
|
PHY_M_IRQ_POLARITY = 1024,
|
|
PHY_M_DIS_AUT_MED = 512,
|
|
PHY_M_UNDOC1 = 128,
|
|
PHY_M_DTE_POW_STAT = 16,
|
|
PHY_M_MODE_MASK = 15,
|
|
};
|
|
|
|
enum {
|
|
TIM_START = 4,
|
|
TIM_STOP = 2,
|
|
TIM_CLR_IRQ = 1,
|
|
};
|
|
|
|
enum {
|
|
B28_DPT_INI = 3584,
|
|
B28_DPT_VAL = 3588,
|
|
B28_DPT_CTRL = 3592,
|
|
B28_DPT_TST = 3594,
|
|
};
|
|
|
|
enum {
|
|
DPT_START = 2,
|
|
DPT_STOP = 1,
|
|
};
|
|
|
|
enum {
|
|
GMAC_TI_ST_VAL = 3604,
|
|
GMAC_TI_ST_CTRL = 3608,
|
|
GMAC_TI_ST_TST = 3610,
|
|
};
|
|
|
|
enum {
|
|
GMT_ST_START = 4,
|
|
GMT_ST_STOP = 2,
|
|
GMT_ST_CLR_IRQ = 1,
|
|
};
|
|
|
|
enum {
|
|
TXA_ITI_INI = 512,
|
|
TXA_ITI_VAL = 516,
|
|
TXA_LIM_INI = 520,
|
|
TXA_LIM_VAL = 524,
|
|
TXA_CTRL = 528,
|
|
TXA_TEST = 529,
|
|
TXA_STAT = 530,
|
|
RSS_KEY = 544,
|
|
RSS_CFG = 584,
|
|
};
|
|
|
|
enum {
|
|
TXA_ENA_FSYNC = 128,
|
|
TXA_DIS_FSYNC = 64,
|
|
TXA_ENA_ALLOC = 32,
|
|
TXA_DIS_ALLOC = 16,
|
|
TXA_START_RC = 8,
|
|
TXA_STOP_RC = 4,
|
|
TXA_ENA_ARB = 2,
|
|
TXA_DIS_ARB = 1,
|
|
};
|
|
|
|
enum {
|
|
RI_CLR_RD_PERR = 512,
|
|
RI_CLR_WR_PERR = 256,
|
|
RI_RST_CLR = 2,
|
|
RI_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
STAT_CTRL = 3712,
|
|
STAT_LAST_IDX = 3716,
|
|
STAT_LIST_ADDR_LO = 3720,
|
|
STAT_LIST_ADDR_HI = 3724,
|
|
STAT_TXA1_RIDX = 3728,
|
|
STAT_TXS1_RIDX = 3730,
|
|
STAT_TXA2_RIDX = 3732,
|
|
STAT_TXS2_RIDX = 3734,
|
|
STAT_TX_IDX_TH = 3736,
|
|
STAT_PUT_IDX = 3740,
|
|
STAT_FIFO_WP = 3744,
|
|
STAT_FIFO_RP = 3748,
|
|
STAT_FIFO_RSP = 3750,
|
|
STAT_FIFO_LEVEL = 3752,
|
|
STAT_FIFO_SHLVL = 3754,
|
|
STAT_FIFO_WM = 3756,
|
|
STAT_FIFO_ISR_WM = 3757,
|
|
STAT_LEV_TIMER_INI = 3760,
|
|
STAT_LEV_TIMER_CNT = 3764,
|
|
STAT_LEV_TIMER_CTRL = 3768,
|
|
STAT_LEV_TIMER_TEST = 3769,
|
|
STAT_TX_TIMER_INI = 3776,
|
|
STAT_TX_TIMER_CNT = 3780,
|
|
STAT_TX_TIMER_CTRL = 3784,
|
|
STAT_TX_TIMER_TEST = 3785,
|
|
STAT_ISR_TIMER_INI = 3792,
|
|
STAT_ISR_TIMER_CNT = 3796,
|
|
STAT_ISR_TIMER_CTRL = 3800,
|
|
STAT_ISR_TIMER_TEST = 3801,
|
|
};
|
|
|
|
enum {
|
|
SC_STAT_CLR_IRQ = 16,
|
|
SC_STAT_OP_ON = 8,
|
|
SC_STAT_OP_OFF = 4,
|
|
SC_STAT_RST_CLR = 2,
|
|
SC_STAT_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
PC_VAUX_ENA = 128,
|
|
PC_VAUX_DIS = 64,
|
|
PC_VCC_ENA = 32,
|
|
PC_VCC_DIS = 16,
|
|
PC_VAUX_ON = 8,
|
|
PC_VAUX_OFF = 4,
|
|
PC_VCC_ON = 2,
|
|
PC_VCC_OFF = 1,
|
|
};
|
|
|
|
enum {
|
|
Y2_CLK_DIV_VAL_MSK = 16711680,
|
|
Y2_CLK_DIV_VAL2_MSK = 14680064,
|
|
Y2_CLK_SELECT2_MSK = 2031616,
|
|
Y2_CLK_DIV_ENA = 2,
|
|
Y2_CLK_DIV_DIS = 1,
|
|
};
|
|
|
|
enum pci_dev_reg_4 {
|
|
P_PEX_LTSSM_STAT_MSK = 4261412864,
|
|
P_PEX_LTSSM_L1_STAT = 52,
|
|
P_PEX_LTSSM_DET_STAT = 1,
|
|
P_TIMER_VALUE_MSK = 16711680,
|
|
P_FORCE_ASPM_REQUEST = 32768,
|
|
P_ASPM_GPHY_LINK_DOWN = 16384,
|
|
P_ASPM_INT_FIFO_EMPTY = 8192,
|
|
P_ASPM_CLKRUN_REQUEST = 4096,
|
|
P_ASPM_FORCE_CLKREQ_ENA = 16,
|
|
P_ASPM_CLKREQ_PAD_CTL = 8,
|
|
P_ASPM_A1_MODE_SELECT = 4,
|
|
P_CLK_GATE_PEX_UNIT_ENA = 2,
|
|
P_CLK_GATE_ROOT_COR_ENA = 1,
|
|
P_ASPM_CONTROL_MSK = 61440,
|
|
};
|
|
|
|
enum pci_dev_reg_5 {
|
|
P_CTL_DIV_CORE_CLK_ENA = -2147483648,
|
|
P_CTL_SRESET_VMAIN_AV = 1073741824,
|
|
P_CTL_BYPASS_VMAIN_AV = 536870912,
|
|
P_CTL_TIM_VMAIN_AV_MSK = 402653184,
|
|
P_REL_PCIE_RST_DE_ASS = 67108864,
|
|
P_REL_GPHY_REC_PACKET = 33554432,
|
|
P_REL_INT_FIFO_N_EMPTY = 16777216,
|
|
P_REL_MAIN_PWR_AVAIL = 8388608,
|
|
P_REL_CLKRUN_REQ_REL = 4194304,
|
|
P_REL_PCIE_RESET_ASS = 2097152,
|
|
P_REL_PME_ASSERTED = 1048576,
|
|
P_REL_PCIE_EXIT_L1_ST = 524288,
|
|
P_REL_LOADER_NOT_FIN = 262144,
|
|
P_REL_PCIE_RX_EX_IDLE = 131072,
|
|
P_REL_GPHY_LINK_UP = 65536,
|
|
P_GAT_PCIE_RST_ASSERTED = 1024,
|
|
P_GAT_GPHY_N_REC_PACKET = 512,
|
|
P_GAT_INT_FIFO_EMPTY = 256,
|
|
P_GAT_MAIN_PWR_N_AVAIL = 128,
|
|
P_GAT_CLKRUN_REQ_REL = 64,
|
|
P_GAT_PCIE_RESET_ASS = 32,
|
|
P_GAT_PME_DE_ASSERTED = 16,
|
|
P_GAT_PCIE_ENTER_L1_ST = 8,
|
|
P_GAT_LOADER_FINISHED = 4,
|
|
P_GAT_PCIE_RX_EL_IDLE = 2,
|
|
P_GAT_GPHY_LINK_DOWN = 1,
|
|
PCIE_OUR5_EVENT_CLK_D3_SET = 50987786,
|
|
};
|
|
|
|
enum {
|
|
GLB_GPIO_CLK_DEB_ENA = -2147483648,
|
|
GLB_GPIO_CLK_DBG_MSK = 1006632960,
|
|
GLB_GPIO_INT_RST_D3_DIS = 32768,
|
|
GLB_GPIO_LED_PAD_SPEED_UP = 16384,
|
|
GLB_GPIO_STAT_RACE_DIS = 8192,
|
|
GLB_GPIO_TEST_SEL_MSK = 6144,
|
|
GLB_GPIO_TEST_SEL_BASE = 2048,
|
|
GLB_GPIO_RAND_ENA = 1024,
|
|
GLB_GPIO_RAND_BIT_1 = 512,
|
|
};
|
|
|
|
enum {
|
|
GM_GP_STAT = 0,
|
|
GM_GP_CTRL = 4,
|
|
GM_TX_CTRL = 8,
|
|
GM_RX_CTRL = 12,
|
|
GM_TX_FLOW_CTRL = 16,
|
|
GM_TX_PARAM = 20,
|
|
GM_SERIAL_MODE = 24,
|
|
GM_SRC_ADDR_1L = 28,
|
|
GM_SRC_ADDR_1M = 32,
|
|
GM_SRC_ADDR_1H = 36,
|
|
GM_SRC_ADDR_2L = 40,
|
|
GM_SRC_ADDR_2M = 44,
|
|
GM_SRC_ADDR_2H = 48,
|
|
GM_MC_ADDR_H1 = 52,
|
|
GM_MC_ADDR_H2 = 56,
|
|
GM_MC_ADDR_H3 = 60,
|
|
GM_MC_ADDR_H4 = 64,
|
|
GM_TX_IRQ_SRC = 68,
|
|
GM_RX_IRQ_SRC = 72,
|
|
GM_TR_IRQ_SRC = 76,
|
|
GM_TX_IRQ_MSK = 80,
|
|
GM_RX_IRQ_MSK = 84,
|
|
GM_TR_IRQ_MSK = 88,
|
|
GM_SMI_CTRL = 128,
|
|
GM_SMI_DATA = 132,
|
|
GM_PHY_ADDR = 136,
|
|
GM_MIB_CNT_BASE = 256,
|
|
GM_MIB_CNT_END = 604,
|
|
};
|
|
|
|
enum {
|
|
GM_RXCR_UCF_ENA = 32768,
|
|
GM_RXCR_MCF_ENA = 16384,
|
|
GM_RXCR_CRC_DIS = 8192,
|
|
GM_RXCR_PASS_FC = 4096,
|
|
};
|
|
|
|
enum {
|
|
BASE_GMAC_1 = 10240,
|
|
BASE_GMAC_2 = 14336,
|
|
};
|
|
|
|
enum flow_control {
|
|
FC_NONE = 0,
|
|
FC_TX = 1,
|
|
FC_RX = 2,
|
|
FC_BOTH = 3,
|
|
};
|
|
|
|
enum {
|
|
PHY_MARV_CTRL = 0,
|
|
PHY_MARV_STAT = 1,
|
|
PHY_MARV_ID0 = 2,
|
|
PHY_MARV_ID1 = 3,
|
|
PHY_MARV_AUNE_ADV = 4,
|
|
PHY_MARV_AUNE_LP = 5,
|
|
PHY_MARV_AUNE_EXP = 6,
|
|
PHY_MARV_NEPG = 7,
|
|
PHY_MARV_NEPG_LP = 8,
|
|
PHY_MARV_1000T_CTRL = 9,
|
|
PHY_MARV_1000T_STAT = 10,
|
|
PHY_MARV_EXT_STAT = 15,
|
|
PHY_MARV_PHY_CTRL = 16,
|
|
PHY_MARV_PHY_STAT = 17,
|
|
PHY_MARV_INT_MASK = 18,
|
|
PHY_MARV_INT_STAT = 19,
|
|
PHY_MARV_EXT_CTRL = 20,
|
|
PHY_MARV_RXE_CNT = 21,
|
|
PHY_MARV_EXT_ADR = 22,
|
|
PHY_MARV_PORT_IRQ = 23,
|
|
PHY_MARV_LED_CTRL = 24,
|
|
PHY_MARV_LED_OVER = 25,
|
|
PHY_MARV_EXT_CTRL_2 = 26,
|
|
PHY_MARV_EXT_P_STAT = 27,
|
|
PHY_MARV_CABLE_DIAG = 28,
|
|
PHY_MARV_PAGE_ADDR = 29,
|
|
PHY_MARV_PAGE_DATA = 30,
|
|
PHY_MARV_FE_LED_PAR = 22,
|
|
PHY_MARV_FE_LED_SER = 23,
|
|
PHY_MARV_FE_VCT_TX = 26,
|
|
PHY_MARV_FE_VCT_RX = 27,
|
|
PHY_MARV_FE_SPEC_2 = 28,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_EC_ENA_BC_EXT = 32768,
|
|
PHY_M_EC_ENA_LIN_LB = 16384,
|
|
PHY_M_EC_DIS_LINK_P = 4096,
|
|
PHY_M_EC_M_DSC_MSK = 3072,
|
|
PHY_M_EC_S_DSC_MSK = 768,
|
|
PHY_M_EC_M_DSC_MSK2 = 3584,
|
|
PHY_M_EC_DOWN_S_ENA = 256,
|
|
PHY_M_EC_RX_TIM_CT = 128,
|
|
PHY_M_EC_MAC_S_MSK = 112,
|
|
PHY_M_EC_FIB_AN_ENA = 8,
|
|
PHY_M_EC_DTE_D_ENA = 4,
|
|
PHY_M_EC_TX_TIM_CT = 2,
|
|
PHY_M_EC_TRANS_DIS = 1,
|
|
PHY_M_10B_TE_ENABLE = 128,
|
|
};
|
|
|
|
enum {
|
|
MAC_TX_CLK_0_MHZ = 2,
|
|
MAC_TX_CLK_2_5_MHZ = 6,
|
|
MAC_TX_CLK_25_MHZ = 7,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_PC_MAN_MDI = 0,
|
|
PHY_M_PC_MAN_MDIX = 1,
|
|
PHY_M_PC_ENA_AUTO = 3,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_PC_TX_FFD_MSK = 49152,
|
|
PHY_M_PC_RX_FFD_MSK = 12288,
|
|
PHY_M_PC_ASS_CRS_TX = 2048,
|
|
PHY_M_PC_FL_GOOD = 1024,
|
|
PHY_M_PC_EN_DET_MSK = 768,
|
|
PHY_M_PC_ENA_EXT_D = 128,
|
|
PHY_M_PC_MDIX_MSK = 96,
|
|
PHY_M_PC_DIS_125CLK = 16,
|
|
PHY_M_PC_MAC_POW_UP = 8,
|
|
PHY_M_PC_SQE_T_ENA = 4,
|
|
PHY_M_PC_POL_R_DIS = 2,
|
|
PHY_M_PC_DIS_JABBER = 1,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_FESC_DIS_WAIT = 4,
|
|
PHY_M_FESC_ENA_MCLK = 2,
|
|
PHY_M_FESC_SEL_CL_A = 1,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_PC_DIS_LINK_Pa = 32768,
|
|
PHY_M_PC_DSC_MSK = 28672,
|
|
PHY_M_PC_DOWN_S_ENA = 2048,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_MAC_MD_MSK = 896,
|
|
PHY_M_MAC_GMIF_PUP = 8,
|
|
PHY_M_MAC_MD_AUTO = 3,
|
|
PHY_M_MAC_MD_COPPER = 5,
|
|
PHY_M_MAC_MD_1000BX = 7,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_FIB_FORCE_LNK = 1024,
|
|
PHY_M_FIB_SIGD_POL = 512,
|
|
PHY_M_FIB_TX_DIS = 8,
|
|
};
|
|
|
|
enum {
|
|
PHY_CT_RESET = 32768,
|
|
PHY_CT_LOOP = 16384,
|
|
PHY_CT_SPS_LSB = 8192,
|
|
PHY_CT_ANE = 4096,
|
|
PHY_CT_PDOWN = 2048,
|
|
PHY_CT_ISOL = 1024,
|
|
PHY_CT_RE_CFG = 512,
|
|
PHY_CT_DUP_MD = 256,
|
|
PHY_CT_COL_TST = 128,
|
|
PHY_CT_SPS_MSB = 64,
|
|
};
|
|
|
|
enum {
|
|
PHY_AN_NXT_PG = 32768,
|
|
PHY_AN_ACK = 16384,
|
|
PHY_AN_RF = 8192,
|
|
PHY_AN_PAUSE_ASYM = 2048,
|
|
PHY_AN_PAUSE_CAP = 1024,
|
|
PHY_AN_100BASE4 = 512,
|
|
PHY_AN_100FULL = 256,
|
|
PHY_AN_100HALF = 128,
|
|
PHY_AN_10FULL = 64,
|
|
PHY_AN_10HALF = 32,
|
|
PHY_AN_CSMA = 1,
|
|
PHY_AN_SEL = 31,
|
|
PHY_AN_FULL = 321,
|
|
PHY_AN_ALL = 480,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_1000C_TEST = 57344,
|
|
PHY_M_1000C_MSE = 4096,
|
|
PHY_M_1000C_MSC = 2048,
|
|
PHY_M_1000C_MPD = 1024,
|
|
PHY_M_1000C_AFD = 512,
|
|
PHY_M_1000C_AHD = 256,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_AN_NXT_PG = 32768,
|
|
PHY_M_AN_ACK = 16384,
|
|
PHY_M_AN_RF = 8192,
|
|
PHY_M_AN_ASP = 2048,
|
|
PHY_M_AN_PC = 1024,
|
|
PHY_M_AN_100_T4 = 512,
|
|
PHY_M_AN_100_FD = 256,
|
|
PHY_M_AN_100_HD = 128,
|
|
PHY_M_AN_10_FD = 64,
|
|
PHY_M_AN_10_HD = 32,
|
|
PHY_M_AN_SEL_MSK = 496,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_AN_ASP_X = 256,
|
|
PHY_M_AN_PC_X = 128,
|
|
PHY_M_AN_1000X_AHD = 64,
|
|
PHY_M_AN_1000X_AFD = 32,
|
|
};
|
|
|
|
enum {
|
|
GM_GPCR_PROM_ENA = 16384,
|
|
GM_GPCR_FC_TX_DIS = 8192,
|
|
GM_GPCR_TX_ENA = 4096,
|
|
GM_GPCR_RX_ENA = 2048,
|
|
GM_GPCR_BURST_ENA = 1024,
|
|
GM_GPCR_LOOP_ENA = 512,
|
|
GM_GPCR_PART_ENA = 256,
|
|
GM_GPCR_GIGS_ENA = 128,
|
|
GM_GPCR_FL_PASS = 64,
|
|
GM_GPCR_DUP_FULL = 32,
|
|
GM_GPCR_FC_RX_DIS = 16,
|
|
GM_GPCR_SPEED_100 = 8,
|
|
GM_GPCR_AU_DUP_DIS = 4,
|
|
GM_GPCR_AU_FCT_DIS = 2,
|
|
GM_GPCR_AU_SPD_DIS = 1,
|
|
};
|
|
|
|
enum {
|
|
PHY_CT_SP1000 = 64,
|
|
PHY_CT_SP100 = 8192,
|
|
PHY_CT_SP10 = 0,
|
|
};
|
|
|
|
enum {
|
|
PULS_NO_STR = 0,
|
|
PULS_21MS = 1,
|
|
PULS_42MS = 2,
|
|
PULS_84MS = 3,
|
|
PULS_170MS = 4,
|
|
PULS_340MS = 5,
|
|
PULS_670MS = 6,
|
|
PULS_1300MS = 7,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_LEDC_DIS_LED = 32768,
|
|
PHY_M_LEDC_PULS_MSK = 28672,
|
|
PHY_M_LEDC_F_INT = 2048,
|
|
PHY_M_LEDC_BL_R_MSK = 1792,
|
|
PHY_M_LEDC_DP_C_LSB = 128,
|
|
PHY_M_LEDC_TX_C_LSB = 64,
|
|
PHY_M_LEDC_LK_C_MSK = 56,
|
|
};
|
|
|
|
enum {
|
|
BLINK_42MS = 0,
|
|
BLINK_84MS = 1,
|
|
BLINK_170MS = 2,
|
|
BLINK_340MS = 3,
|
|
BLINK_670MS = 4,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_FELP_LED2_MSK = 3840,
|
|
PHY_M_FELP_LED1_MSK = 240,
|
|
PHY_M_FELP_LED0_MSK = 15,
|
|
};
|
|
|
|
enum {
|
|
LED_PAR_CTRL_COLX = 0,
|
|
LED_PAR_CTRL_ERROR = 1,
|
|
LED_PAR_CTRL_DUPLEX = 2,
|
|
LED_PAR_CTRL_DP_COL = 3,
|
|
LED_PAR_CTRL_SPEED = 4,
|
|
LED_PAR_CTRL_LINK = 5,
|
|
LED_PAR_CTRL_TX = 6,
|
|
LED_PAR_CTRL_RX = 7,
|
|
LED_PAR_CTRL_ACT = 8,
|
|
LED_PAR_CTRL_LNK_RX = 9,
|
|
LED_PAR_CTRL_LNK_AC = 10,
|
|
LED_PAR_CTRL_ACT_BL = 11,
|
|
LED_PAR_CTRL_TX_BL = 12,
|
|
LED_PAR_CTRL_RX_BL = 13,
|
|
LED_PAR_CTRL_COL_BL = 14,
|
|
LED_PAR_CTRL_INACT = 15,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_PC_ENA_DTE_DT = 32768,
|
|
PHY_M_PC_ENA_ENE_DT = 16384,
|
|
PHY_M_PC_DIS_NLP_CK = 8192,
|
|
PHY_M_PC_ENA_LIP_NP = 4096,
|
|
PHY_M_PC_DIS_NLP_GN = 2048,
|
|
PHY_M_PC_DIS_SCRAMB = 512,
|
|
PHY_M_PC_DIS_FEFI = 256,
|
|
PHY_M_PC_SH_TP_SEL = 64,
|
|
PHY_M_PC_RX_FD_MSK = 12,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_LEDC_LOS_MSK = 61440,
|
|
PHY_M_LEDC_INIT_MSK = 3840,
|
|
PHY_M_LEDC_STA1_MSK = 240,
|
|
PHY_M_LEDC_STA0_MSK = 15,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_POLC_LS1M_MSK = 61440,
|
|
PHY_M_POLC_IS0M_MSK = 3840,
|
|
PHY_M_POLC_LOS_MSK = 192,
|
|
PHY_M_POLC_INIT_MSK = 48,
|
|
PHY_M_POLC_STA1_MSK = 12,
|
|
PHY_M_POLC_STA0_MSK = 3,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_LEDC_LINK_MSK = 24,
|
|
PHY_M_LEDC_DP_CTRL = 4,
|
|
PHY_M_LEDC_DP_C_MSB = 4,
|
|
PHY_M_LEDC_RX_CTRL = 2,
|
|
PHY_M_LEDC_TX_CTRL = 1,
|
|
PHY_M_LEDC_TX_C_MSB = 1,
|
|
};
|
|
|
|
enum led_mode {
|
|
MO_LED_NORM = 0,
|
|
MO_LED_BLINK = 1,
|
|
MO_LED_OFF = 2,
|
|
MO_LED_ON = 3,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_IS_AN_ERROR = 32768,
|
|
PHY_M_IS_LSP_CHANGE = 16384,
|
|
PHY_M_IS_DUP_CHANGE = 8192,
|
|
PHY_M_IS_AN_PR = 4096,
|
|
PHY_M_IS_AN_COMPL = 2048,
|
|
PHY_M_IS_LST_CHANGE = 1024,
|
|
PHY_M_IS_SYMB_ERROR = 512,
|
|
PHY_M_IS_FALSE_CARR = 256,
|
|
PHY_M_IS_FIFO_ERROR = 128,
|
|
PHY_M_IS_MDI_CHANGE = 64,
|
|
PHY_M_IS_DOWNSH_DET = 32,
|
|
PHY_M_IS_END_CHANGE = 16,
|
|
PHY_M_IS_DTE_CHANGE = 4,
|
|
PHY_M_IS_POL_CHANGE = 2,
|
|
PHY_M_IS_JABBER = 1,
|
|
PHY_M_DEF_MSK = 25600,
|
|
PHY_M_AN_MSK = 34816,
|
|
};
|
|
|
|
enum {
|
|
PHY_ADDR_MARV = 0,
|
|
};
|
|
|
|
enum {
|
|
GM_SMI_CT_PHY_A_MSK = 63488,
|
|
GM_SMI_CT_REG_A_MSK = 1984,
|
|
GM_SMI_CT_OP_RD = 32,
|
|
GM_SMI_CT_RD_VAL = 16,
|
|
GM_SMI_CT_BUSY = 8,
|
|
};
|
|
|
|
enum pci_dev_reg_2 {
|
|
PCI_VPD_WR_THR = 4278190080,
|
|
PCI_DEV_SEL = 16646144,
|
|
PCI_VPD_ROM_SZ = 114688,
|
|
PCI_PATCH_DIR = 3840,
|
|
PCI_EXT_PATCHS = 240,
|
|
PCI_EN_DUMMY_RD = 8,
|
|
PCI_REV_DESC = 4,
|
|
PCI_USEDATA64 = 1,
|
|
};
|
|
|
|
enum {
|
|
B8_Q_REGS = 1024,
|
|
Q_D = 0,
|
|
Q_VLAN = 32,
|
|
Q_DONE = 36,
|
|
Q_AC_L = 40,
|
|
Q_AC_H = 44,
|
|
Q_BC = 48,
|
|
Q_CSR = 52,
|
|
Q_TEST = 56,
|
|
Q_WM = 64,
|
|
Q_AL = 66,
|
|
Q_RSP = 68,
|
|
Q_RSL = 70,
|
|
Q_RP = 72,
|
|
Q_RL = 74,
|
|
Q_WP = 76,
|
|
Q_WSP = 77,
|
|
Q_WL = 78,
|
|
Q_WSL = 79,
|
|
};
|
|
|
|
enum {
|
|
BMU_IDLE = -2147483648,
|
|
BMU_RX_TCP_PKT = 1073741824,
|
|
BMU_RX_IP_PKT = 536870912,
|
|
BMU_ENA_RX_RSS_HASH = 32768,
|
|
BMU_DIS_RX_RSS_HASH = 16384,
|
|
BMU_ENA_RX_CHKSUM = 8192,
|
|
BMU_DIS_RX_CHKSUM = 4096,
|
|
BMU_CLR_IRQ_PAR = 2048,
|
|
BMU_CLR_IRQ_TCP = 2048,
|
|
BMU_CLR_IRQ_CHK = 1024,
|
|
BMU_STOP = 512,
|
|
BMU_START = 256,
|
|
BMU_FIFO_OP_ON = 128,
|
|
BMU_FIFO_OP_OFF = 64,
|
|
BMU_FIFO_ENA = 32,
|
|
BMU_FIFO_RST = 16,
|
|
BMU_OP_ON = 8,
|
|
BMU_OP_OFF = 4,
|
|
BMU_RST_CLR = 2,
|
|
BMU_RST_SET = 1,
|
|
BMU_CLR_RESET = 22,
|
|
BMU_OPER_INIT = 3368,
|
|
BMU_WM_DEFAULT = 1536,
|
|
BMU_WM_PEX = 128,
|
|
};
|
|
|
|
enum {
|
|
B6_EXT_REG = 768,
|
|
B7_CFG_SPC = 896,
|
|
B8_RQ1_REGS = 1024,
|
|
B8_RQ2_REGS = 1152,
|
|
B8_TS1_REGS = 1536,
|
|
B8_TA1_REGS = 1664,
|
|
B8_TS2_REGS = 1792,
|
|
B8_TA2_REGS = 1920,
|
|
B16_RAM_REGS = 2048,
|
|
};
|
|
|
|
enum {
|
|
RB_START = 0,
|
|
RB_END = 4,
|
|
RB_WP = 8,
|
|
RB_RP = 12,
|
|
RB_RX_UTPP = 16,
|
|
RB_RX_LTPP = 20,
|
|
RB_RX_UTHP = 24,
|
|
RB_RX_LTHP = 28,
|
|
RB_PC = 32,
|
|
RB_LEV = 36,
|
|
RB_CTRL = 40,
|
|
RB_TST1 = 41,
|
|
RB_TST2 = 42,
|
|
};
|
|
|
|
enum {
|
|
RB_ENA_STFWD = 32,
|
|
RB_DIS_STFWD = 16,
|
|
RB_ENA_OP_MD = 8,
|
|
RB_DIS_OP_MD = 4,
|
|
RB_RST_CLR = 2,
|
|
RB_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
LNK_SYNC_INI = 3120,
|
|
LNK_SYNC_VAL = 3124,
|
|
LNK_SYNC_CTRL = 3128,
|
|
LNK_SYNC_TST = 3129,
|
|
LNK_LED_REG = 3132,
|
|
RX_GMF_EA = 3136,
|
|
RX_GMF_AF_THR = 3140,
|
|
RX_GMF_CTRL_T = 3144,
|
|
RX_GMF_FL_MSK = 3148,
|
|
RX_GMF_FL_THR = 3152,
|
|
RX_GMF_FL_CTRL = 3154,
|
|
RX_GMF_TR_THR = 3156,
|
|
RX_GMF_UP_THR = 3160,
|
|
RX_GMF_LP_THR = 3162,
|
|
RX_GMF_VLAN = 3164,
|
|
RX_GMF_WP = 3168,
|
|
RX_GMF_WLEV = 3176,
|
|
RX_GMF_RP = 3184,
|
|
RX_GMF_RLEV = 3192,
|
|
};
|
|
|
|
enum {
|
|
RX_GCLKMAC_ENA = -2147483648,
|
|
RX_GCLKMAC_OFF = 1073741824,
|
|
RX_STFW_DIS = 536870912,
|
|
RX_STFW_ENA = 268435456,
|
|
RX_TRUNC_ON = 134217728,
|
|
RX_TRUNC_OFF = 67108864,
|
|
RX_VLAN_STRIP_ON = 33554432,
|
|
RX_VLAN_STRIP_OFF = 16777216,
|
|
RX_MACSEC_FLUSH_ON = 8388608,
|
|
RX_MACSEC_FLUSH_OFF = 4194304,
|
|
RX_MACSEC_ASF_FLUSH_ON = 2097152,
|
|
RX_MACSEC_ASF_FLUSH_OFF = 1048576,
|
|
GMF_RX_OVER_ON = 524288,
|
|
GMF_RX_OVER_OFF = 262144,
|
|
GMF_ASF_RX_OVER_ON = 131072,
|
|
GMF_ASF_RX_OVER_OFF = 65536,
|
|
GMF_WP_TST_ON = 16384,
|
|
GMF_WP_TST_OFF = 8192,
|
|
GMF_WP_STEP = 4096,
|
|
GMF_RP_TST_ON = 1024,
|
|
GMF_RP_TST_OFF = 512,
|
|
GMF_RP_STEP = 256,
|
|
GMF_RX_F_FL_ON = 128,
|
|
GMF_RX_F_FL_OFF = 64,
|
|
GMF_CLI_RX_FO = 32,
|
|
GMF_CLI_RX_C = 16,
|
|
GMF_OPER_ON = 8,
|
|
GMF_OPER_OFF = 4,
|
|
GMF_RST_CLR = 2,
|
|
GMF_RST_SET = 1,
|
|
RX_GMF_FL_THR_DEF = 10,
|
|
GMF_RX_CTRL_DEF = 136,
|
|
};
|
|
|
|
enum {
|
|
Y2_B8_PREF_REGS = 1104,
|
|
PREF_UNIT_CTRL = 0,
|
|
PREF_UNIT_LAST_IDX = 4,
|
|
PREF_UNIT_ADDR_LO = 8,
|
|
PREF_UNIT_ADDR_HI = 12,
|
|
PREF_UNIT_GET_IDX = 16,
|
|
PREF_UNIT_PUT_IDX = 20,
|
|
PREF_UNIT_FIFO_WP = 32,
|
|
PREF_UNIT_FIFO_RP = 36,
|
|
PREF_UNIT_FIFO_WM = 40,
|
|
PREF_UNIT_FIFO_LEV = 44,
|
|
PREF_UNIT_MASK_IDX = 4095,
|
|
};
|
|
|
|
enum {
|
|
PREF_UNIT_OP_ON = 8,
|
|
PREF_UNIT_OP_OFF = 4,
|
|
PREF_UNIT_RST_CLR = 2,
|
|
PREF_UNIT_RST_SET = 1,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_PC_COP_TX_DIS = 8,
|
|
PHY_M_PC_POW_D_ENA = 4,
|
|
};
|
|
|
|
enum {
|
|
TX_GMF_EA = 3392,
|
|
TX_GMF_AE_THR = 3396,
|
|
TX_GMF_CTRL_T = 3400,
|
|
TX_GMF_WP = 3424,
|
|
TX_GMF_WSP = 3428,
|
|
TX_GMF_WLEV = 3432,
|
|
TX_GMF_RP = 3440,
|
|
TX_GMF_RSTP = 3444,
|
|
TX_GMF_RLEV = 3448,
|
|
ECU_AE_THR = 112,
|
|
ECU_TXFF_LEV = 416,
|
|
ECU_JUMBO_WM = 128,
|
|
};
|
|
|
|
enum {
|
|
Y2_IS_HW_ERR = -2147483648,
|
|
Y2_IS_STAT_BMU = 1073741824,
|
|
Y2_IS_ASF = 536870912,
|
|
Y2_IS_CPU_TO = 268435456,
|
|
Y2_IS_POLL_CHK = 134217728,
|
|
Y2_IS_TWSI_RDY = 67108864,
|
|
Y2_IS_IRQ_SW = 33554432,
|
|
Y2_IS_TIMINT = 16777216,
|
|
Y2_IS_IRQ_PHY2 = 4096,
|
|
Y2_IS_IRQ_MAC2 = 2048,
|
|
Y2_IS_CHK_RX2 = 1024,
|
|
Y2_IS_CHK_TXS2 = 512,
|
|
Y2_IS_CHK_TXA2 = 256,
|
|
Y2_IS_PSM_ACK = 128,
|
|
Y2_IS_PTP_TIST = 64,
|
|
Y2_IS_PHY_QLNK = 32,
|
|
Y2_IS_IRQ_PHY1 = 16,
|
|
Y2_IS_IRQ_MAC1 = 8,
|
|
Y2_IS_CHK_RX1 = 4,
|
|
Y2_IS_CHK_TXS1 = 2,
|
|
Y2_IS_CHK_TXA1 = 1,
|
|
Y2_IS_BASE = -1073741824,
|
|
Y2_IS_PORT_1 = 29,
|
|
Y2_IS_PORT_2 = 7424,
|
|
Y2_IS_ERROR = -2147480307,
|
|
};
|
|
|
|
enum {
|
|
Q_R1 = 0,
|
|
Q_R2 = 128,
|
|
Q_XS1 = 512,
|
|
Q_XA1 = 640,
|
|
Q_XS2 = 768,
|
|
Q_XA2 = 896,
|
|
};
|
|
|
|
enum {
|
|
F_TX_CHK_AUTO_OFF = -2147483648,
|
|
F_TX_CHK_AUTO_ON = 1073741824,
|
|
F_M_RX_RAM_DIS = 16777216,
|
|
};
|
|
|
|
enum yukon_ec_u_rev {
|
|
CHIP_REV_YU_EC_U_A0 = 1,
|
|
CHIP_REV_YU_EC_U_A1 = 2,
|
|
CHIP_REV_YU_EC_U_B0 = 3,
|
|
CHIP_REV_YU_EC_U_B1 = 5,
|
|
};
|
|
|
|
enum {
|
|
HW_OWNER = 128,
|
|
OP_TCPWRITE = 17,
|
|
OP_TCPSTART = 18,
|
|
OP_TCPINIT = 20,
|
|
OP_TCPLCK = 24,
|
|
OP_TCPCHKSUM = 18,
|
|
OP_TCPIS = 22,
|
|
OP_TCPLW = 25,
|
|
OP_TCPLSW = 27,
|
|
OP_TCPLISW = 31,
|
|
OP_ADDR64 = 33,
|
|
OP_VLAN = 34,
|
|
OP_ADDR64VLAN = 35,
|
|
OP_LRGLEN = 36,
|
|
OP_LRGLENVLAN = 38,
|
|
OP_MSS = 40,
|
|
OP_MSSVLAN = 42,
|
|
OP_BUFFER = 64,
|
|
OP_PACKET = 65,
|
|
OP_LARGESEND = 67,
|
|
OP_LSOV2 = 69,
|
|
OP_RXSTAT = 96,
|
|
OP_RXTIMESTAMP = 97,
|
|
OP_RXVLAN = 98,
|
|
OP_RXCHKS = 100,
|
|
OP_RXCHKSVLAN = 102,
|
|
OP_RXTIMEVLAN = 99,
|
|
OP_RSS_HASH = 101,
|
|
OP_TXINDEXLE = 104,
|
|
OP_MACSEC = 108,
|
|
OP_PUTIDX = 112,
|
|
};
|
|
|
|
enum {
|
|
PHY_MARV_ID0_VAL = 321,
|
|
PHY_BCOM_ID1_A1 = 24641,
|
|
PHY_BCOM_ID1_B2 = 24643,
|
|
PHY_BCOM_ID1_C0 = 24644,
|
|
PHY_BCOM_ID1_C5 = 24647,
|
|
PHY_MARV_ID1_B0 = 3107,
|
|
PHY_MARV_ID1_B2 = 3109,
|
|
PHY_MARV_ID1_C2 = 3266,
|
|
PHY_MARV_ID1_Y2 = 3217,
|
|
PHY_MARV_ID1_FE = 3203,
|
|
PHY_MARV_ID1_ECU = 3248,
|
|
};
|
|
|
|
enum {
|
|
GM_IS_TX_CO_OV = 32,
|
|
GM_IS_RX_CO_OV = 16,
|
|
GM_IS_TX_FF_UR = 8,
|
|
GM_IS_TX_COMPL = 4,
|
|
GM_IS_RX_FF_OR = 2,
|
|
GM_IS_RX_COMPL = 1,
|
|
};
|
|
|
|
enum {
|
|
GM_PAR_MIB_CLR = 32,
|
|
GM_PAR_MIB_TST = 16,
|
|
};
|
|
|
|
enum {
|
|
GM_TXCR_FORCE_JAM = 32768,
|
|
GM_TXCR_CRC_DIS = 16384,
|
|
GM_TXCR_PAD_DIS = 8192,
|
|
GM_TXCR_COL_THR_MSK = 7168,
|
|
};
|
|
|
|
enum {
|
|
GM_TXPA_JAMLEN_MSK = 49152,
|
|
GM_TXPA_JAMIPG_MSK = 15872,
|
|
GM_TXPA_JAMDAT_MSK = 496,
|
|
GM_TXPA_BO_LIM_MSK = 15,
|
|
TX_JAM_LEN_DEF = 3,
|
|
TX_JAM_IPG_DEF = 11,
|
|
TX_IPG_JAM_DEF = 28,
|
|
TX_BOF_LIM_DEF = 4,
|
|
};
|
|
|
|
enum {
|
|
GM_SMOD_DATABL_MSK = 63488,
|
|
GM_SMOD_LIMIT_4 = 1024,
|
|
GM_SMOD_VLAN_ENA = 512,
|
|
GM_SMOD_JUMBO_ENA = 256,
|
|
GM_NEW_FLOW_CTRL = 64,
|
|
GM_SMOD_IPG_MSK = 31,
|
|
};
|
|
|
|
enum {
|
|
GMR_FS_LEN = 2147418112,
|
|
GMR_FS_VLAN = 8192,
|
|
GMR_FS_JABBER = 4096,
|
|
GMR_FS_UN_SIZE = 2048,
|
|
GMR_FS_MC = 1024,
|
|
GMR_FS_BC = 512,
|
|
GMR_FS_RX_OK = 256,
|
|
GMR_FS_GOOD_FC = 128,
|
|
GMR_FS_BAD_FC = 64,
|
|
GMR_FS_MII_ERR = 32,
|
|
GMR_FS_LONG_ERR = 16,
|
|
GMR_FS_FRAGMENT = 8,
|
|
GMR_FS_CRC_ERR = 2,
|
|
GMR_FS_RX_FF_OV = 1,
|
|
GMR_FS_ANY_ERR = 6267,
|
|
};
|
|
|
|
enum {
|
|
TX_DYN_WM_ENA = 3,
|
|
};
|
|
|
|
enum {
|
|
TX_STFW_DIS = -2147483648,
|
|
TX_STFW_ENA = 1073741824,
|
|
TX_VLAN_TAG_ON = 33554432,
|
|
TX_VLAN_TAG_OFF = 16777216,
|
|
TX_PCI_JUM_ENA = 8388608,
|
|
TX_PCI_JUM_DIS = 4194304,
|
|
GMF_WSP_TST_ON = 262144,
|
|
GMF_WSP_TST_OFF = 131072,
|
|
GMF_WSP_STEP = 65536,
|
|
GMF_CLI_TX_FU = 64,
|
|
GMF_CLI_TX_FC = 32,
|
|
GMF_CLI_TX_PE = 16,
|
|
};
|
|
|
|
enum {
|
|
RX_IPV6_SA_MOB_ENA = 512,
|
|
RX_IPV6_SA_MOB_DIS = 256,
|
|
RX_IPV6_DA_MOB_ENA = 128,
|
|
RX_IPV6_DA_MOB_DIS = 64,
|
|
RX_PTR_SYNCDLY_ENA = 32,
|
|
RX_PTR_SYNCDLY_DIS = 16,
|
|
RX_ASF_NEWFLAG_ENA = 8,
|
|
RX_ASF_NEWFLAG_DIS = 4,
|
|
RX_FLSH_MISSPKT_ENA = 2,
|
|
RX_FLSH_MISSPKT_DIS = 1,
|
|
};
|
|
|
|
enum {
|
|
TBMU_TEST_BMU_TX_CHK_AUTO_OFF = -2147483648,
|
|
TBMU_TEST_BMU_TX_CHK_AUTO_ON = 1073741824,
|
|
TBMU_TEST_HOME_ADD_PAD_FIX1_EN = 536870912,
|
|
TBMU_TEST_HOME_ADD_PAD_FIX1_DIS = 268435456,
|
|
TBMU_TEST_ROUTING_ADD_FIX_EN = 134217728,
|
|
TBMU_TEST_ROUTING_ADD_FIX_DIS = 67108864,
|
|
TBMU_TEST_HOME_ADD_FIX_EN = 33554432,
|
|
TBMU_TEST_HOME_ADD_FIX_DIS = 16777216,
|
|
TBMU_TEST_TEST_RSPTR_ON = 4194304,
|
|
TBMU_TEST_TEST_RSPTR_OFF = 2097152,
|
|
TBMU_TEST_TESTSTEP_RSPTR = 1048576,
|
|
TBMU_TEST_TEST_RPTR_ON = 262144,
|
|
TBMU_TEST_TEST_RPTR_OFF = 131072,
|
|
TBMU_TEST_TESTSTEP_RPTR = 65536,
|
|
TBMU_TEST_TEST_WSPTR_ON = 16384,
|
|
TBMU_TEST_TEST_WSPTR_OFF = 8192,
|
|
TBMU_TEST_TESTSTEP_WSPTR = 4096,
|
|
TBMU_TEST_TEST_WPTR_ON = 1024,
|
|
TBMU_TEST_TEST_WPTR_OFF = 512,
|
|
TBMU_TEST_TESTSTEP_WPTR = 256,
|
|
TBMU_TEST_TEST_REQ_NB_ON = 64,
|
|
TBMU_TEST_TEST_REQ_NB_OFF = 32,
|
|
TBMU_TEST_TESTSTEP_REQ_NB = 16,
|
|
TBMU_TEST_TEST_DONE_IDX_ON = 4,
|
|
TBMU_TEST_TEST_DONE_IDX_OFF = 2,
|
|
TBMU_TEST_TESTSTEP_DONE_IDX = 1,
|
|
};
|
|
|
|
enum {
|
|
HASH_TCP_IPV6_EX_CTRL = 32,
|
|
HASH_IPV6_EX_CTRL = 16,
|
|
HASH_TCP_IPV6_CTRL = 8,
|
|
HASH_IPV6_CTRL = 4,
|
|
HASH_TCP_IPV4_CTRL = 2,
|
|
HASH_IPV4_CTRL = 1,
|
|
HASH_ALL = 63,
|
|
};
|
|
|
|
enum {
|
|
GM_RXF_UC_OK = 256,
|
|
GM_RXF_BC_OK = 264,
|
|
GM_RXF_MPAUSE = 272,
|
|
GM_RXF_MC_OK = 280,
|
|
GM_RXF_FCS_ERR = 288,
|
|
GM_RXO_OK_LO = 304,
|
|
GM_RXO_OK_HI = 312,
|
|
GM_RXO_ERR_LO = 320,
|
|
GM_RXO_ERR_HI = 328,
|
|
GM_RXF_SHT = 336,
|
|
GM_RXE_FRAG = 344,
|
|
GM_RXF_64B = 352,
|
|
GM_RXF_127B = 360,
|
|
GM_RXF_255B = 368,
|
|
GM_RXF_511B = 376,
|
|
GM_RXF_1023B = 384,
|
|
GM_RXF_1518B = 392,
|
|
GM_RXF_MAX_SZ = 400,
|
|
GM_RXF_LNG_ERR = 408,
|
|
GM_RXF_JAB_PKT = 416,
|
|
GM_RXE_FIFO_OV = 432,
|
|
GM_TXF_UC_OK = 448,
|
|
GM_TXF_BC_OK = 456,
|
|
GM_TXF_MPAUSE = 464,
|
|
GM_TXF_MC_OK = 472,
|
|
GM_TXO_OK_LO = 480,
|
|
GM_TXO_OK_HI = 488,
|
|
GM_TXF_64B = 496,
|
|
GM_TXF_127B = 504,
|
|
GM_TXF_255B = 512,
|
|
GM_TXF_511B = 520,
|
|
GM_TXF_1023B = 528,
|
|
GM_TXF_1518B = 536,
|
|
GM_TXF_MAX_SZ = 544,
|
|
GM_TXF_COL = 560,
|
|
GM_TXF_LAT_COL = 568,
|
|
GM_TXF_ABO_COL = 576,
|
|
GM_TXF_MUL_COL = 584,
|
|
GM_TXF_SNG_COL = 592,
|
|
GM_TXE_FIFO_UR = 600,
|
|
};
|
|
|
|
enum {
|
|
UDPTCP = 1,
|
|
CALSUM = 2,
|
|
WR_SUM = 4,
|
|
INIT_SUM = 8,
|
|
LOCK_SUM = 16,
|
|
INS_VLAN = 32,
|
|
EOP = 128,
|
|
};
|
|
|
|
enum {
|
|
PHY_M_PS_SPEED_MSK = 49152,
|
|
PHY_M_PS_SPEED_1000 = 32768,
|
|
PHY_M_PS_SPEED_100 = 16384,
|
|
PHY_M_PS_SPEED_10 = 0,
|
|
PHY_M_PS_FULL_DUP = 8192,
|
|
PHY_M_PS_PAGE_REC = 4096,
|
|
PHY_M_PS_SPDUP_RES = 2048,
|
|
PHY_M_PS_LINK_UP = 1024,
|
|
PHY_M_PS_CABLE_MSK = 896,
|
|
PHY_M_PS_MDI_X_STAT = 64,
|
|
PHY_M_PS_DOWNS_STAT = 32,
|
|
PHY_M_PS_ENDET_STAT = 16,
|
|
PHY_M_PS_TX_P_EN = 8,
|
|
PHY_M_PS_RX_P_EN = 4,
|
|
PHY_M_PS_POL_REV = 2,
|
|
PHY_M_PS_JABBER = 1,
|
|
};
|
|
|
|
enum {
|
|
LINKLED_OFF = 1,
|
|
LINKLED_ON = 2,
|
|
LINKLED_LINKSYNC_OFF = 4,
|
|
LINKLED_LINKSYNC_ON = 8,
|
|
LINKLED_BLINK_OFF = 16,
|
|
LINKLED_BLINK_ON = 32,
|
|
};
|
|
|
|
enum status_css {
|
|
CSS_TCPUDPCSOK = 128,
|
|
CSS_ISUDP = 64,
|
|
CSS_ISTCP = 32,
|
|
CSS_ISIPFRAG = 16,
|
|
CSS_ISIPV6 = 8,
|
|
CSS_IPV4CSUMOK = 4,
|
|
CSS_ISIPV4 = 2,
|
|
CSS_LINK_BIT = 1,
|
|
};
|
|
|
|
enum {
|
|
WOL_CTL_LINK_CHG_OCC = 32768,
|
|
WOL_CTL_MAGIC_PKT_OCC = 16384,
|
|
WOL_CTL_PATTERN_OCC = 8192,
|
|
WOL_CTL_CLEAR_RESULT = 4096,
|
|
WOL_CTL_ENA_PME_ON_LINK_CHG = 2048,
|
|
WOL_CTL_DIS_PME_ON_LINK_CHG = 1024,
|
|
WOL_CTL_ENA_PME_ON_MAGIC_PKT = 512,
|
|
WOL_CTL_DIS_PME_ON_MAGIC_PKT = 256,
|
|
WOL_CTL_ENA_PME_ON_PATTERN = 128,
|
|
WOL_CTL_DIS_PME_ON_PATTERN = 64,
|
|
WOL_CTL_ENA_LINK_CHG_UNIT = 32,
|
|
WOL_CTL_DIS_LINK_CHG_UNIT = 16,
|
|
WOL_CTL_ENA_MAGIC_PKT_UNIT = 8,
|
|
WOL_CTL_DIS_MAGIC_PKT_UNIT = 4,
|
|
WOL_CTL_ENA_PATTERN_UNIT = 2,
|
|
WOL_CTL_DIS_PATTERN_UNIT = 1,
|
|
};
|
|
|
|
enum pci_dev_reg_1 {
|
|
PCI_Y2_PIG_ENA = -2147483648,
|
|
PCI_Y2_DLL_DIS = 1073741824,
|
|
PCI_SW_PWR_ON_RST = 1073741824,
|
|
PCI_Y2_PHY2_COMA = 536870912,
|
|
PCI_Y2_PHY1_COMA = 268435456,
|
|
PCI_Y2_PHY2_POWD = 134217728,
|
|
PCI_Y2_PHY1_POWD = 67108864,
|
|
PCI_Y2_PME_LEGACY = 32768,
|
|
PCI_PHY_LNK_TIM_MSK = 768,
|
|
PCI_ENA_L1_EVENT = 128,
|
|
PCI_ENA_GPHY_LNK = 64,
|
|
PCI_FORCE_PEX_L1 = 32,
|
|
};
|
|
|
|
struct sky2_status_le;
|
|
|
|
struct sky2_hw {
|
|
void *regs;
|
|
struct pci_dev *pdev;
|
|
struct napi_struct napi;
|
|
struct net_device *dev[2];
|
|
unsigned long flags;
|
|
u8 chip_id;
|
|
u8 chip_rev;
|
|
u8 pmd_type;
|
|
u8 ports;
|
|
struct sky2_status_le *st_le;
|
|
u32 st_size;
|
|
u32 st_idx;
|
|
dma_addr_t st_dma;
|
|
struct timer_list watchdog_timer;
|
|
struct work_struct restart_work;
|
|
wait_queue_head_t msi_wait;
|
|
char irq_name[0];
|
|
};
|
|
|
|
struct sky2_status_le {
|
|
__le32 status;
|
|
__le16 length;
|
|
u8 css;
|
|
u8 opcode;
|
|
};
|
|
|
|
struct sky2_stats {
|
|
struct u64_stats_sync syncp;
|
|
u64 packets;
|
|
u64 bytes;
|
|
};
|
|
|
|
struct tx_ring_info;
|
|
|
|
struct sky2_tx_le;
|
|
|
|
struct rx_ring_info;
|
|
|
|
struct sky2_rx_le;
|
|
|
|
struct sky2_port {
|
|
struct sky2_hw *hw;
|
|
struct net_device *netdev;
|
|
unsigned int port;
|
|
u32 msg_enable;
|
|
spinlock_t phy_lock;
|
|
struct tx_ring_info *tx_ring;
|
|
struct sky2_tx_le *tx_le;
|
|
struct sky2_stats tx_stats;
|
|
u16 tx_ring_size;
|
|
u16 tx_cons;
|
|
u16 tx_prod;
|
|
u16 tx_next;
|
|
u16 tx_pending;
|
|
u16 tx_last_mss;
|
|
u32 tx_last_upper;
|
|
u32 tx_tcpsum;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct rx_ring_info *rx_ring;
|
|
struct sky2_rx_le *rx_le;
|
|
struct sky2_stats rx_stats;
|
|
u16 rx_next;
|
|
u16 rx_put;
|
|
u16 rx_pending;
|
|
u16 rx_data_size;
|
|
u16 rx_nfrags;
|
|
unsigned long last_rx;
|
|
struct {
|
|
unsigned long last;
|
|
u32 mac_rp;
|
|
u8 mac_lev;
|
|
u8 fifo_rp;
|
|
u8 fifo_lev;
|
|
} check;
|
|
dma_addr_t rx_le_map;
|
|
dma_addr_t tx_le_map;
|
|
u16 advertising;
|
|
u16 speed;
|
|
u8 wol;
|
|
u8 duplex;
|
|
u16 flags;
|
|
enum flow_control flow_mode;
|
|
enum flow_control flow_status;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct tx_ring_info {
|
|
struct sk_buff *skb;
|
|
unsigned long flags;
|
|
dma_addr_t mapaddr;
|
|
__u32 maplen;
|
|
};
|
|
|
|
struct sky2_tx_le {
|
|
__le32 addr;
|
|
__le16 length;
|
|
u8 ctrl;
|
|
u8 opcode;
|
|
};
|
|
|
|
struct rx_ring_info {
|
|
struct sk_buff *skb;
|
|
dma_addr_t data_addr;
|
|
__u32 data_size;
|
|
dma_addr_t frag_addr[2];
|
|
};
|
|
|
|
struct sky2_rx_le {
|
|
__le32 addr;
|
|
__le16 length;
|
|
u8 ctrl;
|
|
u8 opcode;
|
|
};
|
|
|
|
struct alps_protocol_info {
|
|
u16 version;
|
|
u8 byte0;
|
|
u8 mask0;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct alps_model_info {
|
|
u8 signature[3];
|
|
struct alps_protocol_info protocol_info;
|
|
};
|
|
|
|
struct alps_nibble_commands {
|
|
int command;
|
|
unsigned char data;
|
|
};
|
|
|
|
enum V7_PACKET_ID {
|
|
V7_PACKET_ID_IDLE = 0,
|
|
V7_PACKET_ID_TWO = 1,
|
|
V7_PACKET_ID_MULTI = 2,
|
|
V7_PACKET_ID_NEW = 3,
|
|
V7_PACKET_ID_UNKNOWN = 4,
|
|
};
|
|
|
|
enum SS4_PACKET_ID {
|
|
SS4_PACKET_ID_IDLE = 0,
|
|
SS4_PACKET_ID_ONE = 1,
|
|
SS4_PACKET_ID_TWO = 2,
|
|
SS4_PACKET_ID_MULTI = 3,
|
|
SS4_PACKET_ID_STICK = 4,
|
|
};
|
|
|
|
struct alps_fields {
|
|
unsigned int x_map;
|
|
unsigned int y_map;
|
|
unsigned int fingers;
|
|
int pressure;
|
|
struct input_mt_pos st;
|
|
struct input_mt_pos mt[4];
|
|
unsigned int first_mp: 1;
|
|
unsigned int is_mp: 1;
|
|
unsigned int left: 1;
|
|
unsigned int right: 1;
|
|
unsigned int middle: 1;
|
|
unsigned int ts_left: 1;
|
|
unsigned int ts_right: 1;
|
|
unsigned int ts_middle: 1;
|
|
};
|
|
|
|
struct alps_data {
|
|
struct psmouse *psmouse;
|
|
struct input_dev *dev2;
|
|
struct input_dev *dev3;
|
|
char phys2[32];
|
|
char phys3[32];
|
|
struct delayed_work dev3_register_work;
|
|
const struct alps_nibble_commands *nibble_commands;
|
|
int addr_command;
|
|
u16 proto_version;
|
|
u8 byte0;
|
|
u8 mask0;
|
|
u8 dev_id[3];
|
|
u8 fw_ver[3];
|
|
int flags;
|
|
int x_max;
|
|
int y_max;
|
|
int x_bits;
|
|
int y_bits;
|
|
unsigned int x_res;
|
|
unsigned int y_res;
|
|
int (*hw_init)(struct psmouse *);
|
|
void (*process_packet)(struct psmouse *);
|
|
int (*decode_fields)(struct alps_fields *, unsigned char *, struct psmouse *);
|
|
void (*set_abs_params)(struct alps_data *, struct input_dev *);
|
|
int prev_fin;
|
|
int multi_packet;
|
|
int second_touch;
|
|
unsigned char multi_data[6];
|
|
struct alps_fields f;
|
|
u8 quirks;
|
|
struct timer_list timer;
|
|
};
|
|
|
|
struct alps_bitmap_point {
|
|
int start_bit;
|
|
int num_bits;
|
|
};
|
|
|
|
struct dm_io_client {
|
|
mempool_t pool;
|
|
struct bio_set bios;
|
|
};
|
|
|
|
struct dpages {
|
|
void (*get_page)(struct dpages *, struct page **, unsigned long *, unsigned int *);
|
|
void (*next_page)(struct dpages *);
|
|
union {
|
|
unsigned int context_u;
|
|
struct bvec_iter context_bi;
|
|
};
|
|
void *context_ptr;
|
|
void *vma_invalidate_address;
|
|
unsigned long vma_invalidate_size;
|
|
};
|
|
|
|
struct io {
|
|
unsigned long error_bits;
|
|
atomic_t count;
|
|
struct dm_io_client *client;
|
|
io_notify_fn callback;
|
|
void *context;
|
|
void *vma_invalidate_address;
|
|
unsigned long vma_invalidate_size;
|
|
long: 64;
|
|
};
|
|
|
|
struct sync_io {
|
|
unsigned long error_bits;
|
|
struct completion wait;
|
|
};
|
|
|
|
struct font_desc {
|
|
int idx;
|
|
const char *name;
|
|
unsigned int width;
|
|
unsigned int height;
|
|
unsigned int charcount;
|
|
const void *data;
|
|
int pref;
|
|
};
|
|
|
|
struct sdw_intel_acpi_info {
|
|
acpi_handle handle;
|
|
int count;
|
|
u32 link_mask;
|
|
};
|
|
|
|
struct pcpu_gen_cookie;
|
|
|
|
struct gen_cookie {
|
|
struct pcpu_gen_cookie __attribute__((btf_type_tag("percpu"))) *local;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
atomic64_t forward_last;
|
|
atomic64_t reverse_last;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct pcpu_gen_cookie {
|
|
local_t nesting;
|
|
u64 last;
|
|
};
|
|
|
|
enum {
|
|
NETNSA_NONE = 0,
|
|
NETNSA_NSID = 1,
|
|
NETNSA_PID = 2,
|
|
NETNSA_FD = 3,
|
|
NETNSA_TARGET_NSID = 4,
|
|
NETNSA_CURRENT_NSID = 5,
|
|
__NETNSA_MAX = 6,
|
|
};
|
|
|
|
struct net_fill_args {
|
|
u32 portid;
|
|
u32 seq;
|
|
int flags;
|
|
int cmd;
|
|
int nsid;
|
|
bool add_ref;
|
|
int ref_nsid;
|
|
};
|
|
|
|
struct rtnl_net_dump_cb {
|
|
struct net *tgt_net;
|
|
struct net *ref_net;
|
|
struct sk_buff *skb;
|
|
struct net_fill_args fillargs;
|
|
int idx;
|
|
int s_idx;
|
|
};
|
|
|
|
enum {
|
|
TCA_BPF_UNSPEC = 0,
|
|
TCA_BPF_ACT = 1,
|
|
TCA_BPF_POLICE = 2,
|
|
TCA_BPF_CLASSID = 3,
|
|
TCA_BPF_OPS_LEN = 4,
|
|
TCA_BPF_OPS = 5,
|
|
TCA_BPF_FD = 6,
|
|
TCA_BPF_NAME = 7,
|
|
TCA_BPF_FLAGS = 8,
|
|
TCA_BPF_FLAGS_GEN = 9,
|
|
TCA_BPF_TAG = 10,
|
|
TCA_BPF_ID = 11,
|
|
__TCA_BPF_MAX = 12,
|
|
};
|
|
|
|
struct cls_bpf_prog {
|
|
struct bpf_prog *filter;
|
|
struct list_head link;
|
|
struct tcf_result res;
|
|
bool exts_integrated;
|
|
u32 gen_flags;
|
|
unsigned int in_hw_count;
|
|
struct tcf_exts exts;
|
|
u32 handle;
|
|
u16 bpf_num_ops;
|
|
struct sock_filter *bpf_ops;
|
|
const char *bpf_name;
|
|
struct tcf_proto *tp;
|
|
struct rcu_work rwork;
|
|
};
|
|
|
|
struct cls_bpf_head {
|
|
struct list_head plist;
|
|
struct idr handle_idr;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct xt_tcpmss_info {
|
|
__u16 mss;
|
|
};
|
|
|
|
struct tcp_plb_state {
|
|
u8 consec_cong_rounds: 5;
|
|
u8 unused: 3;
|
|
u32 pause_until;
|
|
};
|
|
|
|
struct rta_mfc_stats {
|
|
__u64 mfcs_packets;
|
|
__u64 mfcs_bytes;
|
|
__u64 mfcs_wrong_if;
|
|
};
|
|
|
|
struct udp_skb_cb {
|
|
union {
|
|
struct inet_skb_parm h4;
|
|
struct inet6_skb_parm h6;
|
|
} header;
|
|
__u16 cscov;
|
|
__u8 partial_cov;
|
|
};
|
|
|
|
struct udp_iter_state {
|
|
struct seq_net_private p;
|
|
int bucket;
|
|
struct udp_seq_afinfo *bpf_seq_afinfo;
|
|
};
|
|
|
|
struct udp_dev_scratch {
|
|
u32 _tsize_state;
|
|
u16 len;
|
|
bool is_linear;
|
|
bool csum_unnecessary;
|
|
};
|
|
|
|
enum mpls_payload_type {
|
|
MPT_UNSPEC = 0,
|
|
MPT_IPV4 = 4,
|
|
MPT_IPV6 = 6,
|
|
};
|
|
|
|
enum {
|
|
MPLS_STATS_UNSPEC = 0,
|
|
MPLS_STATS_LINK = 1,
|
|
__MPLS_STATS_MAX = 2,
|
|
};
|
|
|
|
struct mpls_entry_decoded {
|
|
u32 label;
|
|
u8 ttl;
|
|
u8 tc;
|
|
u8 bos;
|
|
};
|
|
|
|
struct mpls_route_config {
|
|
u32 rc_protocol;
|
|
u32 rc_ifindex;
|
|
u8 rc_via_table;
|
|
u8 rc_via_alen;
|
|
u8 rc_via[32];
|
|
u32 rc_label;
|
|
u8 rc_ttl_propagate;
|
|
u8 rc_output_labels;
|
|
u32 rc_output_label[30];
|
|
u32 rc_nlflags;
|
|
enum mpls_payload_type rc_payload_type;
|
|
struct nl_info rc_nlinfo;
|
|
struct rtnexthop *rc_mp;
|
|
int rc_mp_len;
|
|
};
|
|
|
|
enum perf_msr_id {
|
|
PERF_MSR_TSC = 0,
|
|
PERF_MSR_APERF = 1,
|
|
PERF_MSR_MPERF = 2,
|
|
PERF_MSR_PPERF = 3,
|
|
PERF_MSR_SMI = 4,
|
|
PERF_MSR_PTSC = 5,
|
|
PERF_MSR_IRPERF = 6,
|
|
PERF_MSR_THERM = 7,
|
|
PERF_MSR_EVENT_MAX = 8,
|
|
};
|
|
|
|
enum energy_perf_value_index___2 {
|
|
EPB_INDEX_PERFORMANCE = 0,
|
|
EPB_INDEX_BALANCE_PERFORMANCE = 1,
|
|
EPB_INDEX_NORMAL = 2,
|
|
EPB_INDEX_BALANCE_POWERSAVE = 3,
|
|
EPB_INDEX_POWERSAVE = 4,
|
|
};
|
|
|
|
struct acpi_madt_multiproc_wakeup_mailbox {
|
|
u16 command;
|
|
u16 reserved;
|
|
u32 apic_id;
|
|
u64 wakeup_vector;
|
|
u8 reserved_os[2032];
|
|
u8 reserved_firmware[2048];
|
|
};
|
|
|
|
struct acpi_table_boot {
|
|
struct acpi_table_header header;
|
|
u8 cmos_index;
|
|
u8 reserved[3];
|
|
};
|
|
|
|
struct acpi_madt_multiproc_wakeup {
|
|
struct acpi_subtable_header header;
|
|
u16 mailbox_version;
|
|
u32 reserved;
|
|
u64 base_address;
|
|
};
|
|
|
|
struct acpi_table_hpet {
|
|
struct acpi_table_header header;
|
|
u32 id;
|
|
struct acpi_generic_address address;
|
|
u8 sequence;
|
|
u16 minimum_tick;
|
|
u8 flags;
|
|
} __attribute__((packed));
|
|
|
|
struct wq_flusher;
|
|
|
|
struct workqueue_attrs;
|
|
|
|
struct wq_device;
|
|
|
|
struct workqueue_struct {
|
|
struct list_head pwqs;
|
|
struct list_head list;
|
|
struct mutex mutex;
|
|
int work_color;
|
|
int flush_color;
|
|
atomic_t nr_pwqs_to_flush;
|
|
struct wq_flusher *first_flusher;
|
|
struct list_head flusher_queue;
|
|
struct list_head flusher_overflow;
|
|
struct list_head maydays;
|
|
struct worker *rescuer;
|
|
int nr_drainers;
|
|
int saved_max_active;
|
|
struct workqueue_attrs *unbound_attrs;
|
|
struct pool_workqueue *dfl_pwq;
|
|
struct wq_device *wq_dev;
|
|
char name[24];
|
|
struct callback_head rcu;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned int flags;
|
|
struct pool_workqueue __attribute__((btf_type_tag("percpu"))) *cpu_pwqs;
|
|
struct pool_workqueue __attribute__((btf_type_tag("rcu"))) *numa_pwq_tbl[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct wq_flusher {
|
|
struct list_head list;
|
|
int flush_color;
|
|
struct completion done;
|
|
};
|
|
|
|
struct pool_workqueue {
|
|
struct worker_pool *pool;
|
|
struct workqueue_struct *wq;
|
|
int work_color;
|
|
int flush_color;
|
|
int refcnt;
|
|
int nr_in_flight[16];
|
|
int nr_active;
|
|
int max_active;
|
|
struct list_head inactive_works;
|
|
struct list_head pwqs_node;
|
|
struct list_head mayday_node;
|
|
struct work_struct unbound_release_work;
|
|
struct callback_head rcu;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct worker_pool {
|
|
raw_spinlock_t lock;
|
|
int cpu;
|
|
int node;
|
|
int id;
|
|
unsigned int flags;
|
|
unsigned long watchdog_ts;
|
|
int nr_running;
|
|
struct list_head worklist;
|
|
int nr_workers;
|
|
int nr_idle;
|
|
struct list_head idle_list;
|
|
struct timer_list idle_timer;
|
|
struct work_struct idle_cull_work;
|
|
struct timer_list mayday_timer;
|
|
struct hlist_head busy_hash[64];
|
|
struct worker *manager;
|
|
struct list_head workers;
|
|
struct list_head dying_workers;
|
|
struct completion *detach_completion;
|
|
struct ida worker_ida;
|
|
struct workqueue_attrs *attrs;
|
|
struct hlist_node hash_node;
|
|
int refcnt;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct workqueue_attrs {
|
|
int nice;
|
|
cpumask_var_t cpumask;
|
|
bool no_numa;
|
|
};
|
|
|
|
struct wq_device {
|
|
struct workqueue_struct *wq;
|
|
struct device dev;
|
|
};
|
|
|
|
typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *);
|
|
|
|
typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *);
|
|
|
|
typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *);
|
|
|
|
typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t);
|
|
|
|
enum {
|
|
POOL_MANAGER_ACTIVE = 1,
|
|
POOL_DISASSOCIATED = 4,
|
|
WORKER_DIE = 2,
|
|
WORKER_IDLE = 4,
|
|
WORKER_PREP = 8,
|
|
WORKER_CPU_INTENSIVE = 64,
|
|
WORKER_UNBOUND = 128,
|
|
WORKER_REBOUND = 256,
|
|
WORKER_NOT_RUNNING = 456,
|
|
NR_STD_WORKER_POOLS = 2,
|
|
UNBOUND_POOL_HASH_ORDER = 6,
|
|
BUSY_WORKER_HASH_ORDER = 6,
|
|
MAX_IDLE_WORKERS_RATIO = 4,
|
|
IDLE_WORKER_TIMEOUT = 300000,
|
|
MAYDAY_INITIAL_TIMEOUT = 10,
|
|
MAYDAY_INTERVAL = 100,
|
|
CREATE_COOLDOWN = 1000,
|
|
RESCUER_NICE_LEVEL = -20,
|
|
HIGHPRI_NICE_LEVEL = -20,
|
|
WQ_NAME_LEN = 24,
|
|
};
|
|
|
|
struct trace_event_raw_workqueue_queue_work {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
void *function;
|
|
u32 __data_loc_workqueue;
|
|
int req_cpu;
|
|
int cpu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_workqueue_activate_work {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_workqueue_execute_start {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
void *function;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_workqueue_execute_end {
|
|
struct trace_entry ent;
|
|
void *work;
|
|
void *function;
|
|
char __data[0];
|
|
};
|
|
|
|
struct wq_barrier {
|
|
struct work_struct work;
|
|
struct completion done;
|
|
struct task_struct *task;
|
|
};
|
|
|
|
struct cwt_wait {
|
|
wait_queue_entry_t wait;
|
|
struct work_struct *work;
|
|
};
|
|
|
|
struct work_for_cpu {
|
|
struct work_struct work;
|
|
long (*fn)(void *);
|
|
void *arg;
|
|
long ret;
|
|
};
|
|
|
|
struct apply_wqattrs_ctx {
|
|
struct workqueue_struct *wq;
|
|
struct workqueue_attrs *attrs;
|
|
struct list_head list;
|
|
struct pool_workqueue *dfl_pwq;
|
|
struct pool_workqueue *pwq_tbl[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_workqueue_queue_work {
|
|
u32 workqueue;
|
|
};
|
|
|
|
struct pr_cont_work_struct {
|
|
bool comma;
|
|
work_func_t func;
|
|
long ctr;
|
|
};
|
|
|
|
struct trace_event_data_offsets_workqueue_activate_work {};
|
|
|
|
struct trace_event_data_offsets_workqueue_execute_start {};
|
|
|
|
struct trace_event_data_offsets_workqueue_execute_end {};
|
|
|
|
struct klp_find_arg {
|
|
const char *name;
|
|
unsigned long addr;
|
|
unsigned long count;
|
|
unsigned long pos;
|
|
};
|
|
|
|
struct mod_tree_root {
|
|
struct latch_tree_root root;
|
|
unsigned long addr_min;
|
|
unsigned long addr_max;
|
|
};
|
|
|
|
typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int);
|
|
|
|
typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t);
|
|
|
|
typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t);
|
|
|
|
typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t);
|
|
|
|
struct alarm_base {
|
|
spinlock_t lock;
|
|
struct timerqueue_head timerqueue;
|
|
ktime_t (*get_ktime)();
|
|
void (*get_timespec)(struct timespec64 *);
|
|
clockid_t base_clockid;
|
|
};
|
|
|
|
struct trace_event_raw_alarmtimer_suspend {
|
|
struct trace_entry ent;
|
|
s64 expires;
|
|
unsigned char alarm_type;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_alarm_class {
|
|
struct trace_entry ent;
|
|
void *alarm;
|
|
unsigned char alarm_type;
|
|
s64 expires;
|
|
s64 now;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_alarmtimer_suspend {};
|
|
|
|
struct trace_event_data_offsets_alarm_class {};
|
|
|
|
enum {
|
|
TRACE_FUNC_NO_OPTS = 0,
|
|
TRACE_FUNC_OPT_STACK = 1,
|
|
TRACE_FUNC_OPT_NO_REPEATS = 2,
|
|
TRACE_FUNC_OPT_HIGHEST_BIT = 4,
|
|
};
|
|
|
|
enum error_detector {
|
|
ERROR_DETECTOR_KFENCE = 0,
|
|
ERROR_DETECTOR_KASAN = 1,
|
|
ERROR_DETECTOR_WARN = 2,
|
|
};
|
|
|
|
typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long);
|
|
|
|
struct trace_event_raw_error_report_template {
|
|
struct trace_entry ent;
|
|
enum error_detector error_detector;
|
|
unsigned long id;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_error_report_template {};
|
|
|
|
enum bpf_lru_list_type {
|
|
BPF_LRU_LIST_T_ACTIVE = 0,
|
|
BPF_LRU_LIST_T_INACTIVE = 1,
|
|
BPF_LRU_LIST_T_FREE = 2,
|
|
BPF_LRU_LOCAL_LIST_T_FREE = 3,
|
|
BPF_LRU_LOCAL_LIST_T_PENDING = 4,
|
|
};
|
|
|
|
struct bpf_queue_stack {
|
|
struct bpf_map map;
|
|
raw_spinlock_t lock;
|
|
u32 head;
|
|
u32 tail;
|
|
u32 size;
|
|
char elements[0];
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t);
|
|
|
|
typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *);
|
|
|
|
typedef void (*btf_trace_percpu_alloc_percpu)(void *, unsigned long, bool, bool, size_t, size_t, void *, int, void __attribute__((btf_type_tag("percpu"))) *, size_t, gfp_t);
|
|
|
|
typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *);
|
|
|
|
typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t);
|
|
|
|
typedef void (*btf_trace_percpu_create_chunk)(void *, void *);
|
|
|
|
typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *);
|
|
|
|
struct pcpu_block_md {
|
|
int scan_hint;
|
|
int scan_hint_start;
|
|
int contig_hint;
|
|
int contig_hint_start;
|
|
int left_free;
|
|
int right_free;
|
|
int first_free;
|
|
int nr_bits;
|
|
};
|
|
|
|
struct pcpu_chunk {
|
|
struct list_head list;
|
|
int free_bytes;
|
|
struct pcpu_block_md chunk_md;
|
|
void *base_addr;
|
|
unsigned long *alloc_map;
|
|
unsigned long *bound_map;
|
|
struct pcpu_block_md *md_blocks;
|
|
void *data;
|
|
bool immutable;
|
|
bool isolated;
|
|
int start_offset;
|
|
int end_offset;
|
|
int nr_pages;
|
|
int nr_populated;
|
|
int nr_empty_pop_pages;
|
|
unsigned long populated[0];
|
|
};
|
|
|
|
struct trace_event_raw_percpu_alloc_percpu {
|
|
struct trace_entry ent;
|
|
unsigned long call_site;
|
|
bool reserved;
|
|
bool is_atomic;
|
|
size_t size;
|
|
size_t align;
|
|
void *base_addr;
|
|
int off;
|
|
void __attribute__((btf_type_tag("percpu"))) *ptr;
|
|
size_t bytes_alloc;
|
|
unsigned long gfp_flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_percpu_free_percpu {
|
|
struct trace_entry ent;
|
|
void *base_addr;
|
|
int off;
|
|
void __attribute__((btf_type_tag("percpu"))) *ptr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_percpu_alloc_percpu_fail {
|
|
struct trace_entry ent;
|
|
bool reserved;
|
|
bool is_atomic;
|
|
size_t size;
|
|
size_t align;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_percpu_create_chunk {
|
|
struct trace_entry ent;
|
|
void *base_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_percpu_destroy_chunk {
|
|
struct trace_entry ent;
|
|
void *base_addr;
|
|
char __data[0];
|
|
};
|
|
|
|
struct pcpu_group_info {
|
|
int nr_units;
|
|
unsigned long base_offset;
|
|
unsigned int *cpu_map;
|
|
};
|
|
|
|
struct pcpu_alloc_info {
|
|
size_t static_size;
|
|
size_t reserved_size;
|
|
size_t dyn_size;
|
|
size_t unit_size;
|
|
size_t atom_size;
|
|
size_t alloc_size;
|
|
size_t __ai_size;
|
|
int nr_groups;
|
|
struct pcpu_group_info groups[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_percpu_alloc_percpu {};
|
|
|
|
struct trace_event_data_offsets_percpu_free_percpu {};
|
|
|
|
struct trace_event_data_offsets_percpu_alloc_percpu_fail {};
|
|
|
|
struct trace_event_data_offsets_percpu_create_chunk {};
|
|
|
|
struct trace_event_data_offsets_percpu_destroy_chunk {};
|
|
|
|
struct file_handle {
|
|
__u32 handle_bytes;
|
|
int handle_type;
|
|
unsigned char f_handle[0];
|
|
};
|
|
|
|
enum {
|
|
MBE_REFERENCED_B = 0,
|
|
MBE_REUSABLE_B = 1,
|
|
};
|
|
|
|
struct ext4_xattr_entry {
|
|
__u8 e_name_len;
|
|
__u8 e_name_index;
|
|
__le16 e_value_offs;
|
|
__le32 e_value_inum;
|
|
__le32 e_value_size;
|
|
__le32 e_hash;
|
|
char e_name[0];
|
|
};
|
|
|
|
struct ext4_xattr_header {
|
|
__le32 h_magic;
|
|
__le32 h_refcount;
|
|
__le32 h_blocks;
|
|
__le32 h_hash;
|
|
__le32 h_checksum;
|
|
__u32 h_reserved[3];
|
|
};
|
|
|
|
struct mb_cache_entry {
|
|
struct list_head e_list;
|
|
struct hlist_bl_node e_hash_list;
|
|
atomic_t e_refcnt;
|
|
u32 e_key;
|
|
unsigned long e_flags;
|
|
u64 e_value;
|
|
};
|
|
|
|
struct ext4_xattr_info {
|
|
const char *name;
|
|
const void *value;
|
|
size_t value_len;
|
|
int name_index;
|
|
int in_inode;
|
|
};
|
|
|
|
struct ext4_xattr_search {
|
|
struct ext4_xattr_entry *first;
|
|
void *base;
|
|
void *end;
|
|
struct ext4_xattr_entry *here;
|
|
int not_found;
|
|
};
|
|
|
|
struct ext4_xattr_ibody_find {
|
|
struct ext4_xattr_search s;
|
|
struct ext4_iloc iloc;
|
|
};
|
|
|
|
struct ext4_xattr_block_find {
|
|
struct ext4_xattr_search s;
|
|
struct buffer_head *bh;
|
|
};
|
|
|
|
struct nfs_open_dir_context {
|
|
struct list_head list;
|
|
atomic_t cache_hits;
|
|
atomic_t cache_misses;
|
|
unsigned long attr_gencount;
|
|
__be32 verf[2];
|
|
__u64 dir_cookie;
|
|
__u64 last_cookie;
|
|
unsigned long page_index;
|
|
unsigned int dtsize;
|
|
bool force_clear;
|
|
bool eof;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct nfs_readdir_descriptor {
|
|
struct file *file;
|
|
struct page *page;
|
|
struct dir_context *ctx;
|
|
unsigned long page_index;
|
|
unsigned long page_index_max;
|
|
u64 dir_cookie;
|
|
u64 last_cookie;
|
|
loff_t current_index;
|
|
__be32 verf[2];
|
|
unsigned long dir_verifier;
|
|
unsigned long timestamp;
|
|
unsigned long gencount;
|
|
unsigned long attr_gencount;
|
|
unsigned int cache_entry_index;
|
|
unsigned int buffer_fills;
|
|
unsigned int dtsize;
|
|
bool clear_cache;
|
|
bool plus;
|
|
bool eob;
|
|
bool eof;
|
|
};
|
|
|
|
struct nfs_cache_array_entry {
|
|
u64 cookie;
|
|
u64 ino;
|
|
const char *name;
|
|
unsigned int name_len;
|
|
unsigned char d_type;
|
|
};
|
|
|
|
struct nfs_cache_array {
|
|
u64 change_attr;
|
|
u64 last_cookie;
|
|
unsigned int size;
|
|
unsigned char page_full: 1;
|
|
unsigned char page_is_eof: 1;
|
|
unsigned char cookies_are_ordered: 1;
|
|
struct nfs_cache_array_entry array[0];
|
|
};
|
|
|
|
struct debugfs_fsdata {
|
|
const struct file_operations *real_fops;
|
|
refcount_t active_users;
|
|
struct completion active_users_drained;
|
|
};
|
|
|
|
struct debugfs_mount_opts {
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
unsigned int opts;
|
|
};
|
|
|
|
struct debugfs_fs_info {
|
|
struct debugfs_mount_opts mount_opts;
|
|
};
|
|
|
|
struct shash_instance {
|
|
void (*free)(struct shash_instance *);
|
|
union {
|
|
struct {
|
|
char head[96];
|
|
struct crypto_instance base;
|
|
} s;
|
|
struct shash_alg alg;
|
|
};
|
|
};
|
|
|
|
struct crypto_shash_spawn {
|
|
struct crypto_spawn base;
|
|
};
|
|
|
|
struct hmac_ctx {
|
|
struct crypto_shash *hash;
|
|
};
|
|
|
|
enum {
|
|
DIO_SHOULD_DIRTY = 1,
|
|
DIO_IS_SYNC = 2,
|
|
};
|
|
|
|
struct blkdev_dio {
|
|
union {
|
|
struct kiocb *iocb;
|
|
struct task_struct *waiter;
|
|
};
|
|
size_t size;
|
|
atomic_t ref;
|
|
unsigned int flags;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct bio bio;
|
|
long: 64;
|
|
};
|
|
|
|
struct show_busy_params {
|
|
struct seq_file *m;
|
|
struct blk_mq_hw_ctx *hctx;
|
|
};
|
|
|
|
typedef ZSTD_ErrorCode ERR_enum;
|
|
|
|
typedef uint64_t vli_type;
|
|
|
|
struct xz_dec_hash {
|
|
vli_type unpadded;
|
|
vli_type uncompressed;
|
|
uint32_t crc32;
|
|
};
|
|
|
|
enum xz_check {
|
|
XZ_CHECK_NONE = 0,
|
|
XZ_CHECK_CRC32 = 1,
|
|
XZ_CHECK_CRC64 = 4,
|
|
XZ_CHECK_SHA256 = 10,
|
|
};
|
|
|
|
struct xz_dec_bcj;
|
|
|
|
struct xz_dec {
|
|
enum {
|
|
SEQ_STREAM_HEADER = 0,
|
|
SEQ_BLOCK_START = 1,
|
|
SEQ_BLOCK_HEADER = 2,
|
|
SEQ_BLOCK_UNCOMPRESS = 3,
|
|
SEQ_BLOCK_PADDING = 4,
|
|
SEQ_BLOCK_CHECK = 5,
|
|
SEQ_INDEX = 6,
|
|
SEQ_INDEX_PADDING = 7,
|
|
SEQ_INDEX_CRC32 = 8,
|
|
SEQ_STREAM_FOOTER = 9,
|
|
} sequence;
|
|
uint32_t pos;
|
|
vli_type vli;
|
|
size_t in_start;
|
|
size_t out_start;
|
|
uint32_t crc32;
|
|
enum xz_check check_type;
|
|
enum xz_mode mode;
|
|
bool allow_buf_error;
|
|
struct {
|
|
vli_type compressed;
|
|
vli_type uncompressed;
|
|
uint32_t size;
|
|
} block_header;
|
|
struct {
|
|
vli_type compressed;
|
|
vli_type uncompressed;
|
|
vli_type count;
|
|
struct xz_dec_hash hash;
|
|
} block;
|
|
struct {
|
|
enum {
|
|
SEQ_INDEX_COUNT = 0,
|
|
SEQ_INDEX_UNPADDED = 1,
|
|
SEQ_INDEX_UNCOMPRESSED = 2,
|
|
} sequence;
|
|
vli_type size;
|
|
vli_type count;
|
|
struct xz_dec_hash hash;
|
|
} index;
|
|
struct {
|
|
size_t pos;
|
|
size_t size;
|
|
uint8_t buf[1024];
|
|
} temp;
|
|
struct xz_dec_lzma2 *lzma2;
|
|
struct xz_dec_bcj *bcj;
|
|
bool bcj_active;
|
|
};
|
|
|
|
enum {
|
|
EI_ETYPE_NULL = 0,
|
|
EI_ETYPE_ERRNO = 1,
|
|
EI_ETYPE_ERRNO_NULL = 2,
|
|
EI_ETYPE_TRUE = 3,
|
|
};
|
|
|
|
struct ei_entry {
|
|
struct list_head list;
|
|
unsigned long start_addr;
|
|
unsigned long end_addr;
|
|
int etype;
|
|
void *priv;
|
|
};
|
|
|
|
struct pcie_link_state {
|
|
struct pci_dev *pdev;
|
|
struct pci_dev *downstream;
|
|
struct pcie_link_state *root;
|
|
struct pcie_link_state *parent;
|
|
struct list_head sibling;
|
|
u32 aspm_support: 7;
|
|
u32 aspm_enabled: 7;
|
|
u32 aspm_capable: 7;
|
|
u32 aspm_default: 7;
|
|
char: 4;
|
|
u32 aspm_disable: 7;
|
|
u32 clkpm_capable: 1;
|
|
u32 clkpm_enabled: 1;
|
|
u32 clkpm_default: 1;
|
|
u32 clkpm_disable: 1;
|
|
};
|
|
|
|
enum {
|
|
VP_MSIX_CONFIG_VECTOR = 0,
|
|
VP_MSIX_VQ_VECTOR = 1,
|
|
};
|
|
|
|
struct serial8250_config {
|
|
const char *name;
|
|
unsigned short fifo_size;
|
|
unsigned short tx_loadsz;
|
|
unsigned char fcr;
|
|
unsigned char rxtrig_bytes[4];
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct edid_quirk {
|
|
u32 panel_id;
|
|
u32 quirks;
|
|
};
|
|
|
|
struct minimode {
|
|
short w;
|
|
short h;
|
|
short r;
|
|
short rb;
|
|
};
|
|
|
|
struct stereo_mandatory_mode {
|
|
int width;
|
|
int height;
|
|
int vrefresh;
|
|
unsigned int flags;
|
|
};
|
|
|
|
enum edid_block_status {
|
|
EDID_BLOCK_OK = 0,
|
|
EDID_BLOCK_READ_FAIL = 1,
|
|
EDID_BLOCK_NULL = 2,
|
|
EDID_BLOCK_ZERO = 3,
|
|
EDID_BLOCK_HEADER_CORRUPT = 4,
|
|
EDID_BLOCK_HEADER_REPAIR = 5,
|
|
EDID_BLOCK_HEADER_FIXED = 6,
|
|
EDID_BLOCK_CHECKSUM = 7,
|
|
EDID_BLOCK_VERSION = 8,
|
|
};
|
|
|
|
struct cea_db {
|
|
u8 tag_length;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct displayid_block {
|
|
u8 tag;
|
|
u8 rev;
|
|
u8 num_bytes;
|
|
};
|
|
|
|
struct displayid_vesa_vendor_specific_block {
|
|
struct displayid_block base;
|
|
u8 oui[3];
|
|
u8 data_structure_type;
|
|
u8 mso;
|
|
};
|
|
|
|
struct displayid_detailed_timings_1 {
|
|
u8 pixel_clock[3];
|
|
u8 flags;
|
|
u8 hactive[2];
|
|
u8 hblank[2];
|
|
u8 hsync[2];
|
|
u8 hsw[2];
|
|
u8 vactive[2];
|
|
u8 vblank[2];
|
|
u8 vsync[2];
|
|
u8 vsw[2];
|
|
};
|
|
|
|
struct displayid_detailed_timing_block {
|
|
struct displayid_block base;
|
|
struct displayid_detailed_timings_1 timings[0];
|
|
};
|
|
|
|
struct displayid_tiled_block {
|
|
struct displayid_block base;
|
|
u8 tile_cap;
|
|
u8 topo[3];
|
|
u8 tile_size[4];
|
|
u8 tile_pixel_bezel[5];
|
|
u8 topology_id[8];
|
|
};
|
|
|
|
struct displayid_iter {
|
|
const struct drm_edid *drm_edid;
|
|
const u8 *section;
|
|
int length;
|
|
int idx;
|
|
int ext_index;
|
|
};
|
|
|
|
typedef void detailed_cb(const struct detailed_timing *, void *);
|
|
|
|
struct drm_edid_iter {
|
|
const struct drm_edid *drm_edid;
|
|
int index;
|
|
};
|
|
|
|
struct cea_db_iter {
|
|
struct drm_edid_iter edid_iter;
|
|
struct displayid_iter displayid_iter;
|
|
const u8 *collection;
|
|
int index;
|
|
int end;
|
|
};
|
|
|
|
struct cea_sad {
|
|
u8 format;
|
|
u8 channels;
|
|
u8 freq;
|
|
u8 byte2;
|
|
};
|
|
|
|
struct detailed_mode_closure {
|
|
struct drm_connector *connector;
|
|
const struct drm_edid *drm_edid;
|
|
bool preferred;
|
|
int modes;
|
|
};
|
|
|
|
typedef int read_block_fn(void *, u8 *, unsigned int, size_t);
|
|
|
|
struct hdr_metadata_infoframe {
|
|
__u8 eotf;
|
|
__u8 metadata_type;
|
|
struct {
|
|
__u16 x;
|
|
__u16 y;
|
|
} display_primaries[3];
|
|
struct {
|
|
__u16 x;
|
|
__u16 y;
|
|
} white_point;
|
|
__u16 max_display_mastering_luminance;
|
|
__u16 min_display_mastering_luminance;
|
|
__u16 max_cll;
|
|
__u16 max_fall;
|
|
};
|
|
|
|
struct hdr_output_metadata {
|
|
__u32 metadata_type;
|
|
union {
|
|
struct hdr_metadata_infoframe hdmi_metadata_type1;
|
|
};
|
|
};
|
|
|
|
struct reg_and_bit {
|
|
union {
|
|
i915_reg_t reg;
|
|
i915_mcr_reg_t mcr_reg;
|
|
};
|
|
u32 bit;
|
|
};
|
|
|
|
struct drm_i915_gem_set_tiling {
|
|
__u32 handle;
|
|
__u32 tiling_mode;
|
|
__u32 stride;
|
|
__u32 swizzle_mode;
|
|
};
|
|
|
|
struct drm_i915_gem_get_tiling {
|
|
__u32 handle;
|
|
__u32 tiling_mode;
|
|
__u32 swizzle_mode;
|
|
__u32 phys_swizzle_mode;
|
|
};
|
|
|
|
struct i915_power_well_regs {
|
|
i915_reg_t bios;
|
|
i915_reg_t driver;
|
|
i915_reg_t kvmr;
|
|
i915_reg_t debug;
|
|
};
|
|
|
|
enum skl_power_gate {
|
|
SKL_PG0 = 0,
|
|
SKL_PG1 = 1,
|
|
SKL_PG2 = 2,
|
|
ICL_PG3 = 3,
|
|
ICL_PG4 = 4,
|
|
};
|
|
|
|
enum virtio_gpu_formats {
|
|
VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM = 1,
|
|
VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM = 2,
|
|
VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM = 3,
|
|
VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM = 4,
|
|
VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM = 67,
|
|
VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM = 68,
|
|
VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM = 121,
|
|
VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM = 134,
|
|
};
|
|
|
|
enum virtio_gpu_ctrl_type {
|
|
VIRTIO_GPU_UNDEFINED = 0,
|
|
VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 256,
|
|
VIRTIO_GPU_CMD_RESOURCE_CREATE_2D = 257,
|
|
VIRTIO_GPU_CMD_RESOURCE_UNREF = 258,
|
|
VIRTIO_GPU_CMD_SET_SCANOUT = 259,
|
|
VIRTIO_GPU_CMD_RESOURCE_FLUSH = 260,
|
|
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D = 261,
|
|
VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING = 262,
|
|
VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING = 263,
|
|
VIRTIO_GPU_CMD_GET_CAPSET_INFO = 264,
|
|
VIRTIO_GPU_CMD_GET_CAPSET = 265,
|
|
VIRTIO_GPU_CMD_GET_EDID = 266,
|
|
VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID = 267,
|
|
VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB = 268,
|
|
VIRTIO_GPU_CMD_SET_SCANOUT_BLOB = 269,
|
|
VIRTIO_GPU_CMD_CTX_CREATE = 512,
|
|
VIRTIO_GPU_CMD_CTX_DESTROY = 513,
|
|
VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE = 514,
|
|
VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE = 515,
|
|
VIRTIO_GPU_CMD_RESOURCE_CREATE_3D = 516,
|
|
VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D = 517,
|
|
VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D = 518,
|
|
VIRTIO_GPU_CMD_SUBMIT_3D = 519,
|
|
VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB = 520,
|
|
VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB = 521,
|
|
VIRTIO_GPU_CMD_UPDATE_CURSOR = 768,
|
|
VIRTIO_GPU_CMD_MOVE_CURSOR = 769,
|
|
VIRTIO_GPU_RESP_OK_NODATA = 4352,
|
|
VIRTIO_GPU_RESP_OK_DISPLAY_INFO = 4353,
|
|
VIRTIO_GPU_RESP_OK_CAPSET_INFO = 4354,
|
|
VIRTIO_GPU_RESP_OK_CAPSET = 4355,
|
|
VIRTIO_GPU_RESP_OK_EDID = 4356,
|
|
VIRTIO_GPU_RESP_OK_RESOURCE_UUID = 4357,
|
|
VIRTIO_GPU_RESP_OK_MAP_INFO = 4358,
|
|
VIRTIO_GPU_RESP_ERR_UNSPEC = 4608,
|
|
VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY = 4609,
|
|
VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID = 4610,
|
|
VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID = 4611,
|
|
VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID = 4612,
|
|
VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER = 4613,
|
|
};
|
|
|
|
struct mdio_board_entry {
|
|
struct list_head list;
|
|
struct mdio_board_info board_info;
|
|
};
|
|
|
|
struct my_u {
|
|
__le64 a;
|
|
__le64 b;
|
|
};
|
|
|
|
struct xhci_driver_data {
|
|
u64 quirks;
|
|
const char *firmware;
|
|
};
|
|
|
|
typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int);
|
|
|
|
typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int);
|
|
|
|
typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int);
|
|
|
|
typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int);
|
|
|
|
typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int);
|
|
|
|
typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int);
|
|
|
|
typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int);
|
|
|
|
typedef void (*btf_trace_rtc_set_offset)(void *, long, int);
|
|
|
|
typedef void (*btf_trace_rtc_read_offset)(void *, long, int);
|
|
|
|
typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *);
|
|
|
|
typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *);
|
|
|
|
typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *);
|
|
|
|
enum {
|
|
none = 0,
|
|
day = 1,
|
|
month = 2,
|
|
year = 3,
|
|
};
|
|
|
|
struct trace_event_raw_rtc_time_alarm_class {
|
|
struct trace_entry ent;
|
|
time64_t secs;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rtc_irq_set_freq {
|
|
struct trace_entry ent;
|
|
int freq;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rtc_irq_set_state {
|
|
struct trace_entry ent;
|
|
int enabled;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rtc_alarm_irq_enable {
|
|
struct trace_entry ent;
|
|
unsigned int enabled;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rtc_offset_class {
|
|
struct trace_entry ent;
|
|
long offset;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_rtc_timer_class {
|
|
struct trace_entry ent;
|
|
struct rtc_timer *timer;
|
|
ktime_t expires;
|
|
ktime_t period;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_rtc_time_alarm_class {};
|
|
|
|
struct trace_event_data_offsets_rtc_irq_set_freq {};
|
|
|
|
struct trace_event_data_offsets_rtc_irq_set_state {};
|
|
|
|
struct trace_event_data_offsets_rtc_alarm_irq_enable {};
|
|
|
|
struct trace_event_data_offsets_rtc_offset_class {};
|
|
|
|
struct trace_event_data_offsets_rtc_timer_class {};
|
|
|
|
struct hid_global {
|
|
unsigned int usage_page;
|
|
__s32 logical_minimum;
|
|
__s32 logical_maximum;
|
|
__s32 physical_minimum;
|
|
__s32 physical_maximum;
|
|
__s32 unit_exponent;
|
|
unsigned int unit;
|
|
unsigned int report_id;
|
|
unsigned int report_size;
|
|
unsigned int report_count;
|
|
};
|
|
|
|
struct hid_local {
|
|
unsigned int usage[12288];
|
|
u8 usage_size[12288];
|
|
unsigned int collection_index[12288];
|
|
unsigned int usage_index;
|
|
unsigned int usage_minimum;
|
|
unsigned int delimiter_depth;
|
|
unsigned int delimiter_branch;
|
|
};
|
|
|
|
struct hid_parser {
|
|
struct hid_global global;
|
|
struct hid_global global_stack[4];
|
|
unsigned int global_stack_ptr;
|
|
struct hid_local local;
|
|
unsigned int *collection_stack;
|
|
unsigned int collection_stack_ptr;
|
|
unsigned int collection_stack_size;
|
|
struct hid_device *device;
|
|
unsigned int scan_flags;
|
|
};
|
|
|
|
struct hid_item {
|
|
unsigned int format;
|
|
__u8 size;
|
|
__u8 type;
|
|
__u8 tag;
|
|
union {
|
|
__u8 u8;
|
|
__s8 s8;
|
|
__u16 u16;
|
|
__s16 s16;
|
|
__u32 u32;
|
|
__s32 s32;
|
|
__u8 *longdata;
|
|
} data;
|
|
};
|
|
|
|
struct hid_dynid {
|
|
struct list_head list;
|
|
struct hid_device_id id;
|
|
};
|
|
|
|
struct snd_info_private_data {
|
|
struct snd_info_buffer *rbuffer;
|
|
struct snd_info_buffer *wbuffer;
|
|
struct snd_info_entry *entry;
|
|
void *file_private_data;
|
|
};
|
|
|
|
struct net_rate_estimator {
|
|
struct gnet_stats_basic_sync *bstats;
|
|
spinlock_t *stats_lock;
|
|
bool running;
|
|
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
|
|
u8 ewma_log;
|
|
u8 intvl_log;
|
|
seqcount_t seq;
|
|
u64 last_packets;
|
|
u64 last_bytes;
|
|
u64 avpps;
|
|
u64 avbps;
|
|
unsigned long next_jiffies;
|
|
struct timer_list timer;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct gnet_estimator {
|
|
signed char interval;
|
|
unsigned char ewma_log;
|
|
};
|
|
|
|
struct ip_mreq_source {
|
|
__be32 imr_multiaddr;
|
|
__be32 imr_interface;
|
|
__be32 imr_sourceaddr;
|
|
};
|
|
|
|
struct ip_msfilter {
|
|
__be32 imsf_multiaddr;
|
|
__be32 imsf_interface;
|
|
__u32 imsf_fmode;
|
|
__u32 imsf_numsrc;
|
|
union {
|
|
__be32 imsf_slist[1];
|
|
struct {
|
|
struct { } __empty_imsf_slist_flex;
|
|
__be32 imsf_slist_flex[0];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct fib_result_nl {
|
|
__be32 fl_addr;
|
|
u32 fl_mark;
|
|
unsigned char fl_tos;
|
|
unsigned char fl_scope;
|
|
unsigned char tb_id_in;
|
|
unsigned char tb_id;
|
|
unsigned char prefixlen;
|
|
unsigned char nh_sel;
|
|
unsigned char type;
|
|
unsigned char scope;
|
|
int err;
|
|
};
|
|
|
|
enum bbr_mode {
|
|
BBR_STARTUP = 0,
|
|
BBR_DRAIN = 1,
|
|
BBR_PROBE_BW = 2,
|
|
BBR_PROBE_RTT = 3,
|
|
};
|
|
|
|
enum {
|
|
INET_DIAG_NONE = 0,
|
|
INET_DIAG_MEMINFO = 1,
|
|
INET_DIAG_INFO = 2,
|
|
INET_DIAG_VEGASINFO = 3,
|
|
INET_DIAG_CONG = 4,
|
|
INET_DIAG_TOS = 5,
|
|
INET_DIAG_TCLASS = 6,
|
|
INET_DIAG_SKMEMINFO = 7,
|
|
INET_DIAG_SHUTDOWN = 8,
|
|
INET_DIAG_DCTCPINFO = 9,
|
|
INET_DIAG_PROTOCOL = 10,
|
|
INET_DIAG_SKV6ONLY = 11,
|
|
INET_DIAG_LOCALS = 12,
|
|
INET_DIAG_PEERS = 13,
|
|
INET_DIAG_PAD = 14,
|
|
INET_DIAG_MARK = 15,
|
|
INET_DIAG_BBRINFO = 16,
|
|
INET_DIAG_CLASS_ID = 17,
|
|
INET_DIAG_MD5SIG = 18,
|
|
INET_DIAG_ULP_INFO = 19,
|
|
INET_DIAG_SK_BPF_STORAGES = 20,
|
|
INET_DIAG_CGROUP_ID = 21,
|
|
INET_DIAG_SOCKOPT = 22,
|
|
__INET_DIAG_MAX = 23,
|
|
};
|
|
|
|
struct bbr {
|
|
u32 min_rtt_us;
|
|
u32 min_rtt_stamp;
|
|
u32 probe_rtt_done_stamp;
|
|
struct minmax bw;
|
|
u32 rtt_cnt;
|
|
u32 next_rtt_delivered;
|
|
u64 cycle_mstamp;
|
|
u32 mode: 3;
|
|
u32 prev_ca_state: 3;
|
|
u32 packet_conservation: 1;
|
|
u32 round_start: 1;
|
|
u32 idle_restart: 1;
|
|
u32 probe_rtt_round_done: 1;
|
|
u32 unused: 13;
|
|
u32 lt_is_sampling: 1;
|
|
u32 lt_rtt_cnt: 7;
|
|
u32 lt_use_bw: 1;
|
|
u32 lt_bw;
|
|
u32 lt_last_delivered;
|
|
u32 lt_last_stamp;
|
|
u32 lt_last_lost;
|
|
u32 pacing_gain: 10;
|
|
u32 cwnd_gain: 10;
|
|
u32 full_bw_reached: 1;
|
|
u32 full_bw_cnt: 2;
|
|
u32 cycle_idx: 3;
|
|
u32 has_seen_rtt: 1;
|
|
u32 unused_b: 5;
|
|
u32 prior_cwnd;
|
|
u32 full_bw;
|
|
u64 ack_epoch_mstamp;
|
|
u16 extra_acked[2];
|
|
u32 ack_epoch_acked: 20;
|
|
u32 extra_acked_win_rtts: 5;
|
|
u32 extra_acked_win_idx: 1;
|
|
u32 unused_c: 6;
|
|
};
|
|
|
|
enum {
|
|
NDUSEROPT_UNSPEC = 0,
|
|
NDUSEROPT_SRCADDR = 1,
|
|
__NDUSEROPT_MAX = 2,
|
|
};
|
|
|
|
struct nd_msg {
|
|
struct icmp6hdr icmph;
|
|
struct in6_addr target;
|
|
__u8 opt[0];
|
|
};
|
|
|
|
struct rs_msg {
|
|
struct icmp6hdr icmph;
|
|
__u8 opt[0];
|
|
};
|
|
|
|
struct ra_msg {
|
|
struct icmp6hdr icmph;
|
|
__be32 reachable_time;
|
|
__be32 retrans_timer;
|
|
};
|
|
|
|
struct nduseroptmsg {
|
|
unsigned char nduseropt_family;
|
|
unsigned char nduseropt_pad1;
|
|
unsigned short nduseropt_opts_len;
|
|
int nduseropt_ifindex;
|
|
__u8 nduseropt_icmp_type;
|
|
__u8 nduseropt_icmp_code;
|
|
unsigned short nduseropt_pad2;
|
|
unsigned int nduseropt_pad3;
|
|
};
|
|
|
|
struct devlink_info_req {
|
|
struct sk_buff *msg;
|
|
void (*version_cb)(const char *, enum devlink_info_version_type, void *);
|
|
void *version_cb_priv;
|
|
};
|
|
|
|
struct devlink_reload_combination {
|
|
enum devlink_reload_action action;
|
|
enum devlink_reload_limit limit;
|
|
};
|
|
|
|
enum devlink_attr_selftest_id {
|
|
DEVLINK_ATTR_SELFTEST_ID_UNSPEC = 0,
|
|
DEVLINK_ATTR_SELFTEST_ID_FLASH = 1,
|
|
__DEVLINK_ATTR_SELFTEST_ID_MAX = 2,
|
|
DEVLINK_ATTR_SELFTEST_ID_MAX = 1,
|
|
};
|
|
|
|
enum devlink_attr_selftest_result {
|
|
DEVLINK_ATTR_SELFTEST_RESULT_UNSPEC = 0,
|
|
DEVLINK_ATTR_SELFTEST_RESULT = 1,
|
|
DEVLINK_ATTR_SELFTEST_RESULT_ID = 2,
|
|
DEVLINK_ATTR_SELFTEST_RESULT_STATUS = 3,
|
|
__DEVLINK_ATTR_SELFTEST_RESULT_MAX = 4,
|
|
DEVLINK_ATTR_SELFTEST_RESULT_MAX = 3,
|
|
};
|
|
|
|
struct devlink_resource;
|
|
|
|
struct devlink_flash_notify {
|
|
const char *status_msg;
|
|
const char *component;
|
|
unsigned long done;
|
|
unsigned long total;
|
|
unsigned long timeout;
|
|
};
|
|
|
|
struct devlink_flash_component_lookup_ctx {
|
|
const char *lookup_name;
|
|
bool lookup_name_found;
|
|
};
|
|
|
|
enum sgn_alg {
|
|
SGN_ALG_DES_MAC_MD5 = 0,
|
|
SGN_ALG_MD2_5 = 1,
|
|
SGN_ALG_DES_MAC = 2,
|
|
SGN_ALG_3 = 3,
|
|
SGN_ALG_HMAC_SHA1_DES3_KD = 4,
|
|
};
|
|
|
|
enum seal_alg {
|
|
SEAL_ALG_NONE = 65535,
|
|
SEAL_ALG_DES = 0,
|
|
SEAL_ALG_1 = 1,
|
|
SEAL_ALG_DES3KD = 2,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_status {
|
|
NL80211_PMSR_STATUS_SUCCESS = 0,
|
|
NL80211_PMSR_STATUS_REFUSED = 1,
|
|
NL80211_PMSR_STATUS_TIMEOUT = 2,
|
|
NL80211_PMSR_STATUS_FAILURE = 3,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_ftm_failure_reasons {
|
|
NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0,
|
|
NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 1,
|
|
NL80211_PMSR_FTM_FAILURE_REJECTED = 2,
|
|
NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 3,
|
|
NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 4,
|
|
NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 5,
|
|
NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 6,
|
|
NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 7,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_peer_attrs {
|
|
__NL80211_PMSR_PEER_ATTR_INVALID = 0,
|
|
NL80211_PMSR_PEER_ATTR_ADDR = 1,
|
|
NL80211_PMSR_PEER_ATTR_CHAN = 2,
|
|
NL80211_PMSR_PEER_ATTR_REQ = 3,
|
|
NL80211_PMSR_PEER_ATTR_RESP = 4,
|
|
NUM_NL80211_PMSR_PEER_ATTRS = 5,
|
|
NL80211_PMSR_PEER_ATTR_MAX = 4,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_req {
|
|
__NL80211_PMSR_REQ_ATTR_INVALID = 0,
|
|
NL80211_PMSR_REQ_ATTR_DATA = 1,
|
|
NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 2,
|
|
NUM_NL80211_PMSR_REQ_ATTRS = 3,
|
|
NL80211_PMSR_REQ_ATTR_MAX = 2,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_ftm_req {
|
|
__NL80211_PMSR_FTM_REQ_ATTR_INVALID = 0,
|
|
NL80211_PMSR_FTM_REQ_ATTR_ASAP = 1,
|
|
NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 2,
|
|
NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 3,
|
|
NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 4,
|
|
NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 5,
|
|
NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 6,
|
|
NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 7,
|
|
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 8,
|
|
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 9,
|
|
NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 10,
|
|
NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 11,
|
|
NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 12,
|
|
NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 13,
|
|
NUM_NL80211_PMSR_FTM_REQ_ATTR = 14,
|
|
NL80211_PMSR_FTM_REQ_ATTR_MAX = 13,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_resp {
|
|
__NL80211_PMSR_RESP_ATTR_INVALID = 0,
|
|
NL80211_PMSR_RESP_ATTR_DATA = 1,
|
|
NL80211_PMSR_RESP_ATTR_STATUS = 2,
|
|
NL80211_PMSR_RESP_ATTR_HOST_TIME = 3,
|
|
NL80211_PMSR_RESP_ATTR_AP_TSF = 4,
|
|
NL80211_PMSR_RESP_ATTR_FINAL = 5,
|
|
NL80211_PMSR_RESP_ATTR_PAD = 6,
|
|
NUM_NL80211_PMSR_RESP_ATTRS = 7,
|
|
NL80211_PMSR_RESP_ATTR_MAX = 6,
|
|
};
|
|
|
|
enum nl80211_peer_measurement_ftm_resp {
|
|
__NL80211_PMSR_FTM_RESP_ATTR_INVALID = 0,
|
|
NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 1,
|
|
NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 2,
|
|
NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 3,
|
|
NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 4,
|
|
NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 5,
|
|
NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 6,
|
|
NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 7,
|
|
NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 8,
|
|
NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 9,
|
|
NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 10,
|
|
NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 11,
|
|
NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 12,
|
|
NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 13,
|
|
NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 14,
|
|
NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 15,
|
|
NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 16,
|
|
NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 17,
|
|
NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 18,
|
|
NL80211_PMSR_FTM_RESP_ATTR_LCI = 19,
|
|
NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 20,
|
|
NL80211_PMSR_FTM_RESP_ATTR_PAD = 21,
|
|
NUM_NL80211_PMSR_FTM_RESP_ATTR = 22,
|
|
NL80211_PMSR_FTM_RESP_ATTR_MAX = 21,
|
|
};
|
|
|
|
struct cfg80211_pmsr_ftm_result {
|
|
const u8 *lci;
|
|
const u8 *civicloc;
|
|
unsigned int lci_len;
|
|
unsigned int civicloc_len;
|
|
enum nl80211_peer_measurement_ftm_failure_reasons failure_reason;
|
|
u32 num_ftmr_attempts;
|
|
u32 num_ftmr_successes;
|
|
s16 burst_index;
|
|
u8 busy_retry_time;
|
|
u8 num_bursts_exp;
|
|
u8 burst_duration;
|
|
u8 ftms_per_burst;
|
|
s32 rssi_avg;
|
|
s32 rssi_spread;
|
|
struct rate_info tx_rate;
|
|
struct rate_info rx_rate;
|
|
s64 rtt_avg;
|
|
s64 rtt_variance;
|
|
s64 rtt_spread;
|
|
s64 dist_avg;
|
|
s64 dist_variance;
|
|
s64 dist_spread;
|
|
u16 num_ftmr_attempts_valid: 1;
|
|
u16 num_ftmr_successes_valid: 1;
|
|
u16 rssi_avg_valid: 1;
|
|
u16 rssi_spread_valid: 1;
|
|
u16 tx_rate_valid: 1;
|
|
u16 rx_rate_valid: 1;
|
|
u16 rtt_avg_valid: 1;
|
|
u16 rtt_variance_valid: 1;
|
|
u16 rtt_spread_valid: 1;
|
|
u16 dist_avg_valid: 1;
|
|
u16 dist_variance_valid: 1;
|
|
u16 dist_spread_valid: 1;
|
|
};
|
|
|
|
struct cfg80211_pmsr_result {
|
|
u64 host_time;
|
|
u64 ap_tsf;
|
|
enum nl80211_peer_measurement_status status;
|
|
u8 addr[6];
|
|
u8 final: 1;
|
|
u8 ap_tsf_valid: 1;
|
|
enum nl80211_peer_measurement_type type;
|
|
union {
|
|
struct cfg80211_pmsr_ftm_result ftm;
|
|
};
|
|
};
|
|
|
|
enum rfkill_operation {
|
|
RFKILL_OP_ADD = 0,
|
|
RFKILL_OP_DEL = 1,
|
|
RFKILL_OP_CHANGE = 2,
|
|
RFKILL_OP_CHANGE_ALL = 3,
|
|
};
|
|
|
|
enum rfkill_user_states {
|
|
RFKILL_USER_STATE_SOFT_BLOCKED = 0,
|
|
RFKILL_USER_STATE_UNBLOCKED = 1,
|
|
RFKILL_USER_STATE_HARD_BLOCKED = 2,
|
|
};
|
|
|
|
struct rfkill {
|
|
spinlock_t lock;
|
|
enum rfkill_type type;
|
|
unsigned long state;
|
|
unsigned long hard_block_reasons;
|
|
u32 idx;
|
|
bool registered;
|
|
bool persistent;
|
|
bool polling_paused;
|
|
bool suspended;
|
|
const struct rfkill_ops *ops;
|
|
void *data;
|
|
struct led_trigger led_trigger;
|
|
const char *ledtrigname;
|
|
struct device dev;
|
|
struct list_head node;
|
|
struct delayed_work poll_work;
|
|
struct work_struct uevent_work;
|
|
struct work_struct sync_work;
|
|
char name[0];
|
|
};
|
|
|
|
struct rfkill_data {
|
|
struct list_head list;
|
|
struct list_head events;
|
|
struct mutex mtx;
|
|
wait_queue_head_t read_wait;
|
|
bool input_handler;
|
|
u8 max_size;
|
|
};
|
|
|
|
struct rfkill_event_ext {
|
|
__u32 idx;
|
|
__u8 type;
|
|
__u8 op;
|
|
__u8 soft;
|
|
__u8 hard;
|
|
__u8 hard_block_reasons;
|
|
} __attribute__((packed));
|
|
|
|
struct rfkill_int_event {
|
|
struct list_head list;
|
|
struct rfkill_event_ext ev;
|
|
};
|
|
|
|
enum dns_payload_content_type {
|
|
DNS_PAYLOAD_IS_SERVER_LIST = 0,
|
|
};
|
|
|
|
struct dns_payload_header {
|
|
__u8 zero;
|
|
__u8 content;
|
|
__u8 version;
|
|
};
|
|
|
|
struct token_bucket {
|
|
spinlock_t lock;
|
|
int chain_len;
|
|
struct hlist_nulls_head req_chain;
|
|
struct hlist_nulls_head msk_chain;
|
|
};
|
|
|
|
struct ida_bitmap {
|
|
unsigned long bitmap[16];
|
|
};
|
|
|
|
struct amd_uncore {
|
|
int id;
|
|
int refcnt;
|
|
int cpu;
|
|
int num_counters;
|
|
int rdpmc_base;
|
|
u32 msr_base;
|
|
cpumask_t *active_mask;
|
|
struct pmu *pmu;
|
|
struct perf_event **events;
|
|
struct hlist_node node;
|
|
};
|
|
|
|
struct cyc2ns {
|
|
struct cyc2ns_data data[2];
|
|
seqcount_latch_t seq;
|
|
};
|
|
|
|
struct mtrr_value {
|
|
mtrr_type ltype;
|
|
unsigned long lbase;
|
|
unsigned long lsize;
|
|
};
|
|
|
|
struct set_mtrr_data {
|
|
unsigned long smp_base;
|
|
unsigned long smp_size;
|
|
unsigned int smp_reg;
|
|
mtrr_type smp_type;
|
|
};
|
|
|
|
struct kaslr_memory_region {
|
|
unsigned long *base;
|
|
unsigned long size_tb;
|
|
};
|
|
|
|
enum pti_mode {
|
|
PTI_AUTO = 0,
|
|
PTI_FORCE_OFF = 1,
|
|
PTI_FORCE_ON = 2,
|
|
};
|
|
|
|
enum pti_clone_level {
|
|
PTI_CLONE_PMD = 0,
|
|
PTI_CLONE_PTE = 1,
|
|
};
|
|
|
|
struct efi_runtime_map_entry {
|
|
efi_memory_desc_t md;
|
|
struct kobject kobj;
|
|
};
|
|
|
|
struct map_attribute {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct efi_runtime_map_entry *, char *);
|
|
};
|
|
|
|
struct linked_page;
|
|
|
|
struct chain_allocator {
|
|
struct linked_page *chain;
|
|
unsigned int used_space;
|
|
gfp_t gfp_mask;
|
|
int safe_needed;
|
|
};
|
|
|
|
struct linked_page {
|
|
struct linked_page *next;
|
|
char data[4088];
|
|
};
|
|
|
|
struct pbe {
|
|
void *address;
|
|
void *orig_address;
|
|
struct pbe *next;
|
|
};
|
|
|
|
struct mem_zone_bm_rtree;
|
|
|
|
struct rtree_node;
|
|
|
|
struct bm_position {
|
|
struct mem_zone_bm_rtree *zone;
|
|
struct rtree_node *node;
|
|
unsigned long node_pfn;
|
|
int node_bit;
|
|
};
|
|
|
|
struct memory_bitmap {
|
|
struct list_head zones;
|
|
struct linked_page *p_list;
|
|
struct bm_position cur;
|
|
};
|
|
|
|
struct mem_zone_bm_rtree {
|
|
struct list_head list;
|
|
struct list_head nodes;
|
|
struct list_head leaves;
|
|
unsigned long start_pfn;
|
|
unsigned long end_pfn;
|
|
struct rtree_node *rtree;
|
|
int levels;
|
|
unsigned int blocks;
|
|
};
|
|
|
|
struct rtree_node {
|
|
struct list_head list;
|
|
unsigned long *data;
|
|
};
|
|
|
|
struct nosave_region {
|
|
struct list_head list;
|
|
unsigned long start_pfn;
|
|
unsigned long end_pfn;
|
|
};
|
|
|
|
struct mem_extent {
|
|
struct list_head hook;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
};
|
|
|
|
enum wd_read_status {
|
|
WD_READ_SUCCESS = 0,
|
|
WD_READ_UNSTABLE = 1,
|
|
WD_READ_SKIP = 2,
|
|
};
|
|
|
|
struct misc_res {
|
|
unsigned long max;
|
|
atomic_long_t usage;
|
|
atomic_long_t events;
|
|
};
|
|
|
|
struct misc_cg {
|
|
struct cgroup_subsys_state css;
|
|
struct cgroup_file events_file;
|
|
struct misc_res res[0];
|
|
};
|
|
|
|
enum misc_res_type {
|
|
MISC_CG_RES_TYPES = 0,
|
|
};
|
|
|
|
enum kprobe_slot_state {
|
|
SLOT_CLEAN = 0,
|
|
SLOT_DIRTY = 1,
|
|
SLOT_USED = 2,
|
|
};
|
|
|
|
struct kprobe_insn_page {
|
|
struct list_head list;
|
|
kprobe_opcode_t *insns;
|
|
struct kprobe_insn_cache *cache;
|
|
int nused;
|
|
int ngarbage;
|
|
char slot_used[0];
|
|
};
|
|
|
|
struct arch_optimized_insn {
|
|
kprobe_opcode_t copied_insn[4];
|
|
kprobe_opcode_t *insn;
|
|
size_t size;
|
|
};
|
|
|
|
struct optimized_kprobe {
|
|
struct kprobe kp;
|
|
struct list_head list;
|
|
struct arch_optimized_insn optinsn;
|
|
};
|
|
|
|
struct prev_kprobe {
|
|
struct kprobe *kp;
|
|
unsigned long status;
|
|
unsigned long old_flags;
|
|
unsigned long saved_flags;
|
|
};
|
|
|
|
struct kprobe_ctlblk {
|
|
unsigned long kprobe_status;
|
|
unsigned long kprobe_old_flags;
|
|
unsigned long kprobe_saved_flags;
|
|
struct prev_kprobe prev_kprobe;
|
|
};
|
|
|
|
struct kprobe_blacklist_entry {
|
|
struct list_head list;
|
|
unsigned long start_addr;
|
|
unsigned long end_addr;
|
|
};
|
|
|
|
struct ustring_buffer {
|
|
char buffer[1024];
|
|
};
|
|
|
|
enum filter_pred_fn {
|
|
FILTER_PRED_FN_NOP = 0,
|
|
FILTER_PRED_FN_64 = 1,
|
|
FILTER_PRED_FN_S64 = 2,
|
|
FILTER_PRED_FN_U64 = 3,
|
|
FILTER_PRED_FN_32 = 4,
|
|
FILTER_PRED_FN_S32 = 5,
|
|
FILTER_PRED_FN_U32 = 6,
|
|
FILTER_PRED_FN_16 = 7,
|
|
FILTER_PRED_FN_S16 = 8,
|
|
FILTER_PRED_FN_U16 = 9,
|
|
FILTER_PRED_FN_8 = 10,
|
|
FILTER_PRED_FN_S8 = 11,
|
|
FILTER_PRED_FN_U8 = 12,
|
|
FILTER_PRED_FN_COMM = 13,
|
|
FILTER_PRED_FN_STRING = 14,
|
|
FILTER_PRED_FN_STRLOC = 15,
|
|
FILTER_PRED_FN_STRRELLOC = 16,
|
|
FILTER_PRED_FN_PCHAR_USER = 17,
|
|
FILTER_PRED_FN_PCHAR = 18,
|
|
FILTER_PRED_FN_CPU = 19,
|
|
FILTER_PRED_FN_FUNCTION = 20,
|
|
FILTER_PRED_FN_ = 21,
|
|
FILTER_PRED_TEST_VISITED = 22,
|
|
};
|
|
|
|
enum filter_op_ids {
|
|
OP_GLOB = 0,
|
|
OP_NE = 1,
|
|
OP_EQ = 2,
|
|
OP_LE = 3,
|
|
OP_LT = 4,
|
|
OP_GE = 5,
|
|
OP_GT = 6,
|
|
OP_BAND = 7,
|
|
OP_MAX = 8,
|
|
};
|
|
|
|
enum {
|
|
TOO_MANY_CLOSE = -1,
|
|
TOO_MANY_OPEN = -2,
|
|
MISSING_QUOTE = -3,
|
|
};
|
|
|
|
enum {
|
|
FILT_ERR_NONE = 0,
|
|
FILT_ERR_INVALID_OP = 1,
|
|
FILT_ERR_TOO_MANY_OPEN = 2,
|
|
FILT_ERR_TOO_MANY_CLOSE = 3,
|
|
FILT_ERR_MISSING_QUOTE = 4,
|
|
FILT_ERR_OPERAND_TOO_LONG = 5,
|
|
FILT_ERR_EXPECT_STRING = 6,
|
|
FILT_ERR_EXPECT_DIGIT = 7,
|
|
FILT_ERR_ILLEGAL_FIELD_OP = 8,
|
|
FILT_ERR_FIELD_NOT_FOUND = 9,
|
|
FILT_ERR_ILLEGAL_INTVAL = 10,
|
|
FILT_ERR_BAD_SUBSYS_FILTER = 11,
|
|
FILT_ERR_TOO_MANY_PREDS = 12,
|
|
FILT_ERR_INVALID_FILTER = 13,
|
|
FILT_ERR_IP_FIELD_ONLY = 14,
|
|
FILT_ERR_INVALID_VALUE = 15,
|
|
FILT_ERR_NO_FUNCTION = 16,
|
|
FILT_ERR_ERRNO = 17,
|
|
FILT_ERR_NO_FILTER = 18,
|
|
};
|
|
|
|
enum {
|
|
INVERT = 1,
|
|
PROCESS_AND = 2,
|
|
PROCESS_OR = 4,
|
|
};
|
|
|
|
struct regex;
|
|
|
|
typedef int (*regex_match_func)(char *, struct regex *, int);
|
|
|
|
struct regex {
|
|
char pattern[256];
|
|
int len;
|
|
int field_len;
|
|
regex_match_func match;
|
|
};
|
|
|
|
struct filter_pred {
|
|
enum filter_pred_fn fn_num;
|
|
u64 val;
|
|
u64 val2;
|
|
struct regex regex;
|
|
unsigned short *ops;
|
|
struct ftrace_event_field *field;
|
|
int offset;
|
|
int not;
|
|
int op;
|
|
};
|
|
|
|
struct filter_list {
|
|
struct list_head list;
|
|
struct event_filter *filter;
|
|
};
|
|
|
|
struct filter_parse_error {
|
|
int lasterr;
|
|
int lasterr_pos;
|
|
};
|
|
|
|
struct function_filter_data {
|
|
struct ftrace_ops *ops;
|
|
int first_filter;
|
|
int first_notrace;
|
|
};
|
|
|
|
typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **);
|
|
|
|
typedef u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64, gfp_t);
|
|
|
|
typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *);
|
|
|
|
struct bpf_storage_blob {
|
|
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *storage;
|
|
};
|
|
|
|
struct dentry_stat_t {
|
|
long nr_dentry;
|
|
long nr_unused;
|
|
long age_limit;
|
|
long want_pages;
|
|
long nr_negative;
|
|
long dummy;
|
|
};
|
|
|
|
enum d_walk_ret {
|
|
D_WALK_CONTINUE = 0,
|
|
D_WALK_QUIT = 1,
|
|
D_WALK_NORETRY = 2,
|
|
D_WALK_SKIP = 3,
|
|
};
|
|
|
|
struct external_name {
|
|
union {
|
|
atomic_t count;
|
|
struct callback_head head;
|
|
} u;
|
|
unsigned char name[0];
|
|
};
|
|
|
|
struct check_mount {
|
|
struct vfsmount *mnt;
|
|
unsigned int mounted;
|
|
};
|
|
|
|
struct select_data {
|
|
struct dentry *start;
|
|
union {
|
|
long found;
|
|
struct dentry *victim;
|
|
};
|
|
struct list_head dispose;
|
|
};
|
|
|
|
struct proc_fs_opts {
|
|
int flag;
|
|
const char *str;
|
|
};
|
|
|
|
struct mb_cache {
|
|
struct hlist_bl_head *c_hash;
|
|
int c_bucket_bits;
|
|
unsigned long c_max_entries;
|
|
spinlock_t c_list_lock;
|
|
struct list_head c_list;
|
|
unsigned long c_entry_count;
|
|
struct shrinker c_shrink;
|
|
struct work_struct c_shrink_work;
|
|
};
|
|
|
|
typedef struct {
|
|
__le32 a_version;
|
|
} ext4_acl_header;
|
|
|
|
typedef struct {
|
|
__le16 e_tag;
|
|
__le16 e_perm;
|
|
__le32 e_id;
|
|
} ext4_acl_entry;
|
|
|
|
struct msg_msgseg {
|
|
struct msg_msgseg *next;
|
|
};
|
|
|
|
struct nlmsg_perm {
|
|
u16 nlmsg_type;
|
|
u32 perm;
|
|
};
|
|
|
|
struct cond_insertf_data {
|
|
struct policydb *p;
|
|
struct avtab_node **dst;
|
|
struct cond_av_list *other;
|
|
};
|
|
|
|
struct crypto_queue {
|
|
struct list_head list;
|
|
struct list_head *backlog;
|
|
unsigned int qlen;
|
|
unsigned int max_qlen;
|
|
};
|
|
|
|
enum {
|
|
REQ_FSEQ_PREFLUSH = 1,
|
|
REQ_FSEQ_DATA = 2,
|
|
REQ_FSEQ_POSTFLUSH = 4,
|
|
REQ_FSEQ_DONE = 8,
|
|
REQ_FSEQ_ACTIONS = 7,
|
|
FLUSH_PENDING_TIMEOUT = 5000,
|
|
};
|
|
|
|
enum {
|
|
IO_APOLL_OK = 0,
|
|
IO_APOLL_ABORTED = 1,
|
|
IO_APOLL_READY = 2,
|
|
};
|
|
|
|
enum {
|
|
IOU_POLL_DONE = 0,
|
|
IOU_POLL_NO_ACTION = 1,
|
|
IOU_POLL_REMOVE_POLL_USE_RES = 2,
|
|
IOU_POLL_REISSUE = 3,
|
|
};
|
|
|
|
struct io_poll_update {
|
|
struct file *file;
|
|
u64 old_user_data;
|
|
u64 new_user_data;
|
|
__poll_t events;
|
|
bool update_events;
|
|
bool update_user_data;
|
|
};
|
|
|
|
struct io_poll_table {
|
|
struct poll_table_struct pt;
|
|
struct io_kiocb *req;
|
|
int nr_entries;
|
|
int error;
|
|
bool owning;
|
|
__poll_t result_mask;
|
|
};
|
|
|
|
struct pci_bus_resource {
|
|
struct list_head list;
|
|
struct resource *res;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct pci_dev_reset_methods {
|
|
u16 vendor;
|
|
u16 device;
|
|
int (*reset)(struct pci_dev *, bool);
|
|
};
|
|
|
|
struct pci_dev_acs_enabled {
|
|
u16 vendor;
|
|
u16 device;
|
|
int (*acs_enabled)(struct pci_dev *, u16);
|
|
};
|
|
|
|
struct pci_dev_acs_ops {
|
|
u16 vendor;
|
|
u16 device;
|
|
int (*enable_acs)(struct pci_dev *);
|
|
int (*disable_acs_redir)(struct pci_dev *);
|
|
};
|
|
|
|
enum {
|
|
NVME_REG_CAP = 0,
|
|
NVME_REG_VS = 8,
|
|
NVME_REG_INTMS = 12,
|
|
NVME_REG_INTMC = 16,
|
|
NVME_REG_CC = 20,
|
|
NVME_REG_CSTS = 28,
|
|
NVME_REG_NSSR = 32,
|
|
NVME_REG_AQA = 36,
|
|
NVME_REG_ASQ = 40,
|
|
NVME_REG_ACQ = 48,
|
|
NVME_REG_CMBLOC = 56,
|
|
NVME_REG_CMBSZ = 60,
|
|
NVME_REG_BPINFO = 64,
|
|
NVME_REG_BPRSEL = 68,
|
|
NVME_REG_BPMBL = 72,
|
|
NVME_REG_CMBMSC = 80,
|
|
NVME_REG_CRTO = 104,
|
|
NVME_REG_PMRCAP = 3584,
|
|
NVME_REG_PMRCTL = 3588,
|
|
NVME_REG_PMRSTS = 3592,
|
|
NVME_REG_PMREBS = 3596,
|
|
NVME_REG_PMRSWTP = 3600,
|
|
NVME_REG_DBS = 4096,
|
|
};
|
|
|
|
enum {
|
|
NVME_CC_ENABLE = 1,
|
|
NVME_CC_EN_SHIFT = 0,
|
|
NVME_CC_CSS_SHIFT = 4,
|
|
NVME_CC_MPS_SHIFT = 7,
|
|
NVME_CC_AMS_SHIFT = 11,
|
|
NVME_CC_SHN_SHIFT = 14,
|
|
NVME_CC_IOSQES_SHIFT = 16,
|
|
NVME_CC_IOCQES_SHIFT = 20,
|
|
NVME_CC_CSS_NVM = 0,
|
|
NVME_CC_CSS_CSI = 96,
|
|
NVME_CC_CSS_MASK = 112,
|
|
NVME_CC_AMS_RR = 0,
|
|
NVME_CC_AMS_WRRU = 2048,
|
|
NVME_CC_AMS_VS = 14336,
|
|
NVME_CC_SHN_NONE = 0,
|
|
NVME_CC_SHN_NORMAL = 16384,
|
|
NVME_CC_SHN_ABRUPT = 32768,
|
|
NVME_CC_SHN_MASK = 49152,
|
|
NVME_CC_IOSQES = 393216,
|
|
NVME_CC_IOCQES = 4194304,
|
|
NVME_CC_CRIME = 16777216,
|
|
};
|
|
|
|
enum {
|
|
NVME_CSTS_RDY = 1,
|
|
NVME_CSTS_CFS = 2,
|
|
NVME_CSTS_NSSRO = 16,
|
|
NVME_CSTS_PP = 32,
|
|
NVME_CSTS_SHST_NORMAL = 0,
|
|
NVME_CSTS_SHST_OCCUR = 4,
|
|
NVME_CSTS_SHST_CMPLT = 8,
|
|
NVME_CSTS_SHST_MASK = 12,
|
|
};
|
|
|
|
enum {
|
|
SWITCHTEC_GAS_MRPC_OFFSET = 0,
|
|
SWITCHTEC_GAS_TOP_CFG_OFFSET = 4096,
|
|
SWITCHTEC_GAS_SW_EVENT_OFFSET = 6144,
|
|
SWITCHTEC_GAS_SYS_INFO_OFFSET = 8192,
|
|
SWITCHTEC_GAS_FLASH_INFO_OFFSET = 8704,
|
|
SWITCHTEC_GAS_PART_CFG_OFFSET = 16384,
|
|
SWITCHTEC_GAS_NTB_OFFSET = 65536,
|
|
SWITCHTEC_GAS_PFF_CSR_OFFSET = 1261568,
|
|
};
|
|
|
|
enum {
|
|
SWITCHTEC_NTB_REG_INFO_OFFSET = 0,
|
|
SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384,
|
|
SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600,
|
|
};
|
|
|
|
struct pci_fixup {
|
|
u16 vendor;
|
|
u16 device;
|
|
u32 class;
|
|
unsigned int class_shift;
|
|
int hook_offset;
|
|
};
|
|
|
|
struct nt_partition_info {
|
|
u32 xlink_enabled;
|
|
u32 target_part_low;
|
|
u32 target_part_high;
|
|
u32 reserved;
|
|
};
|
|
|
|
struct ntb_info_regs {
|
|
u8 partition_count;
|
|
u8 partition_id;
|
|
u16 reserved1;
|
|
u64 ep_map;
|
|
u16 requester_id;
|
|
u16 reserved2;
|
|
u32 reserved3[4];
|
|
struct nt_partition_info ntp_info[48];
|
|
} __attribute__((packed));
|
|
|
|
struct ntb_ctrl_regs {
|
|
u32 partition_status;
|
|
u32 partition_op;
|
|
u32 partition_ctrl;
|
|
u32 bar_setup;
|
|
u32 bar_error;
|
|
u16 lut_table_entries;
|
|
u16 lut_table_offset;
|
|
u32 lut_error;
|
|
u16 req_id_table_size;
|
|
u16 req_id_table_offset;
|
|
u32 req_id_error;
|
|
u32 reserved1[7];
|
|
struct {
|
|
u32 ctl;
|
|
u32 win_size;
|
|
u64 xlate_addr;
|
|
} bar_entry[6];
|
|
struct {
|
|
u32 win_size;
|
|
u32 reserved[3];
|
|
} bar_ext_entry[6];
|
|
u32 reserved2[192];
|
|
u32 req_id_table[512];
|
|
u32 reserved3[256];
|
|
u64 lut_entry[512];
|
|
};
|
|
|
|
typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *);
|
|
|
|
enum {
|
|
MATCH_MTR = 0,
|
|
MATCH_MEQ = 1,
|
|
MATCH_MLE = 2,
|
|
MATCH_MLT = 3,
|
|
MATCH_MGE = 4,
|
|
MATCH_MGT = 5,
|
|
};
|
|
|
|
struct acpi_get_devices_info {
|
|
acpi_walk_callback user_function;
|
|
void *context;
|
|
const char *hid;
|
|
};
|
|
|
|
struct old_serial_port {
|
|
unsigned int uart;
|
|
unsigned int baud_base;
|
|
unsigned int port;
|
|
unsigned int irq;
|
|
upf_t flags;
|
|
unsigned char io_type;
|
|
unsigned char *iomem_base;
|
|
unsigned short iomem_reg_shift;
|
|
};
|
|
|
|
enum {
|
|
PLAT8250_DEV_LEGACY = -1,
|
|
PLAT8250_DEV_PLATFORM = 0,
|
|
PLAT8250_DEV_PLATFORM1 = 1,
|
|
PLAT8250_DEV_PLATFORM2 = 2,
|
|
PLAT8250_DEV_FOURPORT = 3,
|
|
PLAT8250_DEV_ACCENT = 4,
|
|
PLAT8250_DEV_BOCA = 5,
|
|
PLAT8250_DEV_EXAR_ST16C554 = 6,
|
|
PLAT8250_DEV_HUB6 = 7,
|
|
PLAT8250_DEV_AU1X00 = 8,
|
|
PLAT8250_DEV_SM501 = 9,
|
|
};
|
|
|
|
struct irq_info {
|
|
struct hlist_node node;
|
|
int irq;
|
|
spinlock_t lock;
|
|
struct list_head *head;
|
|
};
|
|
|
|
struct plat_serial8250_port {
|
|
unsigned long iobase;
|
|
void *membase;
|
|
resource_size_t mapbase;
|
|
unsigned int irq;
|
|
unsigned long irqflags;
|
|
unsigned int uartclk;
|
|
void *private_data;
|
|
unsigned char regshift;
|
|
unsigned char iotype;
|
|
unsigned char hub6;
|
|
unsigned char has_sysrq;
|
|
upf_t flags;
|
|
unsigned int type;
|
|
unsigned int (*serial_in)(struct uart_port *, int);
|
|
void (*serial_out)(struct uart_port *, int, int);
|
|
void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
|
|
void (*set_ldisc)(struct uart_port *, struct ktermios *);
|
|
unsigned int (*get_mctrl)(struct uart_port *);
|
|
int (*handle_irq)(struct uart_port *);
|
|
void (*pm)(struct uart_port *, unsigned int, unsigned int);
|
|
void (*handle_break)(struct uart_port *);
|
|
};
|
|
|
|
struct tpm2_hash {
|
|
unsigned int crypto_id;
|
|
unsigned int tpm_id;
|
|
};
|
|
|
|
enum tpm2_const {
|
|
TPM2_PLATFORM_PCR = 24,
|
|
TPM2_PCR_SELECT_MIN = 3,
|
|
};
|
|
|
|
enum tpm2_properties {
|
|
TPM_PT_TOTAL_COMMANDS = 297,
|
|
};
|
|
|
|
struct tpm2_pcr_read_out {
|
|
__be32 update_cnt;
|
|
__be32 pcr_selects_cnt;
|
|
__be16 hash_alg;
|
|
u8 pcr_select_size;
|
|
u8 pcr_select[3];
|
|
__be32 digests_cnt;
|
|
__be16 digest_size;
|
|
u8 digest[0];
|
|
} __attribute__((packed));
|
|
|
|
struct tpm2_get_random_out {
|
|
__be16 size;
|
|
u8 buffer[128];
|
|
};
|
|
|
|
struct tpm2_get_cap_out {
|
|
u8 more_data;
|
|
__be32 subcap_id;
|
|
__be32 property_cnt;
|
|
__be32 property_id;
|
|
__be32 value;
|
|
} __attribute__((packed));
|
|
|
|
struct tpm2_null_auth_area {
|
|
__be32 handle;
|
|
__be16 nonce_size;
|
|
u8 attributes;
|
|
__be16 auth_size;
|
|
} __attribute__((packed));
|
|
|
|
struct tpm2_pcr_selection {
|
|
__be16 hash_alg;
|
|
u8 size_of_select;
|
|
u8 pcr_select[3];
|
|
};
|
|
|
|
struct drm_i915_cmd_descriptor;
|
|
|
|
struct drm_i915_cmd_table {
|
|
const struct drm_i915_cmd_descriptor *table;
|
|
int count;
|
|
};
|
|
|
|
struct drm_i915_cmd_descriptor {
|
|
u32 flags;
|
|
struct {
|
|
u32 value;
|
|
u32 mask;
|
|
} cmd;
|
|
union {
|
|
u32 fixed;
|
|
u32 mask;
|
|
} length;
|
|
struct {
|
|
u32 offset;
|
|
u32 mask;
|
|
u32 step;
|
|
} reg;
|
|
struct {
|
|
u32 offset;
|
|
u32 mask;
|
|
u32 expected;
|
|
u32 condition_offset;
|
|
u32 condition_mask;
|
|
} bits[3];
|
|
};
|
|
|
|
struct drm_i915_reg_descriptor {
|
|
i915_reg_t addr;
|
|
u32 mask;
|
|
u32 value;
|
|
};
|
|
|
|
struct cmd_node {
|
|
const struct drm_i915_cmd_descriptor *desc;
|
|
struct hlist_node node;
|
|
};
|
|
|
|
struct wait_rps_boost {
|
|
struct wait_queue_entry wait;
|
|
struct drm_crtc *crtc;
|
|
struct i915_request___2 *request;
|
|
};
|
|
|
|
struct overlay_registers;
|
|
|
|
struct intel_overlay {
|
|
struct drm_i915_private___4 *i915;
|
|
struct intel_context___3 *context;
|
|
struct intel_crtc *crtc;
|
|
struct i915_vma___3 *vma;
|
|
struct i915_vma___3 *old_vma;
|
|
struct intel_frontbuffer___3 *frontbuffer;
|
|
bool active;
|
|
bool pfit_active;
|
|
u32 pfit_vscale_ratio;
|
|
u32 color_key: 24;
|
|
u32 color_key_enabled: 1;
|
|
u32 brightness;
|
|
u32 contrast;
|
|
u32 saturation;
|
|
u32 old_xscale;
|
|
u32 old_yscale;
|
|
struct drm_i915_gem_object___3 *reg_bo;
|
|
struct overlay_registers *regs;
|
|
u32 flip_addr;
|
|
struct i915_active last_flip;
|
|
void (*flip_complete)(struct intel_overlay *);
|
|
};
|
|
|
|
struct overlay_registers {
|
|
u32 OBUF_0Y;
|
|
u32 OBUF_1Y;
|
|
u32 OBUF_0U;
|
|
u32 OBUF_0V;
|
|
u32 OBUF_1U;
|
|
u32 OBUF_1V;
|
|
u32 OSTRIDE;
|
|
u32 YRGB_VPH;
|
|
u32 UV_VPH;
|
|
u32 HORZ_PH;
|
|
u32 INIT_PHS;
|
|
u32 DWINPOS;
|
|
u32 DWINSZ;
|
|
u32 SWIDTH;
|
|
u32 SWIDTHSW;
|
|
u32 SHEIGHT;
|
|
u32 YRGBSCALE;
|
|
u32 UVSCALE;
|
|
u32 OCLRC0;
|
|
u32 OCLRC1;
|
|
u32 DCLRKV;
|
|
u32 DCLRKM;
|
|
u32 SCLRKVH;
|
|
u32 SCLRKVL;
|
|
u32 SCLRKEN;
|
|
u32 OCONFIG;
|
|
u32 OCMD;
|
|
u32 RESERVED1;
|
|
u32 OSTART_0Y;
|
|
u32 OSTART_1Y;
|
|
u32 OSTART_0U;
|
|
u32 OSTART_0V;
|
|
u32 OSTART_1U;
|
|
u32 OSTART_1V;
|
|
u32 OTILEOFF_0Y;
|
|
u32 OTILEOFF_1Y;
|
|
u32 OTILEOFF_0U;
|
|
u32 OTILEOFF_0V;
|
|
u32 OTILEOFF_1U;
|
|
u32 OTILEOFF_1V;
|
|
u32 FASTHSCALE;
|
|
u32 UVSCALEV;
|
|
u32 RESERVEDC[86];
|
|
u16 Y_VCOEFS[51];
|
|
u16 RESERVEDD[77];
|
|
u16 Y_HCOEFS[85];
|
|
u16 RESERVEDE[171];
|
|
u16 UV_VCOEFS[51];
|
|
u16 RESERVEDF[77];
|
|
u16 UV_HCOEFS[51];
|
|
u16 RESERVEDG[77];
|
|
};
|
|
|
|
struct intel_overlay_error_state {
|
|
struct overlay_registers regs;
|
|
unsigned long base;
|
|
u32 dovsta;
|
|
u32 isr;
|
|
};
|
|
|
|
struct intel_plane___2;
|
|
|
|
struct intel_plane_state___2 {
|
|
struct drm_plane_state uapi;
|
|
struct {
|
|
struct drm_crtc *crtc;
|
|
struct drm_framebuffer *fb;
|
|
u16 alpha;
|
|
u16 pixel_blend_mode;
|
|
unsigned int rotation;
|
|
enum drm_color_encoding color_encoding;
|
|
enum drm_color_range color_range;
|
|
enum drm_scaling_filter scaling_filter;
|
|
} hw;
|
|
struct i915_vma___3 *ggtt_vma;
|
|
struct i915_vma___3 *dpt_vma;
|
|
unsigned long flags;
|
|
struct intel_fb_view view;
|
|
bool decrypt;
|
|
bool force_black;
|
|
u32 ctl;
|
|
u32 color_ctl;
|
|
u32 cus_ctl;
|
|
int scaler_id;
|
|
struct intel_plane___2 *planar_linked_plane;
|
|
u32 planar_slave;
|
|
struct drm_intel_sprite_colorkey ckey;
|
|
struct drm_rect psr2_sel_fetch_area;
|
|
u64 ccval;
|
|
const char *no_fbc_reason;
|
|
};
|
|
|
|
struct intel_plane___2 {
|
|
struct drm_plane base;
|
|
enum i9xx_plane_id i9xx_plane;
|
|
enum plane_id id;
|
|
enum pipe pipe;
|
|
bool need_async_flip_disable_wa;
|
|
u32 frontbuffer_bit;
|
|
struct {
|
|
u32 base;
|
|
u32 cntl;
|
|
u32 size;
|
|
} cursor;
|
|
struct intel_fbc *fbc;
|
|
int (*min_width)(const struct drm_framebuffer *, int, unsigned int);
|
|
int (*max_width)(const struct drm_framebuffer *, int, unsigned int);
|
|
int (*max_height)(const struct drm_framebuffer *, int, unsigned int);
|
|
unsigned int (*max_stride)(struct intel_plane___2 *, u32, u64, unsigned int);
|
|
void (*update_noarm)(struct intel_plane___2 *, const struct intel_crtc_state *, const struct intel_plane_state___2 *);
|
|
void (*update_arm)(struct intel_plane___2 *, const struct intel_crtc_state *, const struct intel_plane_state___2 *);
|
|
void (*disable_arm)(struct intel_plane___2 *, const struct intel_crtc_state *);
|
|
bool (*get_hw_state)(struct intel_plane___2 *, enum pipe *);
|
|
int (*check_plane)(struct intel_crtc_state *, struct intel_plane_state___2 *);
|
|
int (*min_cdclk)(const struct intel_crtc_state *, const struct intel_plane_state___2 *);
|
|
void (*async_flip)(struct intel_plane___2 *, const struct intel_crtc_state *, const struct intel_plane_state___2 *, bool);
|
|
void (*enable_flip_done)(struct intel_plane___2 *);
|
|
void (*disable_flip_done)(struct intel_plane___2 *);
|
|
};
|
|
|
|
struct drm_intel_overlay_put_image {
|
|
__u32 flags;
|
|
__u32 bo_handle;
|
|
__u16 stride_Y;
|
|
__u16 stride_UV;
|
|
__u32 offset_Y;
|
|
__u32 offset_U;
|
|
__u32 offset_V;
|
|
__u16 src_width;
|
|
__u16 src_height;
|
|
__u16 src_scan_width;
|
|
__u16 src_scan_height;
|
|
__u32 crtc_id;
|
|
__u16 dst_x;
|
|
__u16 dst_y;
|
|
__u16 dst_width;
|
|
__u16 dst_height;
|
|
};
|
|
|
|
struct drm_i915_error_state_buf___2 {
|
|
struct drm_i915_private___4 *i915;
|
|
struct scatterlist *sgl;
|
|
struct scatterlist *cur;
|
|
struct scatterlist *end;
|
|
char *buf;
|
|
size_t bytes;
|
|
size_t size;
|
|
loff_t iter;
|
|
int err;
|
|
};
|
|
|
|
struct drm_intel_overlay_attrs {
|
|
__u32 flags;
|
|
__u32 color_key;
|
|
__s32 brightness;
|
|
__u32 contrast;
|
|
__u32 saturation;
|
|
__u32 gamma0;
|
|
__u32 gamma1;
|
|
__u32 gamma2;
|
|
__u32 gamma3;
|
|
__u32 gamma4;
|
|
__u32 gamma5;
|
|
};
|
|
|
|
struct rc_parameters {
|
|
u16 initial_xmit_delay;
|
|
u8 first_line_bpg_offset;
|
|
u16 initial_offset;
|
|
u8 flatness_min_qp;
|
|
u8 flatness_max_qp;
|
|
u8 rc_quant_incr_limit0;
|
|
u8 rc_quant_incr_limit1;
|
|
struct drm_dsc_rc_range_parameters rc_range_params[15];
|
|
};
|
|
|
|
enum ROW_INDEX_BPP {
|
|
ROW_INDEX_6BPP = 0,
|
|
ROW_INDEX_8BPP = 1,
|
|
ROW_INDEX_10BPP = 2,
|
|
ROW_INDEX_12BPP = 3,
|
|
ROW_INDEX_15BPP = 4,
|
|
MAX_ROW_INDEX = 5,
|
|
};
|
|
|
|
enum COLUMN_INDEX_BPC {
|
|
COLUMN_INDEX_8BPC = 0,
|
|
COLUMN_INDEX_10BPC = 1,
|
|
COLUMN_INDEX_12BPC = 2,
|
|
COLUMN_INDEX_14BPC = 3,
|
|
COLUMN_INDEX_16BPC = 4,
|
|
MAX_COLUMN_INDEX = 5,
|
|
};
|
|
|
|
struct drm_dsc_pps_infoframe {
|
|
struct dp_sdp_header pps_header;
|
|
struct drm_dsc_picture_parameter_set pps_payload;
|
|
};
|
|
|
|
typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *);
|
|
|
|
typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *);
|
|
|
|
typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *);
|
|
|
|
typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *);
|
|
|
|
typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *);
|
|
|
|
typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *);
|
|
|
|
typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *);
|
|
|
|
typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long);
|
|
|
|
typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int);
|
|
|
|
typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int);
|
|
|
|
typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int);
|
|
|
|
typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int);
|
|
|
|
typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int);
|
|
|
|
typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *);
|
|
|
|
typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *);
|
|
|
|
typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *);
|
|
|
|
typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char);
|
|
|
|
typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char);
|
|
|
|
typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char);
|
|
|
|
typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *);
|
|
|
|
struct ata_force_param {
|
|
const char *name;
|
|
u8 cbl;
|
|
u8 spd_limit;
|
|
unsigned int xfer_mask;
|
|
unsigned int horkage_on;
|
|
unsigned int horkage_off;
|
|
u16 lflags_on;
|
|
u16 lflags_off;
|
|
};
|
|
|
|
struct ata_force_ent {
|
|
int port;
|
|
int device;
|
|
struct ata_force_param param;
|
|
};
|
|
|
|
struct ata_xfer_ent {
|
|
int shift;
|
|
int bits;
|
|
u8 base;
|
|
};
|
|
|
|
struct ata_blacklist_entry {
|
|
const char *model_num;
|
|
const char *model_rev;
|
|
unsigned long horkage;
|
|
};
|
|
|
|
enum {
|
|
ATA_READID_POSTRESET = 1,
|
|
ATA_DNXFER_PIO = 0,
|
|
ATA_DNXFER_DMA = 1,
|
|
ATA_DNXFER_40C = 2,
|
|
ATA_DNXFER_FORCE_PIO = 3,
|
|
ATA_DNXFER_FORCE_PIO0 = 4,
|
|
ATA_DNXFER_QUIET = -2147483648,
|
|
};
|
|
|
|
struct trace_event_raw_ata_qc_issue_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int tag;
|
|
unsigned char cmd;
|
|
unsigned char dev;
|
|
unsigned char lbal;
|
|
unsigned char lbam;
|
|
unsigned char lbah;
|
|
unsigned char nsect;
|
|
unsigned char feature;
|
|
unsigned char hob_lbal;
|
|
unsigned char hob_lbam;
|
|
unsigned char hob_lbah;
|
|
unsigned char hob_nsect;
|
|
unsigned char hob_feature;
|
|
unsigned char ctl;
|
|
unsigned char proto;
|
|
unsigned long flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_qc_complete_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int tag;
|
|
unsigned char status;
|
|
unsigned char dev;
|
|
unsigned char lbal;
|
|
unsigned char lbam;
|
|
unsigned char lbah;
|
|
unsigned char nsect;
|
|
unsigned char error;
|
|
unsigned char hob_lbal;
|
|
unsigned char hob_lbam;
|
|
unsigned char hob_lbah;
|
|
unsigned char hob_nsect;
|
|
unsigned char hob_feature;
|
|
unsigned char ctl;
|
|
unsigned long flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_tf_load {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned char cmd;
|
|
unsigned char dev;
|
|
unsigned char lbal;
|
|
unsigned char lbam;
|
|
unsigned char lbah;
|
|
unsigned char nsect;
|
|
unsigned char feature;
|
|
unsigned char hob_lbal;
|
|
unsigned char hob_lbam;
|
|
unsigned char hob_lbah;
|
|
unsigned char hob_nsect;
|
|
unsigned char hob_feature;
|
|
unsigned char proto;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_exec_command_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int tag;
|
|
unsigned char cmd;
|
|
unsigned char feature;
|
|
unsigned char hob_nsect;
|
|
unsigned char proto;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_bmdma_status {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int tag;
|
|
unsigned char host_stat;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_eh_link_autopsy {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int eh_action;
|
|
unsigned int eh_err_mask;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_eh_link_autopsy_qc {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int tag;
|
|
unsigned int qc_flags;
|
|
unsigned int eh_err_mask;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_eh_action_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int eh_action;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_link_reset_begin_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int class[2];
|
|
unsigned long deadline;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_link_reset_end_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int class[2];
|
|
int rc;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_port_eh_begin_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_sff_hsm_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int tag;
|
|
unsigned int qc_flags;
|
|
unsigned int protocol;
|
|
unsigned int hsm_state;
|
|
unsigned char dev_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_transfer_data_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned int ata_dev;
|
|
unsigned int tag;
|
|
unsigned int flags;
|
|
unsigned int offset;
|
|
unsigned int bytes;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_ata_sff_template {
|
|
struct trace_entry ent;
|
|
unsigned int ata_port;
|
|
unsigned char hsm_state;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_ata_qc_issue_template {};
|
|
|
|
struct trace_event_data_offsets_ata_qc_complete_template {};
|
|
|
|
struct trace_event_data_offsets_ata_tf_load {};
|
|
|
|
struct trace_event_data_offsets_ata_exec_command_template {};
|
|
|
|
struct trace_event_data_offsets_ata_bmdma_status {};
|
|
|
|
struct trace_event_data_offsets_ata_eh_link_autopsy {};
|
|
|
|
struct trace_event_data_offsets_ata_eh_link_autopsy_qc {};
|
|
|
|
struct trace_event_data_offsets_ata_eh_action_template {};
|
|
|
|
struct trace_event_data_offsets_ata_link_reset_begin_template {};
|
|
|
|
struct trace_event_data_offsets_ata_link_reset_end_template {};
|
|
|
|
struct trace_event_data_offsets_ata_port_eh_begin_template {};
|
|
|
|
struct trace_event_data_offsets_ata_sff_hsm_template {};
|
|
|
|
struct trace_event_data_offsets_ata_transfer_data_template {};
|
|
|
|
struct trace_event_data_offsets_ata_sff_template {};
|
|
|
|
struct usb_dynid {
|
|
struct list_head node;
|
|
struct usb_device_id id;
|
|
};
|
|
|
|
struct usb_device_driver {
|
|
const char *name;
|
|
bool (*match)(struct usb_device *);
|
|
int (*probe)(struct usb_device *);
|
|
void (*disconnect)(struct usb_device *);
|
|
int (*suspend)(struct usb_device *, pm_message_t);
|
|
int (*resume)(struct usb_device *, pm_message_t);
|
|
const struct attribute_group **dev_groups;
|
|
struct usbdrv_wrap drvwrap;
|
|
const struct usb_device_id *id_table;
|
|
unsigned int supports_autosuspend: 1;
|
|
unsigned int generic_subclass: 1;
|
|
};
|
|
|
|
struct ir_raw_handler {
|
|
struct list_head list;
|
|
u64 protocols;
|
|
int (*decode)(struct rc_dev *, struct ir_raw_event);
|
|
int (*encode)(enum rc_proto, u32, struct ir_raw_event *, unsigned int);
|
|
u32 carrier;
|
|
u32 min_timeout;
|
|
int (*raw_register)(struct rc_dev *);
|
|
int (*raw_unregister)(struct rc_dev *);
|
|
};
|
|
|
|
struct ir_raw_timings_manchester {
|
|
unsigned int leader_pulse;
|
|
unsigned int leader_space;
|
|
unsigned int clock;
|
|
unsigned int invert: 1;
|
|
unsigned int trailer_space;
|
|
};
|
|
|
|
struct ir_raw_timings_pd {
|
|
unsigned int header_pulse;
|
|
unsigned int header_space;
|
|
unsigned int bit_pulse;
|
|
unsigned int bit_space[2];
|
|
unsigned int trailer_pulse;
|
|
unsigned int trailer_space;
|
|
unsigned int msb_first: 1;
|
|
};
|
|
|
|
struct ir_raw_timings_pl {
|
|
unsigned int header_pulse;
|
|
unsigned int bit_space;
|
|
unsigned int bit_pulse[2];
|
|
unsigned int trailer_space;
|
|
unsigned int msb_first: 1;
|
|
};
|
|
|
|
struct efivar_operations;
|
|
|
|
struct efivars {
|
|
struct kset *kset;
|
|
const struct efivar_operations *ops;
|
|
};
|
|
|
|
typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *);
|
|
|
|
typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *);
|
|
|
|
typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *);
|
|
|
|
typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool);
|
|
|
|
struct efivar_operations {
|
|
efi_get_variable_t *get_variable;
|
|
efi_get_next_variable_t *get_next_variable;
|
|
efi_set_variable_t *set_variable;
|
|
efi_set_variable_t *set_variable_nonblocking;
|
|
efi_query_variable_store_t *query_variable_store;
|
|
};
|
|
|
|
typedef u16 ucs2_char_t;
|
|
|
|
struct lg4ff_alternate_mode {
|
|
const u16 product_id;
|
|
const char *tag;
|
|
const char *name;
|
|
};
|
|
|
|
struct lg4ff_wheel_ident_info {
|
|
const u32 modes;
|
|
const u16 mask;
|
|
const u16 result;
|
|
const u16 real_product_id;
|
|
};
|
|
|
|
struct lg4ff_compat_mode_switch {
|
|
const u8 cmd_count;
|
|
const u8 cmd[0];
|
|
};
|
|
|
|
struct lg4ff_wheel {
|
|
const u32 product_id;
|
|
const short *ff_effects;
|
|
const u16 min_range;
|
|
const u16 max_range;
|
|
void (*set_range)(struct hid_device *, u16);
|
|
};
|
|
|
|
struct lg4ff_multimode_wheel {
|
|
const u16 product_id;
|
|
const u32 alternate_modes;
|
|
const char *real_tag;
|
|
const char *real_name;
|
|
};
|
|
|
|
struct lg4ff_wheel_data {
|
|
const u32 product_id;
|
|
u16 combine;
|
|
u16 range;
|
|
const u16 min_range;
|
|
const u16 max_range;
|
|
u8 led_state;
|
|
struct led_classdev *led[5];
|
|
const u32 alternate_modes;
|
|
const char * const real_tag;
|
|
const char * const real_name;
|
|
const u16 real_product_id;
|
|
void (*set_range)(struct hid_device *, u16);
|
|
};
|
|
|
|
struct lg4ff_device_entry {
|
|
spinlock_t report_lock;
|
|
struct hid_report *report;
|
|
struct lg4ff_wheel_data wdata;
|
|
};
|
|
|
|
enum {
|
|
IF_LINK_MODE_DEFAULT = 0,
|
|
IF_LINK_MODE_DORMANT = 1,
|
|
IF_LINK_MODE_TESTING = 2,
|
|
};
|
|
|
|
enum lw_bits {
|
|
LW_URGENT = 0,
|
|
};
|
|
|
|
struct skb_array {
|
|
struct ptr_ring ring;
|
|
};
|
|
|
|
struct pfifo_fast_priv {
|
|
struct skb_array q[3];
|
|
};
|
|
|
|
struct tc_prio_qopt {
|
|
int bands;
|
|
__u8 priomap[16];
|
|
};
|
|
|
|
struct psched_ratecfg {
|
|
u64 rate_bytes_ps;
|
|
u32 mult;
|
|
u16 overhead;
|
|
u16 mpu;
|
|
u8 linklayer;
|
|
u8 shift;
|
|
};
|
|
|
|
struct psched_pktrate {
|
|
u64 rate_pkts_ps;
|
|
u32 mult;
|
|
u8 shift;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0,
|
|
ETHTOOL_A_TUNNEL_INFO_HEADER = 1,
|
|
ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 2,
|
|
__ETHTOOL_A_TUNNEL_INFO_CNT = 3,
|
|
ETHTOOL_A_TUNNEL_INFO_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0,
|
|
ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 1,
|
|
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 2,
|
|
__ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0,
|
|
ETHTOOL_A_TUNNEL_UDP_TABLE = 1,
|
|
__ETHTOOL_A_TUNNEL_UDP_CNT = 2,
|
|
ETHTOOL_A_TUNNEL_UDP_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0,
|
|
ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 1,
|
|
ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 2,
|
|
ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 3,
|
|
__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT = 4,
|
|
ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0,
|
|
ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 1,
|
|
ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 2,
|
|
__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT = 3,
|
|
ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 2,
|
|
};
|
|
|
|
struct ethnl_tunnel_info_dump_ctx {
|
|
struct ethnl_req_info req_info;
|
|
int pos_hash;
|
|
int pos_idx;
|
|
};
|
|
|
|
struct igmpv3_query {
|
|
__u8 type;
|
|
__u8 code;
|
|
__sum16 csum;
|
|
__be32 group;
|
|
__u8 qrv: 3;
|
|
__u8 suppress: 1;
|
|
__u8 resv: 4;
|
|
__u8 qqic;
|
|
__be16 nsrcs;
|
|
__be32 srcs[0];
|
|
};
|
|
|
|
struct igmpv3_grec {
|
|
__u8 grec_type;
|
|
__u8 grec_auxwords;
|
|
__be16 grec_nsrcs;
|
|
__be32 grec_mca;
|
|
__be32 grec_src[0];
|
|
};
|
|
|
|
struct igmpv3_report {
|
|
__u8 type;
|
|
__u8 resv1;
|
|
__sum16 csum;
|
|
__be16 resv2;
|
|
__be16 ngrec;
|
|
struct igmpv3_grec grec[0];
|
|
};
|
|
|
|
struct igmp_mc_iter_state {
|
|
struct seq_net_private p;
|
|
struct net_device *dev;
|
|
struct in_device *in_dev;
|
|
};
|
|
|
|
struct igmp_mcf_iter_state {
|
|
struct seq_net_private p;
|
|
struct net_device *dev;
|
|
struct in_device *idev;
|
|
struct ip_mc_list *im;
|
|
};
|
|
|
|
struct rpc_filelist {
|
|
const char *name;
|
|
const struct file_operations *i_fop;
|
|
umode_t mode;
|
|
};
|
|
|
|
enum {
|
|
RPCAUTH_info = 0,
|
|
RPCAUTH_EOF = 1,
|
|
};
|
|
|
|
enum {
|
|
RPCAUTH_lockd = 0,
|
|
RPCAUTH_mount = 1,
|
|
RPCAUTH_nfs = 2,
|
|
RPCAUTH_portmap = 3,
|
|
RPCAUTH_statd = 4,
|
|
RPCAUTH_nfsd4_cb = 5,
|
|
RPCAUTH_cache = 6,
|
|
RPCAUTH_nfsd = 7,
|
|
RPCAUTH_gssd = 8,
|
|
RPCAUTH_RootEOF = 9,
|
|
};
|
|
|
|
struct rate_control_alg {
|
|
struct list_head list;
|
|
const struct rate_control_ops *ops;
|
|
};
|
|
|
|
struct mptcp_out_options {
|
|
u16 suboptions;
|
|
struct mptcp_rm_list rm_list;
|
|
u8 join_id;
|
|
u8 backup;
|
|
u8 reset_reason: 4;
|
|
u8 reset_transient: 1;
|
|
u8 csum_reqd: 1;
|
|
u8 allow_join_id0: 1;
|
|
union {
|
|
struct {
|
|
u64 sndr_key;
|
|
u64 rcvr_key;
|
|
u64 data_seq;
|
|
u32 subflow_seq;
|
|
u16 data_len;
|
|
__sum16 csum;
|
|
};
|
|
struct {
|
|
struct mptcp_addr_info addr;
|
|
u64 ahmac;
|
|
};
|
|
struct {
|
|
struct mptcp_ext ext_copy;
|
|
u64 fail_seq;
|
|
};
|
|
struct {
|
|
u32 nonce;
|
|
u32 token;
|
|
u64 thmac;
|
|
u8 hmac[20];
|
|
};
|
|
};
|
|
};
|
|
|
|
struct csum_pseudo_header {
|
|
__be64 data_seq;
|
|
__be32 subflow_seq;
|
|
__be16 data_len;
|
|
__sum16 csum;
|
|
};
|
|
|
|
struct amd_iommu_event_desc {
|
|
struct device_attribute attr;
|
|
const char *event;
|
|
};
|
|
|
|
struct amd_iommu;
|
|
|
|
struct perf_amd_iommu {
|
|
struct list_head list;
|
|
struct pmu pmu;
|
|
struct amd_iommu *iommu;
|
|
char name[16];
|
|
u8 max_banks;
|
|
u8 max_counters;
|
|
u64 cntr_assign_mask;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
enum kernel_gp_hint {
|
|
GP_NO_HINT = 0,
|
|
GP_NON_CANONICAL = 1,
|
|
GP_CANONICAL = 2,
|
|
};
|
|
|
|
struct muldiv {
|
|
u32 multiplier;
|
|
u32 divider;
|
|
};
|
|
|
|
struct freq_desc {
|
|
bool use_msr_plat;
|
|
struct muldiv muldiv[16];
|
|
u32 freqs[16];
|
|
u32 mask;
|
|
};
|
|
|
|
struct ssb_state {
|
|
struct ssb_state *shared_state;
|
|
raw_spinlock_t lock;
|
|
unsigned int disable_state;
|
|
unsigned long local_state;
|
|
};
|
|
|
|
struct inactive_task_frame {
|
|
unsigned long r15;
|
|
unsigned long r14;
|
|
unsigned long r13;
|
|
unsigned long r12;
|
|
unsigned long bx;
|
|
unsigned long bp;
|
|
unsigned long ret_addr;
|
|
};
|
|
|
|
struct fork_frame {
|
|
struct inactive_task_frame frame;
|
|
struct pt_regs regs;
|
|
};
|
|
|
|
struct kretprobe_blackpoint {
|
|
const char *name;
|
|
void *addr;
|
|
};
|
|
|
|
struct __arch_relative_insn {
|
|
u8 op;
|
|
s32 raddr;
|
|
} __attribute__((packed));
|
|
|
|
struct kvm_vcpu_pv_apf_data {
|
|
__u32 flags;
|
|
__u32 token;
|
|
__u8 pad[56];
|
|
__u32 enabled;
|
|
};
|
|
|
|
struct kvm_steal_time {
|
|
__u64 steal;
|
|
__u32 version;
|
|
__u32 flags;
|
|
__u8 preempted;
|
|
__u8 u8_pad[3];
|
|
__u32 pad[11];
|
|
};
|
|
|
|
struct kvm_task_sleep_head {
|
|
raw_spinlock_t lock;
|
|
struct hlist_head list;
|
|
};
|
|
|
|
struct kvm_task_sleep_node {
|
|
struct hlist_node link;
|
|
struct swait_queue_head wq;
|
|
u32 token;
|
|
int cpu;
|
|
};
|
|
|
|
typedef unsigned __int128 __uint128_t;
|
|
|
|
struct umd_info {
|
|
const char *driver_name;
|
|
struct file *pipe_to_umh;
|
|
struct file *pipe_from_umh;
|
|
struct path wd;
|
|
struct pid *tgid;
|
|
};
|
|
|
|
typedef void (*btf_trace_console)(void *, const char *, size_t);
|
|
|
|
struct latched_seq {
|
|
seqcount_latch_t latch;
|
|
u64 val[2];
|
|
};
|
|
|
|
struct console_cmdline {
|
|
char name[16];
|
|
int index;
|
|
bool user_specified;
|
|
char *options;
|
|
};
|
|
|
|
struct printk_buffers {
|
|
char outbuf[2048];
|
|
char scratchbuf[1024];
|
|
};
|
|
|
|
enum devkmsg_log_masks {
|
|
DEVKMSG_LOG_MASK_ON = 1,
|
|
DEVKMSG_LOG_MASK_OFF = 2,
|
|
DEVKMSG_LOG_MASK_LOCK = 4,
|
|
};
|
|
|
|
enum printk_info_flags {
|
|
LOG_NEWLINE = 2,
|
|
LOG_CONT = 8,
|
|
};
|
|
|
|
enum con_flush_mode {
|
|
CONSOLE_FLUSH_PENDING = 0,
|
|
CONSOLE_REPLAY_ALL = 1,
|
|
};
|
|
|
|
enum con_msg_format_flags {
|
|
MSG_FORMAT_DEFAULT = 0,
|
|
MSG_FORMAT_SYSLOG = 1,
|
|
};
|
|
|
|
struct kmsg_dumper {
|
|
struct list_head list;
|
|
void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason);
|
|
enum kmsg_dump_reason max_reason;
|
|
bool registered;
|
|
};
|
|
|
|
struct trace_event_raw_console {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_msg;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_console {
|
|
u32 msg;
|
|
};
|
|
|
|
struct printk_message {
|
|
struct printk_buffers *pbufs;
|
|
unsigned int outbuf_len;
|
|
u64 seq;
|
|
unsigned long dropped;
|
|
};
|
|
|
|
struct devkmsg_user {
|
|
atomic64_t seq;
|
|
struct ratelimit_state rs;
|
|
struct mutex lock;
|
|
struct printk_buffers pbufs;
|
|
};
|
|
|
|
struct kmsg_dump_iter {
|
|
u64 cur_seq;
|
|
u64 next_seq;
|
|
};
|
|
|
|
struct audit_nfcfgop_tab {
|
|
enum audit_nfcfgop op;
|
|
const char *s;
|
|
};
|
|
|
|
struct audit_aux_data {
|
|
struct audit_aux_data *next;
|
|
int type;
|
|
};
|
|
|
|
struct audit_chunk;
|
|
|
|
struct audit_tree_refs {
|
|
struct audit_tree_refs *next;
|
|
struct audit_chunk *c[31];
|
|
};
|
|
|
|
struct audit_aux_data_bprm_fcaps {
|
|
struct audit_aux_data d;
|
|
struct audit_cap_data fcap;
|
|
unsigned int fcap_ver;
|
|
struct audit_cap_data old_pcap;
|
|
struct audit_cap_data new_pcap;
|
|
};
|
|
|
|
struct audit_aux_data_pids {
|
|
struct audit_aux_data d;
|
|
pid_t target_pid[16];
|
|
kuid_t target_auid[16];
|
|
kuid_t target_uid[16];
|
|
unsigned int target_sessionid[16];
|
|
u32 target_sid[16];
|
|
char target_comm[256];
|
|
int pid_count;
|
|
};
|
|
|
|
struct fanotify_response_info_header {
|
|
__u8 type;
|
|
__u8 pad;
|
|
__u16 len;
|
|
};
|
|
|
|
struct fanotify_response_info_audit_rule {
|
|
struct fanotify_response_info_header hdr;
|
|
__u32 rule_number;
|
|
__u32 subj_trust;
|
|
__u32 obj_trust;
|
|
};
|
|
|
|
struct trace_probe_log {
|
|
const char *subsystem;
|
|
const char **argv;
|
|
int argc;
|
|
int index;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t);
|
|
|
|
typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t);
|
|
|
|
typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *);
|
|
|
|
typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *);
|
|
|
|
struct perf_cpu_context {
|
|
struct perf_event_context ctx;
|
|
struct perf_event_context *task_ctx;
|
|
int online;
|
|
struct perf_cgroup *cgrp;
|
|
int heap_size;
|
|
struct perf_event **heap;
|
|
struct perf_event *heap_default[2];
|
|
};
|
|
|
|
struct swevent_hlist;
|
|
|
|
struct swevent_htable {
|
|
struct swevent_hlist *swevent_hlist;
|
|
struct mutex hlist_mutex;
|
|
int hlist_refcount;
|
|
int recursion[4];
|
|
};
|
|
|
|
struct swevent_hlist {
|
|
struct hlist_head heads[256];
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct min_heap_callbacks {
|
|
int elem_size;
|
|
bool (*less)(const void *, const void *);
|
|
void (*swp)(void *, void *);
|
|
};
|
|
|
|
struct pmu_event_list {
|
|
raw_spinlock_t lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum event_type_t {
|
|
EVENT_FLEXIBLE = 1,
|
|
EVENT_PINNED = 2,
|
|
EVENT_TIME = 4,
|
|
EVENT_CPU = 8,
|
|
EVENT_ALL = 3,
|
|
};
|
|
|
|
enum {
|
|
NET_NS_INDEX = 0,
|
|
UTS_NS_INDEX = 1,
|
|
IPC_NS_INDEX = 2,
|
|
PID_NS_INDEX = 3,
|
|
USER_NS_INDEX = 4,
|
|
MNT_NS_INDEX = 5,
|
|
CGROUP_NS_INDEX = 6,
|
|
NR_NAMESPACES = 7,
|
|
};
|
|
|
|
enum perf_event_read_format {
|
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 1,
|
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 2,
|
|
PERF_FORMAT_ID = 4,
|
|
PERF_FORMAT_GROUP = 8,
|
|
PERF_FORMAT_LOST = 16,
|
|
PERF_FORMAT_MAX = 32,
|
|
};
|
|
|
|
enum perf_probe_config {
|
|
PERF_PROBE_CONFIG_IS_RETPROBE = 1,
|
|
PERF_UPROBE_REF_CTR_OFFSET_BITS = 32,
|
|
PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32,
|
|
};
|
|
|
|
enum perf_event_ioc_flags {
|
|
PERF_IOC_FLAG_GROUP = 1,
|
|
};
|
|
|
|
enum {
|
|
IF_STATE_ACTION = 0,
|
|
IF_STATE_SOURCE = 1,
|
|
IF_STATE_END = 2,
|
|
};
|
|
|
|
enum {
|
|
IF_ACT_NONE = -1,
|
|
IF_ACT_FILTER = 0,
|
|
IF_ACT_START = 1,
|
|
IF_ACT_STOP = 2,
|
|
IF_SRC_FILE = 3,
|
|
IF_SRC_KERNEL = 4,
|
|
IF_SRC_FILEADDR = 5,
|
|
IF_SRC_KERNELADDR = 6,
|
|
};
|
|
|
|
typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *);
|
|
|
|
struct perf_switch_event {
|
|
struct task_struct *task;
|
|
struct task_struct *next_prev;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u32 next_prev_pid;
|
|
u32 next_prev_tid;
|
|
} event_id;
|
|
};
|
|
|
|
typedef void perf_iterate_f(struct perf_event *, void *);
|
|
|
|
struct stop_event_data {
|
|
struct perf_event *event;
|
|
unsigned int restart;
|
|
};
|
|
|
|
typedef int (*remote_function_f)(void *);
|
|
|
|
struct remote_function_call {
|
|
struct task_struct *p;
|
|
remote_function_f func;
|
|
void *info;
|
|
int ret;
|
|
};
|
|
|
|
struct perf_task_event {
|
|
struct task_struct *task;
|
|
struct perf_event_context *task_ctx;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u32 pid;
|
|
u32 ppid;
|
|
u32 tid;
|
|
u32 ptid;
|
|
u64 time;
|
|
} event_id;
|
|
};
|
|
|
|
struct perf_ns_link_info {
|
|
__u64 dev;
|
|
__u64 ino;
|
|
};
|
|
|
|
struct perf_comm_event {
|
|
struct task_struct *task;
|
|
char *comm;
|
|
int comm_size;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u32 pid;
|
|
u32 tid;
|
|
} event_id;
|
|
};
|
|
|
|
struct perf_mmap_event {
|
|
struct vm_area_struct *vma;
|
|
const char *file_name;
|
|
int file_size;
|
|
int maj;
|
|
int min;
|
|
u64 ino;
|
|
u64 ino_generation;
|
|
u32 prot;
|
|
u32 flags;
|
|
u8 build_id[20];
|
|
u32 build_id_size;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u32 pid;
|
|
u32 tid;
|
|
u64 start;
|
|
u64 len;
|
|
u64 pgoff;
|
|
} event_id;
|
|
};
|
|
|
|
struct perf_aux_event {
|
|
struct perf_event_header header;
|
|
u64 offset;
|
|
u64 size;
|
|
u64 flags;
|
|
};
|
|
|
|
struct perf_ksymbol_event {
|
|
const char *name;
|
|
int name_len;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u64 addr;
|
|
u32 len;
|
|
u16 ksym_type;
|
|
u16 flags;
|
|
} event_id;
|
|
};
|
|
|
|
struct perf_aux_event___2 {
|
|
struct perf_event_header header;
|
|
u64 hw_id;
|
|
};
|
|
|
|
struct __group_key {
|
|
int cpu;
|
|
struct pmu *pmu;
|
|
struct cgroup *cgroup;
|
|
};
|
|
|
|
struct perf_cgroup_event {
|
|
char *path;
|
|
int path_size;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u64 id;
|
|
char path[0];
|
|
} event_id;
|
|
};
|
|
|
|
struct min_heap {
|
|
void *data;
|
|
int nr;
|
|
int size;
|
|
};
|
|
|
|
struct perf_aux_event___3 {
|
|
struct perf_event_header header;
|
|
u32 pid;
|
|
u32 tid;
|
|
};
|
|
|
|
struct perf_read_event {
|
|
struct perf_event_header header;
|
|
u32 pid;
|
|
u32 tid;
|
|
};
|
|
|
|
struct remote_output {
|
|
struct perf_buffer *rb;
|
|
int err;
|
|
};
|
|
|
|
struct perf_namespaces_event {
|
|
struct task_struct *task;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u32 pid;
|
|
u32 tid;
|
|
u64 nr_namespaces;
|
|
struct perf_ns_link_info link_info[7];
|
|
} event_id;
|
|
};
|
|
|
|
struct perf_bpf_event {
|
|
struct bpf_prog *prog;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u16 type;
|
|
u16 flags;
|
|
u32 id;
|
|
u8 tag[8];
|
|
} event_id;
|
|
};
|
|
|
|
struct perf_text_poke_event {
|
|
const void *old_bytes;
|
|
const void *new_bytes;
|
|
size_t pad;
|
|
u16 old_len;
|
|
u16 new_len;
|
|
struct {
|
|
struct perf_event_header header;
|
|
u64 addr;
|
|
} event_id;
|
|
};
|
|
|
|
struct event_function_struct {
|
|
struct perf_event *event;
|
|
event_f func;
|
|
void *data;
|
|
};
|
|
|
|
struct perf_read_data {
|
|
struct perf_event *event;
|
|
bool group;
|
|
int ret;
|
|
};
|
|
|
|
struct debugfs_devm_entry {
|
|
int (*read)(struct seq_file *, void *);
|
|
struct device *dev;
|
|
};
|
|
|
|
struct selinux_kernel_status {
|
|
u32 version;
|
|
u32 sequence;
|
|
u32 enforcing;
|
|
u32 policyload;
|
|
u32 deny_unknown;
|
|
};
|
|
|
|
struct crypto_hash_walk {
|
|
char *data;
|
|
unsigned int offset;
|
|
unsigned int alignmask;
|
|
struct page *pg;
|
|
unsigned int entrylen;
|
|
unsigned int total;
|
|
struct scatterlist *sg;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct crypto_report_hash {
|
|
char type[64];
|
|
unsigned int blocksize;
|
|
unsigned int digestsize;
|
|
};
|
|
|
|
struct bdev_inode {
|
|
struct block_device bdev;
|
|
struct inode vfs_inode;
|
|
};
|
|
|
|
struct rq_qos_wait_data {
|
|
struct wait_queue_entry wq;
|
|
struct task_struct *task;
|
|
struct rq_wait *rqw;
|
|
acquire_inflight_cb_t *cb;
|
|
void *private_data;
|
|
bool got_token;
|
|
};
|
|
|
|
struct rq_depth {
|
|
unsigned int max_depth;
|
|
int scale_step;
|
|
bool scaled_max;
|
|
unsigned int queue_depth;
|
|
unsigned int default_depth;
|
|
};
|
|
|
|
typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32);
|
|
|
|
struct pci_reset_fn_method {
|
|
int (*reset_fn)(struct pci_dev *, bool);
|
|
char *name;
|
|
};
|
|
|
|
enum pcie_reset_state {
|
|
pcie_deassert_reset = 1,
|
|
pcie_warm_reset = 2,
|
|
pcie_hot_reset = 3,
|
|
};
|
|
|
|
struct pci_pme_device {
|
|
struct list_head list;
|
|
struct pci_dev *dev;
|
|
};
|
|
|
|
struct pci_saved_state {
|
|
u32 config_space[16];
|
|
struct pci_cap_saved_data cap[0];
|
|
};
|
|
|
|
struct pci_devres {
|
|
unsigned int enabled: 1;
|
|
unsigned int pinned: 1;
|
|
unsigned int orig_intx: 1;
|
|
unsigned int restore_intx: 1;
|
|
unsigned int mwi: 1;
|
|
u32 region_mask;
|
|
};
|
|
|
|
struct acpi_device_walk_info {
|
|
struct acpi_table_desc *table_desc;
|
|
struct acpi_evaluate_info *evaluate_info;
|
|
u32 device_count;
|
|
u32 num_STA;
|
|
u32 num_INI;
|
|
};
|
|
|
|
enum virtio_input_config_select {
|
|
VIRTIO_INPUT_CFG_UNSET = 0,
|
|
VIRTIO_INPUT_CFG_ID_NAME = 1,
|
|
VIRTIO_INPUT_CFG_ID_SERIAL = 2,
|
|
VIRTIO_INPUT_CFG_ID_DEVIDS = 3,
|
|
VIRTIO_INPUT_CFG_PROP_BITS = 16,
|
|
VIRTIO_INPUT_CFG_EV_BITS = 17,
|
|
VIRTIO_INPUT_CFG_ABS_INFO = 18,
|
|
};
|
|
|
|
struct virtio_input_event {
|
|
__le16 type;
|
|
__le16 code;
|
|
__le32 value;
|
|
};
|
|
|
|
struct virtio_input {
|
|
struct virtio_device *vdev;
|
|
struct input_dev *idev;
|
|
char name[64];
|
|
char serial[64];
|
|
char phys[64];
|
|
struct virtqueue *evt;
|
|
struct virtqueue *sts;
|
|
struct virtio_input_event evts[64];
|
|
spinlock_t lock;
|
|
bool ready;
|
|
};
|
|
|
|
struct serial_private;
|
|
|
|
struct pciserial_board;
|
|
|
|
struct pci_serial_quirk {
|
|
u32 vendor;
|
|
u32 device;
|
|
u32 subvendor;
|
|
u32 subdevice;
|
|
int (*probe)(struct pci_dev *);
|
|
int (*init)(struct pci_dev *);
|
|
int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int);
|
|
void (*exit)(struct pci_dev *);
|
|
};
|
|
|
|
struct serial_private {
|
|
struct pci_dev *dev;
|
|
unsigned int nr;
|
|
struct pci_serial_quirk *quirk;
|
|
const struct pciserial_board *board;
|
|
int line[0];
|
|
};
|
|
|
|
struct pciserial_board {
|
|
unsigned int flags;
|
|
unsigned int num_ports;
|
|
unsigned int base_baud;
|
|
unsigned int uart_offset;
|
|
unsigned int reg_shift;
|
|
unsigned int first_offset;
|
|
};
|
|
|
|
struct timedia_struct {
|
|
int num;
|
|
const unsigned short *ids;
|
|
};
|
|
|
|
enum pci_board_num_t {
|
|
pbn_default = 0,
|
|
pbn_b0_1_115200 = 1,
|
|
pbn_b0_2_115200 = 2,
|
|
pbn_b0_4_115200 = 3,
|
|
pbn_b0_5_115200 = 4,
|
|
pbn_b0_8_115200 = 5,
|
|
pbn_b0_1_921600 = 6,
|
|
pbn_b0_2_921600 = 7,
|
|
pbn_b0_4_921600 = 8,
|
|
pbn_b0_2_1130000 = 9,
|
|
pbn_b0_4_1152000 = 10,
|
|
pbn_b0_4_1250000 = 11,
|
|
pbn_b0_2_1843200 = 12,
|
|
pbn_b0_4_1843200 = 13,
|
|
pbn_b0_1_15625000 = 14,
|
|
pbn_b0_bt_1_115200 = 15,
|
|
pbn_b0_bt_2_115200 = 16,
|
|
pbn_b0_bt_4_115200 = 17,
|
|
pbn_b0_bt_8_115200 = 18,
|
|
pbn_b0_bt_1_460800 = 19,
|
|
pbn_b0_bt_2_460800 = 20,
|
|
pbn_b0_bt_4_460800 = 21,
|
|
pbn_b0_bt_1_921600 = 22,
|
|
pbn_b0_bt_2_921600 = 23,
|
|
pbn_b0_bt_4_921600 = 24,
|
|
pbn_b0_bt_8_921600 = 25,
|
|
pbn_b1_1_115200 = 26,
|
|
pbn_b1_2_115200 = 27,
|
|
pbn_b1_4_115200 = 28,
|
|
pbn_b1_8_115200 = 29,
|
|
pbn_b1_16_115200 = 30,
|
|
pbn_b1_1_921600 = 31,
|
|
pbn_b1_2_921600 = 32,
|
|
pbn_b1_4_921600 = 33,
|
|
pbn_b1_8_921600 = 34,
|
|
pbn_b1_2_1250000 = 35,
|
|
pbn_b1_bt_1_115200 = 36,
|
|
pbn_b1_bt_2_115200 = 37,
|
|
pbn_b1_bt_4_115200 = 38,
|
|
pbn_b1_bt_2_921600 = 39,
|
|
pbn_b1_1_1382400 = 40,
|
|
pbn_b1_2_1382400 = 41,
|
|
pbn_b1_4_1382400 = 42,
|
|
pbn_b1_8_1382400 = 43,
|
|
pbn_b2_1_115200 = 44,
|
|
pbn_b2_2_115200 = 45,
|
|
pbn_b2_4_115200 = 46,
|
|
pbn_b2_8_115200 = 47,
|
|
pbn_b2_1_460800 = 48,
|
|
pbn_b2_4_460800 = 49,
|
|
pbn_b2_8_460800 = 50,
|
|
pbn_b2_16_460800 = 51,
|
|
pbn_b2_1_921600 = 52,
|
|
pbn_b2_4_921600 = 53,
|
|
pbn_b2_8_921600 = 54,
|
|
pbn_b2_8_1152000 = 55,
|
|
pbn_b2_bt_1_115200 = 56,
|
|
pbn_b2_bt_2_115200 = 57,
|
|
pbn_b2_bt_4_115200 = 58,
|
|
pbn_b2_bt_2_921600 = 59,
|
|
pbn_b2_bt_4_921600 = 60,
|
|
pbn_b3_2_115200 = 61,
|
|
pbn_b3_4_115200 = 62,
|
|
pbn_b3_8_115200 = 63,
|
|
pbn_b4_bt_2_921600 = 64,
|
|
pbn_b4_bt_4_921600 = 65,
|
|
pbn_b4_bt_8_921600 = 66,
|
|
pbn_panacom = 67,
|
|
pbn_panacom2 = 68,
|
|
pbn_panacom4 = 69,
|
|
pbn_plx_romulus = 70,
|
|
pbn_oxsemi = 71,
|
|
pbn_oxsemi_1_15625000 = 72,
|
|
pbn_oxsemi_2_15625000 = 73,
|
|
pbn_oxsemi_4_15625000 = 74,
|
|
pbn_oxsemi_8_15625000 = 75,
|
|
pbn_intel_i960 = 76,
|
|
pbn_sgi_ioc3 = 77,
|
|
pbn_computone_4 = 78,
|
|
pbn_computone_6 = 79,
|
|
pbn_computone_8 = 80,
|
|
pbn_sbsxrsio = 81,
|
|
pbn_pasemi_1682M = 82,
|
|
pbn_ni8430_2 = 83,
|
|
pbn_ni8430_4 = 84,
|
|
pbn_ni8430_8 = 85,
|
|
pbn_ni8430_16 = 86,
|
|
pbn_ADDIDATA_PCIe_1_3906250 = 87,
|
|
pbn_ADDIDATA_PCIe_2_3906250 = 88,
|
|
pbn_ADDIDATA_PCIe_4_3906250 = 89,
|
|
pbn_ADDIDATA_PCIe_8_3906250 = 90,
|
|
pbn_ce4100_1_115200 = 91,
|
|
pbn_omegapci = 92,
|
|
pbn_NETMOS9900_2s_115200 = 93,
|
|
pbn_brcm_trumanage = 94,
|
|
pbn_fintek_4 = 95,
|
|
pbn_fintek_8 = 96,
|
|
pbn_fintek_12 = 97,
|
|
pbn_fintek_F81504A = 98,
|
|
pbn_fintek_F81508A = 99,
|
|
pbn_fintek_F81512A = 100,
|
|
pbn_wch382_2 = 101,
|
|
pbn_wch384_4 = 102,
|
|
pbn_wch384_8 = 103,
|
|
pbn_sunix_pci_1s = 104,
|
|
pbn_sunix_pci_2s = 105,
|
|
pbn_sunix_pci_4s = 106,
|
|
pbn_sunix_pci_8s = 107,
|
|
pbn_sunix_pci_16s = 108,
|
|
pbn_titan_1_4000000 = 109,
|
|
pbn_titan_2_4000000 = 110,
|
|
pbn_titan_4_4000000 = 111,
|
|
pbn_titan_8_4000000 = 112,
|
|
pbn_moxa8250_2p = 113,
|
|
pbn_moxa8250_4p = 114,
|
|
pbn_moxa8250_8p = 115,
|
|
};
|
|
|
|
struct f815xxa_data {
|
|
spinlock_t lock;
|
|
int idx;
|
|
};
|
|
|
|
struct pasid_entry {
|
|
u64 val[8];
|
|
};
|
|
|
|
struct pasid_dir_entry {
|
|
u64 val;
|
|
};
|
|
|
|
struct drm_mode_obj_get_properties {
|
|
__u64 props_ptr;
|
|
__u64 prop_values_ptr;
|
|
__u32 count_props;
|
|
__u32 obj_id;
|
|
__u32 obj_type;
|
|
};
|
|
|
|
struct lri {
|
|
i915_reg_t reg;
|
|
u32 value;
|
|
};
|
|
|
|
enum {
|
|
INTEL_ADVANCED_CONTEXT = 0,
|
|
INTEL_LEGACY_32B_CONTEXT = 1,
|
|
INTEL_ADVANCED_AD_CONTEXT = 2,
|
|
INTEL_LEGACY_64B_CONTEXT = 3,
|
|
};
|
|
|
|
typedef u32 * (*wa_bb_func_t)(struct intel_engine_cs *, u32 *);
|
|
|
|
struct i915_power_well_desc_list {
|
|
const struct i915_power_well_desc *list;
|
|
u8 count;
|
|
};
|
|
|
|
struct swnode {
|
|
struct kobject kobj;
|
|
struct fwnode_handle fwnode;
|
|
const struct software_node *node;
|
|
int id;
|
|
struct ida child_ids;
|
|
struct list_head entry;
|
|
struct list_head children;
|
|
struct swnode *parent;
|
|
unsigned int allocated: 1;
|
|
unsigned int managed: 1;
|
|
};
|
|
|
|
struct software_node_ref_args {
|
|
const struct software_node *node;
|
|
unsigned int nargs;
|
|
u64 args[8];
|
|
};
|
|
|
|
typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t);
|
|
|
|
struct trace_event_raw_devres {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_devname;
|
|
struct device *dev;
|
|
const char *op;
|
|
void *node;
|
|
const char *name;
|
|
size_t size;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_devres {
|
|
u32 devname;
|
|
};
|
|
|
|
struct sg_scatter_hold {
|
|
unsigned short k_use_sg;
|
|
unsigned int sglist_len;
|
|
unsigned int bufflen;
|
|
struct page **pages;
|
|
int page_order;
|
|
char dio_in_use;
|
|
unsigned char cmd_opcode;
|
|
};
|
|
|
|
typedef struct sg_scatter_hold Sg_scatter_hold;
|
|
|
|
typedef struct sg_io_hdr sg_io_hdr_t;
|
|
|
|
struct sg_fd;
|
|
|
|
struct sg_request {
|
|
struct list_head entry;
|
|
struct sg_fd *parentfp;
|
|
Sg_scatter_hold data;
|
|
sg_io_hdr_t header;
|
|
unsigned char sense_b[96];
|
|
char res_used;
|
|
char orphan;
|
|
char sg_io_owned;
|
|
char done;
|
|
struct request *rq;
|
|
struct bio *bio;
|
|
struct execute_work ew;
|
|
};
|
|
|
|
typedef struct sg_request Sg_request;
|
|
|
|
struct sg_device;
|
|
|
|
struct sg_fd {
|
|
struct list_head sfd_siblings;
|
|
struct sg_device *parentdp;
|
|
wait_queue_head_t read_wait;
|
|
rwlock_t rq_list_lock;
|
|
struct mutex f_mutex;
|
|
int timeout;
|
|
int timeout_user;
|
|
Sg_scatter_hold reserve;
|
|
struct list_head rq_list;
|
|
struct fasync_struct *async_qp;
|
|
Sg_request req_arr[16];
|
|
char force_packid;
|
|
char cmd_q;
|
|
unsigned char next_cmd_len;
|
|
char keep_orphan;
|
|
char mmap_called;
|
|
char res_in_use;
|
|
struct kref f_ref;
|
|
struct execute_work ew;
|
|
};
|
|
|
|
typedef struct sg_fd Sg_fd;
|
|
|
|
struct sg_device {
|
|
struct scsi_device *device;
|
|
wait_queue_head_t open_wait;
|
|
struct mutex open_rel_lock;
|
|
int sg_tablesize;
|
|
u32 index;
|
|
struct list_head sfds;
|
|
rwlock_t sfd_lock;
|
|
atomic_t detaching;
|
|
bool exclude;
|
|
int open_cnt;
|
|
char sgdebug;
|
|
char name[32];
|
|
struct cdev *cdev;
|
|
struct kref d_ref;
|
|
};
|
|
|
|
struct sg_proc_deviter {
|
|
loff_t index;
|
|
size_t max;
|
|
};
|
|
|
|
typedef struct sg_device Sg_device;
|
|
|
|
struct sg_header {
|
|
int pack_len;
|
|
int reply_len;
|
|
int pack_id;
|
|
int result;
|
|
unsigned int twelve_byte: 1;
|
|
unsigned int target_status: 5;
|
|
unsigned int host_status: 8;
|
|
unsigned int driver_status: 8;
|
|
unsigned int other_flags: 10;
|
|
unsigned char sense_buffer[16];
|
|
};
|
|
|
|
struct sg_req_info {
|
|
char req_state;
|
|
char orphan;
|
|
char sg_io_owned;
|
|
char problem;
|
|
int pack_id;
|
|
void __attribute__((btf_type_tag("user"))) *usr_ptr;
|
|
unsigned int duration;
|
|
int unused;
|
|
};
|
|
|
|
typedef struct sg_req_info sg_req_info_t;
|
|
|
|
struct sg_scsi_id {
|
|
int host_no;
|
|
int channel;
|
|
int scsi_id;
|
|
int lun;
|
|
int scsi_type;
|
|
short h_cmd_per_lun;
|
|
short d_queue_depth;
|
|
int unused[2];
|
|
};
|
|
|
|
typedef struct sg_scsi_id sg_scsi_id_t;
|
|
|
|
struct compat_sg_req_info {
|
|
char req_state;
|
|
char orphan;
|
|
char sg_io_owned;
|
|
char problem;
|
|
int pack_id;
|
|
compat_uptr_t usr_ptr;
|
|
unsigned int duration;
|
|
int unused;
|
|
};
|
|
|
|
enum switchdev_notifier_type {
|
|
SWITCHDEV_FDB_ADD_TO_BRIDGE = 1,
|
|
SWITCHDEV_FDB_DEL_TO_BRIDGE = 2,
|
|
SWITCHDEV_FDB_ADD_TO_DEVICE = 3,
|
|
SWITCHDEV_FDB_DEL_TO_DEVICE = 4,
|
|
SWITCHDEV_FDB_OFFLOADED = 5,
|
|
SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6,
|
|
SWITCHDEV_PORT_OBJ_ADD = 7,
|
|
SWITCHDEV_PORT_OBJ_DEL = 8,
|
|
SWITCHDEV_PORT_ATTR_SET = 9,
|
|
SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10,
|
|
SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11,
|
|
SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12,
|
|
SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13,
|
|
SWITCHDEV_VXLAN_FDB_OFFLOADED = 14,
|
|
SWITCHDEV_BRPORT_OFFLOADED = 15,
|
|
SWITCHDEV_BRPORT_UNOFFLOADED = 16,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VXLAN_UNSPEC = 0,
|
|
IFLA_VXLAN_ID = 1,
|
|
IFLA_VXLAN_GROUP = 2,
|
|
IFLA_VXLAN_LINK = 3,
|
|
IFLA_VXLAN_LOCAL = 4,
|
|
IFLA_VXLAN_TTL = 5,
|
|
IFLA_VXLAN_TOS = 6,
|
|
IFLA_VXLAN_LEARNING = 7,
|
|
IFLA_VXLAN_AGEING = 8,
|
|
IFLA_VXLAN_LIMIT = 9,
|
|
IFLA_VXLAN_PORT_RANGE = 10,
|
|
IFLA_VXLAN_PROXY = 11,
|
|
IFLA_VXLAN_RSC = 12,
|
|
IFLA_VXLAN_L2MISS = 13,
|
|
IFLA_VXLAN_L3MISS = 14,
|
|
IFLA_VXLAN_PORT = 15,
|
|
IFLA_VXLAN_GROUP6 = 16,
|
|
IFLA_VXLAN_LOCAL6 = 17,
|
|
IFLA_VXLAN_UDP_CSUM = 18,
|
|
IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 19,
|
|
IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 20,
|
|
IFLA_VXLAN_REMCSUM_TX = 21,
|
|
IFLA_VXLAN_REMCSUM_RX = 22,
|
|
IFLA_VXLAN_GBP = 23,
|
|
IFLA_VXLAN_REMCSUM_NOPARTIAL = 24,
|
|
IFLA_VXLAN_COLLECT_METADATA = 25,
|
|
IFLA_VXLAN_LABEL = 26,
|
|
IFLA_VXLAN_GPE = 27,
|
|
IFLA_VXLAN_TTL_INHERIT = 28,
|
|
IFLA_VXLAN_DF = 29,
|
|
IFLA_VXLAN_VNIFILTER = 30,
|
|
__IFLA_VXLAN_MAX = 31,
|
|
};
|
|
|
|
struct vxlan_fdb {
|
|
struct hlist_node hlist;
|
|
struct callback_head rcu;
|
|
unsigned long updated;
|
|
unsigned long used;
|
|
struct list_head remotes;
|
|
u8 eth_addr[6];
|
|
u16 state;
|
|
__be32 vni;
|
|
u16 flags;
|
|
struct list_head nh_list;
|
|
struct nexthop __attribute__((btf_type_tag("rcu"))) *nh;
|
|
struct vxlan_dev __attribute__((btf_type_tag("rcu"))) *vdev;
|
|
};
|
|
|
|
struct vxlanhdr {
|
|
__be32 vx_flags;
|
|
__be32 vx_vni;
|
|
};
|
|
|
|
struct vxlanhdr_gpe {
|
|
u8 oam_flag: 1;
|
|
u8 reserved_flags1: 1;
|
|
u8 np_applied: 1;
|
|
u8 instance_applied: 1;
|
|
u8 version: 2;
|
|
u8 reserved_flags2: 2;
|
|
u8 reserved_flags3;
|
|
u8 reserved_flags4;
|
|
u8 next_protocol;
|
|
__be32 vx_vni;
|
|
};
|
|
|
|
struct vxlanhdr_gbp {
|
|
u8 vx_flags;
|
|
u8 reserved_flags1: 3;
|
|
u8 policy_applied: 1;
|
|
u8 reserved_flags2: 2;
|
|
u8 dont_learn: 1;
|
|
u8 reserved_flags3: 1;
|
|
__be16 policy_id;
|
|
__be32 vx_vni;
|
|
};
|
|
|
|
struct switchdev_notifier_info {
|
|
struct net_device *dev;
|
|
struct netlink_ext_ack *extack;
|
|
const void *ctx;
|
|
};
|
|
|
|
struct switchdev_notifier_vxlan_fdb_info {
|
|
struct switchdev_notifier_info info;
|
|
union vxlan_addr remote_ip;
|
|
__be16 remote_port;
|
|
__be32 remote_vni;
|
|
u32 remote_ifindex;
|
|
u8 eth_addr[6];
|
|
__be32 vni;
|
|
bool offloaded;
|
|
bool added_by_user;
|
|
};
|
|
|
|
struct ifla_vxlan_port_range {
|
|
__be16 low;
|
|
__be16 high;
|
|
};
|
|
|
|
struct usb_cdc_union_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 bMasterInterface0;
|
|
__u8 bSlaveInterface0;
|
|
};
|
|
|
|
struct usb_cdc_country_functional_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 iCountryCodeRelDate;
|
|
__le16 wCountyCode0;
|
|
};
|
|
|
|
struct usb_cdc_header_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__le16 bcdCDC;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_cdc_acm_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 bmCapabilities;
|
|
};
|
|
|
|
struct usb_cdc_ether_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 iMACAddress;
|
|
__le32 bmEthernetStatistics;
|
|
__le16 wMaxSegmentSize;
|
|
__le16 wNumberMCFilters;
|
|
__u8 bNumberPowerFilters;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_cdc_call_mgmt_descriptor {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 bmCapabilities;
|
|
__u8 bDataInterface;
|
|
};
|
|
|
|
struct usb_cdc_dmm_desc {
|
|
__u8 bFunctionLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubtype;
|
|
__u16 bcdVersion;
|
|
__le16 wMaxCommand;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_cdc_mdlm_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__le16 bcdVersion;
|
|
__u8 bGUID[16];
|
|
} __attribute__((packed));
|
|
|
|
struct usb_cdc_mdlm_detail_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 bGuidDescriptorType;
|
|
__u8 bDetailData[0];
|
|
};
|
|
|
|
struct usb_cdc_ncm_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__le16 bcdNcmVersion;
|
|
__u8 bmNetworkCapabilities;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_cdc_mbim_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__le16 bcdMBIMVersion;
|
|
__le16 wMaxControlMessage;
|
|
__u8 bNumberFilters;
|
|
__u8 bMaxFilterSize;
|
|
__le16 wMaxSegmentSize;
|
|
__u8 bmNetworkCapabilities;
|
|
} __attribute__((packed));
|
|
|
|
struct usb_cdc_mbim_extended_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__le16 bcdMBIMExtendedVersion;
|
|
__u8 bMaxOutstandingCommandMessages;
|
|
__le16 wMTU;
|
|
} __attribute__((packed));
|
|
|
|
struct set_config_request {
|
|
struct usb_device *udev;
|
|
int config;
|
|
struct work_struct work;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct api_context {
|
|
struct completion done;
|
|
int status;
|
|
};
|
|
|
|
struct usb_cdc_network_terminal_desc;
|
|
|
|
struct usb_cdc_obex_desc;
|
|
|
|
struct usb_cdc_parsed_header {
|
|
struct usb_cdc_union_desc *usb_cdc_union_desc;
|
|
struct usb_cdc_header_desc *usb_cdc_header_desc;
|
|
struct usb_cdc_call_mgmt_descriptor *usb_cdc_call_mgmt_descriptor;
|
|
struct usb_cdc_acm_descriptor *usb_cdc_acm_descriptor;
|
|
struct usb_cdc_country_functional_desc *usb_cdc_country_functional_desc;
|
|
struct usb_cdc_network_terminal_desc *usb_cdc_network_terminal_desc;
|
|
struct usb_cdc_ether_desc *usb_cdc_ether_desc;
|
|
struct usb_cdc_dmm_desc *usb_cdc_dmm_desc;
|
|
struct usb_cdc_mdlm_desc *usb_cdc_mdlm_desc;
|
|
struct usb_cdc_mdlm_detail_desc *usb_cdc_mdlm_detail_desc;
|
|
struct usb_cdc_obex_desc *usb_cdc_obex_desc;
|
|
struct usb_cdc_ncm_desc *usb_cdc_ncm_desc;
|
|
struct usb_cdc_mbim_desc *usb_cdc_mbim_desc;
|
|
struct usb_cdc_mbim_extended_desc *usb_cdc_mbim_extended_desc;
|
|
bool phonet_magic_present;
|
|
};
|
|
|
|
struct usb_cdc_network_terminal_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__u8 bEntityId;
|
|
__u8 iName;
|
|
__u8 bChannelIndex;
|
|
__u8 bPhysicalInterface;
|
|
};
|
|
|
|
struct usb_cdc_obex_desc {
|
|
__u8 bLength;
|
|
__u8 bDescriptorType;
|
|
__u8 bDescriptorSubType;
|
|
__le16 bcdVersion;
|
|
} __attribute__((packed));
|
|
|
|
struct pps_kinfo {
|
|
__u32 assert_sequence;
|
|
__u32 clear_sequence;
|
|
struct pps_ktime assert_tu;
|
|
struct pps_ktime clear_tu;
|
|
int current_mode;
|
|
};
|
|
|
|
struct pps_fdata {
|
|
struct pps_kinfo info;
|
|
struct pps_ktime timeout;
|
|
};
|
|
|
|
struct pps_bind_args {
|
|
int tsformat;
|
|
int edge;
|
|
int consumer;
|
|
};
|
|
|
|
struct pps_ktime_compat {
|
|
__s64 sec;
|
|
__s32 nsec;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct pps_kinfo_compat {
|
|
__u32 assert_sequence;
|
|
__u32 clear_sequence;
|
|
struct pps_ktime_compat assert_tu;
|
|
struct pps_ktime_compat clear_tu;
|
|
int current_mode;
|
|
} __attribute__((packed));
|
|
|
|
struct pps_fdata_compat {
|
|
struct pps_kinfo_compat info;
|
|
struct pps_ktime_compat timeout;
|
|
} __attribute__((packed));
|
|
|
|
enum sync {
|
|
DEFAULTSYNC = 0,
|
|
NOSYNC = 1,
|
|
FORCESYNC = 2,
|
|
};
|
|
|
|
struct log_header_core {
|
|
uint32_t magic;
|
|
uint32_t version;
|
|
uint64_t nr_regions;
|
|
};
|
|
|
|
struct log_header_disk;
|
|
|
|
struct log_c {
|
|
struct dm_target *ti;
|
|
int touched_dirtied;
|
|
int touched_cleaned;
|
|
int flush_failed;
|
|
uint32_t region_size;
|
|
unsigned int region_count;
|
|
region_t sync_count;
|
|
unsigned int bitset_uint32_count;
|
|
uint32_t *clean_bits;
|
|
uint32_t *sync_bits;
|
|
uint32_t *recovering_bits;
|
|
int sync_search;
|
|
enum sync sync;
|
|
struct dm_io_request io_req;
|
|
int log_dev_failed;
|
|
int log_dev_flush_failed;
|
|
struct dm_dev *log_dev;
|
|
struct log_header_core header;
|
|
struct dm_io_region header_location;
|
|
struct log_header_disk *disk_header;
|
|
};
|
|
|
|
struct log_header_disk {
|
|
__le32 magic;
|
|
__le32 version;
|
|
__le64 nr_regions;
|
|
};
|
|
|
|
struct quirks_list_struct {
|
|
struct hid_device_id hid_bl_item;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct bmof_priv {
|
|
union acpi_object *bmofdata;
|
|
struct bin_attribute bmof_bin_attr;
|
|
};
|
|
|
|
struct page_frag_1k {
|
|
void *va;
|
|
u16 offset;
|
|
bool pfmemalloc;
|
|
};
|
|
|
|
struct napi_alloc_cache {
|
|
struct page_frag_cache page;
|
|
struct page_frag_1k page_small;
|
|
unsigned int skb_count;
|
|
void *skb_cache[64];
|
|
};
|
|
|
|
struct skb_seq_state {
|
|
__u32 lower_offset;
|
|
__u32 upper_offset;
|
|
__u32 frag_idx;
|
|
__u32 stepped_offset;
|
|
struct sk_buff *root_skb;
|
|
struct sk_buff *cur_skb;
|
|
__u8 *frag_data;
|
|
__u32 frag_off;
|
|
};
|
|
|
|
struct skb_free_array {
|
|
unsigned int skb_count;
|
|
void *skb_array[16];
|
|
};
|
|
|
|
typedef int (*sendmsg_func)(struct sock *, struct msghdr *, struct kvec *, size_t, size_t);
|
|
|
|
typedef int (*sendpage_func)(struct sock *, struct page *, int, size_t, int);
|
|
|
|
struct ts_ops;
|
|
|
|
struct ts_state;
|
|
|
|
struct ts_config {
|
|
struct ts_ops *ops;
|
|
int flags;
|
|
unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *);
|
|
void (*finish)(struct ts_config *, struct ts_state *);
|
|
};
|
|
|
|
struct ts_ops {
|
|
const char *name;
|
|
struct ts_config * (*init)(const void *, unsigned int, gfp_t, int);
|
|
unsigned int (*find)(struct ts_config *, struct ts_state *);
|
|
void (*destroy)(struct ts_config *);
|
|
void * (*get_pattern)(struct ts_config *);
|
|
unsigned int (*get_pattern_len)(struct ts_config *);
|
|
struct module *owner;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct ts_state {
|
|
unsigned int offset;
|
|
char cb[48];
|
|
};
|
|
|
|
enum netlink_attribute_type {
|
|
NL_ATTR_TYPE_INVALID = 0,
|
|
NL_ATTR_TYPE_FLAG = 1,
|
|
NL_ATTR_TYPE_U8 = 2,
|
|
NL_ATTR_TYPE_U16 = 3,
|
|
NL_ATTR_TYPE_U32 = 4,
|
|
NL_ATTR_TYPE_U64 = 5,
|
|
NL_ATTR_TYPE_S8 = 6,
|
|
NL_ATTR_TYPE_S16 = 7,
|
|
NL_ATTR_TYPE_S32 = 8,
|
|
NL_ATTR_TYPE_S64 = 9,
|
|
NL_ATTR_TYPE_BINARY = 10,
|
|
NL_ATTR_TYPE_STRING = 11,
|
|
NL_ATTR_TYPE_NUL_STRING = 12,
|
|
NL_ATTR_TYPE_NESTED = 13,
|
|
NL_ATTR_TYPE_NESTED_ARRAY = 14,
|
|
NL_ATTR_TYPE_BITFIELD32 = 15,
|
|
};
|
|
|
|
enum netlink_policy_type_attr {
|
|
NL_POLICY_TYPE_ATTR_UNSPEC = 0,
|
|
NL_POLICY_TYPE_ATTR_TYPE = 1,
|
|
NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2,
|
|
NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3,
|
|
NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4,
|
|
NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5,
|
|
NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6,
|
|
NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7,
|
|
NL_POLICY_TYPE_ATTR_POLICY_IDX = 8,
|
|
NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9,
|
|
NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10,
|
|
NL_POLICY_TYPE_ATTR_PAD = 11,
|
|
NL_POLICY_TYPE_ATTR_MASK = 12,
|
|
__NL_POLICY_TYPE_ATTR_MAX = 13,
|
|
NL_POLICY_TYPE_ATTR_MAX = 12,
|
|
};
|
|
|
|
struct netlink_policy_dump_state {
|
|
unsigned int policy_idx;
|
|
unsigned int attr_idx;
|
|
unsigned int n_alloc;
|
|
struct {
|
|
const struct nla_policy *policy;
|
|
unsigned int maxtype;
|
|
} policies[0];
|
|
};
|
|
|
|
typedef void (*btf_trace_bpf_test_finish)(void *, int *);
|
|
|
|
struct prog_test_member1 {
|
|
int a;
|
|
};
|
|
|
|
struct prog_test_member {
|
|
struct prog_test_member1 m;
|
|
int c;
|
|
};
|
|
|
|
struct prog_test_ref_kfunc {
|
|
int a;
|
|
int b;
|
|
struct prog_test_member memb;
|
|
struct prog_test_ref_kfunc *next;
|
|
refcount_t cnt;
|
|
};
|
|
|
|
struct bpf_test_timer {
|
|
enum {
|
|
NO_PREEMPT = 0,
|
|
NO_MIGRATE = 1,
|
|
} mode;
|
|
u32 i;
|
|
u64 time_start;
|
|
u64 time_spent;
|
|
};
|
|
|
|
struct bpf_fentry_test_t {
|
|
struct bpf_fentry_test_t *a;
|
|
};
|
|
|
|
struct trace_event_raw_bpf_test_finish {
|
|
struct trace_entry ent;
|
|
int err;
|
|
char __data[0];
|
|
};
|
|
|
|
struct xdp_test_data {
|
|
struct xdp_buff *orig_ctx;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct xdp_rxq_info rxq;
|
|
struct net_device *dev;
|
|
struct page_pool *pp;
|
|
struct xdp_frame **frames;
|
|
struct sk_buff **skbs;
|
|
struct xdp_mem_info mem;
|
|
u32 batch_size;
|
|
u32 frame_cnt;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct xdp_page_head {
|
|
struct xdp_buff orig_ctx;
|
|
struct xdp_buff ctx;
|
|
struct xdp_frame frm;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_bpf_test_finish {};
|
|
|
|
struct prog_test_pass1 {
|
|
int x0;
|
|
struct {
|
|
int x1;
|
|
struct {
|
|
int x2;
|
|
struct {
|
|
int x3;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
struct prog_test_pass2 {
|
|
int len;
|
|
short arr1[4];
|
|
struct {
|
|
char arr2[4];
|
|
unsigned long arr3[8];
|
|
} x;
|
|
};
|
|
|
|
struct prog_test_fail1 {
|
|
void *p;
|
|
int x;
|
|
};
|
|
|
|
struct prog_test_fail2 {
|
|
int x8;
|
|
struct prog_test_pass1 x;
|
|
};
|
|
|
|
struct prog_test_fail3 {
|
|
int len;
|
|
char arr1[2];
|
|
char arr2[0];
|
|
};
|
|
|
|
struct bpf_raw_tp_test_run_info {
|
|
struct bpf_prog *prog;
|
|
void *ctx;
|
|
u32 retval;
|
|
};
|
|
|
|
struct bpf_sk_lookup {
|
|
union {
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
__u64 cookie;
|
|
};
|
|
__u32 family;
|
|
__u32 protocol;
|
|
__u32 remote_ip4;
|
|
__u32 remote_ip6[4];
|
|
__be16 remote_port;
|
|
__u32 local_ip4;
|
|
__u32 local_ip6[4];
|
|
__u32 local_port;
|
|
__u32 ingress_ifindex;
|
|
};
|
|
|
|
enum nfulnl_attr_config {
|
|
NFULA_CFG_UNSPEC = 0,
|
|
NFULA_CFG_CMD = 1,
|
|
NFULA_CFG_MODE = 2,
|
|
NFULA_CFG_NLBUFSIZ = 3,
|
|
NFULA_CFG_TIMEOUT = 4,
|
|
NFULA_CFG_QTHRESH = 5,
|
|
NFULA_CFG_FLAGS = 6,
|
|
__NFULA_CFG_MAX = 7,
|
|
};
|
|
|
|
enum nfulnl_msg_config_cmds {
|
|
NFULNL_CFG_CMD_NONE = 0,
|
|
NFULNL_CFG_CMD_BIND = 1,
|
|
NFULNL_CFG_CMD_UNBIND = 2,
|
|
NFULNL_CFG_CMD_PF_BIND = 3,
|
|
NFULNL_CFG_CMD_PF_UNBIND = 4,
|
|
};
|
|
|
|
enum nfulnl_msg_types {
|
|
NFULNL_MSG_PACKET = 0,
|
|
NFULNL_MSG_CONFIG = 1,
|
|
NFULNL_MSG_MAX = 2,
|
|
};
|
|
|
|
enum nfulnl_attr_type {
|
|
NFULA_UNSPEC = 0,
|
|
NFULA_PACKET_HDR = 1,
|
|
NFULA_MARK = 2,
|
|
NFULA_TIMESTAMP = 3,
|
|
NFULA_IFINDEX_INDEV = 4,
|
|
NFULA_IFINDEX_OUTDEV = 5,
|
|
NFULA_IFINDEX_PHYSINDEV = 6,
|
|
NFULA_IFINDEX_PHYSOUTDEV = 7,
|
|
NFULA_HWADDR = 8,
|
|
NFULA_PAYLOAD = 9,
|
|
NFULA_PREFIX = 10,
|
|
NFULA_UID = 11,
|
|
NFULA_SEQ = 12,
|
|
NFULA_SEQ_GLOBAL = 13,
|
|
NFULA_GID = 14,
|
|
NFULA_HWTYPE = 15,
|
|
NFULA_HWHEADER = 16,
|
|
NFULA_HWLEN = 17,
|
|
NFULA_CT = 18,
|
|
NFULA_CT_INFO = 19,
|
|
NFULA_VLAN = 20,
|
|
NFULA_L2HDR = 21,
|
|
__NFULA_MAX = 22,
|
|
};
|
|
|
|
enum nfulnl_vlan_attr {
|
|
NFULA_VLAN_UNSPEC = 0,
|
|
NFULA_VLAN_PROTO = 1,
|
|
NFULA_VLAN_TCI = 2,
|
|
__NFULA_VLAN_MAX = 3,
|
|
};
|
|
|
|
struct nfulnl_instance {
|
|
struct hlist_node hlist;
|
|
spinlock_t lock;
|
|
refcount_t use;
|
|
unsigned int qlen;
|
|
struct sk_buff *skb;
|
|
struct timer_list timer;
|
|
struct net *net;
|
|
netns_tracker ns_tracker;
|
|
struct user_namespace *peer_user_ns;
|
|
u32 peer_portid;
|
|
unsigned int flushtimeout;
|
|
unsigned int nlbufsiz;
|
|
unsigned int qthreshold;
|
|
u_int32_t copy_range;
|
|
u_int32_t seq;
|
|
u_int16_t group_num;
|
|
u_int16_t flags;
|
|
u_int8_t copy_mode;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct nfnl_log_net {
|
|
spinlock_t instances_lock;
|
|
struct hlist_head instance_table[16];
|
|
atomic_t global_seq;
|
|
};
|
|
|
|
struct iter_state {
|
|
struct seq_net_private p;
|
|
unsigned int bucket;
|
|
};
|
|
|
|
struct nfulnl_msg_packet_hdr {
|
|
__be16 hw_protocol;
|
|
__u8 hook;
|
|
__u8 _pad;
|
|
};
|
|
|
|
struct nfulnl_msg_packet_hw {
|
|
__be16 hw_addrlen;
|
|
__u16 _pad;
|
|
__u8 hw_addr[8];
|
|
};
|
|
|
|
struct nfulnl_msg_packet_timestamp {
|
|
__be64 sec;
|
|
__be64 usec;
|
|
};
|
|
|
|
struct nfulnl_msg_config_cmd {
|
|
__u8 command;
|
|
};
|
|
|
|
struct nfulnl_msg_config_mode {
|
|
__be32 copy_range;
|
|
__u8 copy_mode;
|
|
__u8 _pad;
|
|
} __attribute__((packed));
|
|
|
|
struct xt_nflog_info {
|
|
__u32 len;
|
|
__u16 group;
|
|
__u16 threshold;
|
|
__u16 flags;
|
|
__u16 pad;
|
|
char prefix[64];
|
|
};
|
|
|
|
struct tsq_tasklet {
|
|
struct tasklet_struct tasklet;
|
|
struct list_head head;
|
|
};
|
|
|
|
enum tsq_flags {
|
|
TSQF_THROTTLED = 1,
|
|
TSQF_QUEUED = 2,
|
|
TCPF_TSQ_DEFERRED = 4,
|
|
TCPF_WRITE_TIMER_DEFERRED = 8,
|
|
TCPF_DELACK_TIMER_DEFERRED = 16,
|
|
TCPF_MTU_REDUCED_DEFERRED = 32,
|
|
};
|
|
|
|
enum {
|
|
BPF_WRITE_HDR_TCP_CURRENT_MSS = 1,
|
|
BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2,
|
|
};
|
|
|
|
enum {
|
|
TCP_NO_QUEUE = 0,
|
|
TCP_RECV_QUEUE = 1,
|
|
TCP_SEND_QUEUE = 2,
|
|
TCP_QUEUES_NR = 3,
|
|
};
|
|
|
|
struct tcp_out_options {
|
|
u16 options;
|
|
u16 mss;
|
|
u8 ws;
|
|
u8 num_sack_blocks;
|
|
u8 hash_size;
|
|
u8 bpf_opt_len;
|
|
__u8 *hash_location;
|
|
__u32 tsval;
|
|
__u32 tsecr;
|
|
struct tcp_fastopen_cookie *fastopen_cookie;
|
|
struct mptcp_out_options mptcp;
|
|
};
|
|
|
|
struct ip6addrlbl_init_table {
|
|
const struct in6_addr *prefix;
|
|
int prefixlen;
|
|
u32 label;
|
|
};
|
|
|
|
enum {
|
|
IFAL_ADDRESS = 1,
|
|
IFAL_LABEL = 2,
|
|
__IFAL_MAX = 3,
|
|
};
|
|
|
|
struct ip6addrlbl_entry {
|
|
struct in6_addr prefix;
|
|
int prefixlen;
|
|
int ifindex;
|
|
int addrtype;
|
|
u32 label;
|
|
struct hlist_node list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ifaddrlblmsg {
|
|
__u8 ifal_family;
|
|
__u8 __ifal_reserved;
|
|
__u8 ifal_prefixlen;
|
|
__u8 ifal_flags;
|
|
__u32 ifal_index;
|
|
__u32 ifal_seq;
|
|
};
|
|
|
|
struct michael_mic_ctx {
|
|
u32 l;
|
|
u32 r;
|
|
};
|
|
|
|
struct mcs_group___2 {
|
|
u16 flags;
|
|
u8 streams;
|
|
u8 shift;
|
|
u8 bw;
|
|
u16 duration[10];
|
|
};
|
|
|
|
enum minstrel_sample_type {
|
|
MINSTREL_SAMPLE_TYPE_INC = 0,
|
|
MINSTREL_SAMPLE_TYPE_JUMP = 1,
|
|
MINSTREL_SAMPLE_TYPE_SLOW = 2,
|
|
__MINSTREL_SAMPLE_TYPE_MAX = 3,
|
|
};
|
|
|
|
struct minstrel_sample_category {
|
|
u8 sample_group;
|
|
u16 sample_rates[5];
|
|
u16 cur_sample_rates[5];
|
|
};
|
|
|
|
struct minstrel_rate_stats {
|
|
u16 attempts;
|
|
u16 last_attempts;
|
|
u16 success;
|
|
u16 last_success;
|
|
u32 att_hist;
|
|
u32 succ_hist;
|
|
u16 prob_avg;
|
|
u16 prob_avg_1;
|
|
u8 retry_count;
|
|
u8 retry_count_rtscts;
|
|
bool retry_updated;
|
|
};
|
|
|
|
struct minstrel_mcs_group_data {
|
|
u8 index;
|
|
u8 column;
|
|
u16 max_group_tp_rate[4];
|
|
u16 max_group_prob_rate;
|
|
struct minstrel_rate_stats rates[10];
|
|
};
|
|
|
|
struct minstrel_ht_sta {
|
|
struct ieee80211_sta *sta;
|
|
unsigned int ampdu_len;
|
|
unsigned int ampdu_packets;
|
|
unsigned int avg_ampdu_len;
|
|
u16 max_tp_rate[4];
|
|
u16 max_prob_rate;
|
|
unsigned long last_stats_update;
|
|
unsigned int overhead;
|
|
unsigned int overhead_rtscts;
|
|
unsigned int overhead_legacy;
|
|
unsigned int overhead_legacy_rtscts;
|
|
unsigned int total_packets;
|
|
unsigned int sample_packets;
|
|
u32 tx_flags;
|
|
bool use_short_preamble;
|
|
u8 band;
|
|
u8 sample_seq;
|
|
u16 sample_rate;
|
|
unsigned long sample_time;
|
|
struct minstrel_sample_category sample[3];
|
|
u16 supported[42];
|
|
struct minstrel_mcs_group_data groups[42];
|
|
};
|
|
|
|
struct minstrel_priv {
|
|
struct ieee80211_hw *hw;
|
|
unsigned int cw_min;
|
|
unsigned int cw_max;
|
|
unsigned int max_retry;
|
|
unsigned int segment_size;
|
|
unsigned int update_interval;
|
|
u8 cck_rates[4];
|
|
u8 ofdm_rates[48];
|
|
};
|
|
|
|
enum {
|
|
MPTCP_PM_ATTR_UNSPEC = 0,
|
|
MPTCP_PM_ATTR_ADDR = 1,
|
|
MPTCP_PM_ATTR_RCV_ADD_ADDRS = 2,
|
|
MPTCP_PM_ATTR_SUBFLOWS = 3,
|
|
MPTCP_PM_ATTR_TOKEN = 4,
|
|
MPTCP_PM_ATTR_LOC_ID = 5,
|
|
MPTCP_PM_ATTR_ADDR_REMOTE = 6,
|
|
__MPTCP_PM_ATTR_MAX = 7,
|
|
};
|
|
|
|
struct mptcp_pm_addr_entry {
|
|
struct list_head list;
|
|
struct mptcp_addr_info addr;
|
|
u8 flags;
|
|
int ifindex;
|
|
struct socket *lsk;
|
|
};
|
|
|
|
struct x86_cpu_desc {
|
|
u8 x86_family;
|
|
u8 x86_vendor;
|
|
u8 x86_model;
|
|
u8 x86_stepping;
|
|
u32 x86_microcode_rev;
|
|
};
|
|
|
|
struct perf_pmu_format_hybrid_attr {
|
|
struct device_attribute attr;
|
|
u64 pmu_type;
|
|
};
|
|
|
|
enum {
|
|
LBR_FORMAT_32 = 0,
|
|
LBR_FORMAT_LIP = 1,
|
|
LBR_FORMAT_EIP = 2,
|
|
LBR_FORMAT_EIP_FLAGS = 3,
|
|
LBR_FORMAT_EIP_FLAGS2 = 4,
|
|
LBR_FORMAT_INFO = 5,
|
|
LBR_FORMAT_TIME = 6,
|
|
LBR_FORMAT_INFO2 = 7,
|
|
LBR_FORMAT_MAX_KNOWN = 7,
|
|
};
|
|
|
|
enum pmc_type {
|
|
KVM_PMC_GP = 0,
|
|
KVM_PMC_FIXED = 1,
|
|
};
|
|
|
|
enum kvm_apic_logical_mode {
|
|
KVM_APIC_MODE_SW_DISABLED = 0,
|
|
KVM_APIC_MODE_XAPIC_CLUSTER = 1,
|
|
KVM_APIC_MODE_XAPIC_FLAT = 2,
|
|
KVM_APIC_MODE_X2APIC = 3,
|
|
KVM_APIC_MODE_MAP_DISABLED = 4,
|
|
};
|
|
|
|
enum hv_tsc_page_status {
|
|
HV_TSC_PAGE_UNSET = 0,
|
|
HV_TSC_PAGE_GUEST_CHANGED = 1,
|
|
HV_TSC_PAGE_HOST_CHANGED = 2,
|
|
HV_TSC_PAGE_SET = 3,
|
|
HV_TSC_PAGE_BROKEN = 4,
|
|
};
|
|
|
|
enum pfn_cache_usage {
|
|
KVM_GUEST_USES_PFN = 1,
|
|
KVM_HOST_USES_PFN = 2,
|
|
KVM_GUEST_AND_HOST_USE_PFN = 3,
|
|
};
|
|
|
|
enum kvm_irqchip_mode {
|
|
KVM_IRQCHIP_NONE = 0,
|
|
KVM_IRQCHIP_KERNEL = 1,
|
|
KVM_IRQCHIP_SPLIT = 2,
|
|
};
|
|
|
|
enum kvm_stat_kind {
|
|
KVM_STAT_VM = 0,
|
|
KVM_STAT_VCPU = 1,
|
|
};
|
|
|
|
struct kvm_vcpu;
|
|
|
|
struct kvm_pmc {
|
|
enum pmc_type type;
|
|
u8 idx;
|
|
bool is_paused;
|
|
bool intr;
|
|
u64 counter;
|
|
u64 prev_counter;
|
|
u64 eventsel;
|
|
struct perf_event *perf_event;
|
|
struct kvm_vcpu *vcpu;
|
|
u64 current_config;
|
|
};
|
|
|
|
struct kvm_pmu {
|
|
unsigned int nr_arch_gp_counters;
|
|
unsigned int nr_arch_fixed_counters;
|
|
unsigned int available_event_types;
|
|
u64 fixed_ctr_ctrl;
|
|
u64 fixed_ctr_ctrl_mask;
|
|
u64 global_ctrl;
|
|
u64 global_status;
|
|
u64 counter_bitmask[2];
|
|
u64 global_ctrl_mask;
|
|
u64 global_ovf_ctrl_mask;
|
|
u64 reserved_bits;
|
|
u64 raw_event_mask;
|
|
u8 version;
|
|
struct kvm_pmc gp_counters[8];
|
|
struct kvm_pmc fixed_counters[3];
|
|
struct irq_work irq_work;
|
|
union {
|
|
unsigned long reprogram_pmi[1];
|
|
atomic64_t __reprogram_pmi;
|
|
};
|
|
unsigned long all_valid_pmc_idx[1];
|
|
unsigned long pmc_in_use[1];
|
|
u64 ds_area;
|
|
u64 pebs_enable;
|
|
u64 pebs_enable_mask;
|
|
u64 pebs_data_cfg;
|
|
u64 pebs_data_cfg_mask;
|
|
u64 host_cross_mapped_mask;
|
|
bool need_cleanup;
|
|
u8 event_count;
|
|
};
|
|
|
|
typedef u64 gpa_t;
|
|
|
|
struct kvm_mmio_fragment {
|
|
gpa_t gpa;
|
|
void *data;
|
|
unsigned int len;
|
|
};
|
|
|
|
struct kvm_lapic;
|
|
|
|
struct kvm_page_fault;
|
|
|
|
struct x86_exception;
|
|
|
|
struct kvm_mmu_page;
|
|
|
|
typedef unsigned long gva_t;
|
|
|
|
typedef u64 hpa_t;
|
|
|
|
struct kvm_mmu_root_info {
|
|
gpa_t pgd;
|
|
hpa_t hpa;
|
|
};
|
|
|
|
union kvm_mmu_page_role {
|
|
u32 word;
|
|
struct {
|
|
unsigned int level: 4;
|
|
unsigned int has_4_byte_gpte: 1;
|
|
unsigned int quadrant: 2;
|
|
unsigned int direct: 1;
|
|
unsigned int access: 3;
|
|
unsigned int invalid: 1;
|
|
unsigned int efer_nx: 1;
|
|
unsigned int cr0_wp: 1;
|
|
unsigned int smep_andnot_wp: 1;
|
|
unsigned int smap_andnot_wp: 1;
|
|
unsigned int ad_disabled: 1;
|
|
unsigned int guest_mode: 1;
|
|
unsigned int passthrough: 1;
|
|
char: 5;
|
|
unsigned int smm: 8;
|
|
};
|
|
};
|
|
|
|
union kvm_mmu_extended_role {
|
|
u32 word;
|
|
struct {
|
|
unsigned int valid: 1;
|
|
unsigned int execonly: 1;
|
|
unsigned int cr4_pse: 1;
|
|
unsigned int cr4_pke: 1;
|
|
unsigned int cr4_smap: 1;
|
|
unsigned int cr4_smep: 1;
|
|
unsigned int cr4_la57: 1;
|
|
unsigned int efer_lma: 1;
|
|
};
|
|
};
|
|
|
|
union kvm_cpu_role {
|
|
u64 as_u64;
|
|
struct {
|
|
union kvm_mmu_page_role base;
|
|
union kvm_mmu_extended_role ext;
|
|
};
|
|
};
|
|
|
|
struct rsvd_bits_validate {
|
|
u64 rsvd_bits_mask[10];
|
|
u64 bad_mt_xwr;
|
|
};
|
|
|
|
struct kvm_mmu {
|
|
unsigned long (*get_guest_pgd)(struct kvm_vcpu *);
|
|
u64 (*get_pdptr)(struct kvm_vcpu *, int);
|
|
int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *);
|
|
void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *);
|
|
gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *);
|
|
int (*sync_page)(struct kvm_vcpu *, struct kvm_mmu_page *);
|
|
void (*invlpg)(struct kvm_vcpu *, gva_t, hpa_t);
|
|
struct kvm_mmu_root_info root;
|
|
union kvm_cpu_role cpu_role;
|
|
union kvm_mmu_page_role root_role;
|
|
u32 pkru_mask;
|
|
struct kvm_mmu_root_info prev_roots[3];
|
|
u8 permissions[16];
|
|
u64 *pae_root;
|
|
u64 *pml4_root;
|
|
u64 *pml5_root;
|
|
struct rsvd_bits_validate shadow_zero_check;
|
|
struct rsvd_bits_validate guest_rsvd_check;
|
|
u64 pdptrs[4];
|
|
};
|
|
|
|
struct kvm_mmu_memory_cache {
|
|
int nobjs;
|
|
gfp_t gfp_zero;
|
|
gfp_t gfp_custom;
|
|
struct kmem_cache *kmem_cache;
|
|
int capacity;
|
|
void **objects;
|
|
};
|
|
|
|
struct kvm_pio_request {
|
|
unsigned long linear_rip;
|
|
unsigned long count;
|
|
int in;
|
|
int port;
|
|
int size;
|
|
};
|
|
|
|
struct kvm_queued_exception {
|
|
bool pending;
|
|
bool injected;
|
|
bool has_error_code;
|
|
u8 vector;
|
|
u32 error_code;
|
|
unsigned long payload;
|
|
bool has_payload;
|
|
};
|
|
|
|
struct kvm_queued_interrupt {
|
|
bool injected;
|
|
bool soft;
|
|
u8 nr;
|
|
};
|
|
|
|
struct kvm_hypervisor_cpuid {
|
|
u32 base;
|
|
u32 limit;
|
|
};
|
|
|
|
struct x86_emulate_ctxt;
|
|
|
|
typedef u64 hfn_t;
|
|
|
|
typedef hfn_t kvm_pfn_t;
|
|
|
|
struct kvm_memory_slot;
|
|
|
|
struct kvm;
|
|
|
|
struct gfn_to_pfn_cache {
|
|
u64 generation;
|
|
gpa_t gpa;
|
|
unsigned long uhva;
|
|
struct kvm_memory_slot *memslot;
|
|
struct kvm *kvm;
|
|
struct kvm_vcpu *vcpu;
|
|
struct list_head list;
|
|
rwlock_t lock;
|
|
struct mutex refresh_lock;
|
|
void *khva;
|
|
kvm_pfn_t pfn;
|
|
enum pfn_cache_usage usage;
|
|
bool active;
|
|
bool valid;
|
|
};
|
|
|
|
struct gfn_to_hva_cache {
|
|
u64 generation;
|
|
gpa_t gpa;
|
|
unsigned long hva;
|
|
unsigned long len;
|
|
struct kvm_memory_slot *memslot;
|
|
};
|
|
|
|
struct kvm_mtrr_range {
|
|
u64 base;
|
|
u64 mask;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct kvm_mtrr {
|
|
struct kvm_mtrr_range var_ranges[8];
|
|
mtrr_type fixed_ranges[88];
|
|
u64 deftype;
|
|
struct list_head head;
|
|
};
|
|
|
|
typedef u64 gfn_t;
|
|
|
|
struct kvm_vcpu_xen {
|
|
u64 hypercall_rip;
|
|
u32 current_runstate;
|
|
u8 upcall_vector;
|
|
struct gfn_to_pfn_cache vcpu_info_cache;
|
|
struct gfn_to_pfn_cache vcpu_time_info_cache;
|
|
struct gfn_to_pfn_cache runstate_cache;
|
|
struct gfn_to_pfn_cache runstate2_cache;
|
|
u64 last_steal;
|
|
u64 runstate_entry_time;
|
|
u64 runstate_times[4];
|
|
unsigned long evtchn_pending_sel;
|
|
u32 vcpu_id;
|
|
u32 timer_virq;
|
|
u64 timer_expires;
|
|
atomic_t timer_pending;
|
|
struct hrtimer timer;
|
|
int poll_evtchn;
|
|
struct timer_list poll_timer;
|
|
struct kvm_hypervisor_cpuid cpuid;
|
|
};
|
|
|
|
struct kvm_cpuid_entry2;
|
|
|
|
struct kvm_vcpu_hv;
|
|
|
|
struct kvm_vcpu_arch {
|
|
unsigned long regs[17];
|
|
u32 regs_avail;
|
|
u32 regs_dirty;
|
|
unsigned long cr0;
|
|
unsigned long cr0_guest_owned_bits;
|
|
unsigned long cr2;
|
|
unsigned long cr3;
|
|
unsigned long cr4;
|
|
unsigned long cr4_guest_owned_bits;
|
|
unsigned long cr4_guest_rsvd_bits;
|
|
unsigned long cr8;
|
|
u32 host_pkru;
|
|
u32 pkru;
|
|
u32 hflags;
|
|
u64 efer;
|
|
u64 apic_base;
|
|
struct kvm_lapic *apic;
|
|
bool load_eoi_exitmap_pending;
|
|
unsigned long ioapic_handled_vectors[4];
|
|
unsigned long apic_attention;
|
|
int32_t apic_arb_prio;
|
|
int mp_state;
|
|
u64 ia32_misc_enable_msr;
|
|
u64 smbase;
|
|
u64 smi_count;
|
|
bool at_instruction_boundary;
|
|
bool tpr_access_reporting;
|
|
bool xsaves_enabled;
|
|
bool xfd_no_write_intercept;
|
|
u64 ia32_xss;
|
|
u64 microcode_version;
|
|
u64 arch_capabilities;
|
|
u64 perf_capabilities;
|
|
struct kvm_mmu *mmu;
|
|
struct kvm_mmu root_mmu;
|
|
struct kvm_mmu guest_mmu;
|
|
struct kvm_mmu nested_mmu;
|
|
struct kvm_mmu *walk_mmu;
|
|
struct kvm_mmu_memory_cache mmu_pte_list_desc_cache;
|
|
struct kvm_mmu_memory_cache mmu_shadow_page_cache;
|
|
struct kvm_mmu_memory_cache mmu_shadowed_info_cache;
|
|
struct kvm_mmu_memory_cache mmu_page_header_cache;
|
|
struct fpu_guest guest_fpu;
|
|
u64 xcr0;
|
|
u64 guest_supported_xcr0;
|
|
struct kvm_pio_request pio;
|
|
void *pio_data;
|
|
void *sev_pio_data;
|
|
unsigned int sev_pio_count;
|
|
u8 event_exit_inst_len;
|
|
bool exception_from_userspace;
|
|
struct kvm_queued_exception exception;
|
|
struct kvm_queued_exception exception_vmexit;
|
|
struct kvm_queued_interrupt interrupt;
|
|
int halt_request;
|
|
int cpuid_nent;
|
|
struct kvm_cpuid_entry2 *cpuid_entries;
|
|
struct kvm_hypervisor_cpuid kvm_cpuid;
|
|
u64 reserved_gpa_bits;
|
|
int maxphyaddr;
|
|
struct x86_emulate_ctxt *emulate_ctxt;
|
|
bool emulate_regs_need_sync_to_vcpu;
|
|
bool emulate_regs_need_sync_from_vcpu;
|
|
int (*complete_userspace_io)(struct kvm_vcpu *);
|
|
gpa_t time;
|
|
struct pvclock_vcpu_time_info hv_clock;
|
|
unsigned int hw_tsc_khz;
|
|
struct gfn_to_pfn_cache pv_time;
|
|
bool pvclock_set_guest_stopped_request;
|
|
struct {
|
|
u8 preempted;
|
|
u64 msr_val;
|
|
u64 last_steal;
|
|
struct gfn_to_hva_cache cache;
|
|
} st;
|
|
u64 l1_tsc_offset;
|
|
u64 tsc_offset;
|
|
u64 last_guest_tsc;
|
|
u64 last_host_tsc;
|
|
u64 tsc_offset_adjustment;
|
|
u64 this_tsc_nsec;
|
|
u64 this_tsc_write;
|
|
u64 this_tsc_generation;
|
|
bool tsc_catchup;
|
|
bool tsc_always_catchup;
|
|
s8 virtual_tsc_shift;
|
|
u32 virtual_tsc_mult;
|
|
u32 virtual_tsc_khz;
|
|
s64 ia32_tsc_adjust_msr;
|
|
u64 msr_ia32_power_ctl;
|
|
u64 l1_tsc_scaling_ratio;
|
|
u64 tsc_scaling_ratio;
|
|
atomic_t nmi_queued;
|
|
unsigned int nmi_pending;
|
|
bool nmi_injected;
|
|
bool smi_pending;
|
|
u8 handling_intr_from_guest;
|
|
struct kvm_mtrr mtrr_state;
|
|
u64 pat;
|
|
unsigned int switch_db_regs;
|
|
unsigned long db[4];
|
|
unsigned long dr6;
|
|
unsigned long dr7;
|
|
unsigned long eff_db[4];
|
|
unsigned long guest_debug_dr7;
|
|
u64 msr_platform_info;
|
|
u64 msr_misc_features_enables;
|
|
u64 mcg_cap;
|
|
u64 mcg_status;
|
|
u64 mcg_ctl;
|
|
u64 mcg_ext_ctl;
|
|
u64 *mce_banks;
|
|
u64 *mci_ctl2_banks;
|
|
u64 mmio_gva;
|
|
unsigned int mmio_access;
|
|
gfn_t mmio_gfn;
|
|
u64 mmio_gen;
|
|
struct kvm_pmu pmu;
|
|
unsigned long singlestep_rip;
|
|
bool hyperv_enabled;
|
|
struct kvm_vcpu_hv *hyperv;
|
|
struct kvm_vcpu_xen xen;
|
|
cpumask_var_t wbinvd_dirty_mask;
|
|
unsigned long last_retry_eip;
|
|
unsigned long last_retry_addr;
|
|
struct {
|
|
bool halted;
|
|
gfn_t gfns[64];
|
|
struct gfn_to_hva_cache data;
|
|
u64 msr_en_val;
|
|
u64 msr_int_val;
|
|
u16 vec;
|
|
u32 id;
|
|
bool send_user_only;
|
|
u32 host_apf_flags;
|
|
bool delivery_as_pf_vmexit;
|
|
bool pageready_pending;
|
|
} apf;
|
|
struct {
|
|
u64 length;
|
|
u64 status;
|
|
} osvw;
|
|
struct {
|
|
u64 msr_val;
|
|
struct gfn_to_hva_cache data;
|
|
} pv_eoi;
|
|
u64 msr_kvm_poll_control;
|
|
bool write_fault_to_shadow_pgtable;
|
|
unsigned long exit_qualification;
|
|
struct {
|
|
bool pv_unhalted;
|
|
} pv;
|
|
int pending_ioapic_eoi;
|
|
int pending_external_vector;
|
|
bool preempted_in_kernel;
|
|
bool l1tf_flush_l1d;
|
|
int last_vmentry_cpu;
|
|
u64 msr_hwcr;
|
|
struct {
|
|
u32 features;
|
|
bool enforce;
|
|
} pv_cpuid;
|
|
bool guest_state_protected;
|
|
bool pdptrs_from_userspace;
|
|
};
|
|
|
|
struct kvm_vcpu_stat_generic {
|
|
u64 halt_successful_poll;
|
|
u64 halt_attempted_poll;
|
|
u64 halt_poll_invalid;
|
|
u64 halt_wakeup;
|
|
u64 halt_poll_success_ns;
|
|
u64 halt_poll_fail_ns;
|
|
u64 halt_wait_ns;
|
|
u64 halt_poll_success_hist[32];
|
|
u64 halt_poll_fail_hist[32];
|
|
u64 halt_wait_hist[32];
|
|
u64 blocking;
|
|
};
|
|
|
|
struct kvm_vcpu_stat {
|
|
struct kvm_vcpu_stat_generic generic;
|
|
u64 pf_taken;
|
|
u64 pf_fixed;
|
|
u64 pf_emulate;
|
|
u64 pf_spurious;
|
|
u64 pf_fast;
|
|
u64 pf_mmio_spte_created;
|
|
u64 pf_guest;
|
|
u64 tlb_flush;
|
|
u64 invlpg;
|
|
u64 exits;
|
|
u64 io_exits;
|
|
u64 mmio_exits;
|
|
u64 signal_exits;
|
|
u64 irq_window_exits;
|
|
u64 nmi_window_exits;
|
|
u64 l1d_flush;
|
|
u64 halt_exits;
|
|
u64 request_irq_exits;
|
|
u64 irq_exits;
|
|
u64 host_state_reload;
|
|
u64 fpu_reload;
|
|
u64 insn_emulation;
|
|
u64 insn_emulation_fail;
|
|
u64 hypercalls;
|
|
u64 irq_injections;
|
|
u64 nmi_injections;
|
|
u64 req_event;
|
|
u64 nested_run;
|
|
u64 directed_yield_attempted;
|
|
u64 directed_yield_successful;
|
|
u64 preemption_reported;
|
|
u64 preemption_other;
|
|
u64 guest_mode;
|
|
u64 notify_window_exits;
|
|
};
|
|
|
|
struct kvm_dirty_gfn;
|
|
|
|
struct kvm_dirty_ring {
|
|
u32 dirty_index;
|
|
u32 reset_index;
|
|
u32 size;
|
|
u32 soft_limit;
|
|
struct kvm_dirty_gfn *dirty_gfns;
|
|
int index;
|
|
};
|
|
|
|
struct kvm_run;
|
|
|
|
struct kvm_vcpu {
|
|
struct kvm *kvm;
|
|
int cpu;
|
|
int vcpu_id;
|
|
int vcpu_idx;
|
|
int ____srcu_idx;
|
|
int mode;
|
|
u64 requests;
|
|
unsigned long guest_debug;
|
|
struct mutex mutex;
|
|
struct kvm_run *run;
|
|
struct rcuwait wait;
|
|
struct pid __attribute__((btf_type_tag("rcu"))) *pid;
|
|
int sigset_active;
|
|
sigset_t sigset;
|
|
unsigned int halt_poll_ns;
|
|
bool valid_wakeup;
|
|
int mmio_needed;
|
|
int mmio_read_completed;
|
|
int mmio_is_write;
|
|
int mmio_cur_fragment;
|
|
int mmio_nr_fragments;
|
|
struct kvm_mmio_fragment mmio_fragments[2];
|
|
bool preempted;
|
|
bool ready;
|
|
struct kvm_vcpu_arch arch;
|
|
struct kvm_vcpu_stat stat;
|
|
char stats_id[48];
|
|
struct kvm_dirty_ring dirty_ring;
|
|
struct kvm_memory_slot *last_used_slot;
|
|
u64 last_used_slot_gen;
|
|
};
|
|
|
|
struct kvm_memslots {
|
|
u64 generation;
|
|
atomic_long_t last_used_slot;
|
|
struct rb_root_cached hva_tree;
|
|
struct rb_root gfn_tree;
|
|
struct hlist_head id_hash[128];
|
|
int node_idx;
|
|
};
|
|
|
|
struct kvm_vm_stat_generic {
|
|
u64 remote_tlb_flush;
|
|
u64 remote_tlb_flush_requests;
|
|
};
|
|
|
|
struct kvm_vm_stat {
|
|
struct kvm_vm_stat_generic generic;
|
|
u64 mmu_shadow_zapped;
|
|
u64 mmu_pte_write;
|
|
u64 mmu_pde_zapped;
|
|
u64 mmu_flooded;
|
|
u64 mmu_recycled;
|
|
u64 mmu_cache_miss;
|
|
u64 mmu_unsync;
|
|
union {
|
|
struct {
|
|
atomic64_t pages_4k;
|
|
atomic64_t pages_2m;
|
|
atomic64_t pages_1g;
|
|
};
|
|
atomic64_t pages[3];
|
|
};
|
|
u64 nx_lpage_splits;
|
|
u64 max_mmu_page_hash_collisions;
|
|
u64 max_mmu_rmap_size;
|
|
};
|
|
|
|
struct kvm_page_track_notifier_node {
|
|
struct hlist_node node;
|
|
void (*track_write)(struct kvm_vcpu *, gpa_t, const u8 *, int, struct kvm_page_track_notifier_node *);
|
|
void (*track_flush_slot)(struct kvm *, struct kvm_memory_slot *, struct kvm_page_track_notifier_node *);
|
|
};
|
|
|
|
struct kvm_page_track_notifier_head {
|
|
struct srcu_struct track_srcu;
|
|
struct hlist_head track_notifier_list;
|
|
};
|
|
|
|
struct iommu_domain;
|
|
|
|
struct kvm_pic;
|
|
|
|
struct kvm_ioapic;
|
|
|
|
struct kvm_pit;
|
|
|
|
struct kvm_xen_hvm_config {
|
|
__u32 flags;
|
|
__u32 msr;
|
|
__u64 blob_addr_32;
|
|
__u64 blob_addr_64;
|
|
__u8 blob_size_32;
|
|
__u8 blob_size_64;
|
|
__u8 pad2[30];
|
|
};
|
|
|
|
struct ms_hyperv_tsc_page {
|
|
volatile u32 tsc_sequence;
|
|
u32 reserved1;
|
|
volatile u64 tsc_scale;
|
|
volatile s64 tsc_offset;
|
|
};
|
|
|
|
struct kvm_hv_syndbg {
|
|
struct {
|
|
u64 control;
|
|
u64 status;
|
|
u64 send_page;
|
|
u64 recv_page;
|
|
u64 pending_page;
|
|
} control;
|
|
u64 options;
|
|
};
|
|
|
|
struct hv_partition_assist_pg;
|
|
|
|
struct kvm_hv {
|
|
struct mutex hv_lock;
|
|
u64 hv_guest_os_id;
|
|
u64 hv_hypercall;
|
|
u64 hv_tsc_page;
|
|
enum hv_tsc_page_status hv_tsc_page_status;
|
|
u64 hv_crash_param[5];
|
|
u64 hv_crash_ctl;
|
|
struct ms_hyperv_tsc_page tsc_ref;
|
|
struct idr conn_to_evt;
|
|
u64 hv_reenlightenment_control;
|
|
u64 hv_tsc_emulation_control;
|
|
u64 hv_tsc_emulation_status;
|
|
u64 hv_invtsc_control;
|
|
atomic_t num_mismatched_vp_indexes;
|
|
unsigned int synic_auto_eoi_used;
|
|
struct hv_partition_assist_pg *hv_pa_pg;
|
|
struct kvm_hv_syndbg hv_syndbg;
|
|
};
|
|
|
|
struct kvm_xen {
|
|
struct mutex xen_lock;
|
|
u32 xen_version;
|
|
bool long_mode;
|
|
bool runstate_update_flag;
|
|
u8 upcall_vector;
|
|
struct gfn_to_pfn_cache shinfo_cache;
|
|
struct idr evtchn_ports;
|
|
unsigned long poll_mask[16];
|
|
};
|
|
|
|
struct kvm_apic_map;
|
|
|
|
struct kvm_x86_msr_filter;
|
|
|
|
struct kvm_x86_pmu_event_filter;
|
|
|
|
struct kvm_arch {
|
|
unsigned long n_used_mmu_pages;
|
|
unsigned long n_requested_mmu_pages;
|
|
unsigned long n_max_mmu_pages;
|
|
unsigned int indirect_shadow_pages;
|
|
u8 mmu_valid_gen;
|
|
struct hlist_head mmu_page_hash[4096];
|
|
struct list_head active_mmu_pages;
|
|
struct list_head zapped_obsolete_pages;
|
|
struct list_head possible_nx_huge_pages;
|
|
struct kvm_page_track_notifier_node mmu_sp_tracker;
|
|
struct kvm_page_track_notifier_head track_notifier_head;
|
|
spinlock_t mmu_unsync_pages_lock;
|
|
struct list_head assigned_dev_head;
|
|
struct iommu_domain *iommu_domain;
|
|
bool iommu_noncoherent;
|
|
atomic_t noncoherent_dma_count;
|
|
atomic_t assigned_device_count;
|
|
struct kvm_pic *vpic;
|
|
struct kvm_ioapic *vioapic;
|
|
struct kvm_pit *vpit;
|
|
atomic_t vapics_in_nmi_mode;
|
|
struct mutex apic_map_lock;
|
|
struct kvm_apic_map __attribute__((btf_type_tag("rcu"))) *apic_map;
|
|
atomic_t apic_map_dirty;
|
|
bool apic_access_memslot_enabled;
|
|
bool apic_access_memslot_inhibited;
|
|
struct rw_semaphore apicv_update_lock;
|
|
unsigned long apicv_inhibit_reasons;
|
|
gpa_t wall_clock;
|
|
bool mwait_in_guest;
|
|
bool hlt_in_guest;
|
|
bool pause_in_guest;
|
|
bool cstate_in_guest;
|
|
unsigned long irq_sources_bitmap;
|
|
s64 kvmclock_offset;
|
|
raw_spinlock_t tsc_write_lock;
|
|
u64 last_tsc_nsec;
|
|
u64 last_tsc_write;
|
|
u32 last_tsc_khz;
|
|
u64 last_tsc_offset;
|
|
u64 cur_tsc_nsec;
|
|
u64 cur_tsc_write;
|
|
u64 cur_tsc_offset;
|
|
u64 cur_tsc_generation;
|
|
int nr_vcpus_matched_tsc;
|
|
u32 default_tsc_khz;
|
|
seqcount_raw_spinlock_t pvclock_sc;
|
|
bool use_master_clock;
|
|
u64 master_kernel_ns;
|
|
u64 master_cycle_now;
|
|
struct delayed_work kvmclock_update_work;
|
|
struct delayed_work kvmclock_sync_work;
|
|
struct kvm_xen_hvm_config xen_hvm_config;
|
|
struct hlist_head mask_notifier_list;
|
|
struct kvm_hv hyperv;
|
|
struct kvm_xen xen;
|
|
bool backwards_tsc_observed;
|
|
bool boot_vcpu_runs_old_kvmclock;
|
|
u32 bsp_vcpu_id;
|
|
u64 disabled_quirks;
|
|
enum kvm_irqchip_mode irqchip_mode;
|
|
u8 nr_reserved_ioapic_pins;
|
|
bool disabled_lapic_found;
|
|
bool x2apic_format;
|
|
bool x2apic_broadcast_quirk_disabled;
|
|
bool guest_can_read_msr_platform_info;
|
|
bool exception_payload_enabled;
|
|
bool triple_fault_event;
|
|
bool bus_lock_detection_enabled;
|
|
bool enable_pmu;
|
|
u32 notify_window;
|
|
u32 notify_vmexit_flags;
|
|
bool exit_on_emulation_error;
|
|
u32 user_space_msr_mask;
|
|
struct kvm_x86_msr_filter __attribute__((btf_type_tag("rcu"))) *msr_filter;
|
|
u32 hypercall_exit_enabled;
|
|
bool sgx_provisioning_allowed;
|
|
struct kvm_x86_pmu_event_filter __attribute__((btf_type_tag("rcu"))) *pmu_event_filter;
|
|
struct task_struct *nx_huge_page_recovery_thread;
|
|
atomic64_t tdp_mmu_pages;
|
|
struct list_head tdp_mmu_roots;
|
|
spinlock_t tdp_mmu_pages_lock;
|
|
struct workqueue_struct *tdp_mmu_zap_wq;
|
|
bool shadow_root_allocated;
|
|
u32 max_vcpu_ids;
|
|
bool disable_nx_huge_pages;
|
|
struct kvm_mmu_memory_cache split_shadow_page_cache;
|
|
struct kvm_mmu_memory_cache split_page_header_cache;
|
|
struct kvm_mmu_memory_cache split_desc_cache;
|
|
};
|
|
|
|
struct kvm_io_bus;
|
|
|
|
struct kvm_stat_data;
|
|
|
|
struct kvm {
|
|
rwlock_t mmu_lock;
|
|
struct mutex slots_lock;
|
|
struct mutex slots_arch_lock;
|
|
struct mm_struct *mm;
|
|
unsigned long nr_memslot_pages;
|
|
struct kvm_memslots __memslots[2];
|
|
struct kvm_memslots __attribute__((btf_type_tag("rcu"))) *memslots[1];
|
|
struct xarray vcpu_array;
|
|
atomic_t nr_memslots_dirty_logging;
|
|
spinlock_t mn_invalidate_lock;
|
|
unsigned long mn_active_invalidate_count;
|
|
struct rcuwait mn_memslots_update_rcuwait;
|
|
spinlock_t gpc_lock;
|
|
struct list_head gpc_list;
|
|
atomic_t online_vcpus;
|
|
int max_vcpus;
|
|
int created_vcpus;
|
|
int last_boosted_vcpu;
|
|
struct list_head vm_list;
|
|
struct mutex lock;
|
|
struct kvm_io_bus __attribute__((btf_type_tag("rcu"))) *buses[4];
|
|
struct kvm_vm_stat stat;
|
|
struct kvm_arch arch;
|
|
refcount_t users_count;
|
|
struct mutex irq_lock;
|
|
struct mmu_notifier mmu_notifier;
|
|
unsigned long mmu_invalidate_seq;
|
|
long mmu_invalidate_in_progress;
|
|
unsigned long mmu_invalidate_range_start;
|
|
unsigned long mmu_invalidate_range_end;
|
|
struct list_head devices;
|
|
u64 manual_dirty_log_protect;
|
|
struct dentry *debugfs_dentry;
|
|
struct kvm_stat_data **debugfs_stat_data;
|
|
struct srcu_struct srcu;
|
|
struct srcu_struct irq_srcu;
|
|
pid_t userspace_pid;
|
|
bool override_halt_poll_ns;
|
|
unsigned int max_halt_poll_ns;
|
|
u32 dirty_ring_size;
|
|
bool dirty_ring_with_bitmap;
|
|
bool vm_bugged;
|
|
bool vm_dead;
|
|
char stats_id[48];
|
|
};
|
|
|
|
struct kvm_io_device;
|
|
|
|
struct kvm_io_range {
|
|
gpa_t addr;
|
|
int len;
|
|
struct kvm_io_device *dev;
|
|
};
|
|
|
|
struct kvm_io_bus {
|
|
int dev_count;
|
|
int ioeventfd_count;
|
|
struct kvm_io_range range[0];
|
|
};
|
|
|
|
struct kvm_rmap_head;
|
|
|
|
struct kvm_lpage_info;
|
|
|
|
struct kvm_arch_memory_slot {
|
|
struct kvm_rmap_head *rmap[3];
|
|
struct kvm_lpage_info *lpage_info[2];
|
|
unsigned short *gfn_track[1];
|
|
};
|
|
|
|
struct kvm_memory_slot {
|
|
struct hlist_node id_node[2];
|
|
struct interval_tree_node hva_node[2];
|
|
struct rb_node gfn_node[2];
|
|
gfn_t base_gfn;
|
|
unsigned long npages;
|
|
unsigned long *dirty_bitmap;
|
|
struct kvm_arch_memory_slot arch;
|
|
unsigned long userspace_addr;
|
|
u32 flags;
|
|
short id;
|
|
u16 as_id;
|
|
};
|
|
|
|
struct kvm_rmap_head {
|
|
unsigned long val;
|
|
};
|
|
|
|
struct kvm_lpage_info {
|
|
int disallow_lpage;
|
|
};
|
|
|
|
struct kvm_apic_map {
|
|
struct callback_head rcu;
|
|
enum kvm_apic_logical_mode logical_mode;
|
|
u32 max_apic_id;
|
|
union {
|
|
struct kvm_lapic *xapic_flat_map[8];
|
|
struct kvm_lapic *xapic_cluster_map[64];
|
|
};
|
|
struct kvm_lapic *phys_map[0];
|
|
};
|
|
|
|
struct hv_partition_assist_pg {
|
|
u32 tlb_lock_count;
|
|
};
|
|
|
|
struct msr_bitmap_range {
|
|
u32 flags;
|
|
u32 nmsrs;
|
|
u32 base;
|
|
unsigned long *bitmap;
|
|
};
|
|
|
|
struct kvm_x86_msr_filter {
|
|
u8 count;
|
|
bool default_allow: 1;
|
|
struct msr_bitmap_range ranges[16];
|
|
};
|
|
|
|
struct kvm_x86_pmu_event_filter {
|
|
__u32 action;
|
|
__u32 nevents;
|
|
__u32 fixed_counter_bitmap;
|
|
__u32 flags;
|
|
__u32 nr_includes;
|
|
__u32 nr_excludes;
|
|
__u64 *includes;
|
|
__u64 *excludes;
|
|
__u64 events[0];
|
|
};
|
|
|
|
struct _kvm_stats_desc;
|
|
|
|
struct kvm_stat_data {
|
|
struct kvm *kvm;
|
|
const struct _kvm_stats_desc *desc;
|
|
enum kvm_stat_kind kind;
|
|
};
|
|
|
|
struct kvm_stats_desc {
|
|
__u32 flags;
|
|
__s16 exponent;
|
|
__u16 size;
|
|
__u32 offset;
|
|
__u32 bucket_size;
|
|
char name[0];
|
|
};
|
|
|
|
struct _kvm_stats_desc {
|
|
struct kvm_stats_desc desc;
|
|
char name[48];
|
|
};
|
|
|
|
struct kvm_debug_exit_arch {
|
|
__u32 exception;
|
|
__u32 pad;
|
|
__u64 pc;
|
|
__u64 dr6;
|
|
__u64 dr7;
|
|
};
|
|
|
|
struct kvm_hyperv_exit {
|
|
__u32 type;
|
|
__u32 pad1;
|
|
union {
|
|
struct {
|
|
__u32 msr;
|
|
__u32 pad2;
|
|
__u64 control;
|
|
__u64 evt_page;
|
|
__u64 msg_page;
|
|
} synic;
|
|
struct {
|
|
__u64 input;
|
|
__u64 result;
|
|
__u64 params[2];
|
|
} hcall;
|
|
struct {
|
|
__u32 msr;
|
|
__u32 pad2;
|
|
__u64 control;
|
|
__u64 status;
|
|
__u64 send_page;
|
|
__u64 recv_page;
|
|
__u64 pending_page;
|
|
} syndbg;
|
|
} u;
|
|
};
|
|
|
|
struct kvm_xen_exit {
|
|
__u32 type;
|
|
union {
|
|
struct {
|
|
__u32 longmode;
|
|
__u32 cpl;
|
|
__u64 input;
|
|
__u64 result;
|
|
__u64 params[6];
|
|
} hcall;
|
|
} u;
|
|
};
|
|
|
|
struct kvm_regs {
|
|
__u64 rax;
|
|
__u64 rbx;
|
|
__u64 rcx;
|
|
__u64 rdx;
|
|
__u64 rsi;
|
|
__u64 rdi;
|
|
__u64 rsp;
|
|
__u64 rbp;
|
|
__u64 r8;
|
|
__u64 r9;
|
|
__u64 r10;
|
|
__u64 r11;
|
|
__u64 r12;
|
|
__u64 r13;
|
|
__u64 r14;
|
|
__u64 r15;
|
|
__u64 rip;
|
|
__u64 rflags;
|
|
};
|
|
|
|
struct kvm_segment {
|
|
__u64 base;
|
|
__u32 limit;
|
|
__u16 selector;
|
|
__u8 type;
|
|
__u8 present;
|
|
__u8 dpl;
|
|
__u8 db;
|
|
__u8 s;
|
|
__u8 l;
|
|
__u8 g;
|
|
__u8 avl;
|
|
__u8 unusable;
|
|
__u8 padding;
|
|
};
|
|
|
|
struct kvm_dtable {
|
|
__u64 base;
|
|
__u16 limit;
|
|
__u16 padding[3];
|
|
};
|
|
|
|
struct kvm_sregs {
|
|
struct kvm_segment cs;
|
|
struct kvm_segment ds;
|
|
struct kvm_segment es;
|
|
struct kvm_segment fs;
|
|
struct kvm_segment gs;
|
|
struct kvm_segment ss;
|
|
struct kvm_segment tr;
|
|
struct kvm_segment ldt;
|
|
struct kvm_dtable gdt;
|
|
struct kvm_dtable idt;
|
|
__u64 cr0;
|
|
__u64 cr2;
|
|
__u64 cr3;
|
|
__u64 cr4;
|
|
__u64 cr8;
|
|
__u64 efer;
|
|
__u64 apic_base;
|
|
__u64 interrupt_bitmap[4];
|
|
};
|
|
|
|
struct kvm_vcpu_events {
|
|
struct {
|
|
__u8 injected;
|
|
__u8 nr;
|
|
__u8 has_error_code;
|
|
__u8 pending;
|
|
__u32 error_code;
|
|
} exception;
|
|
struct {
|
|
__u8 injected;
|
|
__u8 nr;
|
|
__u8 soft;
|
|
__u8 shadow;
|
|
} interrupt;
|
|
struct {
|
|
__u8 injected;
|
|
__u8 pending;
|
|
__u8 masked;
|
|
__u8 pad;
|
|
} nmi;
|
|
__u32 sipi_vector;
|
|
__u32 flags;
|
|
struct {
|
|
__u8 smm;
|
|
__u8 pending;
|
|
__u8 smm_inside_nmi;
|
|
__u8 latched_init;
|
|
} smi;
|
|
struct {
|
|
__u8 pending;
|
|
} triple_fault;
|
|
__u8 reserved[26];
|
|
__u8 exception_has_payload;
|
|
__u64 exception_payload;
|
|
};
|
|
|
|
struct kvm_sync_regs {
|
|
struct kvm_regs regs;
|
|
struct kvm_sregs sregs;
|
|
struct kvm_vcpu_events events;
|
|
};
|
|
|
|
struct kvm_run {
|
|
__u8 request_interrupt_window;
|
|
__u8 immediate_exit;
|
|
__u8 padding1[6];
|
|
__u32 exit_reason;
|
|
__u8 ready_for_interrupt_injection;
|
|
__u8 if_flag;
|
|
__u16 flags;
|
|
__u64 cr8;
|
|
__u64 apic_base;
|
|
union {
|
|
struct {
|
|
__u64 hardware_exit_reason;
|
|
} hw;
|
|
struct {
|
|
__u64 hardware_entry_failure_reason;
|
|
__u32 cpu;
|
|
} fail_entry;
|
|
struct {
|
|
__u32 exception;
|
|
__u32 error_code;
|
|
} ex;
|
|
struct {
|
|
__u8 direction;
|
|
__u8 size;
|
|
__u16 port;
|
|
__u32 count;
|
|
__u64 data_offset;
|
|
} io;
|
|
struct {
|
|
struct kvm_debug_exit_arch arch;
|
|
} debug;
|
|
struct {
|
|
__u64 phys_addr;
|
|
__u8 data[8];
|
|
__u32 len;
|
|
__u8 is_write;
|
|
} mmio;
|
|
struct {
|
|
__u64 nr;
|
|
__u64 args[6];
|
|
__u64 ret;
|
|
__u32 longmode;
|
|
__u32 pad;
|
|
} hypercall;
|
|
struct {
|
|
__u64 rip;
|
|
__u32 is_write;
|
|
__u32 pad;
|
|
} tpr_access;
|
|
struct {
|
|
__u8 icptcode;
|
|
__u16 ipa;
|
|
__u32 ipb;
|
|
} s390_sieic;
|
|
__u64 s390_reset_flags;
|
|
struct {
|
|
__u64 trans_exc_code;
|
|
__u32 pgm_code;
|
|
} s390_ucontrol;
|
|
struct {
|
|
__u32 dcrn;
|
|
__u32 data;
|
|
__u8 is_write;
|
|
} dcr;
|
|
struct {
|
|
__u32 suberror;
|
|
__u32 ndata;
|
|
__u64 data[16];
|
|
} internal;
|
|
struct {
|
|
__u32 suberror;
|
|
__u32 ndata;
|
|
__u64 flags;
|
|
union {
|
|
struct {
|
|
__u8 insn_size;
|
|
__u8 insn_bytes[15];
|
|
};
|
|
};
|
|
} emulation_failure;
|
|
struct {
|
|
__u64 gprs[32];
|
|
} osi;
|
|
struct {
|
|
__u64 nr;
|
|
__u64 ret;
|
|
__u64 args[9];
|
|
} papr_hcall;
|
|
struct {
|
|
__u16 subchannel_id;
|
|
__u16 subchannel_nr;
|
|
__u32 io_int_parm;
|
|
__u32 io_int_word;
|
|
__u32 ipb;
|
|
__u8 dequeued;
|
|
} s390_tsch;
|
|
struct {
|
|
__u32 epr;
|
|
} epr;
|
|
struct {
|
|
__u32 type;
|
|
__u32 ndata;
|
|
union {
|
|
__u64 data[16];
|
|
};
|
|
} system_event;
|
|
struct {
|
|
__u64 addr;
|
|
__u8 ar;
|
|
__u8 reserved;
|
|
__u8 fc;
|
|
__u8 sel1;
|
|
__u16 sel2;
|
|
} s390_stsi;
|
|
struct {
|
|
__u8 vector;
|
|
} eoi;
|
|
struct kvm_hyperv_exit hyperv;
|
|
struct {
|
|
__u64 esr_iss;
|
|
__u64 fault_ipa;
|
|
} arm_nisv;
|
|
struct {
|
|
__u8 error;
|
|
__u8 pad[7];
|
|
__u32 reason;
|
|
__u32 index;
|
|
__u64 data;
|
|
} msr;
|
|
struct kvm_xen_exit xen;
|
|
struct {
|
|
unsigned long extension_id;
|
|
unsigned long function_id;
|
|
unsigned long args[6];
|
|
unsigned long ret[2];
|
|
} riscv_sbi;
|
|
struct {
|
|
unsigned long csr_num;
|
|
unsigned long new_value;
|
|
unsigned long write_mask;
|
|
unsigned long ret_value;
|
|
} riscv_csr;
|
|
struct {
|
|
__u32 flags;
|
|
} notify;
|
|
char padding[256];
|
|
};
|
|
__u64 kvm_valid_regs;
|
|
__u64 kvm_dirty_regs;
|
|
union {
|
|
struct kvm_sync_regs regs;
|
|
char padding[2048];
|
|
} s;
|
|
};
|
|
|
|
struct kvm_cpuid_entry2 {
|
|
__u32 function;
|
|
__u32 index;
|
|
__u32 flags;
|
|
__u32 eax;
|
|
__u32 ebx;
|
|
__u32 ecx;
|
|
__u32 edx;
|
|
__u32 padding[3];
|
|
};
|
|
|
|
struct kvm_vcpu_hv_synic {
|
|
u64 version;
|
|
u64 control;
|
|
u64 msg_page;
|
|
u64 evt_page;
|
|
atomic64_t sint[16];
|
|
atomic_t sint_to_gsi[16];
|
|
unsigned long auto_eoi_bitmap[4];
|
|
unsigned long vec_bitmap[4];
|
|
bool active;
|
|
bool dont_zero_synic_pages;
|
|
};
|
|
|
|
union hv_stimer_config {
|
|
u64 as_uint64;
|
|
struct {
|
|
u64 enable: 1;
|
|
u64 periodic: 1;
|
|
u64 lazy: 1;
|
|
u64 auto_enable: 1;
|
|
u64 apic_vector: 8;
|
|
u64 direct_mode: 1;
|
|
u64 reserved_z0: 3;
|
|
u64 sintx: 4;
|
|
u64 reserved_z1: 44;
|
|
};
|
|
};
|
|
|
|
union hv_message_flags {
|
|
__u8 asu8;
|
|
struct {
|
|
__u8 msg_pending: 1;
|
|
__u8 reserved: 7;
|
|
};
|
|
};
|
|
|
|
union hv_port_id {
|
|
__u32 asu32;
|
|
struct {
|
|
__u32 id: 24;
|
|
__u32 reserved: 8;
|
|
} u;
|
|
};
|
|
|
|
struct hv_message_header {
|
|
__u32 message_type;
|
|
__u8 payload_size;
|
|
union hv_message_flags message_flags;
|
|
__u8 reserved[2];
|
|
union {
|
|
__u64 sender;
|
|
union hv_port_id port;
|
|
};
|
|
};
|
|
|
|
struct hv_message {
|
|
struct hv_message_header header;
|
|
union {
|
|
__u64 payload[30];
|
|
} u;
|
|
};
|
|
|
|
struct kvm_vcpu_hv_stimer {
|
|
struct hrtimer timer;
|
|
int index;
|
|
union hv_stimer_config config;
|
|
u64 count;
|
|
u64 exp_time;
|
|
struct hv_message msg;
|
|
bool msg_pending;
|
|
};
|
|
|
|
struct kvm_vcpu_hv_tlb_flush_fifo {
|
|
spinlock_t write_lock;
|
|
struct {
|
|
union {
|
|
struct __kfifo kfifo;
|
|
u64 *type;
|
|
const u64 *const_type;
|
|
char (*rectype)[0];
|
|
u64 *ptr;
|
|
const u64 *ptr_const;
|
|
};
|
|
u64 buf[16];
|
|
} entries;
|
|
};
|
|
|
|
struct hv_nested_enlightenments_control {
|
|
struct {
|
|
__u32 directhypercall: 1;
|
|
__u32 reserved: 31;
|
|
} features;
|
|
struct {
|
|
__u32 inter_partition_comm: 1;
|
|
__u32 reserved: 31;
|
|
} hypercallControls;
|
|
};
|
|
|
|
struct hv_vp_assist_page {
|
|
__u32 apic_assist;
|
|
__u32 reserved1;
|
|
__u32 vtl_entry_reason;
|
|
__u32 vtl_reserved;
|
|
__u64 vtl_ret_x64rax;
|
|
__u64 vtl_ret_x64rcx;
|
|
struct hv_nested_enlightenments_control nested_control;
|
|
__u8 enlighten_vmentry;
|
|
__u8 reserved2[7];
|
|
__u64 current_nested_vmcs;
|
|
__u8 synthetic_time_unhalted_timer_expired;
|
|
__u8 reserved3[7];
|
|
__u8 virtualization_fault_information[40];
|
|
__u8 reserved4[8];
|
|
__u8 intercept_message[256];
|
|
__u8 vtl_ret_actions[256];
|
|
};
|
|
|
|
struct kvm_vcpu_hv {
|
|
struct kvm_vcpu *vcpu;
|
|
u32 vp_index;
|
|
u64 hv_vapic;
|
|
s64 runtime_offset;
|
|
struct kvm_vcpu_hv_synic synic;
|
|
struct kvm_hyperv_exit exit;
|
|
struct kvm_vcpu_hv_stimer stimer[4];
|
|
unsigned long stimer_pending_bitmap[1];
|
|
bool enforce_cpuid;
|
|
struct {
|
|
u32 features_eax;
|
|
u32 features_ebx;
|
|
u32 features_edx;
|
|
u32 enlightenments_eax;
|
|
u32 enlightenments_ebx;
|
|
u32 syndbg_cap_eax;
|
|
u32 nested_eax;
|
|
u32 nested_ebx;
|
|
} cpuid_cache;
|
|
struct kvm_vcpu_hv_tlb_flush_fifo tlb_flush_fifo[2];
|
|
u64 sparse_banks[64];
|
|
struct hv_vp_assist_page vp_assist_page;
|
|
struct {
|
|
u64 pa_page_gpa;
|
|
u64 vm_id;
|
|
u32 vp_id;
|
|
} nested;
|
|
};
|
|
|
|
struct kvm_dirty_gfn {
|
|
__u32 flags;
|
|
__u32 slot;
|
|
__u64 offset;
|
|
};
|
|
|
|
typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int);
|
|
|
|
struct wakeup_header {
|
|
u16 video_mode;
|
|
u32 pmode_entry;
|
|
u16 pmode_cs;
|
|
u32 pmode_cr0;
|
|
u32 pmode_cr3;
|
|
u32 pmode_cr4;
|
|
u32 pmode_efer_low;
|
|
u32 pmode_efer_high;
|
|
u64 pmode_gdt;
|
|
u32 pmode_misc_en_low;
|
|
u32 pmode_misc_en_high;
|
|
u32 pmode_behavior;
|
|
u32 realmode_flags;
|
|
u32 real_magic;
|
|
u32 signature;
|
|
} __attribute__((packed));
|
|
|
|
struct arch_uprobe;
|
|
|
|
struct uprobe_xol_ops {
|
|
bool (*emulate)(struct arch_uprobe *, struct pt_regs *);
|
|
int (*pre_xol)(struct arch_uprobe *, struct pt_regs *);
|
|
int (*post_xol)(struct arch_uprobe *, struct pt_regs *);
|
|
void (*abort)(struct arch_uprobe *, struct pt_regs *);
|
|
};
|
|
|
|
struct arch_uprobe {
|
|
union {
|
|
u8 insn[16];
|
|
u8 ixol[16];
|
|
};
|
|
const struct uprobe_xol_ops *ops;
|
|
union {
|
|
struct {
|
|
s32 offs;
|
|
u8 ilen;
|
|
u8 opc1;
|
|
} branch;
|
|
struct {
|
|
u8 fixups;
|
|
u8 ilen;
|
|
} defparam;
|
|
struct {
|
|
u8 reg_offset;
|
|
u8 ilen;
|
|
} push;
|
|
};
|
|
};
|
|
|
|
enum rp_check {
|
|
RP_CHECK_CALL = 0,
|
|
RP_CHECK_CHAIN_CALL = 1,
|
|
RP_CHECK_RET = 2,
|
|
};
|
|
|
|
struct sys_off_handler {
|
|
struct notifier_block nb;
|
|
int (*sys_off_cb)(struct sys_off_data *);
|
|
void *cb_data;
|
|
enum sys_off_mode mode;
|
|
bool blocking;
|
|
void *list;
|
|
};
|
|
|
|
enum {
|
|
AFFINITY = 0,
|
|
AFFINITY_LIST = 1,
|
|
EFFECTIVE = 2,
|
|
EFFECTIVE_LIST = 3,
|
|
};
|
|
|
|
typedef void (*btf_trace_module_load)(void *, struct module *);
|
|
|
|
typedef void (*btf_trace_module_free)(void *, struct module *);
|
|
|
|
typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long);
|
|
|
|
typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long);
|
|
|
|
typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long);
|
|
|
|
struct symsearch {
|
|
const struct kernel_symbol *start;
|
|
const struct kernel_symbol *stop;
|
|
const s32 *crcs;
|
|
enum mod_license license;
|
|
};
|
|
|
|
struct trace_event_raw_module_load {
|
|
struct trace_entry ent;
|
|
unsigned int taints;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_module_free {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_module_refcnt {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
int refcnt;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_module_request {
|
|
struct trace_entry ent;
|
|
unsigned long ip;
|
|
bool wait;
|
|
u32 __data_loc_name;
|
|
char __data[0];
|
|
};
|
|
|
|
struct mod_initfree {
|
|
struct llist_node node;
|
|
void *module_init;
|
|
};
|
|
|
|
struct trace_event_data_offsets_module_load {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_module_free {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_module_refcnt {
|
|
u32 name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_module_request {
|
|
u32 name;
|
|
};
|
|
|
|
enum ring_buffer_type {
|
|
RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28,
|
|
RINGBUF_TYPE_PADDING = 29,
|
|
RINGBUF_TYPE_TIME_EXTEND = 30,
|
|
RINGBUF_TYPE_TIME_STAMP = 31,
|
|
};
|
|
|
|
enum {
|
|
RB_LEN_TIME_EXTEND = 8,
|
|
RB_LEN_TIME_STAMP = 8,
|
|
};
|
|
|
|
enum {
|
|
RB_CTX_TRANSITION = 0,
|
|
RB_CTX_NMI = 1,
|
|
RB_CTX_IRQ = 2,
|
|
RB_CTX_SOFTIRQ = 3,
|
|
RB_CTX_NORMAL = 4,
|
|
RB_CTX_MAX = 5,
|
|
};
|
|
|
|
enum {
|
|
RB_ADD_STAMP_NONE = 0,
|
|
RB_ADD_STAMP_EXTEND = 2,
|
|
RB_ADD_STAMP_ABSOLUTE = 4,
|
|
RB_ADD_STAMP_FORCE = 8,
|
|
};
|
|
|
|
struct buffer_data_page;
|
|
|
|
struct buffer_page {
|
|
struct list_head list;
|
|
local_t write;
|
|
unsigned int read;
|
|
local_t entries;
|
|
unsigned long real_end;
|
|
struct buffer_data_page *page;
|
|
};
|
|
|
|
struct buffer_data_page {
|
|
u64 time_stamp;
|
|
local_t commit;
|
|
unsigned char data[0];
|
|
};
|
|
|
|
struct ring_buffer_per_cpu;
|
|
|
|
struct ring_buffer_iter {
|
|
struct ring_buffer_per_cpu *cpu_buffer;
|
|
unsigned long head;
|
|
unsigned long next_event;
|
|
struct buffer_page *head_page;
|
|
struct buffer_page *cache_reader_page;
|
|
unsigned long cache_read;
|
|
u64 read_stamp;
|
|
u64 page_stamp;
|
|
struct ring_buffer_event *event;
|
|
int missed_events;
|
|
};
|
|
|
|
struct rb_time_struct {
|
|
local64_t time;
|
|
};
|
|
|
|
typedef struct rb_time_struct rb_time_t;
|
|
|
|
struct rb_irq_work {
|
|
struct irq_work work;
|
|
wait_queue_head_t waiters;
|
|
wait_queue_head_t full_waiters;
|
|
long wait_index;
|
|
bool waiters_pending;
|
|
bool full_waiters_pending;
|
|
bool wakeup_full;
|
|
};
|
|
|
|
struct trace_buffer;
|
|
|
|
struct ring_buffer_per_cpu {
|
|
int cpu;
|
|
atomic_t record_disabled;
|
|
atomic_t resize_disabled;
|
|
struct trace_buffer *buffer;
|
|
raw_spinlock_t reader_lock;
|
|
arch_spinlock_t lock;
|
|
struct lock_class_key lock_key;
|
|
struct buffer_data_page *free_page;
|
|
unsigned long nr_pages;
|
|
unsigned int current_context;
|
|
struct list_head *pages;
|
|
struct buffer_page *head_page;
|
|
struct buffer_page *tail_page;
|
|
struct buffer_page *commit_page;
|
|
struct buffer_page *reader_page;
|
|
unsigned long lost_events;
|
|
unsigned long last_overrun;
|
|
unsigned long nest;
|
|
local_t entries_bytes;
|
|
local_t entries;
|
|
local_t overrun;
|
|
local_t commit_overrun;
|
|
local_t dropped_events;
|
|
local_t committing;
|
|
local_t commits;
|
|
local_t pages_touched;
|
|
local_t pages_lost;
|
|
local_t pages_read;
|
|
long last_pages_touch;
|
|
size_t shortest_full;
|
|
unsigned long read;
|
|
unsigned long read_bytes;
|
|
rb_time_t write_stamp;
|
|
rb_time_t before_stamp;
|
|
u64 event_stamp[5];
|
|
u64 read_stamp;
|
|
long nr_pages_to_update;
|
|
struct list_head new_pages;
|
|
struct work_struct update_pages_work;
|
|
struct completion update_done;
|
|
struct rb_irq_work irq_work;
|
|
};
|
|
|
|
struct trace_buffer {
|
|
unsigned int flags;
|
|
int cpus;
|
|
atomic_t record_disabled;
|
|
cpumask_var_t cpumask;
|
|
struct lock_class_key *reader_lock_key;
|
|
struct mutex mutex;
|
|
struct ring_buffer_per_cpu **buffers;
|
|
struct hlist_node node;
|
|
u64 (*clock)();
|
|
struct rb_irq_work irq_work;
|
|
bool time_stamp_abs;
|
|
};
|
|
|
|
struct rb_event_info {
|
|
u64 ts;
|
|
u64 delta;
|
|
u64 before;
|
|
u64 after;
|
|
unsigned long length;
|
|
struct buffer_page *tail_page;
|
|
int add_timestamp;
|
|
};
|
|
|
|
enum bpf_task_vma_iter_find_op {
|
|
task_vma_iter_first_vma = 0,
|
|
task_vma_iter_next_vma = 1,
|
|
task_vma_iter_find_vma = 2,
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64);
|
|
|
|
struct bpf_iter__task {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct task_struct *task;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_task_common {
|
|
struct pid_namespace *ns;
|
|
enum bpf_iter_task_type type;
|
|
u32 pid;
|
|
u32 pid_visiting;
|
|
};
|
|
|
|
struct bpf_iter__task_file {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct task_struct *task;
|
|
};
|
|
u32 fd;
|
|
union {
|
|
struct file *file;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_task_file_info {
|
|
struct bpf_iter_seq_task_common common;
|
|
struct task_struct *task;
|
|
u32 tid;
|
|
u32 fd;
|
|
};
|
|
|
|
struct bpf_iter__task_vma {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct task_struct *task;
|
|
};
|
|
union {
|
|
struct vm_area_struct *vma;
|
|
};
|
|
};
|
|
|
|
struct bpf_iter_seq_task_vma_info {
|
|
struct bpf_iter_seq_task_common common;
|
|
struct task_struct *task;
|
|
struct mm_struct *mm;
|
|
struct vm_area_struct *vma;
|
|
u32 tid;
|
|
unsigned long prev_vm_start;
|
|
unsigned long prev_vm_end;
|
|
};
|
|
|
|
struct bpf_iter_seq_task_info {
|
|
struct bpf_iter_seq_task_common common;
|
|
u32 tid;
|
|
};
|
|
|
|
struct reuseport_array {
|
|
struct bpf_map map;
|
|
struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0];
|
|
};
|
|
|
|
struct pkcs7_message;
|
|
|
|
struct copy_subpage_arg {
|
|
struct page *dst;
|
|
struct page *src;
|
|
struct vm_area_struct *vma;
|
|
};
|
|
|
|
struct kioctx_cpu;
|
|
|
|
struct ctx_rq_wait;
|
|
|
|
struct kioctx {
|
|
struct percpu_ref users;
|
|
atomic_t dead;
|
|
struct percpu_ref reqs;
|
|
unsigned long user_id;
|
|
struct kioctx_cpu *cpu;
|
|
unsigned int req_batch;
|
|
unsigned int max_reqs;
|
|
unsigned int nr_events;
|
|
unsigned long mmap_base;
|
|
unsigned long mmap_size;
|
|
struct page **ring_pages;
|
|
long nr_pages;
|
|
struct rcu_work free_rwork;
|
|
struct ctx_rq_wait *rq_wait;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct {
|
|
atomic_t reqs_available;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct {
|
|
spinlock_t ctx_lock;
|
|
struct list_head active_reqs;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct {
|
|
struct mutex ring_lock;
|
|
wait_queue_head_t wait;
|
|
long: 64;
|
|
};
|
|
struct {
|
|
unsigned int tail;
|
|
unsigned int completed_events;
|
|
spinlock_t completion_lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
struct page *internal_pages[8];
|
|
struct file *aio_ring_file;
|
|
unsigned int id;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct kioctx_cpu {
|
|
unsigned int reqs_available;
|
|
};
|
|
|
|
struct ctx_rq_wait {
|
|
struct completion comp;
|
|
atomic_t count;
|
|
};
|
|
|
|
enum {
|
|
IOCB_CMD_PREAD = 0,
|
|
IOCB_CMD_PWRITE = 1,
|
|
IOCB_CMD_FSYNC = 2,
|
|
IOCB_CMD_FDSYNC = 3,
|
|
IOCB_CMD_POLL = 5,
|
|
IOCB_CMD_NOOP = 6,
|
|
IOCB_CMD_PREADV = 7,
|
|
IOCB_CMD_PWRITEV = 8,
|
|
};
|
|
|
|
struct fsync_iocb {
|
|
struct file *file;
|
|
struct work_struct work;
|
|
bool datasync;
|
|
struct cred *creds;
|
|
};
|
|
|
|
struct poll_iocb {
|
|
struct file *file;
|
|
struct wait_queue_head *head;
|
|
__poll_t events;
|
|
bool cancelled;
|
|
bool work_scheduled;
|
|
bool work_need_resched;
|
|
struct wait_queue_entry wait;
|
|
struct work_struct work;
|
|
};
|
|
|
|
typedef int kiocb_cancel_fn(struct kiocb *);
|
|
|
|
struct io_event {
|
|
__u64 data;
|
|
__u64 obj;
|
|
__s64 res;
|
|
__s64 res2;
|
|
};
|
|
|
|
struct aio_kiocb {
|
|
union {
|
|
struct file *ki_filp;
|
|
struct kiocb rw;
|
|
struct fsync_iocb fsync;
|
|
struct poll_iocb poll;
|
|
};
|
|
struct kioctx *ki_ctx;
|
|
kiocb_cancel_fn *ki_cancel;
|
|
struct io_event ki_res;
|
|
struct list_head ki_list;
|
|
refcount_t ki_refcnt;
|
|
struct eventfd_ctx *ki_eventfd;
|
|
};
|
|
|
|
typedef __kernel_ulong_t aio_context_t;
|
|
|
|
struct iocb {
|
|
__u64 aio_data;
|
|
__u32 aio_key;
|
|
__kernel_rwf_t aio_rw_flags;
|
|
__u16 aio_lio_opcode;
|
|
__s16 aio_reqprio;
|
|
__u32 aio_fildes;
|
|
__u64 aio_buf;
|
|
__u64 aio_nbytes;
|
|
__s64 aio_offset;
|
|
__u64 aio_reserved2;
|
|
__u32 aio_flags;
|
|
__u32 aio_resfd;
|
|
};
|
|
|
|
struct aio_poll_table {
|
|
struct poll_table_struct pt;
|
|
struct aio_kiocb *iocb;
|
|
bool queued;
|
|
int error;
|
|
};
|
|
|
|
typedef u32 compat_aio_context_t;
|
|
|
|
struct __aio_sigset {
|
|
const sigset_t __attribute__((btf_type_tag("user"))) *sigmask;
|
|
size_t sigsetsize;
|
|
};
|
|
|
|
struct __compat_aio_sigset {
|
|
compat_uptr_t sigmask;
|
|
compat_size_t sigsetsize;
|
|
};
|
|
|
|
struct aio_ring {
|
|
unsigned int id;
|
|
unsigned int nr;
|
|
unsigned int head;
|
|
unsigned int tail;
|
|
unsigned int magic;
|
|
unsigned int compat_features;
|
|
unsigned int incompat_features;
|
|
unsigned int header_length;
|
|
struct io_event io_events[0];
|
|
};
|
|
|
|
typedef __kernel_mode_t mode_t;
|
|
|
|
struct orlov_stats {
|
|
__u64 free_clusters;
|
|
__u32 free_inodes;
|
|
__u32 used_dirs;
|
|
};
|
|
|
|
struct nfs_find_desc {
|
|
struct nfs_fh *fh;
|
|
struct nfs_fattr *fattr;
|
|
};
|
|
|
|
typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *);
|
|
|
|
struct avc_cache {
|
|
struct hlist_head slots[512];
|
|
spinlock_t slots_lock[512];
|
|
atomic_t lru_hint;
|
|
atomic_t active_nodes;
|
|
u32 latest_notif;
|
|
};
|
|
|
|
struct selinux_avc {
|
|
unsigned int avc_cache_threshold;
|
|
struct avc_cache avc_cache;
|
|
};
|
|
|
|
struct avc_callback_node {
|
|
int (*callback)(u32);
|
|
u32 events;
|
|
struct avc_callback_node *next;
|
|
};
|
|
|
|
struct avc_xperms_node;
|
|
|
|
struct avc_entry {
|
|
u32 ssid;
|
|
u32 tsid;
|
|
u16 tclass;
|
|
struct av_decision avd;
|
|
struct avc_xperms_node *xp_node;
|
|
};
|
|
|
|
struct avc_node {
|
|
struct avc_entry ae;
|
|
struct hlist_node list;
|
|
struct callback_head rhead;
|
|
};
|
|
|
|
struct avc_xperms_node {
|
|
struct extended_perms xp;
|
|
struct list_head xpd_head;
|
|
};
|
|
|
|
struct trace_event_raw_selinux_audited {
|
|
struct trace_entry ent;
|
|
u32 requested;
|
|
u32 denied;
|
|
u32 audited;
|
|
int result;
|
|
u32 __data_loc_scontext;
|
|
u32 __data_loc_tcontext;
|
|
u32 __data_loc_tclass;
|
|
char __data[0];
|
|
};
|
|
|
|
struct avc_xperms_decision_node {
|
|
struct extended_perms_decision xpd;
|
|
struct list_head xpd_list;
|
|
};
|
|
|
|
struct trace_event_data_offsets_selinux_audited {
|
|
u32 scontext;
|
|
u32 tcontext;
|
|
u32 tclass;
|
|
};
|
|
|
|
struct cmac_tfm_ctx {
|
|
struct crypto_cipher *child;
|
|
u8 ctx[0];
|
|
};
|
|
|
|
struct cmac_desc_ctx {
|
|
unsigned int len;
|
|
u8 ctx[0];
|
|
};
|
|
|
|
struct ccm_instance_ctx {
|
|
struct crypto_skcipher_spawn ctr;
|
|
struct crypto_ahash_spawn mac;
|
|
};
|
|
|
|
struct crypto_ccm_req_priv_ctx {
|
|
u8 odata[16];
|
|
u8 idata[16];
|
|
u8 auth_tag[16];
|
|
u32 flags;
|
|
struct scatterlist src[3];
|
|
struct scatterlist dst[3];
|
|
union {
|
|
struct ahash_request ahreq;
|
|
struct skcipher_request skreq;
|
|
};
|
|
};
|
|
|
|
struct cbcmac_tfm_ctx {
|
|
struct crypto_cipher *child;
|
|
};
|
|
|
|
struct cbcmac_desc_ctx {
|
|
unsigned int len;
|
|
};
|
|
|
|
struct crypto_ccm_ctx {
|
|
struct crypto_ahash *mac;
|
|
struct crypto_skcipher *ctr;
|
|
};
|
|
|
|
struct crypto_rfc4309_ctx {
|
|
struct crypto_aead *child;
|
|
u8 nonce[3];
|
|
};
|
|
|
|
struct crypto_rfc4309_req_ctx {
|
|
struct scatterlist src[3];
|
|
struct scatterlist dst[3];
|
|
struct aead_request subreq;
|
|
};
|
|
|
|
enum prep_dispatch {
|
|
PREP_DISPATCH_OK = 0,
|
|
PREP_DISPATCH_NO_TAG = 1,
|
|
PREP_DISPATCH_NO_BUDGET = 2,
|
|
};
|
|
|
|
struct blk_mq_qe_pair {
|
|
struct list_head node;
|
|
struct request_queue *q;
|
|
struct elevator_type *type;
|
|
};
|
|
|
|
struct flush_busy_ctx_data {
|
|
struct blk_mq_hw_ctx *hctx;
|
|
struct list_head *list;
|
|
};
|
|
|
|
struct dispatch_rq_data {
|
|
struct blk_mq_hw_ctx *hctx;
|
|
struct request *rq;
|
|
};
|
|
|
|
struct blk_expired_data {
|
|
bool has_timedout_rq;
|
|
unsigned long next;
|
|
unsigned long timeout_start;
|
|
};
|
|
|
|
struct rq_iter_data {
|
|
struct blk_mq_hw_ctx *hctx;
|
|
bool has_rq;
|
|
};
|
|
|
|
struct mq_inflight {
|
|
struct block_device *part;
|
|
unsigned int inflight[2];
|
|
};
|
|
|
|
struct blk_rq_wait {
|
|
struct completion done;
|
|
blk_status_t ret;
|
|
};
|
|
|
|
typedef struct tree_desc_s tree_desc;
|
|
|
|
typedef struct {
|
|
U32 f1c;
|
|
U32 f1d;
|
|
U32 f7b;
|
|
U32 f7c;
|
|
} ZSTD_cpuid_t;
|
|
|
|
typedef struct {
|
|
size_t compressedSize;
|
|
unsigned long long decompressedBound;
|
|
} ZSTD_frameSizeInfo;
|
|
|
|
typedef enum {
|
|
ZSTD_reset_session_only = 1,
|
|
ZSTD_reset_parameters = 2,
|
|
ZSTD_reset_session_and_parameters = 3,
|
|
} ZSTD_ResetDirective;
|
|
|
|
typedef ZSTD_DCtx___2 ZSTD_DStream___2;
|
|
|
|
typedef enum {
|
|
ZSTD_d_windowLogMax = 100,
|
|
ZSTD_d_experimentalParam1 = 1000,
|
|
ZSTD_d_experimentalParam2 = 1001,
|
|
ZSTD_d_experimentalParam3 = 1002,
|
|
ZSTD_d_experimentalParam4 = 1003,
|
|
} ZSTD_dParameter;
|
|
|
|
typedef struct {
|
|
size_t error;
|
|
int lowerBound;
|
|
int upperBound;
|
|
} ZSTD_bounds;
|
|
|
|
typedef enum {
|
|
ZSTDnit_frameHeader = 0,
|
|
ZSTDnit_blockHeader = 1,
|
|
ZSTDnit_block = 2,
|
|
ZSTDnit_lastBlock = 3,
|
|
ZSTDnit_checksum = 4,
|
|
ZSTDnit_skippableFrame = 5,
|
|
} ZSTD_nextInputType_e;
|
|
|
|
struct font_data {
|
|
unsigned int extra[4];
|
|
const unsigned char data[0];
|
|
};
|
|
|
|
struct node_groups {
|
|
unsigned int id;
|
|
union {
|
|
unsigned int ngroups;
|
|
unsigned int ncpus;
|
|
};
|
|
};
|
|
|
|
struct pci_dynid {
|
|
struct list_head node;
|
|
struct pci_device_id id;
|
|
};
|
|
|
|
struct drv_dev_and_id {
|
|
struct pci_driver *drv;
|
|
struct pci_dev *dev;
|
|
const struct pci_device_id *id;
|
|
};
|
|
|
|
struct find_child_walk_data {
|
|
struct acpi_device *adev;
|
|
u64 address;
|
|
int score;
|
|
bool check_sta;
|
|
bool check_children;
|
|
};
|
|
|
|
struct pcc_data {
|
|
struct pcc_mbox_chan *pcc_chan;
|
|
void *pcc_comm_addr;
|
|
struct completion done;
|
|
struct mbox_client cl;
|
|
struct acpi_pcc_info ctx;
|
|
};
|
|
|
|
typedef u64 acpi_integer;
|
|
|
|
enum {
|
|
AML_FIELD_UPDATE_PRESERVE = 0,
|
|
AML_FIELD_UPDATE_WRITE_AS_ONES = 32,
|
|
AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64,
|
|
};
|
|
|
|
struct acpi_pci_device {
|
|
acpi_handle device;
|
|
struct acpi_pci_device *next;
|
|
};
|
|
|
|
struct acpi_dma_spec;
|
|
|
|
struct acpi_dma {
|
|
struct list_head dma_controllers;
|
|
struct device *dev;
|
|
struct dma_chan * (*acpi_dma_xlate)(struct acpi_dma_spec *, struct acpi_dma *);
|
|
void *data;
|
|
unsigned short base_request_line;
|
|
unsigned short end_request_line;
|
|
};
|
|
|
|
struct acpi_dma_spec {
|
|
int chan_id;
|
|
int slave_id;
|
|
struct device *dev;
|
|
};
|
|
|
|
struct acpi_csrt_group {
|
|
u32 length;
|
|
u32 vendor_id;
|
|
u32 subvendor_id;
|
|
u16 device_id;
|
|
u16 subdevice_id;
|
|
u16 revision;
|
|
u16 reserved;
|
|
u32 shared_info_length;
|
|
};
|
|
|
|
struct acpi_csrt_shared_info {
|
|
u16 major_version;
|
|
u16 minor_version;
|
|
u32 mmio_base_low;
|
|
u32 mmio_base_high;
|
|
u32 gsi_interrupt;
|
|
u8 interrupt_polarity;
|
|
u8 interrupt_mode;
|
|
u8 num_channels;
|
|
u8 dma_address_width;
|
|
u16 base_request_line;
|
|
u16 num_handshake_signals;
|
|
u32 max_block_size;
|
|
};
|
|
|
|
struct acpi_table_csrt {
|
|
struct acpi_table_header header;
|
|
};
|
|
|
|
struct acpi_dma_parser_data {
|
|
struct acpi_dma_spec dma_spec;
|
|
size_t index;
|
|
size_t n;
|
|
};
|
|
|
|
struct acpi_dma_filter_info {
|
|
dma_cap_mask_t dma_cap;
|
|
dma_filter_fn filter_fn;
|
|
};
|
|
|
|
struct uni_pagedict {
|
|
u16 **uni_pgdir[32];
|
|
unsigned long refcount;
|
|
unsigned long sum;
|
|
unsigned char *inverse_translations[4];
|
|
u16 *inverse_trans_unicode;
|
|
};
|
|
|
|
struct intel_agp_driver_description {
|
|
unsigned int chip_id;
|
|
char *name;
|
|
const struct agp_bridge_driver *driver;
|
|
};
|
|
|
|
typedef void (*btf_trace_qi_submit)(void *, struct intel_iommu *, u64, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_prq_report)(void *, struct intel_iommu *, struct device *, u64, u64, u64, u64, unsigned long);
|
|
|
|
struct trace_event_raw_qi_submit {
|
|
struct trace_entry ent;
|
|
u64 qw0;
|
|
u64 qw1;
|
|
u64 qw2;
|
|
u64 qw3;
|
|
u32 __data_loc_iommu;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_prq_report {
|
|
struct trace_entry ent;
|
|
u64 dw0;
|
|
u64 dw1;
|
|
u64 dw2;
|
|
u64 dw3;
|
|
unsigned long seq;
|
|
u32 __data_loc_iommu;
|
|
u32 __data_loc_dev;
|
|
u32 __data_loc_buff;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_data_offsets_qi_submit {
|
|
u32 iommu;
|
|
};
|
|
|
|
struct trace_event_data_offsets_prq_report {
|
|
u32 iommu;
|
|
u32 dev;
|
|
u32 buff;
|
|
};
|
|
|
|
struct i915_ttm_buddy_manager {
|
|
struct ttm_resource_manager manager;
|
|
struct drm_buddy mm;
|
|
struct list_head reserved;
|
|
struct mutex lock;
|
|
unsigned long visible_size;
|
|
unsigned long visible_avail;
|
|
unsigned long visible_reserved;
|
|
u64 default_page_size;
|
|
};
|
|
|
|
enum slpc_param_id {
|
|
SLPC_PARAM_TASK_ENABLE_GTPERF = 0,
|
|
SLPC_PARAM_TASK_DISABLE_GTPERF = 1,
|
|
SLPC_PARAM_TASK_ENABLE_BALANCER = 2,
|
|
SLPC_PARAM_TASK_DISABLE_BALANCER = 3,
|
|
SLPC_PARAM_TASK_ENABLE_DCC = 4,
|
|
SLPC_PARAM_TASK_DISABLE_DCC = 5,
|
|
SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ = 6,
|
|
SLPC_PARAM_GLOBAL_MAX_GT_UNSLICE_FREQ_MHZ = 7,
|
|
SLPC_PARAM_GLOBAL_MIN_GT_SLICE_FREQ_MHZ = 8,
|
|
SLPC_PARAM_GLOBAL_MAX_GT_SLICE_FREQ_MHZ = 9,
|
|
SLPC_PARAM_GTPERF_THRESHOLD_MAX_FPS = 10,
|
|
SLPC_PARAM_GLOBAL_DISABLE_GT_FREQ_MANAGEMENT = 11,
|
|
SLPC_PARAM_GTPERF_ENABLE_FRAMERATE_STALLING = 12,
|
|
SLPC_PARAM_GLOBAL_DISABLE_RC6_MODE_CHANGE = 13,
|
|
SLPC_PARAM_GLOBAL_OC_UNSLICE_FREQ_MHZ = 14,
|
|
SLPC_PARAM_GLOBAL_OC_SLICE_FREQ_MHZ = 15,
|
|
SLPC_PARAM_GLOBAL_ENABLE_IA_GT_BALANCING = 16,
|
|
SLPC_PARAM_GLOBAL_ENABLE_ADAPTIVE_BURST_TURBO = 17,
|
|
SLPC_PARAM_GLOBAL_ENABLE_EVAL_MODE = 18,
|
|
SLPC_PARAM_GLOBAL_ENABLE_BALANCER_IN_NON_GAMING_MODE = 19,
|
|
SLPC_PARAM_GLOBAL_RT_MODE_TURBO_FREQ_DELTA_MHZ = 20,
|
|
SLPC_PARAM_PWRGATE_RC_MODE = 21,
|
|
SLPC_PARAM_EDR_MODE_COMPUTE_TIMEOUT_MS = 22,
|
|
SLPC_PARAM_EDR_QOS_FREQ_MHZ = 23,
|
|
SLPC_PARAM_MEDIA_FF_RATIO_MODE = 24,
|
|
SLPC_PARAM_ENABLE_IA_FREQ_LIMITING = 25,
|
|
SLPC_PARAM_STRATEGIES = 26,
|
|
SLPC_PARAM_POWER_PROFILE = 27,
|
|
SLPC_PARAM_IGNORE_EFFICIENT_FREQUENCY = 28,
|
|
SLPC_MAX_PARAM = 32,
|
|
};
|
|
|
|
enum slpc_event_id {
|
|
SLPC_EVENT_RESET = 0,
|
|
SLPC_EVENT_SHUTDOWN = 1,
|
|
SLPC_EVENT_PLATFORM_INFO_CHANGE = 2,
|
|
SLPC_EVENT_DISPLAY_MODE_CHANGE = 3,
|
|
SLPC_EVENT_FLIP_COMPLETE = 4,
|
|
SLPC_EVENT_QUERY_TASK_STATE = 5,
|
|
SLPC_EVENT_PARAMETER_SET = 6,
|
|
SLPC_EVENT_PARAMETER_UNSET = 7,
|
|
};
|
|
|
|
enum slpc_global_state {
|
|
SLPC_GLOBAL_STATE_NOT_RUNNING = 0,
|
|
SLPC_GLOBAL_STATE_INITIALIZING = 1,
|
|
SLPC_GLOBAL_STATE_RESETTING = 2,
|
|
SLPC_GLOBAL_STATE_RUNNING = 3,
|
|
SLPC_GLOBAL_STATE_SHUTTING_DOWN = 4,
|
|
SLPC_GLOBAL_STATE_ERROR = 5,
|
|
};
|
|
|
|
struct intel_limit {
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} dot;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} vco;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} n;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} m;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} m1;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} m2;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} p;
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} p1;
|
|
struct {
|
|
int dot_limit;
|
|
int p2_slow;
|
|
int p2_fast;
|
|
} p2;
|
|
};
|
|
|
|
struct intel_sdvo_caps {
|
|
u8 vendor_id;
|
|
u8 device_id;
|
|
u8 device_rev_id;
|
|
u8 sdvo_version_major;
|
|
u8 sdvo_version_minor;
|
|
unsigned int sdvo_inputs_mask: 2;
|
|
unsigned int smooth_scaling: 1;
|
|
unsigned int sharp_scaling: 1;
|
|
unsigned int up_scaling: 1;
|
|
unsigned int down_scaling: 1;
|
|
unsigned int stall_support: 1;
|
|
unsigned int pad: 1;
|
|
u16 output_flags;
|
|
};
|
|
|
|
struct intel_sdvo {
|
|
struct intel_encoder base;
|
|
struct i2c_adapter *i2c;
|
|
u8 slave_addr;
|
|
long: 56;
|
|
struct i2c_adapter ddc;
|
|
i915_reg_t sdvo_reg;
|
|
u16 controlled_output;
|
|
struct intel_sdvo_caps caps;
|
|
u8 colorimetry_cap;
|
|
char: 8;
|
|
int pixel_clock_min;
|
|
int pixel_clock_max;
|
|
u16 attached_output;
|
|
u16 hotplug_active;
|
|
enum port port;
|
|
bool has_hdmi_monitor;
|
|
bool has_hdmi_audio;
|
|
u8 ddc_bus;
|
|
u8 dtd_sdvo_flags;
|
|
int: 32;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_connector {
|
|
struct intel_connector base;
|
|
u16 output_flag;
|
|
u8 tv_format_supported[19];
|
|
int format_supported_num;
|
|
struct drm_property *tv_format;
|
|
struct drm_property *left;
|
|
struct drm_property *right;
|
|
struct drm_property *top;
|
|
struct drm_property *bottom;
|
|
struct drm_property *hpos;
|
|
struct drm_property *vpos;
|
|
struct drm_property *contrast;
|
|
struct drm_property *saturation;
|
|
struct drm_property *hue;
|
|
struct drm_property *sharpness;
|
|
struct drm_property *flicker_filter;
|
|
struct drm_property *flicker_filter_adaptive;
|
|
struct drm_property *flicker_filter_2d;
|
|
struct drm_property *tv_chroma_filter;
|
|
struct drm_property *tv_luma_filter;
|
|
struct drm_property *dot_crawl;
|
|
struct drm_property *brightness;
|
|
u32 max_hscan;
|
|
u32 max_vscan;
|
|
bool is_hdmi;
|
|
};
|
|
|
|
struct intel_sdvo_connector_state {
|
|
struct intel_digital_connector_state base;
|
|
struct {
|
|
unsigned int overscan_h;
|
|
unsigned int overscan_v;
|
|
unsigned int hpos;
|
|
unsigned int vpos;
|
|
unsigned int sharpness;
|
|
unsigned int flicker_filter;
|
|
unsigned int flicker_filter_2d;
|
|
unsigned int flicker_filter_adaptive;
|
|
unsigned int chroma_filter;
|
|
unsigned int luma_filter;
|
|
unsigned int dot_crawl;
|
|
} tv;
|
|
};
|
|
|
|
struct intel_sdvo_tv_format {
|
|
unsigned int ntsc_m: 1;
|
|
unsigned int ntsc_j: 1;
|
|
unsigned int ntsc_443: 1;
|
|
unsigned int pal_b: 1;
|
|
unsigned int pal_d: 1;
|
|
unsigned int pal_g: 1;
|
|
unsigned int pal_h: 1;
|
|
unsigned int pal_i: 1;
|
|
unsigned int pal_m: 1;
|
|
unsigned int pal_n: 1;
|
|
unsigned int pal_nc: 1;
|
|
unsigned int pal_60: 1;
|
|
unsigned int secam_b: 1;
|
|
unsigned int secam_d: 1;
|
|
unsigned int secam_g: 1;
|
|
unsigned int secam_k: 1;
|
|
unsigned int secam_k1: 1;
|
|
unsigned int secam_l: 1;
|
|
unsigned int secam_60: 1;
|
|
unsigned int hdtv_std_smpte_240m_1080i_59: 1;
|
|
unsigned int hdtv_std_smpte_240m_1080i_60: 1;
|
|
unsigned int hdtv_std_smpte_260m_1080i_59: 1;
|
|
unsigned int hdtv_std_smpte_260m_1080i_60: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080i_50: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080i_59: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080i_60: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_23: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_24: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_25: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_29: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_30: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_50: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_59: 1;
|
|
unsigned int hdtv_std_smpte_274m_1080p_60: 1;
|
|
unsigned int hdtv_std_smpte_295m_1080i_50: 1;
|
|
unsigned int hdtv_std_smpte_295m_1080p_50: 1;
|
|
unsigned int hdtv_std_smpte_296m_720p_59: 1;
|
|
unsigned int hdtv_std_smpte_296m_720p_60: 1;
|
|
unsigned int hdtv_std_smpte_296m_720p_50: 1;
|
|
unsigned int hdtv_std_smpte_293m_480p_59: 1;
|
|
unsigned int hdtv_std_smpte_170m_480i_59: 1;
|
|
unsigned int hdtv_std_iturbt601_576i_50: 1;
|
|
unsigned int hdtv_std_iturbt601_576p_50: 1;
|
|
unsigned int hdtv_std_eia_7702a_480i_60: 1;
|
|
unsigned int hdtv_std_eia_7702a_480p_60: 1;
|
|
unsigned int pad: 3;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_encode {
|
|
u8 dvi_rev;
|
|
u8 hdmi_rev;
|
|
};
|
|
|
|
struct intel_sdvo_set_target_input_args {
|
|
unsigned int target_1: 1;
|
|
unsigned int pad: 7;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_enhancements_reply {
|
|
unsigned int flicker_filter: 1;
|
|
unsigned int flicker_filter_adaptive: 1;
|
|
unsigned int flicker_filter_2d: 1;
|
|
unsigned int saturation: 1;
|
|
unsigned int hue: 1;
|
|
unsigned int brightness: 1;
|
|
unsigned int contrast: 1;
|
|
unsigned int overscan_h: 1;
|
|
unsigned int overscan_v: 1;
|
|
unsigned int hpos: 1;
|
|
unsigned int vpos: 1;
|
|
unsigned int sharpness: 1;
|
|
unsigned int dot_crawl: 1;
|
|
unsigned int dither: 1;
|
|
unsigned int tv_chroma_filter: 1;
|
|
unsigned int tv_luma_filter: 1;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_dtd {
|
|
struct {
|
|
u16 clock;
|
|
u8 h_active;
|
|
u8 h_blank;
|
|
u8 h_high;
|
|
u8 v_active;
|
|
u8 v_blank;
|
|
u8 v_high;
|
|
} part1;
|
|
struct {
|
|
u8 h_sync_off;
|
|
u8 h_sync_width;
|
|
u8 v_sync_off_width;
|
|
u8 sync_off_width_high;
|
|
u8 dtd_flags;
|
|
u8 sdvo_flags;
|
|
u8 v_sync_off_high;
|
|
u8 reserved;
|
|
} part2;
|
|
};
|
|
|
|
struct intel_sdvo_get_trained_inputs_response {
|
|
unsigned int input0_trained: 1;
|
|
unsigned int input1_trained: 1;
|
|
unsigned int pad: 6;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_preferred_input_timing_args {
|
|
u16 clock;
|
|
u16 width;
|
|
u16 height;
|
|
u8 interlace: 1;
|
|
u8 scaled: 1;
|
|
u8 pad: 6;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_sdtv_resolution_request {
|
|
unsigned int ntsc_m: 1;
|
|
unsigned int ntsc_j: 1;
|
|
unsigned int ntsc_443: 1;
|
|
unsigned int pal_b: 1;
|
|
unsigned int pal_d: 1;
|
|
unsigned int pal_g: 1;
|
|
unsigned int pal_h: 1;
|
|
unsigned int pal_i: 1;
|
|
unsigned int pal_m: 1;
|
|
unsigned int pal_n: 1;
|
|
unsigned int pal_nc: 1;
|
|
unsigned int pal_60: 1;
|
|
unsigned int secam_b: 1;
|
|
unsigned int secam_d: 1;
|
|
unsigned int secam_g: 1;
|
|
unsigned int secam_k: 1;
|
|
unsigned int secam_k1: 1;
|
|
unsigned int secam_l: 1;
|
|
unsigned int secam_60: 1;
|
|
unsigned int pad: 5;
|
|
} __attribute__((packed));
|
|
|
|
struct intel_sdvo_in_out_map {
|
|
u16 in0;
|
|
u16 in1;
|
|
};
|
|
|
|
struct intel_sdvo_pixel_clock_range {
|
|
u16 min;
|
|
u16 max;
|
|
};
|
|
|
|
struct req {
|
|
struct req *next;
|
|
struct completion done;
|
|
int err;
|
|
const char *name;
|
|
umode_t mode;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
struct device *dev;
|
|
};
|
|
|
|
struct virtio_scsi_event {
|
|
__virtio32 event;
|
|
__u8 lun[8];
|
|
__virtio32 reason;
|
|
};
|
|
|
|
struct virtio_scsi;
|
|
|
|
struct virtio_scsi_event_node {
|
|
struct virtio_scsi *vscsi;
|
|
struct virtio_scsi_event event;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct virtio_scsi_vq {
|
|
spinlock_t vq_lock;
|
|
struct virtqueue *vq;
|
|
};
|
|
|
|
struct virtio_scsi {
|
|
struct virtio_device *vdev;
|
|
struct virtio_scsi_event_node event_list[8];
|
|
u32 num_queues;
|
|
struct hlist_node node;
|
|
bool stop_events;
|
|
struct virtio_scsi_vq ctrl_vq;
|
|
struct virtio_scsi_vq event_vq;
|
|
struct virtio_scsi_vq req_vqs[0];
|
|
};
|
|
|
|
struct virtio_scsi_cmd_req {
|
|
__u8 lun[8];
|
|
__virtio64 tag;
|
|
__u8 task_attr;
|
|
__u8 prio;
|
|
__u8 crn;
|
|
__u8 cdb[32];
|
|
} __attribute__((packed));
|
|
|
|
struct virtio_scsi_cmd_req_pi {
|
|
__u8 lun[8];
|
|
__virtio64 tag;
|
|
__u8 task_attr;
|
|
__u8 prio;
|
|
__u8 crn;
|
|
__virtio32 pi_bytesout;
|
|
__virtio32 pi_bytesin;
|
|
__u8 cdb[32];
|
|
} __attribute__((packed));
|
|
|
|
struct virtio_scsi_ctrl_tmf_req {
|
|
__virtio32 type;
|
|
__virtio32 subtype;
|
|
__u8 lun[8];
|
|
__virtio64 tag;
|
|
};
|
|
|
|
struct virtio_scsi_ctrl_an_req {
|
|
__virtio32 type;
|
|
__u8 lun[8];
|
|
__virtio32 event_requested;
|
|
};
|
|
|
|
struct virtio_scsi_cmd_resp {
|
|
__virtio32 sense_len;
|
|
__virtio32 resid;
|
|
__virtio16 status_qualifier;
|
|
__u8 status;
|
|
__u8 response;
|
|
__u8 sense[96];
|
|
};
|
|
|
|
struct virtio_scsi_ctrl_tmf_resp {
|
|
__u8 response;
|
|
};
|
|
|
|
struct virtio_scsi_ctrl_an_resp {
|
|
__virtio32 event_actual;
|
|
__u8 response;
|
|
} __attribute__((packed));
|
|
|
|
struct virtio_scsi_cmd {
|
|
struct scsi_cmnd *sc;
|
|
struct completion *comp;
|
|
union {
|
|
struct virtio_scsi_cmd_req cmd;
|
|
struct virtio_scsi_cmd_req_pi cmd_pi;
|
|
struct virtio_scsi_ctrl_tmf_req tmf;
|
|
struct virtio_scsi_ctrl_an_req an;
|
|
} req;
|
|
union {
|
|
struct virtio_scsi_cmd_resp cmd;
|
|
struct virtio_scsi_ctrl_tmf_resp tmf;
|
|
struct virtio_scsi_ctrl_an_resp an;
|
|
struct virtio_scsi_event evt;
|
|
} resp;
|
|
long: 8;
|
|
long: 64;
|
|
} __attribute__((packed));
|
|
|
|
struct cis_cache_entry {
|
|
struct list_head node;
|
|
unsigned int addr;
|
|
unsigned int len;
|
|
unsigned int attr;
|
|
unsigned char cache[0];
|
|
};
|
|
|
|
struct tuple_flags {
|
|
u_int link_space: 4;
|
|
u_int has_link: 1;
|
|
u_int mfc_fn: 3;
|
|
u_int space: 4;
|
|
};
|
|
|
|
struct usb_phy_roothub {
|
|
struct phy *phy;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum i8042_controller_reset_mode {
|
|
I8042_RESET_NEVER = 0,
|
|
I8042_RESET_ALWAYS = 1,
|
|
I8042_RESET_ON_S2RAM = 2,
|
|
};
|
|
|
|
struct i8042_port {
|
|
struct serio *serio;
|
|
int irq;
|
|
bool exists;
|
|
bool driver_bound;
|
|
signed char mux;
|
|
};
|
|
|
|
struct i2c_smbus_alert {
|
|
struct work_struct alert;
|
|
struct i2c_client *ara;
|
|
};
|
|
|
|
struct alert_data {
|
|
unsigned short addr;
|
|
enum i2c_alert_protocol type;
|
|
unsigned int data;
|
|
};
|
|
|
|
struct dm_rq_target_io;
|
|
|
|
struct dm_rq_clone_bio_info {
|
|
struct bio *orig;
|
|
struct dm_rq_target_io *tio;
|
|
struct bio clone;
|
|
};
|
|
|
|
struct dm_rq_target_io {
|
|
struct mapped_device *md;
|
|
struct dm_target *ti;
|
|
struct request *orig;
|
|
struct request *clone;
|
|
struct kthread_work work;
|
|
blk_status_t error;
|
|
union map_info info;
|
|
struct dm_stats_aux stats_aux;
|
|
unsigned long duration_jiffies;
|
|
unsigned int n_sectors;
|
|
unsigned int completed;
|
|
};
|
|
|
|
struct snd_fasync {
|
|
struct fasync_struct *fasync;
|
|
int signal;
|
|
int poll;
|
|
int on;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum {
|
|
HDA_DIG_NONE = 0,
|
|
HDA_DIG_EXCLUSIVE = 1,
|
|
HDA_DIG_ANALOG_DUP = 2,
|
|
};
|
|
|
|
enum {
|
|
HDA_FRONT = 0,
|
|
HDA_REAR = 1,
|
|
HDA_CLFE = 2,
|
|
HDA_SIDE = 3,
|
|
};
|
|
|
|
struct hda_beep {
|
|
struct input_dev *dev;
|
|
struct hda_codec *codec;
|
|
char phys[32];
|
|
int tone;
|
|
hda_nid_t nid;
|
|
unsigned int registered: 1;
|
|
unsigned int enabled: 1;
|
|
unsigned int linear_tone: 1;
|
|
unsigned int playing: 1;
|
|
unsigned int keep_power_at_enable: 1;
|
|
struct work_struct beep_work;
|
|
struct mutex mutex;
|
|
void (*power_hook)(struct hda_beep *, bool);
|
|
};
|
|
|
|
struct hda_conn_list {
|
|
struct list_head list;
|
|
int len;
|
|
hda_nid_t nid;
|
|
hda_nid_t conns[0];
|
|
};
|
|
|
|
struct hda_nid_item {
|
|
struct snd_kcontrol *kctl;
|
|
unsigned int index;
|
|
hda_nid_t nid;
|
|
unsigned short flags;
|
|
};
|
|
|
|
struct hda_cvt_setup {
|
|
hda_nid_t nid;
|
|
u8 stream_tag;
|
|
u8 channel_id;
|
|
u16 format_id;
|
|
unsigned char active;
|
|
unsigned char dirty;
|
|
};
|
|
|
|
typedef int (*map_follower_func_t)(struct hda_codec *, void *, struct snd_kcontrol *);
|
|
|
|
struct follower_init_arg {
|
|
struct hda_codec *codec;
|
|
int step;
|
|
};
|
|
|
|
struct hda_vmaster_mute_hook {
|
|
struct snd_kcontrol *sw_kctl;
|
|
void (*hook)(void *, int);
|
|
struct hda_codec *codec;
|
|
};
|
|
|
|
struct hda_multi_out {
|
|
int num_dacs;
|
|
const hda_nid_t *dac_nids;
|
|
hda_nid_t hp_nid;
|
|
hda_nid_t hp_out_nid[5];
|
|
hda_nid_t extra_out_nid[5];
|
|
hda_nid_t dig_out_nid;
|
|
const hda_nid_t *follower_dig_outs;
|
|
int max_channels;
|
|
int dig_out_used;
|
|
int no_share_stream;
|
|
int share_spdif;
|
|
unsigned int analog_rates;
|
|
unsigned int analog_maxbps;
|
|
u64 analog_formats;
|
|
unsigned int spdif_rates;
|
|
unsigned int spdif_maxbps;
|
|
u64 spdif_formats;
|
|
};
|
|
|
|
struct hda_amp_list;
|
|
|
|
struct hda_loopback_check {
|
|
const struct hda_amp_list *amplist;
|
|
int power_on;
|
|
};
|
|
|
|
struct hda_amp_list {
|
|
hda_nid_t nid;
|
|
unsigned char dir;
|
|
unsigned char idx;
|
|
};
|
|
|
|
struct hda_input_mux_item {
|
|
char label[32];
|
|
unsigned int index;
|
|
};
|
|
|
|
struct hda_input_mux {
|
|
unsigned int num_items;
|
|
struct hda_input_mux_item items[36];
|
|
};
|
|
|
|
struct flow_indr_dev {
|
|
struct list_head list;
|
|
flow_indr_block_bind_cb_t *cb;
|
|
void *cb_priv;
|
|
refcount_t refcnt;
|
|
};
|
|
|
|
struct flow_indir_dev_info {
|
|
void *data;
|
|
struct net_device *dev;
|
|
struct Qdisc *sch;
|
|
enum tc_setup_type type;
|
|
void (*cleanup)(struct flow_block_cb *);
|
|
struct list_head list;
|
|
enum flow_block_command command;
|
|
enum flow_block_binder_type binder_type;
|
|
struct list_head *cb_list;
|
|
};
|
|
|
|
struct flow_match_meta {
|
|
struct flow_dissector_key_meta *key;
|
|
struct flow_dissector_key_meta *mask;
|
|
};
|
|
|
|
struct flow_match_basic {
|
|
struct flow_dissector_key_basic *key;
|
|
struct flow_dissector_key_basic *mask;
|
|
};
|
|
|
|
struct flow_match_control {
|
|
struct flow_dissector_key_control *key;
|
|
struct flow_dissector_key_control *mask;
|
|
};
|
|
|
|
struct flow_match_eth_addrs {
|
|
struct flow_dissector_key_eth_addrs *key;
|
|
struct flow_dissector_key_eth_addrs *mask;
|
|
};
|
|
|
|
struct flow_match_vlan {
|
|
struct flow_dissector_key_vlan *key;
|
|
struct flow_dissector_key_vlan *mask;
|
|
};
|
|
|
|
struct flow_match_arp {
|
|
struct flow_dissector_key_arp *key;
|
|
struct flow_dissector_key_arp *mask;
|
|
};
|
|
|
|
struct flow_match_ipv4_addrs {
|
|
struct flow_dissector_key_ipv4_addrs *key;
|
|
struct flow_dissector_key_ipv4_addrs *mask;
|
|
};
|
|
|
|
struct flow_match_ipv6_addrs {
|
|
struct flow_dissector_key_ipv6_addrs *key;
|
|
struct flow_dissector_key_ipv6_addrs *mask;
|
|
};
|
|
|
|
struct flow_match_ip {
|
|
struct flow_dissector_key_ip *key;
|
|
struct flow_dissector_key_ip *mask;
|
|
};
|
|
|
|
struct flow_match_ports {
|
|
struct flow_dissector_key_ports *key;
|
|
struct flow_dissector_key_ports *mask;
|
|
};
|
|
|
|
struct flow_match_ports_range {
|
|
struct flow_dissector_key_ports_range *key;
|
|
struct flow_dissector_key_ports_range *mask;
|
|
};
|
|
|
|
struct flow_match_tcp {
|
|
struct flow_dissector_key_tcp *key;
|
|
struct flow_dissector_key_tcp *mask;
|
|
};
|
|
|
|
struct flow_match_icmp {
|
|
struct flow_dissector_key_icmp *key;
|
|
struct flow_dissector_key_icmp *mask;
|
|
};
|
|
|
|
struct flow_match_mpls {
|
|
struct flow_dissector_key_mpls *key;
|
|
struct flow_dissector_key_mpls *mask;
|
|
};
|
|
|
|
struct flow_match_enc_keyid {
|
|
struct flow_dissector_key_keyid *key;
|
|
struct flow_dissector_key_keyid *mask;
|
|
};
|
|
|
|
struct flow_match_enc_opts {
|
|
struct flow_dissector_key_enc_opts *key;
|
|
struct flow_dissector_key_enc_opts *mask;
|
|
};
|
|
|
|
struct flow_match_ct {
|
|
struct flow_dissector_key_ct *key;
|
|
struct flow_dissector_key_ct *mask;
|
|
};
|
|
|
|
struct flow_match_pppoe {
|
|
struct flow_dissector_key_pppoe *key;
|
|
struct flow_dissector_key_pppoe *mask;
|
|
};
|
|
|
|
struct flow_match_l2tpv3 {
|
|
struct flow_dissector_key_l2tpv3 *key;
|
|
struct flow_dissector_key_l2tpv3 *mask;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64);
|
|
|
|
typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64);
|
|
|
|
struct bpf_stab {
|
|
struct bpf_map map;
|
|
struct sock **sks;
|
|
struct sk_psock_progs progs;
|
|
raw_spinlock_t lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_shtab_bucket;
|
|
|
|
struct bpf_shtab {
|
|
struct bpf_map map;
|
|
struct bpf_shtab_bucket *buckets;
|
|
u32 buckets_num;
|
|
u32 elem_size;
|
|
struct sk_psock_progs progs;
|
|
atomic_t count;
|
|
long: 32;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_shtab_bucket {
|
|
struct hlist_head head;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
struct bpf_shtab_elem {
|
|
struct callback_head rcu;
|
|
u32 hash;
|
|
struct sock *sk;
|
|
struct hlist_node node;
|
|
u8 key[0];
|
|
};
|
|
|
|
struct sock_map_seq_info {
|
|
struct bpf_map *map;
|
|
struct sock *sk;
|
|
u32 index;
|
|
};
|
|
|
|
struct bpf_iter__sockmap {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct bpf_map *map;
|
|
};
|
|
union {
|
|
void *key;
|
|
};
|
|
union {
|
|
struct sock *sk;
|
|
};
|
|
};
|
|
|
|
struct sock_hash_seq_info {
|
|
struct bpf_map *map;
|
|
struct bpf_shtab *htab;
|
|
u32 bucket_id;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_TSINFO_UNSPEC = 0,
|
|
ETHTOOL_A_TSINFO_HEADER = 1,
|
|
ETHTOOL_A_TSINFO_TIMESTAMPING = 2,
|
|
ETHTOOL_A_TSINFO_TX_TYPES = 3,
|
|
ETHTOOL_A_TSINFO_RX_FILTERS = 4,
|
|
ETHTOOL_A_TSINFO_PHC_INDEX = 5,
|
|
__ETHTOOL_A_TSINFO_CNT = 6,
|
|
ETHTOOL_A_TSINFO_MAX = 5,
|
|
};
|
|
|
|
struct tsinfo_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_ts_info ts_info;
|
|
};
|
|
|
|
struct xt_secmark_target_info_v1 {
|
|
__u8 mode;
|
|
char secctx[256];
|
|
__u32 secid;
|
|
};
|
|
|
|
struct xt_secmark_target_info {
|
|
__u8 mode;
|
|
__u32 secid;
|
|
char secctx[256];
|
|
};
|
|
|
|
struct udp_tunnel_nic_ops {
|
|
void (*get_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
|
|
void (*set_port_priv)(struct net_device *, unsigned int, unsigned int, u8);
|
|
void (*add_port)(struct net_device *, struct udp_tunnel_info *);
|
|
void (*del_port)(struct net_device *, struct udp_tunnel_info *);
|
|
void (*reset_ntf)(struct net_device *);
|
|
size_t (*dump_size)(struct net_device *, unsigned int);
|
|
int (*dump_write)(struct net_device *, unsigned int, struct sk_buff *);
|
|
};
|
|
|
|
struct ac6_iter_state {
|
|
struct seq_net_private p;
|
|
struct net_device *dev;
|
|
struct inet6_dev *idev;
|
|
};
|
|
|
|
struct ieee80211_roc_work {
|
|
struct list_head list;
|
|
struct ieee80211_sub_if_data *sdata;
|
|
struct ieee80211_channel *chan;
|
|
bool started;
|
|
bool abort;
|
|
bool hw_begun;
|
|
bool notified;
|
|
bool on_channel;
|
|
unsigned long start_time;
|
|
u32 duration;
|
|
u32 req_duration;
|
|
struct sk_buff *frame;
|
|
u64 cookie;
|
|
u64 mgmt_tx_cookie;
|
|
enum ieee80211_roc_type type;
|
|
};
|
|
|
|
enum ieee80211_chanctx_change {
|
|
IEEE80211_CHANCTX_CHANGE_WIDTH = 1,
|
|
IEEE80211_CHANCTX_CHANGE_RX_CHAINS = 2,
|
|
IEEE80211_CHANCTX_CHANGE_RADAR = 4,
|
|
IEEE80211_CHANCTX_CHANGE_CHANNEL = 8,
|
|
IEEE80211_CHANCTX_CHANGE_MIN_WIDTH = 16,
|
|
};
|
|
|
|
struct xsk_dma_map {
|
|
dma_addr_t *dma_pages;
|
|
struct device *dev;
|
|
struct net_device *netdev;
|
|
refcount_t users;
|
|
struct list_head list;
|
|
u32 dma_pages_cnt;
|
|
bool dma_need_sync;
|
|
};
|
|
|
|
struct irq_info___2 {
|
|
u8 bus;
|
|
u8 devfn;
|
|
struct {
|
|
u8 link;
|
|
u16 bitmap;
|
|
} __attribute__((packed)) irq[4];
|
|
u8 slot;
|
|
u8 rfu;
|
|
};
|
|
|
|
struct irq_routing_table {
|
|
u32 signature;
|
|
u16 version;
|
|
u16 size;
|
|
u8 rtr_bus;
|
|
u8 rtr_devfn;
|
|
u16 exclusive_irqs;
|
|
u16 rtr_vendor;
|
|
u16 rtr_device;
|
|
u32 miniport_data;
|
|
u8 rfu[11];
|
|
u8 checksum;
|
|
struct irq_info___2 slots[0];
|
|
};
|
|
|
|
struct irq_router {
|
|
char *name;
|
|
u16 vendor;
|
|
u16 device;
|
|
int (*get)(struct pci_dev *, struct pci_dev *, int);
|
|
int (*set)(struct pci_dev *, struct pci_dev *, int, int);
|
|
int (*lvl)(struct pci_dev *, struct pci_dev *, int, int);
|
|
};
|
|
|
|
struct irq_router_handler {
|
|
u16 vendor;
|
|
int (*probe)(struct irq_router *, struct pci_dev *, u16);
|
|
};
|
|
|
|
struct irt_routing_table {
|
|
u32 signature;
|
|
u8 size;
|
|
u8 used;
|
|
u16 exclusive_irqs;
|
|
struct irq_info___2 slots[0];
|
|
};
|
|
|
|
struct bts_ctx {
|
|
struct perf_output_handle handle;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
struct debug_store ds_back;
|
|
int state;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
enum {
|
|
BTS_STATE_STOPPED = 0,
|
|
BTS_STATE_INACTIVE = 1,
|
|
BTS_STATE_ACTIVE = 2,
|
|
};
|
|
|
|
struct bts_phys {
|
|
struct page *page;
|
|
unsigned long size;
|
|
unsigned long offset;
|
|
unsigned long displacement;
|
|
};
|
|
|
|
struct bts_buffer {
|
|
size_t real_size;
|
|
unsigned int nr_pages;
|
|
unsigned int nr_bufs;
|
|
unsigned int cur_buf;
|
|
bool snapshot;
|
|
local_t data_size;
|
|
local_t head;
|
|
unsigned long end;
|
|
void **data_pages;
|
|
struct bts_phys buf[0];
|
|
};
|
|
|
|
enum insn_type {
|
|
CALL = 0,
|
|
NOP___2 = 1,
|
|
JMP = 2,
|
|
RET = 3,
|
|
JCC = 4,
|
|
};
|
|
|
|
struct user_i387_ia32_struct {
|
|
u32 cwd;
|
|
u32 swd;
|
|
u32 twd;
|
|
u32 fip;
|
|
u32 fcs;
|
|
u32 foo;
|
|
u32 fos;
|
|
u32 st_space[20];
|
|
};
|
|
|
|
struct mtrr_sentry32 {
|
|
compat_ulong_t base;
|
|
compat_uint_t size;
|
|
compat_uint_t type;
|
|
};
|
|
|
|
struct mtrr_gentry32 {
|
|
compat_ulong_t regnum;
|
|
compat_uint_t base;
|
|
compat_uint_t size;
|
|
compat_uint_t type;
|
|
};
|
|
|
|
struct mtrr_sentry {
|
|
__u64 base;
|
|
__u32 size;
|
|
__u32 type;
|
|
};
|
|
|
|
struct mtrr_gentry {
|
|
__u64 base;
|
|
__u32 size;
|
|
__u32 regnum;
|
|
__u32 type;
|
|
__u32 _pad;
|
|
};
|
|
|
|
typedef void crash_vmclear_fn();
|
|
|
|
enum cpa_warn {
|
|
CPA_CONFLICT = 0,
|
|
CPA_PROTECT = 1,
|
|
CPA_DETECT = 2,
|
|
};
|
|
|
|
struct cpa_data {
|
|
unsigned long *vaddr;
|
|
pgd_t *pgd;
|
|
pgprot_t mask_set;
|
|
pgprot_t mask_clr;
|
|
unsigned long numpages;
|
|
unsigned long curpage;
|
|
unsigned long pfn;
|
|
unsigned int flags;
|
|
unsigned int force_split: 1;
|
|
unsigned int force_static_prot: 1;
|
|
unsigned int force_flush_all: 1;
|
|
struct page **pages;
|
|
};
|
|
|
|
typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int);
|
|
|
|
typedef void (*btf_trace_contention_end)(void *, void *, int);
|
|
|
|
struct trace_event_raw_contention_begin {
|
|
struct trace_entry ent;
|
|
void *lock_addr;
|
|
unsigned int flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_contention_end {
|
|
struct trace_entry ent;
|
|
void *lock_addr;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct mutex_waiter {
|
|
struct list_head list;
|
|
struct task_struct *task;
|
|
struct ww_acquire_ctx *ww_ctx;
|
|
};
|
|
|
|
struct trace_event_data_offsets_contention_begin {};
|
|
|
|
struct trace_event_data_offsets_contention_end {};
|
|
|
|
struct klp_shadow {
|
|
struct hlist_node node;
|
|
struct callback_head callback_head;
|
|
void *obj;
|
|
unsigned long id;
|
|
char data[0];
|
|
};
|
|
|
|
typedef void (*klp_shadow_dtor_t)(void *, void *);
|
|
|
|
typedef int (*klp_shadow_ctor_t)(void *, void *, void *);
|
|
|
|
struct dma_devres {
|
|
size_t size;
|
|
void *vaddr;
|
|
dma_addr_t dma_handle;
|
|
unsigned long attrs;
|
|
};
|
|
|
|
struct futex_waitv {
|
|
__u64 val;
|
|
__u64 uaddr;
|
|
__u32 flags;
|
|
__u32 __reserved;
|
|
};
|
|
|
|
struct futex_vector {
|
|
struct futex_waitv w;
|
|
struct futex_q q;
|
|
};
|
|
|
|
enum cgroup_filetype {
|
|
CGROUP_FILE_PROCS = 0,
|
|
CGROUP_FILE_TASKS = 1,
|
|
};
|
|
|
|
enum cgroup1_param {
|
|
Opt_all = 0,
|
|
Opt_clone_children = 1,
|
|
Opt_cpuset_v2_mode = 2,
|
|
Opt_name = 3,
|
|
Opt_none = 4,
|
|
Opt_noprefix = 5,
|
|
Opt_release_agent = 6,
|
|
Opt_xattr = 7,
|
|
Opt_favordynmods___2 = 8,
|
|
Opt_nofavordynmods = 9,
|
|
};
|
|
|
|
struct cgroup_pidlist {
|
|
struct {
|
|
enum cgroup_filetype type;
|
|
struct pid_namespace *ns;
|
|
} key;
|
|
pid_t *list;
|
|
int length;
|
|
struct list_head links;
|
|
struct cgroup *owner;
|
|
struct delayed_work destroy_dwork;
|
|
};
|
|
|
|
struct trace_bprintk_fmt {
|
|
struct list_head list;
|
|
const char *fmt;
|
|
};
|
|
|
|
struct dynevent_arg_pair {
|
|
const char *lhs;
|
|
const char *rhs;
|
|
char operator;
|
|
char separator;
|
|
};
|
|
|
|
struct lpm_trie_node;
|
|
|
|
struct lpm_trie {
|
|
struct bpf_map map;
|
|
struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *root;
|
|
size_t n_entries;
|
|
size_t max_prefixlen;
|
|
size_t data_size;
|
|
spinlock_t lock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct lpm_trie_node {
|
|
struct callback_head rcu;
|
|
struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *child[2];
|
|
u32 prefixlen;
|
|
u32 flags;
|
|
u8 data[0];
|
|
};
|
|
|
|
struct bpf_lpm_trie_key {
|
|
__u32 prefixlen;
|
|
__u8 data[0];
|
|
};
|
|
|
|
typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_mm_compaction_migratepages)(void *, struct compact_control *, unsigned int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool);
|
|
|
|
typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int);
|
|
|
|
typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type);
|
|
|
|
typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type);
|
|
|
|
struct trace_event_raw_mm_compaction_isolate_template {
|
|
struct trace_entry ent;
|
|
unsigned long start_pfn;
|
|
unsigned long end_pfn;
|
|
unsigned long nr_scanned;
|
|
unsigned long nr_taken;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_migratepages {
|
|
struct trace_entry ent;
|
|
unsigned long nr_migrated;
|
|
unsigned long nr_failed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_begin {
|
|
struct trace_entry ent;
|
|
unsigned long zone_start;
|
|
unsigned long migrate_pfn;
|
|
unsigned long free_pfn;
|
|
unsigned long zone_end;
|
|
bool sync;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_end {
|
|
struct trace_entry ent;
|
|
unsigned long zone_start;
|
|
unsigned long migrate_pfn;
|
|
unsigned long free_pfn;
|
|
unsigned long zone_end;
|
|
bool sync;
|
|
int status;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_try_to_compact_pages {
|
|
struct trace_entry ent;
|
|
int order;
|
|
unsigned long gfp_mask;
|
|
int prio;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_suitable_template {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
enum zone_type idx;
|
|
int order;
|
|
int ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_defer_template {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
enum zone_type idx;
|
|
int order;
|
|
unsigned int considered;
|
|
unsigned int defer_shift;
|
|
int order_failed;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_mm_compaction_kcompactd_sleep {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_kcompactd_wake_template {
|
|
struct trace_entry ent;
|
|
int nid;
|
|
int order;
|
|
enum zone_type highest_zoneidx;
|
|
char __data[0];
|
|
};
|
|
|
|
typedef enum {
|
|
ISOLATE_ABORT = 0,
|
|
ISOLATE_NONE = 1,
|
|
ISOLATE_SUCCESS = 2,
|
|
} isolate_migrate_t;
|
|
|
|
struct trace_event_data_offsets_mm_compaction_isolate_template {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_migratepages {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_begin {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_end {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_suitable_template {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_defer_template {};
|
|
|
|
struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {};
|
|
|
|
struct trace_event_data_offsets_kcompactd_wake_template {};
|
|
|
|
struct eventfd_ctx {
|
|
struct kref kref;
|
|
wait_queue_head_t wqh;
|
|
__u64 count;
|
|
unsigned int flags;
|
|
int id;
|
|
};
|
|
|
|
struct ext_wait_queue {
|
|
struct task_struct *task;
|
|
struct list_head list;
|
|
struct msg_msg *msg;
|
|
int state;
|
|
};
|
|
|
|
struct posix_msg_tree_node;
|
|
|
|
struct mqueue_inode_info {
|
|
spinlock_t lock;
|
|
struct inode vfs_inode;
|
|
wait_queue_head_t wait_q;
|
|
struct rb_root msg_tree;
|
|
struct rb_node *msg_tree_rightmost;
|
|
struct posix_msg_tree_node *node_cache;
|
|
struct mq_attr attr;
|
|
struct sigevent notify;
|
|
struct pid *notify_owner;
|
|
u32 notify_self_exec_id;
|
|
struct user_namespace *notify_user_ns;
|
|
struct ucounts *ucounts;
|
|
struct sock *notify_sock;
|
|
struct sk_buff *notify_cookie;
|
|
struct ext_wait_queue e_wait_q[2];
|
|
unsigned long qsize;
|
|
};
|
|
|
|
struct posix_msg_tree_node {
|
|
struct rb_node rb_node;
|
|
struct list_head msg_list;
|
|
int priority;
|
|
};
|
|
|
|
struct compat_mq_attr {
|
|
compat_long_t mq_flags;
|
|
compat_long_t mq_maxmsg;
|
|
compat_long_t mq_msgsize;
|
|
compat_long_t mq_curmsgs;
|
|
compat_long_t __reserved[4];
|
|
};
|
|
|
|
struct mqueue_fs_context {
|
|
struct ipc_namespace *ipc_ns;
|
|
bool newns;
|
|
};
|
|
|
|
struct ahash_alg {
|
|
int (*init)(struct ahash_request *);
|
|
int (*update)(struct ahash_request *);
|
|
int (*final)(struct ahash_request *);
|
|
int (*finup)(struct ahash_request *);
|
|
int (*digest)(struct ahash_request *);
|
|
int (*export)(struct ahash_request *, void *);
|
|
int (*import)(struct ahash_request *, const void *);
|
|
int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
|
|
int (*init_tfm)(struct crypto_ahash *);
|
|
void (*exit_tfm)(struct crypto_ahash *);
|
|
struct hash_alg_common halg;
|
|
};
|
|
|
|
struct ahash_instance {
|
|
void (*free)(struct ahash_instance *);
|
|
union {
|
|
struct {
|
|
char head[88];
|
|
struct crypto_instance base;
|
|
} s;
|
|
struct ahash_alg alg;
|
|
};
|
|
};
|
|
|
|
struct authenc_esn_instance_ctx {
|
|
struct crypto_ahash_spawn auth;
|
|
struct crypto_skcipher_spawn enc;
|
|
};
|
|
|
|
struct crypto_authenc_esn_ctx {
|
|
unsigned int reqoff;
|
|
struct crypto_ahash *auth;
|
|
struct crypto_skcipher *enc;
|
|
struct crypto_sync_skcipher *null;
|
|
};
|
|
|
|
struct authenc_esn_request_ctx {
|
|
struct scatterlist src[2];
|
|
struct scatterlist dst[2];
|
|
char tail[0];
|
|
};
|
|
|
|
enum prio_policy {
|
|
POLICY_NO_CHANGE = 0,
|
|
POLICY_NONE_TO_RT = 1,
|
|
POLICY_RESTRICT_TO_BE = 2,
|
|
POLICY_ALL_TO_IDLE = 3,
|
|
};
|
|
|
|
struct ioprio_blkcg {
|
|
struct blkcg_policy_data cpd;
|
|
enum prio_policy prio_policy;
|
|
};
|
|
|
|
struct ioprio_blkg {
|
|
struct blkg_policy_data pd;
|
|
};
|
|
|
|
struct io_uring_rsrc_update {
|
|
__u32 offset;
|
|
__u32 resv;
|
|
__u64 data;
|
|
};
|
|
|
|
enum smbios_attr_enum {
|
|
SMBIOS_ATTR_NONE = 0,
|
|
SMBIOS_ATTR_LABEL_SHOW = 1,
|
|
SMBIOS_ATTR_INSTANCE_SHOW = 2,
|
|
};
|
|
|
|
enum acpi_attr_enum {
|
|
ACPI_ATTR_LABEL_SHOW = 0,
|
|
ACPI_ATTR_INDEX_SHOW = 1,
|
|
};
|
|
|
|
struct acpi_ged_event {
|
|
struct list_head node;
|
|
struct device *dev;
|
|
unsigned int gsi;
|
|
unsigned int irq;
|
|
acpi_handle handle;
|
|
};
|
|
|
|
struct acpi_ged_device {
|
|
struct device *dev;
|
|
struct list_head event_list;
|
|
};
|
|
|
|
struct acpi_prmt_module_info {
|
|
u16 revision;
|
|
u16 length;
|
|
u8 module_guid[16];
|
|
u16 major_rev;
|
|
u16 minor_rev;
|
|
u16 handler_info_count;
|
|
u32 handler_info_offset;
|
|
u64 mmio_list_pointer;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_prmt_handler_info {
|
|
u16 revision;
|
|
u16 length;
|
|
u8 handler_guid[16];
|
|
u64 handler_address;
|
|
u64 static_data_buffer_address;
|
|
u64 acpi_param_buffer_address;
|
|
} __attribute__((packed));
|
|
|
|
struct prm_buffer {
|
|
u8 prm_status;
|
|
u64 efi_status;
|
|
u8 prm_cmd;
|
|
guid_t handler_guid;
|
|
} __attribute__((packed));
|
|
|
|
struct prm_handler_info {
|
|
guid_t guid;
|
|
void *handler_addr;
|
|
u64 static_data_buffer_addr;
|
|
u64 acpi_param_buffer_addr;
|
|
struct list_head handler_list;
|
|
};
|
|
|
|
struct prm_mmio_info;
|
|
|
|
struct prm_module_info {
|
|
guid_t guid;
|
|
u16 major_rev;
|
|
u16 minor_rev;
|
|
u16 handler_count;
|
|
struct prm_mmio_info *mmio_info;
|
|
bool updatable;
|
|
struct list_head module_list;
|
|
struct prm_handler_info handlers[0];
|
|
};
|
|
|
|
struct prm_mmio_addr_range {
|
|
u64 phys_addr;
|
|
u64 virt_addr;
|
|
u32 length;
|
|
} __attribute__((packed));
|
|
|
|
struct prm_mmio_info {
|
|
u64 mmio_count;
|
|
struct prm_mmio_addr_range addr_ranges[0];
|
|
};
|
|
|
|
struct prm_context_buffer {
|
|
char signature[4];
|
|
u16 revision;
|
|
u16 reserved;
|
|
guid_t identifier;
|
|
u64 static_data_buffer;
|
|
struct prm_mmio_info *mmio_ranges;
|
|
};
|
|
|
|
enum bios_platform_class {
|
|
BIOS_CLIENT = 0,
|
|
BIOS_SERVER = 1,
|
|
};
|
|
|
|
struct client_hdr {
|
|
u32 log_max_len;
|
|
u64 log_start_addr;
|
|
} __attribute__((packed));
|
|
|
|
struct server_hdr {
|
|
u16 reserved;
|
|
u64 log_max_len;
|
|
u64 log_start_addr;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_tcpa {
|
|
struct acpi_table_header hdr;
|
|
u16 platform_class;
|
|
union {
|
|
struct client_hdr client;
|
|
struct server_hdr server;
|
|
};
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_tpm2_phy {
|
|
u8 start_method_specific[12];
|
|
u32 log_area_minimum_length;
|
|
u64 log_area_start_address;
|
|
};
|
|
|
|
struct vlv_s0ix_state {
|
|
u32 wr_watermark;
|
|
u32 gfx_prio_ctrl;
|
|
u32 arb_mode;
|
|
u32 gfx_pend_tlb0;
|
|
u32 gfx_pend_tlb1;
|
|
u32 lra_limits[13];
|
|
u32 media_max_req_count;
|
|
u32 gfx_max_req_count;
|
|
u32 render_hwsp;
|
|
u32 ecochk;
|
|
u32 bsd_hwsp;
|
|
u32 blt_hwsp;
|
|
u32 tlb_rd_addr;
|
|
u32 g3dctl;
|
|
u32 gsckgctl;
|
|
u32 mbctl;
|
|
u32 ucgctl1;
|
|
u32 ucgctl3;
|
|
u32 rcgctl1;
|
|
u32 rcgctl2;
|
|
u32 rstctl;
|
|
u32 misccpctl;
|
|
u32 gfxpause;
|
|
u32 rpdeuhwtc;
|
|
u32 rpdeuc;
|
|
u32 ecobus;
|
|
u32 pwrdwnupctl;
|
|
u32 rp_down_timeout;
|
|
u32 rp_deucsw;
|
|
u32 rcubmabdtmr;
|
|
u32 rcedata;
|
|
u32 spare2gh;
|
|
u32 gt_imr;
|
|
u32 gt_ier;
|
|
u32 pm_imr;
|
|
u32 pm_ier;
|
|
u32 gt_scratch[8];
|
|
u32 tilectl;
|
|
u32 gt_fifoctl;
|
|
u32 gtlc_wake_ctrl;
|
|
u32 gtlc_survive;
|
|
u32 pmwgicz;
|
|
u32 gu_ctl0;
|
|
u32 gu_ctl1;
|
|
u32 pcbr;
|
|
u32 clock_gate_dis2;
|
|
};
|
|
|
|
struct drm_i915_gem_create_ext_memory_regions {
|
|
struct i915_user_extension base;
|
|
__u32 pad;
|
|
__u32 num_regions;
|
|
__u64 regions;
|
|
};
|
|
|
|
struct create_ext___2 {
|
|
struct drm_i915_private___3 *i915;
|
|
struct intel_memory_region *placements[7];
|
|
unsigned int n_placements;
|
|
unsigned int placement_mask;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct drm_i915_gem_create {
|
|
__u64 size;
|
|
__u32 handle;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_i915_gem_create_ext {
|
|
__u64 size;
|
|
__u32 handle;
|
|
__u32 flags;
|
|
__u64 extensions;
|
|
};
|
|
|
|
struct drm_i915_gem_create_ext_protected_content {
|
|
struct i915_user_extension base;
|
|
__u32 flags;
|
|
};
|
|
|
|
enum intel_guc_rc_options {
|
|
INTEL_GUCRC_HOST_CONTROL = 0,
|
|
INTEL_GUCRC_FIRMWARE_CONTROL = 1,
|
|
};
|
|
|
|
struct skl_wrpll_params {
|
|
u32 dco_fraction;
|
|
u32 dco_integer;
|
|
u32 qdiv_ratio;
|
|
u32 qdiv_mode;
|
|
u32 kdiv;
|
|
u32 pdiv;
|
|
u32 central_freq;
|
|
};
|
|
|
|
struct icl_combo_pll_params {
|
|
int clock;
|
|
struct skl_wrpll_params wrpll;
|
|
};
|
|
|
|
struct skl_dpll_regs {
|
|
i915_reg_t ctl;
|
|
i915_reg_t cfgcr1;
|
|
i915_reg_t cfgcr2;
|
|
};
|
|
|
|
struct skl_wrpll_context {
|
|
u64 min_deviation;
|
|
u64 central_freq;
|
|
u64 dco_freq;
|
|
unsigned int p;
|
|
};
|
|
|
|
struct hsw_wrpll_rnp {
|
|
unsigned int p;
|
|
unsigned int n2;
|
|
unsigned int r2;
|
|
};
|
|
|
|
typedef const u8 * (*fn_mipi_elem_exec)(struct intel_dsi *, const u8 *);
|
|
|
|
struct gpio_map {
|
|
u16 base_offset;
|
|
bool init;
|
|
};
|
|
|
|
struct gpiod_lookup {
|
|
const char *key;
|
|
u16 chip_hwnum;
|
|
const char *con_id;
|
|
unsigned int idx;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct gpiod_lookup_table {
|
|
struct list_head list;
|
|
const char *dev_id;
|
|
struct gpiod_lookup table[0];
|
|
};
|
|
|
|
enum pinctrl_map_type {
|
|
PIN_MAP_TYPE_INVALID = 0,
|
|
PIN_MAP_TYPE_DUMMY_STATE = 1,
|
|
PIN_MAP_TYPE_MUX_GROUP = 2,
|
|
PIN_MAP_TYPE_CONFIGS_PIN = 3,
|
|
PIN_MAP_TYPE_CONFIGS_GROUP = 4,
|
|
};
|
|
|
|
struct pinctrl_map_mux {
|
|
const char *group;
|
|
const char *function;
|
|
};
|
|
|
|
struct pinctrl_map_configs {
|
|
const char *group_or_pin;
|
|
unsigned long *configs;
|
|
unsigned int num_configs;
|
|
};
|
|
|
|
struct pinctrl_map {
|
|
const char *dev_name;
|
|
const char *name;
|
|
enum pinctrl_map_type type;
|
|
const char *ctrl_dev_name;
|
|
union {
|
|
struct pinctrl_map_mux mux;
|
|
struct pinctrl_map_configs configs;
|
|
} data;
|
|
};
|
|
|
|
enum {
|
|
MIPI_RESET_1 = 0,
|
|
MIPI_AVDD_EN_1 = 1,
|
|
MIPI_BKLT_EN_1 = 2,
|
|
MIPI_AVEE_EN_1 = 3,
|
|
MIPI_VIO_EN_1 = 4,
|
|
MIPI_RESET_2 = 5,
|
|
MIPI_AVDD_EN_2 = 6,
|
|
MIPI_BKLT_EN_2 = 7,
|
|
MIPI_AVEE_EN_2 = 8,
|
|
MIPI_VIO_EN_2 = 9,
|
|
};
|
|
|
|
struct i2c_adapter_lookup {
|
|
u16 slave_addr;
|
|
struct intel_dsi *intel_dsi;
|
|
acpi_handle dev_handle;
|
|
};
|
|
|
|
struct virtio_gpu_vbuffer;
|
|
|
|
typedef void (*virtio_gpu_resp_cb)(struct virtio_gpu_device *, struct virtio_gpu_vbuffer *);
|
|
|
|
struct virtio_gpu_vbuffer {
|
|
char *buf;
|
|
int size;
|
|
void *data_buf;
|
|
uint32_t data_size;
|
|
char *resp_buf;
|
|
int resp_size;
|
|
virtio_gpu_resp_cb resp_cb;
|
|
void *resp_cb_data;
|
|
struct virtio_gpu_object_array *objs;
|
|
struct list_head list;
|
|
uint32_t seqno;
|
|
};
|
|
|
|
struct virtio_gpu_command;
|
|
|
|
struct virtio_gpu_resp_display_info {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_display_one pmodes[16];
|
|
};
|
|
|
|
struct virtio_gpu_get_capset_info {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 capset_index;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_resp_capset_info {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 capset_id;
|
|
__le32 capset_max_version;
|
|
__le32 capset_max_size;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_get_capset {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 capset_id;
|
|
__le32 capset_version;
|
|
};
|
|
|
|
struct virtio_gpu_resp_capset {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__u8 capset_data[0];
|
|
};
|
|
|
|
struct virtio_gpu_cmd_get_edid {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 scanout;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_resp_edid {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 size;
|
|
__le32 padding;
|
|
__u8 edid[1024];
|
|
};
|
|
|
|
struct virtio_gpu_resp_resource_uuid {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__u8 uuid[16];
|
|
};
|
|
|
|
struct virtio_gpu_resp_map_info {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__u32 map_info;
|
|
__u32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_box {
|
|
__le32 x;
|
|
__le32 y;
|
|
__le32 z;
|
|
__le32 w;
|
|
__le32 h;
|
|
__le32 d;
|
|
};
|
|
|
|
struct virtio_gpu_resource_attach_backing {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 nr_entries;
|
|
};
|
|
|
|
struct virtio_gpu_resource_create_2d {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 format;
|
|
__le32 width;
|
|
__le32 height;
|
|
};
|
|
|
|
struct virtio_gpu_resource_unref {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_set_scanout {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_rect r;
|
|
__le32 scanout_id;
|
|
__le32 resource_id;
|
|
};
|
|
|
|
struct virtio_gpu_resource_flush {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_rect r;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_transfer_to_host_2d {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_rect r;
|
|
__le64 offset;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_ctx_create {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 nlen;
|
|
__le32 context_init;
|
|
char debug_name[64];
|
|
};
|
|
|
|
struct virtio_gpu_ctx_destroy {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
};
|
|
|
|
struct virtio_gpu_ctx_resource {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_resource_create_3d {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 target;
|
|
__le32 format;
|
|
__le32 bind;
|
|
__le32 width;
|
|
__le32 height;
|
|
__le32 depth;
|
|
__le32 array_size;
|
|
__le32 last_level;
|
|
__le32 nr_samples;
|
|
__le32 flags;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_transfer_host_3d {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_box box;
|
|
__le64 offset;
|
|
__le32 resource_id;
|
|
__le32 level;
|
|
__le32 stride;
|
|
__le32 layer_stride;
|
|
};
|
|
|
|
struct virtio_gpu_cmd_submit {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 size;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_resource_assign_uuid {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_resource_map_blob {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
__le64 offset;
|
|
};
|
|
|
|
struct virtio_gpu_resource_unmap_blob {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 padding;
|
|
};
|
|
|
|
struct virtio_gpu_resource_create_blob {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
__le32 resource_id;
|
|
__le32 blob_mem;
|
|
__le32 blob_flags;
|
|
__le32 nr_entries;
|
|
__le64 blob_id;
|
|
__le64 size;
|
|
};
|
|
|
|
struct virtio_gpu_set_scanout_blob {
|
|
struct virtio_gpu_ctrl_hdr hdr;
|
|
struct virtio_gpu_rect r;
|
|
__le32 scanout_id;
|
|
__le32 resource_id;
|
|
__le32 width;
|
|
__le32 height;
|
|
__le32 format;
|
|
__le32 padding;
|
|
__le32 strides[4];
|
|
__le32 offsets[4];
|
|
};
|
|
|
|
struct ata_eh_cmd_timeout_ent {
|
|
const u8 *commands;
|
|
const unsigned int *timeouts;
|
|
};
|
|
|
|
enum {
|
|
ATA_EH_SPDN_NCQ_OFF = 1,
|
|
ATA_EH_SPDN_SPEED_DOWN = 2,
|
|
ATA_EH_SPDN_FALLBACK_TO_PIO = 4,
|
|
ATA_EH_SPDN_KEEP_ERRORS = 8,
|
|
ATA_EFLAG_IS_IO = 1,
|
|
ATA_EFLAG_DUBIOUS_XFER = 2,
|
|
ATA_EFLAG_OLD_ER = -2147483648,
|
|
ATA_ECAT_NONE = 0,
|
|
ATA_ECAT_ATA_BUS = 1,
|
|
ATA_ECAT_TOUT_HSM = 2,
|
|
ATA_ECAT_UNK_DEV = 3,
|
|
ATA_ECAT_DUBIOUS_NONE = 4,
|
|
ATA_ECAT_DUBIOUS_ATA_BUS = 5,
|
|
ATA_ECAT_DUBIOUS_TOUT_HSM = 6,
|
|
ATA_ECAT_DUBIOUS_UNK_DEV = 7,
|
|
ATA_ECAT_NR = 8,
|
|
ATA_EH_CMD_DFL_TIMEOUT = 5000,
|
|
ATA_EH_RESET_COOL_DOWN = 5000,
|
|
ATA_EH_PRERESET_TIMEOUT = 10000,
|
|
ATA_EH_FASTDRAIN_INTERVAL = 3000,
|
|
ATA_EH_UA_TRIES = 5,
|
|
ATA_EH_PROBE_TRIAL_INTERVAL = 60000,
|
|
ATA_EH_PROBE_TRIALS = 2,
|
|
};
|
|
|
|
struct speed_down_verdict_arg {
|
|
u64 since;
|
|
int xfer_ok;
|
|
int nr_errors[8];
|
|
};
|
|
|
|
struct cdrom_sysctl_settings {
|
|
char info[1000];
|
|
int autoclose;
|
|
int autoeject;
|
|
int debug;
|
|
int lock;
|
|
int check;
|
|
};
|
|
|
|
enum cdrom_print_option {
|
|
CTL_NAME = 0,
|
|
CTL_SPEED = 1,
|
|
CTL_SLOTS = 2,
|
|
CTL_CAPABILITY = 3,
|
|
};
|
|
|
|
struct mrw_feature_desc {
|
|
__be16 feature_code;
|
|
__u8 curr: 1;
|
|
__u8 persistent: 1;
|
|
__u8 feature_version: 4;
|
|
__u8 reserved1: 2;
|
|
__u8 add_len;
|
|
__u8 write: 1;
|
|
__u8 reserved2: 7;
|
|
__u8 reserved3;
|
|
__u8 reserved4;
|
|
__u8 reserved5;
|
|
};
|
|
|
|
struct mode_page_header {
|
|
__be16 mode_data_length;
|
|
__u8 medium_type;
|
|
__u8 reserved1;
|
|
__u8 reserved2;
|
|
__u8 reserved3;
|
|
__be16 desc_length;
|
|
};
|
|
|
|
struct cdrom_timed_media_change_info {
|
|
__s64 last_media_change;
|
|
__u64 media_flags;
|
|
};
|
|
|
|
struct cdrom_msf {
|
|
__u8 cdmsf_min0;
|
|
__u8 cdmsf_sec0;
|
|
__u8 cdmsf_frame0;
|
|
__u8 cdmsf_min1;
|
|
__u8 cdmsf_sec1;
|
|
__u8 cdmsf_frame1;
|
|
};
|
|
|
|
struct cdrom_read_audio {
|
|
union cdrom_addr addr;
|
|
__u8 addr_format;
|
|
int nframes;
|
|
__u8 __attribute__((btf_type_tag("user"))) *buf;
|
|
};
|
|
|
|
struct cdrom_subchnl {
|
|
__u8 cdsc_format;
|
|
__u8 cdsc_audiostatus;
|
|
__u8 cdsc_adr: 4;
|
|
__u8 cdsc_ctrl: 4;
|
|
__u8 cdsc_trk;
|
|
__u8 cdsc_ind;
|
|
union cdrom_addr cdsc_absaddr;
|
|
union cdrom_addr cdsc_reladdr;
|
|
};
|
|
|
|
struct cdrom_blk {
|
|
unsigned int from;
|
|
unsigned short len;
|
|
};
|
|
|
|
struct cdrom_volctrl {
|
|
__u8 channel0;
|
|
__u8 channel1;
|
|
__u8 channel2;
|
|
__u8 channel3;
|
|
};
|
|
|
|
struct dvd_lu_send_agid {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
};
|
|
|
|
typedef __u8 dvd_challenge[10];
|
|
|
|
struct dvd_host_send_challenge {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
dvd_challenge chal;
|
|
};
|
|
|
|
typedef __u8 dvd_key[5];
|
|
|
|
struct dvd_send_key {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
dvd_key key;
|
|
};
|
|
|
|
struct dvd_lu_send_challenge {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
dvd_challenge chal;
|
|
};
|
|
|
|
struct dvd_lu_send_title_key {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
dvd_key title_key;
|
|
int lba;
|
|
unsigned int cpm: 1;
|
|
unsigned int cp_sec: 1;
|
|
unsigned int cgms: 2;
|
|
};
|
|
|
|
struct dvd_lu_send_asf {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
unsigned int asf: 1;
|
|
};
|
|
|
|
struct dvd_host_send_rpcstate {
|
|
__u8 type;
|
|
__u8 pdrc;
|
|
};
|
|
|
|
struct dvd_lu_send_rpcstate {
|
|
__u8 type: 2;
|
|
__u8 vra: 3;
|
|
__u8 ucca: 3;
|
|
__u8 region_mask;
|
|
__u8 rpc_scheme;
|
|
};
|
|
|
|
typedef union {
|
|
__u8 type;
|
|
struct dvd_lu_send_agid lsa;
|
|
struct dvd_host_send_challenge hsc;
|
|
struct dvd_send_key lsk;
|
|
struct dvd_lu_send_challenge lsc;
|
|
struct dvd_send_key hsk;
|
|
struct dvd_lu_send_title_key lstk;
|
|
struct dvd_lu_send_asf lsasf;
|
|
struct dvd_host_send_rpcstate hrpcs;
|
|
struct dvd_lu_send_rpcstate lrpcs;
|
|
} dvd_authinfo;
|
|
|
|
typedef struct {
|
|
__be16 disc_information_length;
|
|
__u8 disc_status: 2;
|
|
__u8 border_status: 2;
|
|
__u8 erasable: 1;
|
|
__u8 reserved1: 3;
|
|
__u8 n_first_track;
|
|
__u8 n_sessions_lsb;
|
|
__u8 first_track_lsb;
|
|
__u8 last_track_lsb;
|
|
__u8 mrw_status: 2;
|
|
__u8 dbit: 1;
|
|
__u8 reserved2: 2;
|
|
__u8 uru: 1;
|
|
__u8 dbc_v: 1;
|
|
__u8 did_v: 1;
|
|
__u8 disc_type;
|
|
__u8 n_sessions_msb;
|
|
__u8 first_track_msb;
|
|
__u8 last_track_msb;
|
|
__u32 disc_id;
|
|
__u32 lead_in;
|
|
__u32 lead_out;
|
|
__u8 disc_bar_code[8];
|
|
__u8 reserved3;
|
|
__u8 n_opc;
|
|
} disc_information;
|
|
|
|
typedef struct {
|
|
int data;
|
|
int audio;
|
|
int cdi;
|
|
int xa;
|
|
long error;
|
|
} tracktype;
|
|
|
|
struct rwrt_feature_desc {
|
|
__be16 feature_code;
|
|
__u8 curr: 1;
|
|
__u8 persistent: 1;
|
|
__u8 feature_version: 4;
|
|
__u8 reserved1: 2;
|
|
__u8 add_len;
|
|
__u32 last_lba;
|
|
__u32 block_size;
|
|
__u16 blocking;
|
|
__u8 page_present: 1;
|
|
__u8 reserved2: 7;
|
|
__u8 reserved3;
|
|
};
|
|
|
|
struct cdrom_mechstat_header {
|
|
__u8 curslot: 5;
|
|
__u8 changer_state: 2;
|
|
__u8 fault: 1;
|
|
__u8 reserved1: 4;
|
|
__u8 door_open: 1;
|
|
__u8 mech_state: 3;
|
|
__u8 curlba[3];
|
|
__u8 nslots;
|
|
__u16 slot_tablelen;
|
|
};
|
|
|
|
struct cdrom_slot {
|
|
__u8 change: 1;
|
|
__u8 reserved1: 6;
|
|
__u8 disc_present: 1;
|
|
__u8 reserved2[3];
|
|
};
|
|
|
|
struct cdrom_changer_info {
|
|
struct cdrom_mechstat_header hdr;
|
|
struct cdrom_slot slots[256];
|
|
};
|
|
|
|
typedef struct {
|
|
__be16 track_information_length;
|
|
__u8 track_lsb;
|
|
__u8 session_lsb;
|
|
__u8 reserved1;
|
|
__u8 track_mode: 4;
|
|
__u8 copy: 1;
|
|
__u8 damage: 1;
|
|
__u8 reserved2: 2;
|
|
__u8 data_mode: 4;
|
|
__u8 fp: 1;
|
|
__u8 packet: 1;
|
|
__u8 blank: 1;
|
|
__u8 rt: 1;
|
|
__u8 nwa_v: 1;
|
|
__u8 lra_v: 1;
|
|
__u8 reserved3: 6;
|
|
__be32 track_start;
|
|
__be32 next_writable;
|
|
__be32 free_blocks;
|
|
__be32 fixed_packet_size;
|
|
__be32 track_size;
|
|
__be32 last_rec_address;
|
|
} track_information;
|
|
|
|
struct compat_cdrom_read_audio {
|
|
union cdrom_addr addr;
|
|
u8 addr_format;
|
|
compat_int_t nframes;
|
|
compat_caddr_t buf;
|
|
};
|
|
|
|
struct modesel_head {
|
|
__u8 reserved1;
|
|
__u8 medium;
|
|
__u8 reserved2;
|
|
__u8 block_desc_length;
|
|
__u8 density;
|
|
__u8 number_of_blocks_hi;
|
|
__u8 number_of_blocks_med;
|
|
__u8 number_of_blocks_lo;
|
|
__u8 reserved3;
|
|
__u8 block_length_hi;
|
|
__u8 block_length_med;
|
|
__u8 block_length_lo;
|
|
};
|
|
|
|
struct dvd_layer {
|
|
__u8 book_version: 4;
|
|
__u8 book_type: 4;
|
|
__u8 min_rate: 4;
|
|
__u8 disc_size: 4;
|
|
__u8 layer_type: 4;
|
|
__u8 track_path: 1;
|
|
__u8 nlayers: 2;
|
|
char: 1;
|
|
__u8 track_density: 4;
|
|
__u8 linear_density: 4;
|
|
__u8 bca: 1;
|
|
__u32 start_sector;
|
|
__u32 end_sector;
|
|
__u32 end_sector_l0;
|
|
};
|
|
|
|
struct dvd_physical {
|
|
__u8 type;
|
|
__u8 layer_num;
|
|
struct dvd_layer layer[4];
|
|
};
|
|
|
|
struct dvd_copyright {
|
|
__u8 type;
|
|
__u8 layer_num;
|
|
__u8 cpst;
|
|
__u8 rmi;
|
|
};
|
|
|
|
struct dvd_disckey {
|
|
__u8 type;
|
|
unsigned int agid: 2;
|
|
__u8 value[2048];
|
|
};
|
|
|
|
struct dvd_bca {
|
|
__u8 type;
|
|
int len;
|
|
__u8 value[188];
|
|
};
|
|
|
|
struct dvd_manufact {
|
|
__u8 type;
|
|
__u8 layer_num;
|
|
int len;
|
|
__u8 value[2048];
|
|
};
|
|
|
|
typedef union {
|
|
__u8 type;
|
|
struct dvd_physical physical;
|
|
struct dvd_copyright copyright;
|
|
struct dvd_disckey disckey;
|
|
struct dvd_bca bca;
|
|
struct dvd_manufact manufact;
|
|
} dvd_struct;
|
|
|
|
typedef struct {
|
|
__u16 report_key_length;
|
|
__u8 reserved1;
|
|
__u8 reserved2;
|
|
__u8 ucca: 3;
|
|
__u8 vra: 3;
|
|
__u8 type_code: 2;
|
|
__u8 region_mask;
|
|
__u8 rpc_scheme;
|
|
__u8 reserved3;
|
|
} rpc_state_t;
|
|
|
|
struct thermal_hwmon_device {
|
|
char type[20];
|
|
struct device *device;
|
|
int count;
|
|
struct list_head tz_list;
|
|
struct list_head node;
|
|
};
|
|
|
|
struct thermal_hwmon_attr {
|
|
struct device_attribute attr;
|
|
char name[16];
|
|
};
|
|
|
|
struct thermal_hwmon_temp {
|
|
struct list_head hwmon_node;
|
|
struct thermal_zone_device *tz;
|
|
struct thermal_hwmon_attr temp_input;
|
|
struct thermal_hwmon_attr temp_crit;
|
|
};
|
|
|
|
struct dm_sysfs_attr {
|
|
struct attribute attr;
|
|
ssize_t (*show)(struct mapped_device *, char *);
|
|
ssize_t (*store)(struct mapped_device *, const char *, size_t);
|
|
};
|
|
|
|
struct acpi_table_bgrt {
|
|
struct acpi_table_header header;
|
|
u16 version;
|
|
u8 status;
|
|
u8 image_type;
|
|
u64 image_address;
|
|
u32 image_offset_x;
|
|
u32 image_offset_y;
|
|
};
|
|
|
|
struct bmp_header {
|
|
u16 id;
|
|
u32 size;
|
|
} __attribute__((packed));
|
|
|
|
typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *);
|
|
|
|
typedef efi_status_t efi_set_time_t(efi_time_t *);
|
|
|
|
typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *);
|
|
|
|
typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *);
|
|
|
|
typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *);
|
|
|
|
typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long);
|
|
|
|
typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *);
|
|
|
|
typedef efi_status_t efi_get_next_high_mono_count_t(u32 *);
|
|
|
|
typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *);
|
|
|
|
struct efi {
|
|
const efi_runtime_services_t *runtime;
|
|
unsigned int runtime_version;
|
|
unsigned int runtime_supported_mask;
|
|
unsigned long acpi;
|
|
unsigned long acpi20;
|
|
unsigned long smbios;
|
|
unsigned long smbios3;
|
|
unsigned long esrt;
|
|
unsigned long tpm_log;
|
|
unsigned long tpm_final_log;
|
|
unsigned long mokvar_table;
|
|
unsigned long coco_secret;
|
|
efi_get_time_t *get_time;
|
|
efi_set_time_t *set_time;
|
|
efi_get_wakeup_time_t *get_wakeup_time;
|
|
efi_set_wakeup_time_t *set_wakeup_time;
|
|
efi_get_variable_t *get_variable;
|
|
efi_get_next_variable_t *get_next_variable;
|
|
efi_set_variable_t *set_variable;
|
|
efi_set_variable_t *set_variable_nonblocking;
|
|
efi_query_variable_info_t *query_variable_info;
|
|
efi_query_variable_info_t *query_variable_info_nonblocking;
|
|
efi_update_capsule_t *update_capsule;
|
|
efi_query_capsule_caps_t *query_capsule_caps;
|
|
efi_get_next_high_mono_count_t *get_next_high_mono_count;
|
|
efi_reset_system_t *reset_system;
|
|
struct efi_memory_map memmap;
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct linux_efi_memreserve {
|
|
int size;
|
|
atomic_t count;
|
|
phys_addr_t next;
|
|
struct {
|
|
phys_addr_t base;
|
|
phys_addr_t size;
|
|
} entry[0];
|
|
};
|
|
|
|
struct linux_efi_random_seed {
|
|
u32 size;
|
|
u8 bits[0];
|
|
};
|
|
|
|
typedef struct {
|
|
u16 version;
|
|
u16 length;
|
|
u32 runtime_services_supported;
|
|
} efi_rt_properties_table_t;
|
|
|
|
struct linux_efi_initrd {
|
|
unsigned long base;
|
|
unsigned long size;
|
|
};
|
|
|
|
struct component_match;
|
|
|
|
enum hwtstamp_flags {
|
|
HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
|
|
HWTSTAMP_FLAG_LAST = 1,
|
|
HWTSTAMP_FLAG_MASK = 1,
|
|
};
|
|
|
|
struct compat_ifconf {
|
|
compat_int_t ifc_len;
|
|
compat_caddr_t ifcbuf;
|
|
};
|
|
|
|
struct compat_cmsghdr {
|
|
compat_size_t cmsg_len;
|
|
compat_int_t cmsg_level;
|
|
compat_int_t cmsg_type;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_WOL_UNSPEC = 0,
|
|
ETHTOOL_A_WOL_HEADER = 1,
|
|
ETHTOOL_A_WOL_MODES = 2,
|
|
ETHTOOL_A_WOL_SOPASS = 3,
|
|
__ETHTOOL_A_WOL_CNT = 4,
|
|
ETHTOOL_A_WOL_MAX = 3,
|
|
};
|
|
|
|
struct wol_reply_data {
|
|
struct ethnl_reply_data base;
|
|
struct ethtool_wolinfo wol;
|
|
bool show_sopass;
|
|
};
|
|
|
|
struct ipq {
|
|
struct inet_frag_queue q;
|
|
u8 ecn;
|
|
u16 max_df_size;
|
|
int iif;
|
|
unsigned int rid;
|
|
struct inet_peer *peer;
|
|
};
|
|
|
|
enum {
|
|
TCP_BPF_IPV4 = 0,
|
|
TCP_BPF_IPV6 = 1,
|
|
TCP_BPF_NUM_PROTS = 2,
|
|
};
|
|
|
|
enum {
|
|
TCP_BPF_BASE = 0,
|
|
TCP_BPF_TX = 1,
|
|
TCP_BPF_RX = 2,
|
|
TCP_BPF_TXRX = 3,
|
|
TCP_BPF_NUM_CFGS = 4,
|
|
};
|
|
|
|
struct tx_work {
|
|
struct delayed_work work;
|
|
struct sock *sk;
|
|
};
|
|
|
|
struct tls_rec;
|
|
|
|
struct tls_sw_context_tx {
|
|
struct crypto_aead *aead_send;
|
|
struct crypto_wait async_wait;
|
|
struct tx_work tx_work;
|
|
struct tls_rec *open_rec;
|
|
struct list_head tx_list;
|
|
atomic_t encrypt_pending;
|
|
spinlock_t encrypt_compl_lock;
|
|
int async_notify;
|
|
u8 async_capable: 1;
|
|
unsigned long tx_bitmask;
|
|
};
|
|
|
|
struct xfrm6_tunnel {
|
|
int (*handler)(struct sk_buff *);
|
|
int (*cb_handler)(struct sk_buff *, int);
|
|
int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
|
|
struct xfrm6_tunnel __attribute__((btf_type_tag("rcu"))) *next;
|
|
int priority;
|
|
};
|
|
|
|
struct ipv6_tel_txoption {
|
|
struct ipv6_txoptions ops;
|
|
__u8 dst_opt[8];
|
|
};
|
|
|
|
struct ip6_tnl_net {
|
|
struct net_device *fb_tnl_dev;
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *tnls_r_l[32];
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *tnls_wc[1];
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) **tnls[2];
|
|
struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *collect_md_tun;
|
|
};
|
|
|
|
struct ip6_tnl_parm {
|
|
char name[16];
|
|
int link;
|
|
__u8 proto;
|
|
__u8 encap_limit;
|
|
__u8 hop_limit;
|
|
__be32 flowinfo;
|
|
__u32 flags;
|
|
struct in6_addr laddr;
|
|
struct in6_addr raddr;
|
|
};
|
|
|
|
struct xprt_addr {
|
|
const char *addr;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct link_container {
|
|
struct ieee80211_link_data data;
|
|
struct ieee80211_bss_conf conf;
|
|
};
|
|
|
|
enum {
|
|
PERF_TXN_ELISION = 1ULL,
|
|
PERF_TXN_TRANSACTION = 2ULL,
|
|
PERF_TXN_SYNC = 4ULL,
|
|
PERF_TXN_ASYNC = 8ULL,
|
|
PERF_TXN_RETRY = 16ULL,
|
|
PERF_TXN_CONFLICT = 32ULL,
|
|
PERF_TXN_CAPACITY_WRITE = 64ULL,
|
|
PERF_TXN_CAPACITY_READ = 128ULL,
|
|
PERF_TXN_MAX = 256ULL,
|
|
PERF_TXN_ABORT_MASK = 18446744069414584320ULL,
|
|
PERF_TXN_ABORT_SHIFT = 32ULL,
|
|
};
|
|
|
|
struct bts_record {
|
|
u64 from;
|
|
u64 to;
|
|
u64 flags;
|
|
};
|
|
|
|
struct pebs_record_core {
|
|
u64 flags;
|
|
u64 ip;
|
|
u64 ax;
|
|
u64 bx;
|
|
u64 cx;
|
|
u64 dx;
|
|
u64 si;
|
|
u64 di;
|
|
u64 bp;
|
|
u64 sp;
|
|
u64 r8;
|
|
u64 r9;
|
|
u64 r10;
|
|
u64 r11;
|
|
u64 r12;
|
|
u64 r13;
|
|
u64 r14;
|
|
u64 r15;
|
|
};
|
|
|
|
struct pebs_record_nhm {
|
|
u64 flags;
|
|
u64 ip;
|
|
u64 ax;
|
|
u64 bx;
|
|
u64 cx;
|
|
u64 dx;
|
|
u64 si;
|
|
u64 di;
|
|
u64 bp;
|
|
u64 sp;
|
|
u64 r8;
|
|
u64 r9;
|
|
u64 r10;
|
|
u64 r11;
|
|
u64 r12;
|
|
u64 r13;
|
|
u64 r14;
|
|
u64 r15;
|
|
u64 status;
|
|
u64 dla;
|
|
u64 dse;
|
|
u64 lat;
|
|
};
|
|
|
|
struct pebs_basic {
|
|
u64 format_size;
|
|
u64 ip;
|
|
u64 applicable_counters;
|
|
u64 tsc;
|
|
};
|
|
|
|
union intel_x86_pebs_dse {
|
|
u64 val;
|
|
struct {
|
|
unsigned int ld_dse: 4;
|
|
unsigned int ld_stlb_miss: 1;
|
|
unsigned int ld_locked: 1;
|
|
unsigned int ld_data_blk: 1;
|
|
unsigned int ld_addr_blk: 1;
|
|
unsigned int ld_reserved: 24;
|
|
};
|
|
struct {
|
|
unsigned int st_l1d_hit: 1;
|
|
unsigned int st_reserved1: 3;
|
|
unsigned int st_stlb_miss: 1;
|
|
unsigned int st_locked: 1;
|
|
unsigned int st_reserved2: 26;
|
|
};
|
|
struct {
|
|
unsigned int st_lat_dse: 4;
|
|
unsigned int st_lat_stlb_miss: 1;
|
|
unsigned int st_lat_locked: 1;
|
|
unsigned int ld_reserved3: 26;
|
|
};
|
|
struct {
|
|
unsigned int mtl_dse: 5;
|
|
unsigned int mtl_locked: 1;
|
|
unsigned int mtl_stlb_miss: 1;
|
|
unsigned int mtl_fwd_blk: 1;
|
|
unsigned int ld_reserved4: 24;
|
|
};
|
|
};
|
|
|
|
struct pebs_gprs {
|
|
u64 flags;
|
|
u64 ip;
|
|
u64 ax;
|
|
u64 cx;
|
|
u64 dx;
|
|
u64 bx;
|
|
u64 sp;
|
|
u64 bp;
|
|
u64 si;
|
|
u64 di;
|
|
u64 r8;
|
|
u64 r9;
|
|
u64 r10;
|
|
u64 r11;
|
|
u64 r12;
|
|
u64 r13;
|
|
u64 r14;
|
|
u64 r15;
|
|
};
|
|
|
|
struct lbr_entry {
|
|
u64 from;
|
|
u64 to;
|
|
u64 info;
|
|
};
|
|
|
|
struct pebs_record_skl {
|
|
u64 flags;
|
|
u64 ip;
|
|
u64 ax;
|
|
u64 bx;
|
|
u64 cx;
|
|
u64 dx;
|
|
u64 si;
|
|
u64 di;
|
|
u64 bp;
|
|
u64 sp;
|
|
u64 r8;
|
|
u64 r9;
|
|
u64 r10;
|
|
u64 r11;
|
|
u64 r12;
|
|
u64 r13;
|
|
u64 r14;
|
|
u64 r15;
|
|
u64 status;
|
|
u64 dla;
|
|
u64 dse;
|
|
u64 lat;
|
|
u64 real_ip;
|
|
u64 tsx_tuning;
|
|
u64 tsc;
|
|
};
|
|
|
|
struct pebs_meminfo {
|
|
u64 address;
|
|
u64 aux;
|
|
u64 latency;
|
|
u64 tsx_tuning;
|
|
};
|
|
|
|
struct pebs_xmm {
|
|
u64 xmm[32];
|
|
};
|
|
|
|
enum {
|
|
SAMPLES = 8,
|
|
MIN_CHANGE = 5,
|
|
};
|
|
|
|
enum vmx_l1d_flush_state {
|
|
VMENTER_L1D_FLUSH_AUTO = 0,
|
|
VMENTER_L1D_FLUSH_NEVER = 1,
|
|
VMENTER_L1D_FLUSH_COND = 2,
|
|
VMENTER_L1D_FLUSH_ALWAYS = 3,
|
|
VMENTER_L1D_FLUSH_EPT_DISABLED = 4,
|
|
VMENTER_L1D_FLUSH_NOT_REQUIRED = 5,
|
|
};
|
|
|
|
enum srbds_mitigations {
|
|
SRBDS_MITIGATION_OFF = 0,
|
|
SRBDS_MITIGATION_UCODE_NEEDED = 1,
|
|
SRBDS_MITIGATION_FULL = 2,
|
|
SRBDS_MITIGATION_TSX_OFF = 3,
|
|
SRBDS_MITIGATION_HYPERVISOR = 4,
|
|
};
|
|
|
|
enum l1d_flush_mitigations {
|
|
L1D_FLUSH_OFF = 0,
|
|
L1D_FLUSH_ON = 1,
|
|
};
|
|
|
|
enum spectre_v1_mitigation {
|
|
SPECTRE_V1_MITIGATION_NONE = 0,
|
|
SPECTRE_V1_MITIGATION_AUTO = 1,
|
|
};
|
|
|
|
enum retbleed_mitigation_cmd {
|
|
RETBLEED_CMD_OFF = 0,
|
|
RETBLEED_CMD_AUTO = 1,
|
|
RETBLEED_CMD_UNRET = 2,
|
|
RETBLEED_CMD_IBPB = 3,
|
|
RETBLEED_CMD_STUFF = 4,
|
|
};
|
|
|
|
enum retbleed_mitigation {
|
|
RETBLEED_MITIGATION_NONE = 0,
|
|
RETBLEED_MITIGATION_UNRET = 1,
|
|
RETBLEED_MITIGATION_IBPB = 2,
|
|
RETBLEED_MITIGATION_IBRS = 3,
|
|
RETBLEED_MITIGATION_EIBRS = 4,
|
|
RETBLEED_MITIGATION_STUFF = 5,
|
|
};
|
|
|
|
enum spectre_v2_mitigation {
|
|
SPECTRE_V2_NONE = 0,
|
|
SPECTRE_V2_RETPOLINE = 1,
|
|
SPECTRE_V2_LFENCE = 2,
|
|
SPECTRE_V2_EIBRS = 3,
|
|
SPECTRE_V2_EIBRS_RETPOLINE = 4,
|
|
SPECTRE_V2_EIBRS_LFENCE = 5,
|
|
SPECTRE_V2_IBRS = 6,
|
|
};
|
|
|
|
enum spectre_v2_mitigation_cmd {
|
|
SPECTRE_V2_CMD_NONE = 0,
|
|
SPECTRE_V2_CMD_AUTO = 1,
|
|
SPECTRE_V2_CMD_FORCE = 2,
|
|
SPECTRE_V2_CMD_RETPOLINE = 3,
|
|
SPECTRE_V2_CMD_RETPOLINE_GENERIC = 4,
|
|
SPECTRE_V2_CMD_RETPOLINE_LFENCE = 5,
|
|
SPECTRE_V2_CMD_EIBRS = 6,
|
|
SPECTRE_V2_CMD_EIBRS_RETPOLINE = 7,
|
|
SPECTRE_V2_CMD_EIBRS_LFENCE = 8,
|
|
SPECTRE_V2_CMD_IBRS = 9,
|
|
};
|
|
|
|
enum spectre_v2_user_cmd {
|
|
SPECTRE_V2_USER_CMD_NONE = 0,
|
|
SPECTRE_V2_USER_CMD_AUTO = 1,
|
|
SPECTRE_V2_USER_CMD_FORCE = 2,
|
|
SPECTRE_V2_USER_CMD_PRCTL = 3,
|
|
SPECTRE_V2_USER_CMD_PRCTL_IBPB = 4,
|
|
SPECTRE_V2_USER_CMD_SECCOMP = 5,
|
|
SPECTRE_V2_USER_CMD_SECCOMP_IBPB = 6,
|
|
};
|
|
|
|
enum spectre_v2_user_mitigation {
|
|
SPECTRE_V2_USER_NONE = 0,
|
|
SPECTRE_V2_USER_STRICT = 1,
|
|
SPECTRE_V2_USER_STRICT_PREFERRED = 2,
|
|
SPECTRE_V2_USER_PRCTL = 3,
|
|
SPECTRE_V2_USER_SECCOMP = 4,
|
|
};
|
|
|
|
enum mds_mitigations {
|
|
MDS_MITIGATION_OFF = 0,
|
|
MDS_MITIGATION_FULL = 1,
|
|
MDS_MITIGATION_VMWERV = 2,
|
|
};
|
|
|
|
enum taa_mitigations {
|
|
TAA_MITIGATION_OFF = 0,
|
|
TAA_MITIGATION_UCODE_NEEDED = 1,
|
|
TAA_MITIGATION_VERW = 2,
|
|
TAA_MITIGATION_TSX_DISABLED = 3,
|
|
};
|
|
|
|
enum mmio_mitigations {
|
|
MMIO_MITIGATION_OFF = 0,
|
|
MMIO_MITIGATION_UCODE_NEEDED = 1,
|
|
MMIO_MITIGATION_VERW = 2,
|
|
};
|
|
|
|
enum ssb_mitigation_cmd {
|
|
SPEC_STORE_BYPASS_CMD_NONE = 0,
|
|
SPEC_STORE_BYPASS_CMD_AUTO = 1,
|
|
SPEC_STORE_BYPASS_CMD_ON = 2,
|
|
SPEC_STORE_BYPASS_CMD_PRCTL = 3,
|
|
SPEC_STORE_BYPASS_CMD_SECCOMP = 4,
|
|
};
|
|
|
|
enum ssb_mitigation {
|
|
SPEC_STORE_BYPASS_NONE = 0,
|
|
SPEC_STORE_BYPASS_DISABLE = 1,
|
|
SPEC_STORE_BYPASS_PRCTL = 2,
|
|
SPEC_STORE_BYPASS_SECCOMP = 3,
|
|
};
|
|
|
|
enum {
|
|
MAX_IORES_LEVEL = 5,
|
|
};
|
|
|
|
struct resource_constraint {
|
|
resource_size_t min;
|
|
resource_size_t max;
|
|
resource_size_t align;
|
|
resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t);
|
|
void *alignf_data;
|
|
};
|
|
|
|
struct region_devres {
|
|
struct resource *parent;
|
|
resource_size_t start;
|
|
resource_size_t n;
|
|
};
|
|
|
|
struct semaphore_waiter {
|
|
struct list_head list;
|
|
struct task_struct *task;
|
|
bool up;
|
|
};
|
|
|
|
struct rcu_exp_work {
|
|
unsigned long rew_s;
|
|
struct work_struct rew_work;
|
|
};
|
|
|
|
struct rcu_node {
|
|
raw_spinlock_t lock;
|
|
unsigned long gp_seq;
|
|
unsigned long gp_seq_needed;
|
|
unsigned long completedqs;
|
|
unsigned long qsmask;
|
|
unsigned long rcu_gp_init_mask;
|
|
unsigned long qsmaskinit;
|
|
unsigned long qsmaskinitnext;
|
|
unsigned long expmask;
|
|
unsigned long expmaskinit;
|
|
unsigned long expmaskinitnext;
|
|
unsigned long cbovldmask;
|
|
unsigned long ffmask;
|
|
unsigned long grpmask;
|
|
int grplo;
|
|
int grphi;
|
|
u8 grpnum;
|
|
u8 level;
|
|
bool wait_blkd_tasks;
|
|
struct rcu_node *parent;
|
|
struct list_head blkd_tasks;
|
|
struct list_head *gp_tasks;
|
|
struct list_head *exp_tasks;
|
|
struct list_head *boost_tasks;
|
|
struct rt_mutex boost_mtx;
|
|
unsigned long boost_time;
|
|
struct mutex boost_kthread_mutex;
|
|
struct task_struct *boost_kthread_task;
|
|
unsigned int boost_kthread_status;
|
|
unsigned long n_boosts;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
raw_spinlock_t fqslock;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
spinlock_t exp_lock;
|
|
unsigned long exp_seq_rq;
|
|
wait_queue_head_t exp_wq[4];
|
|
struct rcu_exp_work rew;
|
|
bool exp_need_flush;
|
|
raw_spinlock_t exp_poll_lock;
|
|
unsigned long exp_seq_poll_rq;
|
|
struct work_struct exp_poll_wq;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
union rcu_noqs {
|
|
struct {
|
|
u8 norm;
|
|
u8 exp;
|
|
} b;
|
|
u16 s;
|
|
};
|
|
|
|
struct rcu_snap_record {
|
|
unsigned long gp_seq;
|
|
u64 cputime_irq;
|
|
u64 cputime_softirq;
|
|
u64 cputime_system;
|
|
unsigned long nr_hardirqs;
|
|
unsigned int nr_softirqs;
|
|
unsigned long long nr_csw;
|
|
unsigned long jiffies;
|
|
};
|
|
|
|
struct rcu_data {
|
|
unsigned long gp_seq;
|
|
unsigned long gp_seq_needed;
|
|
union rcu_noqs cpu_no_qs;
|
|
bool core_needs_qs;
|
|
bool beenonline;
|
|
bool gpwrap;
|
|
bool cpu_started;
|
|
struct rcu_node *mynode;
|
|
unsigned long grpmask;
|
|
unsigned long ticks_this_gp;
|
|
struct irq_work defer_qs_iw;
|
|
bool defer_qs_iw_pending;
|
|
struct work_struct strict_work;
|
|
struct rcu_segcblist cblist;
|
|
long qlen_last_fqs_check;
|
|
unsigned long n_cbs_invoked;
|
|
unsigned long n_force_qs_snap;
|
|
long blimit;
|
|
int dynticks_snap;
|
|
bool rcu_need_heavy_qs;
|
|
bool rcu_urgent_qs;
|
|
bool rcu_forced_tick;
|
|
bool rcu_forced_tick_exp;
|
|
unsigned long barrier_seq_snap;
|
|
struct callback_head barrier_head;
|
|
int exp_dynticks_snap;
|
|
struct task_struct *rcu_cpu_kthread_task;
|
|
unsigned int rcu_cpu_kthread_status;
|
|
char rcu_cpu_has_work;
|
|
unsigned long rcuc_activity;
|
|
unsigned int softirq_snap;
|
|
struct irq_work rcu_iw;
|
|
bool rcu_iw_pending;
|
|
unsigned long rcu_iw_gp_seq;
|
|
unsigned long rcu_ofl_gp_seq;
|
|
short rcu_ofl_gp_flags;
|
|
unsigned long rcu_onl_gp_seq;
|
|
short rcu_onl_gp_flags;
|
|
unsigned long last_fqs_resched;
|
|
unsigned long last_sched_clock;
|
|
struct rcu_snap_record snap_record;
|
|
long lazy_len;
|
|
int cpu;
|
|
};
|
|
|
|
struct rcu_state {
|
|
struct rcu_node node[5];
|
|
struct rcu_node *level[3];
|
|
int ncpus;
|
|
int n_online_cpus;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
unsigned long gp_seq;
|
|
unsigned long gp_max;
|
|
struct task_struct *gp_kthread;
|
|
struct swait_queue_head gp_wq;
|
|
short gp_flags;
|
|
short gp_state;
|
|
unsigned long gp_wake_time;
|
|
unsigned long gp_wake_seq;
|
|
unsigned long gp_seq_polled;
|
|
unsigned long gp_seq_polled_snap;
|
|
unsigned long gp_seq_polled_exp_snap;
|
|
struct mutex barrier_mutex;
|
|
atomic_t barrier_cpu_count;
|
|
struct completion barrier_completion;
|
|
unsigned long barrier_sequence;
|
|
raw_spinlock_t barrier_lock;
|
|
struct mutex exp_mutex;
|
|
struct mutex exp_wake_mutex;
|
|
unsigned long expedited_sequence;
|
|
atomic_t expedited_need_qs;
|
|
struct swait_queue_head expedited_wq;
|
|
int ncpus_snap;
|
|
u8 cbovld;
|
|
u8 cbovldnext;
|
|
unsigned long jiffies_force_qs;
|
|
unsigned long jiffies_kick_kthreads;
|
|
unsigned long n_force_qs;
|
|
unsigned long gp_start;
|
|
unsigned long gp_end;
|
|
unsigned long gp_activity;
|
|
unsigned long gp_req_activity;
|
|
unsigned long jiffies_stall;
|
|
unsigned long jiffies_resched;
|
|
unsigned long n_force_qs_gpstart;
|
|
const char *name;
|
|
char abbr;
|
|
long: 56;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
arch_spinlock_t ofl_lock;
|
|
int nocb_is_setup;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct kfree_rcu_cpu;
|
|
|
|
struct kfree_rcu_cpu_work {
|
|
struct rcu_work rcu_work;
|
|
struct callback_head *head_free;
|
|
struct list_head bulk_head_free[2];
|
|
struct kfree_rcu_cpu *krcp;
|
|
};
|
|
|
|
struct kfree_rcu_cpu {
|
|
struct callback_head *head;
|
|
unsigned long head_gp_snap;
|
|
atomic_t head_count;
|
|
struct list_head bulk_head[2];
|
|
atomic_t bulk_count[2];
|
|
struct kfree_rcu_cpu_work krw_arr[2];
|
|
raw_spinlock_t lock;
|
|
struct delayed_work monitor_work;
|
|
bool initialized;
|
|
struct delayed_work page_cache_work;
|
|
atomic_t backoff_page_cache_fill;
|
|
atomic_t work_in_progress;
|
|
struct hrtimer hrtimer;
|
|
struct llist_head bkvcache;
|
|
int nr_bkv_objs;
|
|
};
|
|
|
|
struct kvfree_rcu_bulk_data {
|
|
struct list_head list;
|
|
unsigned long gp_snap;
|
|
unsigned long nr_records;
|
|
void *records[0];
|
|
};
|
|
|
|
struct rcu_stall_chk_rdr {
|
|
int nesting;
|
|
union rcu_special rs;
|
|
bool on_blkd_list;
|
|
};
|
|
|
|
struct rcu_gp_oldstate {
|
|
unsigned long rgos_norm;
|
|
unsigned long rgos_exp;
|
|
};
|
|
|
|
struct eprobe_trace_entry_head {
|
|
struct trace_entry ent;
|
|
};
|
|
|
|
struct trace_eprobe {
|
|
const char *event_system;
|
|
const char *event_name;
|
|
char *filter_str;
|
|
struct trace_event_call *event;
|
|
struct dyn_event devent;
|
|
struct trace_probe tp;
|
|
};
|
|
|
|
struct eprobe_data {
|
|
struct trace_event_file *file;
|
|
struct trace_eprobe *ep;
|
|
};
|
|
|
|
struct btf_kfunc_set_tab {
|
|
struct btf_id_set8 *sets[12];
|
|
};
|
|
|
|
struct btf_id_dtor_kfunc_tab {
|
|
u32 cnt;
|
|
struct btf_id_dtor_kfunc dtors[0];
|
|
};
|
|
|
|
struct btf_struct_metas {
|
|
u32 cnt;
|
|
struct btf_struct_meta types[0];
|
|
};
|
|
|
|
struct bpf_sock_addr {
|
|
__u32 user_family;
|
|
__u32 user_ip4;
|
|
__u32 user_ip6[4];
|
|
__u32 user_port;
|
|
__u32 family;
|
|
__u32 type;
|
|
__u32 protocol;
|
|
__u32 msg_src_ip4;
|
|
__u32 msg_src_ip6[4];
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
};
|
|
|
|
struct bpf_sock_ops {
|
|
__u32 op;
|
|
union {
|
|
__u32 args[4];
|
|
__u32 reply;
|
|
__u32 replylong[4];
|
|
};
|
|
__u32 family;
|
|
__u32 remote_ip4;
|
|
__u32 local_ip4;
|
|
__u32 remote_ip6[4];
|
|
__u32 local_ip6[4];
|
|
__u32 remote_port;
|
|
__u32 local_port;
|
|
__u32 is_fullsock;
|
|
__u32 snd_cwnd;
|
|
__u32 srtt_us;
|
|
__u32 bpf_sock_ops_cb_flags;
|
|
__u32 state;
|
|
__u32 rtt_min;
|
|
__u32 snd_ssthresh;
|
|
__u32 rcv_nxt;
|
|
__u32 snd_nxt;
|
|
__u32 snd_una;
|
|
__u32 mss_cache;
|
|
__u32 ecn_flags;
|
|
__u32 rate_delivered;
|
|
__u32 rate_interval_us;
|
|
__u32 packets_out;
|
|
__u32 retrans_out;
|
|
__u32 total_retrans;
|
|
__u32 segs_in;
|
|
__u32 data_segs_in;
|
|
__u32 segs_out;
|
|
__u32 data_segs_out;
|
|
__u32 lost_out;
|
|
__u32 sacked_out;
|
|
__u32 sk_txhash;
|
|
__u64 bytes_received;
|
|
__u64 bytes_acked;
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
union {
|
|
void *skb_data;
|
|
};
|
|
union {
|
|
void *skb_data_end;
|
|
};
|
|
__u32 skb_len;
|
|
__u32 skb_tcp_flags;
|
|
__u64 skb_hwtstamp;
|
|
};
|
|
|
|
struct sk_msg_md {
|
|
union {
|
|
void *data;
|
|
};
|
|
union {
|
|
void *data_end;
|
|
};
|
|
__u32 family;
|
|
__u32 remote_ip4;
|
|
__u32 local_ip4;
|
|
__u32 remote_ip6[4];
|
|
__u32 local_ip6[4];
|
|
__u32 remote_port;
|
|
__u32 local_port;
|
|
__u32 size;
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
};
|
|
|
|
struct bpf_perf_event_data {
|
|
bpf_user_pt_regs_t regs;
|
|
__u64 sample_period;
|
|
__u64 addr;
|
|
};
|
|
|
|
struct bpf_sysctl {
|
|
__u32 write;
|
|
__u32 file_pos;
|
|
};
|
|
|
|
struct bpf_sockopt {
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
union {
|
|
void *optval;
|
|
};
|
|
union {
|
|
void *optval_end;
|
|
};
|
|
__s32 level;
|
|
__s32 optname;
|
|
__s32 optlen;
|
|
__s32 retval;
|
|
};
|
|
|
|
struct sk_reuseport_md {
|
|
union {
|
|
void *data;
|
|
};
|
|
union {
|
|
void *data_end;
|
|
};
|
|
__u32 len;
|
|
__u32 eth_protocol;
|
|
__u32 ip_protocol;
|
|
__u32 bind_inany;
|
|
__u32 hash;
|
|
union {
|
|
struct bpf_sock *sk;
|
|
};
|
|
union {
|
|
struct bpf_sock *migrating_sk;
|
|
};
|
|
};
|
|
|
|
struct bpf_ctx_convert {
|
|
struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog;
|
|
struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog;
|
|
struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog;
|
|
struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern;
|
|
struct xdp_md BPF_PROG_TYPE_XDP_prog;
|
|
struct xdp_buff BPF_PROG_TYPE_XDP_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog;
|
|
struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern;
|
|
struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog;
|
|
struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern;
|
|
struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog;
|
|
struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog;
|
|
struct sk_buff BPF_PROG_TYPE_LWT_IN_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog;
|
|
struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog;
|
|
struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog;
|
|
struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern;
|
|
struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog;
|
|
struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog;
|
|
struct sk_buff BPF_PROG_TYPE_SK_SKB_kern;
|
|
struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog;
|
|
struct sk_msg BPF_PROG_TYPE_SK_MSG_kern;
|
|
struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog;
|
|
struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern;
|
|
bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog;
|
|
struct pt_regs BPF_PROG_TYPE_KPROBE_kern;
|
|
__u64 BPF_PROG_TYPE_TRACEPOINT_prog;
|
|
u64 BPF_PROG_TYPE_TRACEPOINT_kern;
|
|
struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog;
|
|
struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern;
|
|
struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog;
|
|
u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern;
|
|
struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog;
|
|
u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern;
|
|
void *BPF_PROG_TYPE_TRACING_prog;
|
|
void *BPF_PROG_TYPE_TRACING_kern;
|
|
struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog;
|
|
struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern;
|
|
struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog;
|
|
struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern;
|
|
struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog;
|
|
struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern;
|
|
__u32 BPF_PROG_TYPE_LIRC_MODE2_prog;
|
|
u32 BPF_PROG_TYPE_LIRC_MODE2_kern;
|
|
struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog;
|
|
struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern;
|
|
struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog;
|
|
struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern;
|
|
void *BPF_PROG_TYPE_STRUCT_OPS_prog;
|
|
void *BPF_PROG_TYPE_STRUCT_OPS_kern;
|
|
void *BPF_PROG_TYPE_EXT_prog;
|
|
void *BPF_PROG_TYPE_EXT_kern;
|
|
void *BPF_PROG_TYPE_LSM_prog;
|
|
void *BPF_PROG_TYPE_LSM_kern;
|
|
void *BPF_PROG_TYPE_SYSCALL_prog;
|
|
void *BPF_PROG_TYPE_SYSCALL_kern;
|
|
};
|
|
|
|
struct btf_verifier_env;
|
|
|
|
struct resolve_vertex;
|
|
|
|
struct btf_show;
|
|
|
|
struct btf_kind_operations {
|
|
s32 (*check_meta)(struct btf_verifier_env *, const struct btf_type *, u32);
|
|
int (*resolve)(struct btf_verifier_env *, const struct resolve_vertex *);
|
|
int (*check_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
|
|
int (*check_kflag_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
|
|
void (*log_details)(struct btf_verifier_env *, const struct btf_type *);
|
|
void (*show)(const struct btf *, const struct btf_type *, u32, void *, u8, struct btf_show *);
|
|
};
|
|
|
|
struct resolve_vertex {
|
|
const struct btf_type *t;
|
|
u32 type_id;
|
|
u16 next_member;
|
|
};
|
|
|
|
enum verifier_phase {
|
|
CHECK_META = 0,
|
|
CHECK_TYPE = 1,
|
|
};
|
|
|
|
enum resolve_mode {
|
|
RESOLVE_TBD = 0,
|
|
RESOLVE_PTR = 1,
|
|
RESOLVE_STRUCT_OR_ARRAY = 2,
|
|
};
|
|
|
|
struct btf_verifier_env {
|
|
struct btf *btf;
|
|
u8 *visit_states;
|
|
struct resolve_vertex stack[32];
|
|
struct bpf_verifier_log log;
|
|
u32 log_type_id;
|
|
u32 top_stack;
|
|
enum verifier_phase phase;
|
|
enum resolve_mode resolve_mode;
|
|
};
|
|
|
|
struct btf_show {
|
|
u64 flags;
|
|
void *target;
|
|
void (*showfn)(struct btf_show *, const char *, struct __va_list_tag *);
|
|
const struct btf *btf;
|
|
struct {
|
|
u8 depth;
|
|
u8 depth_to_show;
|
|
u8 depth_check;
|
|
u8 array_member: 1;
|
|
u8 array_terminated: 1;
|
|
u16 array_encoding;
|
|
u32 type_id;
|
|
int status;
|
|
const struct btf_type *type;
|
|
const struct btf_member *member;
|
|
char name[80];
|
|
} state;
|
|
struct {
|
|
u32 size;
|
|
void *head;
|
|
void *data;
|
|
u8 safe[32];
|
|
} obj;
|
|
};
|
|
|
|
struct bpf_cand_cache {
|
|
const char *name;
|
|
u32 name_len;
|
|
u16 kind;
|
|
u16 cnt;
|
|
struct {
|
|
const struct btf *btf;
|
|
u32 id;
|
|
} cands[0];
|
|
};
|
|
|
|
enum bpf_struct_walk_result {
|
|
WALK_SCALAR = 0,
|
|
WALK_PTR = 1,
|
|
WALK_STRUCT = 2,
|
|
};
|
|
|
|
enum {
|
|
BTF_MODULE_F_LIVE = 1,
|
|
};
|
|
|
|
enum btf_kfunc_hook {
|
|
BTF_KFUNC_HOOK_COMMON = 0,
|
|
BTF_KFUNC_HOOK_XDP = 1,
|
|
BTF_KFUNC_HOOK_TC = 2,
|
|
BTF_KFUNC_HOOK_STRUCT_OPS = 3,
|
|
BTF_KFUNC_HOOK_TRACING = 4,
|
|
BTF_KFUNC_HOOK_SYSCALL = 5,
|
|
BTF_KFUNC_HOOK_FMODRET = 6,
|
|
BTF_KFUNC_HOOK_CGROUP_SKB = 7,
|
|
BTF_KFUNC_HOOK_SCHED_ACT = 8,
|
|
BTF_KFUNC_HOOK_SK_SKB = 9,
|
|
BTF_KFUNC_HOOK_SOCKET_FILTER = 10,
|
|
BTF_KFUNC_HOOK_LWT = 11,
|
|
BTF_KFUNC_HOOK_MAX = 12,
|
|
};
|
|
|
|
enum {
|
|
BTF_KFUNC_SET_MAX_CNT = 256,
|
|
BTF_DTOR_KFUNC_MAX_CNT = 256,
|
|
};
|
|
|
|
enum {
|
|
BTF_FIELD_IGNORE = 0,
|
|
BTF_FIELD_FOUND = 1,
|
|
};
|
|
|
|
enum visit_state {
|
|
NOT_VISITED = 0,
|
|
VISITED = 1,
|
|
RESOLVED = 2,
|
|
};
|
|
|
|
enum {
|
|
BTF_VAR_STATIC = 0,
|
|
BTF_VAR_GLOBAL_ALLOCATED = 1,
|
|
BTF_VAR_GLOBAL_EXTERN = 2,
|
|
};
|
|
|
|
struct btf_module {
|
|
struct list_head list;
|
|
struct module *module;
|
|
struct btf *btf;
|
|
struct bin_attribute *sysfs_attr;
|
|
int flags;
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int);
|
|
|
|
struct btf_decl_tag {
|
|
__s32 component_idx;
|
|
};
|
|
|
|
struct btf_sec_info {
|
|
u32 off;
|
|
u32 len;
|
|
};
|
|
|
|
struct btf_var {
|
|
__u32 linkage;
|
|
};
|
|
|
|
struct btf_show_snprintf {
|
|
struct btf_show show;
|
|
int len_left;
|
|
int len;
|
|
};
|
|
|
|
struct btf_field_info {
|
|
enum btf_field_type type;
|
|
u32 off;
|
|
union {
|
|
struct {
|
|
u32 type_id;
|
|
} kptr;
|
|
struct {
|
|
const char *node_name;
|
|
u32 value_btf_id;
|
|
} graph_root;
|
|
};
|
|
};
|
|
|
|
struct vma_swap_readahead {
|
|
unsigned short win;
|
|
unsigned short offset;
|
|
unsigned short nr_pte;
|
|
pte_t *ptes;
|
|
};
|
|
|
|
struct v2_disk_dqheader {
|
|
__le32 dqh_magic;
|
|
__le32 dqh_version;
|
|
};
|
|
|
|
struct v2_disk_dqinfo {
|
|
__le32 dqi_bgrace;
|
|
__le32 dqi_igrace;
|
|
__le32 dqi_flags;
|
|
__le32 dqi_blocks;
|
|
__le32 dqi_free_blk;
|
|
__le32 dqi_free_entry;
|
|
};
|
|
|
|
struct v2r0_disk_dqblk {
|
|
__le32 dqb_id;
|
|
__le32 dqb_ihardlimit;
|
|
__le32 dqb_isoftlimit;
|
|
__le32 dqb_curinodes;
|
|
__le32 dqb_bhardlimit;
|
|
__le32 dqb_bsoftlimit;
|
|
__le64 dqb_curspace;
|
|
__le64 dqb_btime;
|
|
__le64 dqb_itime;
|
|
};
|
|
|
|
struct v2r1_disk_dqblk {
|
|
__le32 dqb_id;
|
|
__le32 dqb_pad;
|
|
__le64 dqb_ihardlimit;
|
|
__le64 dqb_isoftlimit;
|
|
__le64 dqb_curinodes;
|
|
__le64 dqb_bhardlimit;
|
|
__le64 dqb_bsoftlimit;
|
|
__le64 dqb_curspace;
|
|
__le64 dqb_btime;
|
|
__le64 dqb_itime;
|
|
};
|
|
|
|
struct ext4_filename {
|
|
const struct qstr *usr_fname;
|
|
struct fscrypt_str disk_name;
|
|
struct dx_hash_info hinfo;
|
|
};
|
|
|
|
enum ramfs_param {
|
|
Opt_mode___5 = 0,
|
|
};
|
|
|
|
struct ramfs_mount_opts {
|
|
umode_t mode;
|
|
};
|
|
|
|
struct ramfs_fs_info {
|
|
struct ramfs_mount_opts mount_opts;
|
|
};
|
|
|
|
struct nlm_lookup_host_info {
|
|
const int server;
|
|
const struct sockaddr *sap;
|
|
const size_t salen;
|
|
const unsigned short protocol;
|
|
const u32 version;
|
|
const char *hostname;
|
|
const size_t hostname_len;
|
|
const int noresvport;
|
|
struct net *net;
|
|
const struct cred *cred;
|
|
};
|
|
|
|
struct fscache_volume;
|
|
|
|
struct fscache_cookie {
|
|
refcount_t ref;
|
|
atomic_t n_active;
|
|
atomic_t n_accesses;
|
|
unsigned int debug_id;
|
|
unsigned int inval_counter;
|
|
spinlock_t lock;
|
|
struct fscache_volume *volume;
|
|
void *cache_priv;
|
|
struct hlist_bl_node hash_link;
|
|
struct list_head proc_link;
|
|
struct list_head commit_link;
|
|
struct work_struct work;
|
|
loff_t object_size;
|
|
unsigned long unused_at;
|
|
unsigned long flags;
|
|
enum fscache_cookie_state state;
|
|
u8 advice;
|
|
u8 key_len;
|
|
u8 aux_len;
|
|
u32 key_hash;
|
|
union {
|
|
void *key;
|
|
u8 inline_key[16];
|
|
};
|
|
union {
|
|
void *aux;
|
|
u8 inline_aux[8];
|
|
};
|
|
};
|
|
|
|
struct fscache_cache;
|
|
|
|
struct fscache_volume {
|
|
refcount_t ref;
|
|
atomic_t n_cookies;
|
|
atomic_t n_accesses;
|
|
unsigned int debug_id;
|
|
unsigned int key_hash;
|
|
u8 *key;
|
|
struct list_head proc_link;
|
|
struct hlist_bl_node hash_link;
|
|
struct work_struct work;
|
|
struct fscache_cache *cache;
|
|
void *cache_priv;
|
|
spinlock_t lock;
|
|
unsigned long flags;
|
|
u8 coherency_len;
|
|
u8 coherency[0];
|
|
};
|
|
|
|
enum {
|
|
Opt_error = -1,
|
|
Opt_context = 0,
|
|
Opt_defcontext = 1,
|
|
Opt_fscontext = 2,
|
|
Opt_rootcontext = 3,
|
|
Opt_seclabel = 4,
|
|
};
|
|
|
|
struct file_security_struct {
|
|
u32 sid;
|
|
u32 fown_sid;
|
|
u32 isid;
|
|
u32 pseqno;
|
|
};
|
|
|
|
struct bpf_security_struct {
|
|
u32 sid;
|
|
};
|
|
|
|
struct ipc_security_struct {
|
|
u16 sclass;
|
|
u32 sid;
|
|
};
|
|
|
|
struct msg_security_struct {
|
|
u32 sid;
|
|
};
|
|
|
|
struct selinux_mnt_opts {
|
|
u32 fscontext_sid;
|
|
u32 context_sid;
|
|
u32 rootcontext_sid;
|
|
u32 defcontext_sid;
|
|
};
|
|
|
|
struct tun_security_struct {
|
|
u32 sid;
|
|
};
|
|
|
|
struct key_security_struct {
|
|
u32 sid;
|
|
};
|
|
|
|
struct perf_event_security_struct {
|
|
u32 sid;
|
|
};
|
|
|
|
struct aperture_range {
|
|
struct device *dev;
|
|
resource_size_t base;
|
|
resource_size_t size;
|
|
struct list_head lh;
|
|
void (*detach)(struct device *);
|
|
};
|
|
|
|
struct intel_gtt_driver;
|
|
|
|
struct _intel_private {
|
|
const struct intel_gtt_driver *driver;
|
|
struct pci_dev *pcidev;
|
|
struct pci_dev *bridge_dev;
|
|
u8 *registers;
|
|
phys_addr_t gtt_phys_addr;
|
|
u32 PGETBL_save;
|
|
u32 *gtt;
|
|
bool clear_fake_agp;
|
|
int num_dcache_entries;
|
|
void *i9xx_flush_page;
|
|
char *i81x_gtt_table;
|
|
struct resource ifp_resource;
|
|
int resource_valid;
|
|
struct page *scratch_page;
|
|
phys_addr_t scratch_page_dma;
|
|
int refcount;
|
|
unsigned int needs_dmar: 1;
|
|
phys_addr_t gma_bus_addr;
|
|
resource_size_t stolen_size;
|
|
unsigned int gtt_total_entries;
|
|
unsigned int gtt_mappable_entries;
|
|
};
|
|
|
|
struct intel_gtt_driver {
|
|
unsigned int gen: 8;
|
|
unsigned int is_g33: 1;
|
|
unsigned int is_pineview: 1;
|
|
unsigned int is_ironlake: 1;
|
|
unsigned int has_pgtbl_enable: 1;
|
|
unsigned int dma_mask_size: 8;
|
|
int (*setup)();
|
|
void (*cleanup)();
|
|
void (*write_entry)(dma_addr_t, unsigned int, unsigned int);
|
|
bool (*check_flags)(unsigned int);
|
|
void (*chipset_flush)();
|
|
};
|
|
|
|
struct intel_gtt_driver_description {
|
|
unsigned int gmch_chip_id;
|
|
char *name;
|
|
const struct intel_gtt_driver *gtt_driver;
|
|
};
|
|
|
|
struct ioasid_allocator_ops;
|
|
|
|
struct ioasid_allocator_data {
|
|
struct ioasid_allocator_ops *ops;
|
|
struct list_head list;
|
|
struct list_head slist;
|
|
unsigned long flags;
|
|
struct xarray xa;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
typedef ioasid_t (*ioasid_alloc_fn_t)(ioasid_t, ioasid_t, void *);
|
|
|
|
typedef void (*ioasid_free_fn_t)(ioasid_t, void *);
|
|
|
|
struct ioasid_allocator_ops {
|
|
ioasid_alloc_fn_t alloc;
|
|
ioasid_free_fn_t free;
|
|
struct list_head list;
|
|
void *pdata;
|
|
};
|
|
|
|
struct ioasid_set;
|
|
|
|
struct ioasid_data {
|
|
ioasid_t id;
|
|
struct ioasid_set *set;
|
|
void *private;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ioasid_set {
|
|
int dummy;
|
|
};
|
|
|
|
struct iova_magazine;
|
|
|
|
struct iova_cpu_rcache {
|
|
spinlock_t lock;
|
|
struct iova_magazine *loaded;
|
|
struct iova_magazine *prev;
|
|
};
|
|
|
|
struct iova_magazine {
|
|
unsigned long size;
|
|
unsigned long pfns[127];
|
|
};
|
|
|
|
struct iova_rcache {
|
|
spinlock_t lock;
|
|
unsigned long depot_size;
|
|
struct iova_magazine *depot[32];
|
|
struct iova_cpu_rcache __attribute__((btf_type_tag("percpu"))) *cpu_rcaches;
|
|
};
|
|
|
|
struct syncobj_wait_entry {
|
|
struct list_head node;
|
|
struct task_struct *task;
|
|
struct dma_fence *fence;
|
|
struct dma_fence_cb fence_cb;
|
|
u64 point;
|
|
};
|
|
|
|
struct drm_syncobj_transfer {
|
|
__u32 src_handle;
|
|
__u32 dst_handle;
|
|
__u64 src_point;
|
|
__u64 dst_point;
|
|
__u32 flags;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_syncobj_wait {
|
|
__u64 handles;
|
|
__s64 timeout_nsec;
|
|
__u32 count_handles;
|
|
__u32 flags;
|
|
__u32 first_signaled;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_syncobj_timeline_wait {
|
|
__u64 handles;
|
|
__u64 points;
|
|
__s64 timeout_nsec;
|
|
__u32 count_handles;
|
|
__u32 flags;
|
|
__u32 first_signaled;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_syncobj_create {
|
|
__u32 handle;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct drm_syncobj_destroy {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_syncobj_handle {
|
|
__u32 handle;
|
|
__u32 flags;
|
|
__s32 fd;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_syncobj_array {
|
|
__u64 handles;
|
|
__u32 count_handles;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct drm_syncobj_timeline_array {
|
|
__u64 handles;
|
|
__u64 points;
|
|
__u32 count_handles;
|
|
__u32 flags;
|
|
};
|
|
|
|
struct cxsr_latency {
|
|
bool is_desktop: 1;
|
|
bool is_ddr3: 1;
|
|
u16 fsb_freq;
|
|
u16 mem_freq;
|
|
u16 display_sr;
|
|
u16 display_hpll_disable;
|
|
u16 cursor_sr;
|
|
u16 cursor_hpll_disable;
|
|
};
|
|
|
|
struct intel_watermark_params {
|
|
u16 fifo_size;
|
|
u16 max_wm;
|
|
u8 default_wm;
|
|
u8 guard_size;
|
|
u8 cacheline_size;
|
|
};
|
|
|
|
enum g4x_wm_level {
|
|
G4X_WM_LEVEL_NORMAL = 0,
|
|
G4X_WM_LEVEL_SR = 1,
|
|
G4X_WM_LEVEL_HPLL = 2,
|
|
NUM_G4X_WM_LEVELS = 3,
|
|
};
|
|
|
|
enum vlv_wm_level {
|
|
VLV_WM_LEVEL_PM2 = 0,
|
|
VLV_WM_LEVEL_PM5 = 1,
|
|
VLV_WM_LEVEL_DDR_DVFS = 2,
|
|
NUM_VLV_WM_LEVELS = 3,
|
|
};
|
|
|
|
struct ilk_wm_maximums {
|
|
u16 pri;
|
|
u16 spr;
|
|
u16 cur;
|
|
u16 fbc;
|
|
};
|
|
|
|
struct intel_wm_config {
|
|
unsigned int num_pipes_active;
|
|
bool sprites_enabled;
|
|
bool sprites_scaled;
|
|
};
|
|
|
|
struct drm_i915_mocs_entry {
|
|
u32 control_value;
|
|
u16 l3cc_value;
|
|
u16 used;
|
|
};
|
|
|
|
enum {
|
|
HAS_GLOBAL_MOCS = 1,
|
|
HAS_ENGINE_MOCS = 2,
|
|
HAS_RENDER_L3CC = 4,
|
|
};
|
|
|
|
enum i915_mocs_table_index {
|
|
I915_MOCS_UNCACHED = 0,
|
|
I915_MOCS_PTE = 1,
|
|
I915_MOCS_CACHED = 2,
|
|
};
|
|
|
|
struct drm_i915_mocs_table {
|
|
unsigned int size;
|
|
unsigned int n_entries;
|
|
const struct drm_i915_mocs_entry *table;
|
|
u8 uc_index;
|
|
u8 wb_index;
|
|
u8 unused_entries_index;
|
|
};
|
|
|
|
struct guc_mmio_reg_set {
|
|
u32 address;
|
|
u16 count;
|
|
u16 reserved;
|
|
};
|
|
|
|
struct guc_ads {
|
|
struct guc_mmio_reg_set reg_state_list[512];
|
|
u32 reserved0;
|
|
u32 scheduler_policies;
|
|
u32 gt_system_info;
|
|
u32 reserved1;
|
|
u32 control_data;
|
|
u32 golden_context_lrca[16];
|
|
u32 eng_state_size[16];
|
|
u32 private_data;
|
|
u32 reserved2;
|
|
u32 capture_instance[32];
|
|
u32 capture_class[32];
|
|
u32 capture_global[2];
|
|
u32 reserved[14];
|
|
};
|
|
|
|
struct guc_policies {
|
|
u32 submission_queue_depth[16];
|
|
u32 dpc_promote_time;
|
|
u32 is_valid;
|
|
u32 max_num_work_items;
|
|
u32 global_flags;
|
|
u32 reserved[4];
|
|
};
|
|
|
|
struct guc_gt_system_info {
|
|
u8 mapping_table[512];
|
|
u32 engine_enabled_masks[16];
|
|
u32 generic_gt_sysinfo[16];
|
|
};
|
|
|
|
struct guc_engine_usage {
|
|
struct guc_engine_usage_record engines[512];
|
|
};
|
|
|
|
struct __guc_ads_blob {
|
|
struct guc_ads ads;
|
|
struct guc_policies policies;
|
|
struct guc_gt_system_info system_info;
|
|
struct guc_engine_usage engine_usage;
|
|
struct guc_mmio_reg regset[0];
|
|
};
|
|
|
|
struct temp_regset {
|
|
struct guc_mmio_reg *registers;
|
|
struct guc_mmio_reg *storage;
|
|
u32 storage_used;
|
|
u32 storage_max;
|
|
};
|
|
|
|
struct pps_registers {
|
|
i915_reg_t pp_ctrl;
|
|
i915_reg_t pp_stat;
|
|
i915_reg_t pp_on;
|
|
i915_reg_t pp_off;
|
|
i915_reg_t pp_div;
|
|
};
|
|
|
|
typedef bool (*pps_check)(struct drm_i915_private *, int);
|
|
|
|
enum scsi_timeouts {
|
|
SCSI_DEFAULT_EH_TIMEOUT = 10000,
|
|
};
|
|
|
|
struct async_scan_data {
|
|
struct list_head list;
|
|
struct Scsi_Host *shost;
|
|
struct completion prev_finished;
|
|
};
|
|
|
|
struct e1000_option___2 {
|
|
enum {
|
|
enable_option___2 = 0,
|
|
range_option___2 = 1,
|
|
list_option___2 = 2,
|
|
} type;
|
|
const char *name;
|
|
const char *err;
|
|
int def;
|
|
union {
|
|
struct {
|
|
int min;
|
|
int max;
|
|
} r;
|
|
struct {
|
|
int nr;
|
|
struct e1000_opt_list *p;
|
|
} l;
|
|
} arg;
|
|
};
|
|
|
|
struct xhci_file_map {
|
|
const char *name;
|
|
int (*show)(struct seq_file *, void *);
|
|
};
|
|
|
|
struct xhci_regset {
|
|
char name[32];
|
|
struct debugfs_regset32 regset;
|
|
size_t nregs;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct xhci_ep_priv {
|
|
char name[32];
|
|
struct dentry *root;
|
|
struct xhci_stream_info *stream_info;
|
|
struct xhci_ring *show_ring;
|
|
unsigned int stream_id;
|
|
};
|
|
|
|
struct xhci_slot_priv {
|
|
char name[32];
|
|
struct dentry *root;
|
|
struct xhci_ep_priv *eps[31];
|
|
struct xhci_virt_device *dev;
|
|
};
|
|
|
|
struct min_max_quirk {
|
|
const char * const *pnp_ids;
|
|
struct {
|
|
u32 min;
|
|
u32 max;
|
|
} board_id;
|
|
u32 x_min;
|
|
u32 x_max;
|
|
u32 y_min;
|
|
u32 y_max;
|
|
};
|
|
|
|
enum synaptics_pkt_type {
|
|
SYN_NEWABS = 0,
|
|
SYN_NEWABS_STRICT = 1,
|
|
SYN_NEWABS_RELAXED = 2,
|
|
SYN_OLDABS = 3,
|
|
};
|
|
|
|
enum rmi_sensor_type {
|
|
rmi_sensor_default = 0,
|
|
rmi_sensor_touchscreen = 1,
|
|
rmi_sensor_touchpad = 2,
|
|
};
|
|
|
|
enum rmi_reg_state {
|
|
RMI_REG_STATE_DEFAULT = 0,
|
|
RMI_REG_STATE_OFF = 1,
|
|
RMI_REG_STATE_ON = 2,
|
|
};
|
|
|
|
enum {
|
|
SYNAPTICS_INTERTOUCH_NOT_SET = -1,
|
|
SYNAPTICS_INTERTOUCH_OFF = 0,
|
|
SYNAPTICS_INTERTOUCH_ON = 1,
|
|
};
|
|
|
|
struct synaptics_device_info {
|
|
u32 model_id;
|
|
u32 firmware_id;
|
|
u32 board_id;
|
|
u32 capabilities;
|
|
u32 ext_cap;
|
|
u32 ext_cap_0c;
|
|
u32 ext_cap_10;
|
|
u32 identity;
|
|
u32 x_res;
|
|
u32 y_res;
|
|
u32 x_max;
|
|
u32 y_max;
|
|
u32 x_min;
|
|
u32 y_min;
|
|
};
|
|
|
|
struct rmi_device_platform_data_spi {
|
|
u32 block_delay_us;
|
|
u32 split_read_block_delay_us;
|
|
u32 read_delay_us;
|
|
u32 write_delay_us;
|
|
u32 split_read_byte_delay_us;
|
|
u32 pre_delay_us;
|
|
u32 post_delay_us;
|
|
u8 bits_per_word;
|
|
u16 mode;
|
|
void *cs_assert_data;
|
|
int (*cs_assert)(const void *, const bool);
|
|
};
|
|
|
|
struct rmi_2d_axis_alignment {
|
|
bool swap_axes;
|
|
bool flip_x;
|
|
bool flip_y;
|
|
u16 clip_x_low;
|
|
u16 clip_y_low;
|
|
u16 clip_x_high;
|
|
u16 clip_y_high;
|
|
u16 offset_x;
|
|
u16 offset_y;
|
|
u8 delta_x_threshold;
|
|
u8 delta_y_threshold;
|
|
};
|
|
|
|
struct rmi_2d_sensor_platform_data {
|
|
struct rmi_2d_axis_alignment axis_align;
|
|
enum rmi_sensor_type sensor_type;
|
|
int x_mm;
|
|
int y_mm;
|
|
int disable_report_mask;
|
|
u16 rezero_wait;
|
|
bool topbuttonpad;
|
|
bool kernel_tracking;
|
|
int dmax;
|
|
int dribble;
|
|
int palm_detect;
|
|
};
|
|
|
|
struct rmi_f01_power_management {
|
|
enum rmi_reg_state nosleep;
|
|
u8 wakeup_threshold;
|
|
u8 doze_holdoff;
|
|
u8 doze_interval;
|
|
};
|
|
|
|
struct rmi_gpio_data {
|
|
bool buttonpad;
|
|
bool trackstick_buttons;
|
|
bool disable;
|
|
};
|
|
|
|
struct rmi_device_platform_data {
|
|
int reset_delay_ms;
|
|
int irq;
|
|
struct rmi_device_platform_data_spi spi_data;
|
|
struct rmi_2d_sensor_platform_data sensor_pdata;
|
|
struct rmi_f01_power_management power_management;
|
|
struct rmi_gpio_data gpio_data;
|
|
};
|
|
|
|
struct synaptics_hw_state {
|
|
int x;
|
|
int y;
|
|
int z;
|
|
int w;
|
|
unsigned int left: 1;
|
|
unsigned int right: 1;
|
|
unsigned int middle: 1;
|
|
unsigned int up: 1;
|
|
unsigned int down: 1;
|
|
u8 ext_buttons;
|
|
s8 scroll;
|
|
};
|
|
|
|
struct synaptics_data {
|
|
struct synaptics_device_info info;
|
|
enum synaptics_pkt_type pkt_type;
|
|
u8 mode;
|
|
int scroll;
|
|
bool absolute_mode;
|
|
bool disable_gesture;
|
|
struct serio *pt_port;
|
|
struct synaptics_hw_state agm;
|
|
unsigned int agm_count;
|
|
unsigned long press_start;
|
|
bool press;
|
|
bool report_press;
|
|
bool is_forcepad;
|
|
};
|
|
|
|
typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long);
|
|
|
|
typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long);
|
|
|
|
typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *);
|
|
|
|
enum hwmon_chip_attributes {
|
|
hwmon_chip_temp_reset_history = 0,
|
|
hwmon_chip_in_reset_history = 1,
|
|
hwmon_chip_curr_reset_history = 2,
|
|
hwmon_chip_power_reset_history = 3,
|
|
hwmon_chip_register_tz = 4,
|
|
hwmon_chip_update_interval = 5,
|
|
hwmon_chip_alarms = 6,
|
|
hwmon_chip_samples = 7,
|
|
hwmon_chip_curr_samples = 8,
|
|
hwmon_chip_in_samples = 9,
|
|
hwmon_chip_power_samples = 10,
|
|
hwmon_chip_temp_samples = 11,
|
|
};
|
|
|
|
enum hwmon_humidity_attributes {
|
|
hwmon_humidity_enable = 0,
|
|
hwmon_humidity_input = 1,
|
|
hwmon_humidity_label = 2,
|
|
hwmon_humidity_min = 3,
|
|
hwmon_humidity_min_hyst = 4,
|
|
hwmon_humidity_max = 5,
|
|
hwmon_humidity_max_hyst = 6,
|
|
hwmon_humidity_alarm = 7,
|
|
hwmon_humidity_fault = 8,
|
|
hwmon_humidity_rated_min = 9,
|
|
hwmon_humidity_rated_max = 10,
|
|
};
|
|
|
|
enum hwmon_fan_attributes {
|
|
hwmon_fan_enable = 0,
|
|
hwmon_fan_input = 1,
|
|
hwmon_fan_label = 2,
|
|
hwmon_fan_min = 3,
|
|
hwmon_fan_max = 4,
|
|
hwmon_fan_div = 5,
|
|
hwmon_fan_pulses = 6,
|
|
hwmon_fan_target = 7,
|
|
hwmon_fan_alarm = 8,
|
|
hwmon_fan_min_alarm = 9,
|
|
hwmon_fan_max_alarm = 10,
|
|
hwmon_fan_fault = 11,
|
|
};
|
|
|
|
struct trace_event_raw_hwmon_attr_class {
|
|
struct trace_entry ent;
|
|
int index;
|
|
u32 __data_loc_attr_name;
|
|
long val;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_hwmon_attr_show_string {
|
|
struct trace_entry ent;
|
|
int index;
|
|
u32 __data_loc_attr_name;
|
|
u32 __data_loc_label;
|
|
char __data[0];
|
|
};
|
|
|
|
struct hwmon_device_attribute {
|
|
struct device_attribute dev_attr;
|
|
const struct hwmon_ops *ops;
|
|
enum hwmon_sensor_types type;
|
|
u32 attr;
|
|
int index;
|
|
char name[32];
|
|
};
|
|
|
|
struct hwmon_device {
|
|
const char *name;
|
|
const char *label;
|
|
struct device dev;
|
|
const struct hwmon_chip_info *chip;
|
|
struct list_head tzdata;
|
|
struct attribute_group group;
|
|
const struct attribute_group **groups;
|
|
};
|
|
|
|
struct trace_event_data_offsets_hwmon_attr_class {
|
|
u32 attr_name;
|
|
};
|
|
|
|
struct trace_event_data_offsets_hwmon_attr_show_string {
|
|
u32 attr_name;
|
|
u32 label;
|
|
};
|
|
|
|
struct menu_device {
|
|
int needs_update;
|
|
int tick_wakeup;
|
|
u64 next_timer_ns;
|
|
unsigned int bucket;
|
|
unsigned int correction_factor[12];
|
|
unsigned int intervals[8];
|
|
int interval_ptr;
|
|
};
|
|
|
|
enum led_default_state {
|
|
LEDS_DEFSTATE_OFF = 0,
|
|
LEDS_DEFSTATE_ON = 1,
|
|
LEDS_DEFSTATE_KEEP = 2,
|
|
};
|
|
|
|
struct led_properties {
|
|
u32 color;
|
|
bool color_present;
|
|
const char *function;
|
|
u32 func_enum;
|
|
bool func_enum_present;
|
|
const char *label;
|
|
};
|
|
|
|
struct snd_jack_kctl {
|
|
struct snd_kcontrol *kctl;
|
|
struct list_head list;
|
|
unsigned int mask_bits;
|
|
struct snd_jack *jack;
|
|
bool sw_inject_enable;
|
|
};
|
|
|
|
struct sock_diag_handler {
|
|
__u8 family;
|
|
int (*dump)(struct sk_buff *, struct nlmsghdr *);
|
|
int (*get_info)(struct sk_buff *, struct sock *);
|
|
int (*destroy)(struct sk_buff *, struct nlmsghdr *);
|
|
};
|
|
|
|
struct broadcast_sk {
|
|
struct sock *sk;
|
|
struct work_struct work;
|
|
};
|
|
|
|
struct sock_diag_req {
|
|
__u8 sdiag_family;
|
|
__u8 sdiag_protocol;
|
|
};
|
|
|
|
struct nvmem_cell;
|
|
|
|
enum {
|
|
ETHTOOL_A_PRIVFLAGS_UNSPEC = 0,
|
|
ETHTOOL_A_PRIVFLAGS_HEADER = 1,
|
|
ETHTOOL_A_PRIVFLAGS_FLAGS = 2,
|
|
__ETHTOOL_A_PRIVFLAGS_CNT = 3,
|
|
ETHTOOL_A_PRIVFLAGS_MAX = 2,
|
|
};
|
|
|
|
struct privflags_reply_data {
|
|
struct ethnl_reply_data base;
|
|
const char (*priv_flag_names)[32];
|
|
unsigned int n_priv_flags;
|
|
u32 priv_flags;
|
|
};
|
|
|
|
enum nf_ct_tcp_action {
|
|
NFCT_TCP_IGNORE = 0,
|
|
NFCT_TCP_INVALID = 1,
|
|
NFCT_TCP_ACCEPT = 2,
|
|
};
|
|
|
|
enum tcp_bit_set {
|
|
TCP_SYN_SET = 0,
|
|
TCP_SYNACK_SET = 1,
|
|
TCP_FIN_SET = 2,
|
|
TCP_ACK_SET = 3,
|
|
TCP_RST_SET = 4,
|
|
TCP_NONE_SET = 5,
|
|
};
|
|
|
|
enum ctattr_protoinfo_tcp {
|
|
CTA_PROTOINFO_TCP_UNSPEC = 0,
|
|
CTA_PROTOINFO_TCP_STATE = 1,
|
|
CTA_PROTOINFO_TCP_WSCALE_ORIGINAL = 2,
|
|
CTA_PROTOINFO_TCP_WSCALE_REPLY = 3,
|
|
CTA_PROTOINFO_TCP_FLAGS_ORIGINAL = 4,
|
|
CTA_PROTOINFO_TCP_FLAGS_REPLY = 5,
|
|
__CTA_PROTOINFO_TCP_MAX = 6,
|
|
};
|
|
|
|
enum ctattr_timeout_tcp {
|
|
CTA_TIMEOUT_TCP_UNSPEC = 0,
|
|
CTA_TIMEOUT_TCP_SYN_SENT = 1,
|
|
CTA_TIMEOUT_TCP_SYN_RECV = 2,
|
|
CTA_TIMEOUT_TCP_ESTABLISHED = 3,
|
|
CTA_TIMEOUT_TCP_FIN_WAIT = 4,
|
|
CTA_TIMEOUT_TCP_CLOSE_WAIT = 5,
|
|
CTA_TIMEOUT_TCP_LAST_ACK = 6,
|
|
CTA_TIMEOUT_TCP_TIME_WAIT = 7,
|
|
CTA_TIMEOUT_TCP_CLOSE = 8,
|
|
CTA_TIMEOUT_TCP_SYN_SENT2 = 9,
|
|
CTA_TIMEOUT_TCP_RETRANS = 10,
|
|
CTA_TIMEOUT_TCP_UNACK = 11,
|
|
__CTA_TIMEOUT_TCP_MAX = 12,
|
|
};
|
|
|
|
struct nf_ct_tcp_flags {
|
|
__u8 flags;
|
|
__u8 mask;
|
|
};
|
|
|
|
enum {
|
|
TCP_CMSG_INQ = 1,
|
|
TCP_CMSG_TS = 2,
|
|
};
|
|
|
|
enum {
|
|
BPF_TCP_ESTABLISHED = 1,
|
|
BPF_TCP_SYN_SENT = 2,
|
|
BPF_TCP_SYN_RECV = 3,
|
|
BPF_TCP_FIN_WAIT1 = 4,
|
|
BPF_TCP_FIN_WAIT2 = 5,
|
|
BPF_TCP_TIME_WAIT = 6,
|
|
BPF_TCP_CLOSE = 7,
|
|
BPF_TCP_CLOSE_WAIT = 8,
|
|
BPF_TCP_LAST_ACK = 9,
|
|
BPF_TCP_LISTEN = 10,
|
|
BPF_TCP_CLOSING = 11,
|
|
BPF_TCP_NEW_SYN_RECV = 12,
|
|
BPF_TCP_MAX_STATES = 13,
|
|
};
|
|
|
|
enum {
|
|
TCP_NLA_PAD = 0,
|
|
TCP_NLA_BUSY = 1,
|
|
TCP_NLA_RWND_LIMITED = 2,
|
|
TCP_NLA_SNDBUF_LIMITED = 3,
|
|
TCP_NLA_DATA_SEGS_OUT = 4,
|
|
TCP_NLA_TOTAL_RETRANS = 5,
|
|
TCP_NLA_PACING_RATE = 6,
|
|
TCP_NLA_DELIVERY_RATE = 7,
|
|
TCP_NLA_SND_CWND = 8,
|
|
TCP_NLA_REORDERING = 9,
|
|
TCP_NLA_MIN_RTT = 10,
|
|
TCP_NLA_RECUR_RETRANS = 11,
|
|
TCP_NLA_DELIVERY_RATE_APP_LMT = 12,
|
|
TCP_NLA_SNDQ_SIZE = 13,
|
|
TCP_NLA_CA_STATE = 14,
|
|
TCP_NLA_SND_SSTHRESH = 15,
|
|
TCP_NLA_DELIVERED = 16,
|
|
TCP_NLA_DELIVERED_CE = 17,
|
|
TCP_NLA_BYTES_SENT = 18,
|
|
TCP_NLA_BYTES_RETRANS = 19,
|
|
TCP_NLA_DSACK_DUPS = 20,
|
|
TCP_NLA_REORD_SEEN = 21,
|
|
TCP_NLA_SRTT = 22,
|
|
TCP_NLA_TIMEOUT_REHASH = 23,
|
|
TCP_NLA_BYTES_NOTSENT = 24,
|
|
TCP_NLA_EDT = 25,
|
|
TCP_NLA_TTL = 26,
|
|
TCP_NLA_REHASH = 27,
|
|
};
|
|
|
|
struct tcp_splice_state {
|
|
struct pipe_inode_info *pipe;
|
|
size_t len;
|
|
unsigned int flags;
|
|
};
|
|
|
|
struct tcp_zerocopy_receive {
|
|
__u64 address;
|
|
__u32 length;
|
|
__u32 recv_skip_hint;
|
|
__u32 inq;
|
|
__s32 err;
|
|
__u64 copybuf_address;
|
|
__s32 copybuf_len;
|
|
__u32 flags;
|
|
__u64 msg_control;
|
|
__u64 msg_controllen;
|
|
__u32 msg_flags;
|
|
__u32 reserved;
|
|
};
|
|
|
|
struct tcp_repair_opt {
|
|
__u32 opt_code;
|
|
__u32 opt_val;
|
|
};
|
|
|
|
struct tcp_repair_window {
|
|
__u32 snd_wl1;
|
|
__u32 snd_wnd;
|
|
__u32 max_window;
|
|
__u32 rcv_wnd;
|
|
__u32 rcv_wup;
|
|
};
|
|
|
|
struct udp_tunnel_nic_table_entry;
|
|
|
|
struct udp_tunnel_nic {
|
|
struct work_struct work;
|
|
struct net_device *dev;
|
|
u8 need_sync: 1;
|
|
u8 need_replay: 1;
|
|
u8 work_pending: 1;
|
|
unsigned int n_tables;
|
|
unsigned long missed;
|
|
struct udp_tunnel_nic_table_entry **entries;
|
|
};
|
|
|
|
struct udp_tunnel_nic_table_entry {
|
|
__be16 port;
|
|
u8 type;
|
|
u8 flags;
|
|
u16 use_cnt;
|
|
u8 hw_priv;
|
|
};
|
|
|
|
enum udp_tunnel_nic_table_entry_flags {
|
|
UDP_TUNNEL_NIC_ENTRY_ADD = 1,
|
|
UDP_TUNNEL_NIC_ENTRY_DEL = 2,
|
|
UDP_TUNNEL_NIC_ENTRY_OP_FAIL = 4,
|
|
UDP_TUNNEL_NIC_ENTRY_FROZEN = 8,
|
|
};
|
|
|
|
struct udp_tunnel_nic_shared_node {
|
|
struct net_device *dev;
|
|
struct list_head list;
|
|
};
|
|
|
|
enum {
|
|
LWT_XFRM_UNSPEC = 0,
|
|
LWT_XFRM_IF_ID = 1,
|
|
LWT_XFRM_LINK = 2,
|
|
__LWT_XFRM_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
IFLA_XFRM_UNSPEC = 0,
|
|
IFLA_XFRM_LINK = 1,
|
|
IFLA_XFRM_IF_ID = 2,
|
|
IFLA_XFRM_COLLECT_METADATA = 3,
|
|
__IFLA_XFRM_MAX = 4,
|
|
};
|
|
|
|
struct xfrm_if_parms {
|
|
int link;
|
|
u32 if_id;
|
|
bool collect_md;
|
|
};
|
|
|
|
struct xfrm_if {
|
|
struct xfrm_if __attribute__((btf_type_tag("rcu"))) *next;
|
|
struct net_device *dev;
|
|
struct net *net;
|
|
struct xfrm_if_parms p;
|
|
struct gro_cells gro_cells;
|
|
};
|
|
|
|
struct ip_comp_hdr {
|
|
__u8 nexthdr;
|
|
__u8 flags;
|
|
__be16 cpi;
|
|
};
|
|
|
|
struct xfrmi_net {
|
|
struct xfrm_if __attribute__((btf_type_tag("rcu"))) *xfrmi[256];
|
|
struct xfrm_if __attribute__((btf_type_tag("rcu"))) *collect_md_xfrmi;
|
|
};
|
|
|
|
struct gssx_name_attr;
|
|
|
|
struct gssx_name_attr_array {
|
|
u32 count;
|
|
struct gssx_name_attr *data;
|
|
};
|
|
|
|
struct gssx_name_attr {
|
|
gssx_buffer attr;
|
|
gssx_buffer value;
|
|
struct gssx_option_array extensions;
|
|
};
|
|
|
|
enum ieee80211_bss_valid_data_flags {
|
|
IEEE80211_BSS_VALID_WMM = 2,
|
|
IEEE80211_BSS_VALID_RATES = 4,
|
|
IEEE80211_BSS_VALID_ERP = 8,
|
|
};
|
|
|
|
struct netlbl_unlhsh_tbl {
|
|
struct list_head *tbl;
|
|
u32 size;
|
|
};
|
|
|
|
struct netlbl_unlhsh_iface {
|
|
int ifindex;
|
|
struct list_head addr4_list;
|
|
struct list_head addr6_list;
|
|
u32 valid;
|
|
struct list_head list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
enum {
|
|
NLBL_UNLABEL_A_UNSPEC = 0,
|
|
NLBL_UNLABEL_A_ACPTFLG = 1,
|
|
NLBL_UNLABEL_A_IPV6ADDR = 2,
|
|
NLBL_UNLABEL_A_IPV6MASK = 3,
|
|
NLBL_UNLABEL_A_IPV4ADDR = 4,
|
|
NLBL_UNLABEL_A_IPV4MASK = 5,
|
|
NLBL_UNLABEL_A_IFACE = 6,
|
|
NLBL_UNLABEL_A_SECCTX = 7,
|
|
__NLBL_UNLABEL_A_MAX = 8,
|
|
};
|
|
|
|
enum {
|
|
NLBL_UNLABEL_C_UNSPEC = 0,
|
|
NLBL_UNLABEL_C_ACCEPT = 1,
|
|
NLBL_UNLABEL_C_LIST = 2,
|
|
NLBL_UNLABEL_C_STATICADD = 3,
|
|
NLBL_UNLABEL_C_STATICREMOVE = 4,
|
|
NLBL_UNLABEL_C_STATICLIST = 5,
|
|
NLBL_UNLABEL_C_STATICADDDEF = 6,
|
|
NLBL_UNLABEL_C_STATICREMOVEDEF = 7,
|
|
NLBL_UNLABEL_C_STATICLISTDEF = 8,
|
|
__NLBL_UNLABEL_C_MAX = 9,
|
|
};
|
|
|
|
struct netlbl_unlhsh_addr4 {
|
|
u32 secid;
|
|
struct netlbl_af4list list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct netlbl_unlhsh_addr6 {
|
|
u32 secid;
|
|
struct netlbl_af6list list;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct netlbl_unlhsh_walk_arg {
|
|
struct netlink_callback *nl_cb;
|
|
struct sk_buff *skb;
|
|
u32 seq;
|
|
};
|
|
|
|
enum mapping_status {
|
|
MAPPING_OK = 0,
|
|
MAPPING_INVALID = 1,
|
|
MAPPING_EMPTY = 2,
|
|
MAPPING_DATA_FIN = 3,
|
|
MAPPING_DUMMY = 4,
|
|
MAPPING_BAD_CSUM = 5,
|
|
};
|
|
|
|
typedef struct ldttss_desc ldt_desc;
|
|
|
|
struct amd_nb_bus_dev_range {
|
|
u8 bus;
|
|
u8 dev_base;
|
|
u8 dev_limit;
|
|
};
|
|
|
|
struct amd_northbridge_info {
|
|
u16 num;
|
|
u64 flags;
|
|
struct amd_northbridge *nb;
|
|
};
|
|
|
|
union efi_simple_text_input_protocol;
|
|
|
|
typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t;
|
|
|
|
union efi_simple_text_output_protocol;
|
|
|
|
typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t;
|
|
|
|
union efi_boot_services;
|
|
|
|
typedef union efi_boot_services efi_boot_services_t;
|
|
|
|
typedef union {
|
|
struct {
|
|
efi_table_hdr_t hdr;
|
|
unsigned long fw_vendor;
|
|
u32 fw_revision;
|
|
unsigned long con_in_handle;
|
|
efi_simple_text_input_protocol_t *con_in;
|
|
unsigned long con_out_handle;
|
|
efi_simple_text_output_protocol_t *con_out;
|
|
unsigned long stderr_handle;
|
|
unsigned long stderr;
|
|
efi_runtime_services_t *runtime;
|
|
efi_boot_services_t *boottime;
|
|
unsigned long nr_tables;
|
|
unsigned long tables;
|
|
};
|
|
efi_system_table_32_t mixed_mode;
|
|
} efi_system_table_t;
|
|
|
|
struct msi_ctrl {
|
|
unsigned int domid;
|
|
unsigned int first;
|
|
unsigned int last;
|
|
unsigned int nirqs;
|
|
};
|
|
|
|
struct profile_hit {
|
|
u32 pc;
|
|
u32 hits;
|
|
};
|
|
|
|
struct rchan_percpu_buf_dispatcher {
|
|
struct rchan_buf *buf;
|
|
struct dentry *dentry;
|
|
};
|
|
|
|
typedef unsigned long perf_trace_t[1024];
|
|
|
|
enum bpf_iter_feature {
|
|
BPF_ITER_RESCHED = 1,
|
|
};
|
|
|
|
struct bpf_iter_target_info {
|
|
struct list_head list;
|
|
const struct bpf_iter_reg *reg_info;
|
|
u32 btf_id;
|
|
};
|
|
|
|
struct bpf_iter_link {
|
|
struct bpf_link link;
|
|
struct bpf_iter_aux_info aux;
|
|
struct bpf_iter_target_info *tinfo;
|
|
};
|
|
|
|
struct bpf_iter_priv_data {
|
|
struct bpf_iter_target_info *tinfo;
|
|
const struct bpf_iter_seq_info *seq_info;
|
|
struct bpf_prog *prog;
|
|
u64 session_id;
|
|
u64 seq_num;
|
|
bool done_stop;
|
|
long: 56;
|
|
u8 target_private[0];
|
|
};
|
|
|
|
typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64);
|
|
|
|
typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64);
|
|
|
|
struct btf_iter_num;
|
|
|
|
struct bpf_iter_num {
|
|
__u64 __opaque[1];
|
|
};
|
|
|
|
struct bpf_iter_num_kern {
|
|
int cur;
|
|
int end;
|
|
};
|
|
|
|
typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *);
|
|
|
|
typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long);
|
|
|
|
typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *);
|
|
|
|
typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *);
|
|
|
|
struct trace_event_raw_vm_unmapped_area {
|
|
struct trace_entry ent;
|
|
unsigned long addr;
|
|
unsigned long total_vm;
|
|
unsigned long flags;
|
|
unsigned long length;
|
|
unsigned long low_limit;
|
|
unsigned long high_limit;
|
|
unsigned long align_mask;
|
|
unsigned long align_offset;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vma_mas_szero {
|
|
struct trace_entry ent;
|
|
struct maple_tree *mt;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_vma_store {
|
|
struct trace_entry ent;
|
|
struct maple_tree *mt;
|
|
struct vm_area_struct *vma;
|
|
unsigned long vm_start;
|
|
unsigned long vm_end;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_exit_mmap {
|
|
struct trace_entry ent;
|
|
struct mm_struct *mm;
|
|
struct maple_tree *mt;
|
|
char __data[0];
|
|
};
|
|
|
|
struct vma_prepare {
|
|
struct vm_area_struct *vma;
|
|
struct vm_area_struct *adj_next;
|
|
struct file *file;
|
|
struct address_space *mapping;
|
|
struct anon_vma *anon_vma;
|
|
struct vm_area_struct *insert;
|
|
struct vm_area_struct *remove;
|
|
struct vm_area_struct *remove2;
|
|
};
|
|
|
|
struct trace_event_data_offsets_vm_unmapped_area {};
|
|
|
|
struct trace_event_data_offsets_vma_mas_szero {};
|
|
|
|
struct trace_event_data_offsets_vma_store {};
|
|
|
|
struct trace_event_data_offsets_exit_mmap {};
|
|
|
|
struct core_name {
|
|
char *corename;
|
|
int used;
|
|
int size;
|
|
};
|
|
|
|
enum {
|
|
Opt_uid___7 = 0,
|
|
Opt_gid___8 = 1,
|
|
Opt_mode___6 = 2,
|
|
Opt_ptmxmode = 3,
|
|
Opt_newinstance = 4,
|
|
Opt_max = 5,
|
|
Opt_err___11 = 6,
|
|
};
|
|
|
|
struct pts_mount_opts {
|
|
int setuid;
|
|
int setgid;
|
|
kuid_t uid;
|
|
kgid_t gid;
|
|
umode_t mode;
|
|
umode_t ptmxmode;
|
|
int reserve;
|
|
int max;
|
|
};
|
|
|
|
struct pts_fs_info {
|
|
struct ida allocated_ptys;
|
|
struct pts_mount_opts mount_opts;
|
|
struct super_block *sb;
|
|
struct dentry *ptmx_dentry;
|
|
};
|
|
|
|
struct ext4_dir_entry_tail {
|
|
__le32 det_reserved_zero1;
|
|
__le16 det_rec_len;
|
|
__u8 det_reserved_zero2;
|
|
__u8 det_reserved_ft;
|
|
__le32 det_checksum;
|
|
};
|
|
|
|
struct dx_entry;
|
|
|
|
struct dx_frame {
|
|
struct buffer_head *bh;
|
|
struct dx_entry *entries;
|
|
struct dx_entry *at;
|
|
};
|
|
|
|
struct dx_entry {
|
|
__le32 hash;
|
|
__le32 block;
|
|
};
|
|
|
|
struct fake_dirent {
|
|
__le32 inode;
|
|
__le16 rec_len;
|
|
u8 name_len;
|
|
u8 file_type;
|
|
};
|
|
|
|
struct dx_root_info {
|
|
__le32 reserved_zero;
|
|
u8 hash_version;
|
|
u8 info_length;
|
|
u8 indirect_levels;
|
|
u8 unused_flags;
|
|
};
|
|
|
|
struct dx_root {
|
|
struct fake_dirent dot;
|
|
char dot_name[4];
|
|
struct fake_dirent dotdot;
|
|
char dotdot_name[4];
|
|
struct dx_root_info info;
|
|
struct dx_entry entries[0];
|
|
};
|
|
|
|
struct dx_node {
|
|
struct fake_dirent fake;
|
|
struct dx_entry entries[0];
|
|
};
|
|
|
|
struct dx_countlimit {
|
|
__le16 limit;
|
|
__le16 count;
|
|
};
|
|
|
|
struct ext4_dir_entry {
|
|
__le32 inode;
|
|
__le16 rec_len;
|
|
__le16 name_len;
|
|
char name[255];
|
|
};
|
|
|
|
struct dx_tail {
|
|
u32 dt_reserved;
|
|
__le32 dt_checksum;
|
|
};
|
|
|
|
struct dx_map_entry {
|
|
u32 hash;
|
|
u16 offs;
|
|
u16 size;
|
|
};
|
|
|
|
struct fscrypt_name {
|
|
const struct qstr *usr_fname;
|
|
struct fscrypt_str disk_name;
|
|
u32 hash;
|
|
u32 minor_hash;
|
|
struct fscrypt_str crypto_buf;
|
|
bool is_nokey_name;
|
|
};
|
|
|
|
struct ext4_renament {
|
|
struct inode *dir;
|
|
struct dentry *dentry;
|
|
struct inode *inode;
|
|
bool is_dir;
|
|
int dir_nlink_delta;
|
|
struct buffer_head *bh;
|
|
struct ext4_dir_entry_2 *de;
|
|
int inlined;
|
|
struct buffer_head *dir_bh;
|
|
struct ext4_dir_entry_2 *parent_de;
|
|
int dir_inlined;
|
|
};
|
|
|
|
typedef enum {
|
|
EITHER = 0,
|
|
INDEX = 1,
|
|
DIRENT = 2,
|
|
DIRENT_HTREE = 3,
|
|
} dirblock_type_t;
|
|
|
|
struct proc_nfs_info {
|
|
int flag;
|
|
const char *str;
|
|
const char *nostr;
|
|
};
|
|
|
|
struct autofs_dev_ioctl;
|
|
|
|
typedef int (*ioctl_fn___2)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *);
|
|
|
|
struct args_protover {
|
|
__u32 version;
|
|
};
|
|
|
|
struct args_protosubver {
|
|
__u32 sub_version;
|
|
};
|
|
|
|
struct args_openmount {
|
|
__u32 devid;
|
|
};
|
|
|
|
struct args_ready {
|
|
__u32 token;
|
|
};
|
|
|
|
struct args_fail {
|
|
__u32 token;
|
|
__s32 status;
|
|
};
|
|
|
|
struct args_setpipefd {
|
|
__s32 pipefd;
|
|
};
|
|
|
|
struct args_timeout {
|
|
__u64 timeout;
|
|
};
|
|
|
|
struct args_requester {
|
|
__u32 uid;
|
|
__u32 gid;
|
|
};
|
|
|
|
struct args_expire {
|
|
__u32 how;
|
|
};
|
|
|
|
struct args_askumount {
|
|
__u32 may_umount;
|
|
};
|
|
|
|
struct args_in {
|
|
__u32 type;
|
|
};
|
|
|
|
struct args_out {
|
|
__u32 devid;
|
|
__u32 magic;
|
|
};
|
|
|
|
struct args_ismountpoint {
|
|
union {
|
|
struct args_in in;
|
|
struct args_out out;
|
|
};
|
|
};
|
|
|
|
struct autofs_dev_ioctl {
|
|
__u32 ver_major;
|
|
__u32 ver_minor;
|
|
__u32 size;
|
|
__s32 ioctlfd;
|
|
union {
|
|
struct args_protover protover;
|
|
struct args_protosubver protosubver;
|
|
struct args_openmount openmount;
|
|
struct args_ready ready;
|
|
struct args_fail fail;
|
|
struct args_setpipefd setpipefd;
|
|
struct args_timeout timeout;
|
|
struct args_requester requester;
|
|
struct args_expire expire;
|
|
struct args_askumount askumount;
|
|
struct args_ismountpoint ismountpoint;
|
|
};
|
|
char path[0];
|
|
};
|
|
|
|
enum {
|
|
AUTOFS_DEV_IOCTL_VERSION_CMD = 113,
|
|
AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114,
|
|
AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115,
|
|
AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116,
|
|
AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117,
|
|
AUTOFS_DEV_IOCTL_READY_CMD = 118,
|
|
AUTOFS_DEV_IOCTL_FAIL_CMD = 119,
|
|
AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120,
|
|
AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121,
|
|
AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122,
|
|
AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123,
|
|
AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124,
|
|
AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125,
|
|
AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126,
|
|
};
|
|
|
|
struct keyring_read_iterator_context {
|
|
size_t buflen;
|
|
size_t count;
|
|
key_serial_t *buffer;
|
|
};
|
|
|
|
struct ima_algo_desc {
|
|
struct crypto_shash *tfm;
|
|
enum hash_algo algo;
|
|
};
|
|
|
|
enum tpm_pcrs {
|
|
TPM_PCR0 = 0,
|
|
TPM_PCR8 = 8,
|
|
TPM_PCR10 = 10,
|
|
};
|
|
|
|
struct hash_ctx {
|
|
struct af_alg_sgl sgl;
|
|
u8 *result;
|
|
struct crypto_wait wait;
|
|
unsigned int len;
|
|
bool more;
|
|
struct ahash_request req;
|
|
};
|
|
|
|
typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32);
|
|
|
|
typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long);
|
|
|
|
typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int);
|
|
|
|
typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int);
|
|
|
|
typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *);
|
|
|
|
typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *);
|
|
|
|
typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int);
|
|
|
|
typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *);
|
|
|
|
typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64);
|
|
|
|
typedef void (*btf_trace_io_uring_submit_sqe)(void *, struct io_kiocb *, bool);
|
|
|
|
typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int);
|
|
|
|
typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int);
|
|
|
|
typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int);
|
|
|
|
typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *);
|
|
|
|
typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int);
|
|
|
|
typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int);
|
|
|
|
enum {
|
|
IO_CHECK_CQ_OVERFLOW_BIT = 0,
|
|
IO_CHECK_CQ_DROPPED_BIT = 1,
|
|
};
|
|
|
|
enum {
|
|
IO_EVENTFD_OP_SIGNAL_BIT = 0,
|
|
IO_EVENTFD_OP_FREE_BIT = 1,
|
|
};
|
|
|
|
enum {
|
|
IOSQE_FIXED_FILE_BIT = 0,
|
|
IOSQE_IO_DRAIN_BIT = 1,
|
|
IOSQE_IO_LINK_BIT = 2,
|
|
IOSQE_IO_HARDLINK_BIT = 3,
|
|
IOSQE_ASYNC_BIT = 4,
|
|
IOSQE_BUFFER_SELECT_BIT = 5,
|
|
IOSQE_CQE_SKIP_SUCCESS_BIT = 6,
|
|
};
|
|
|
|
enum {
|
|
IORING_REGISTER_BUFFERS = 0,
|
|
IORING_UNREGISTER_BUFFERS = 1,
|
|
IORING_REGISTER_FILES = 2,
|
|
IORING_UNREGISTER_FILES = 3,
|
|
IORING_REGISTER_EVENTFD = 4,
|
|
IORING_UNREGISTER_EVENTFD = 5,
|
|
IORING_REGISTER_FILES_UPDATE = 6,
|
|
IORING_REGISTER_EVENTFD_ASYNC = 7,
|
|
IORING_REGISTER_PROBE = 8,
|
|
IORING_REGISTER_PERSONALITY = 9,
|
|
IORING_UNREGISTER_PERSONALITY = 10,
|
|
IORING_REGISTER_RESTRICTIONS = 11,
|
|
IORING_REGISTER_ENABLE_RINGS = 12,
|
|
IORING_REGISTER_FILES2 = 13,
|
|
IORING_REGISTER_FILES_UPDATE2 = 14,
|
|
IORING_REGISTER_BUFFERS2 = 15,
|
|
IORING_REGISTER_BUFFERS_UPDATE = 16,
|
|
IORING_REGISTER_IOWQ_AFF = 17,
|
|
IORING_UNREGISTER_IOWQ_AFF = 18,
|
|
IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
|
|
IORING_REGISTER_RING_FDS = 20,
|
|
IORING_UNREGISTER_RING_FDS = 21,
|
|
IORING_REGISTER_PBUF_RING = 22,
|
|
IORING_UNREGISTER_PBUF_RING = 23,
|
|
IORING_REGISTER_SYNC_CANCEL = 24,
|
|
IORING_REGISTER_FILE_ALLOC_RANGE = 25,
|
|
IORING_REGISTER_LAST = 26,
|
|
IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
|
|
};
|
|
|
|
enum {
|
|
IORING_RESTRICTION_REGISTER_OP = 0,
|
|
IORING_RESTRICTION_SQE_OP = 1,
|
|
IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
|
|
IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
|
|
IORING_RESTRICTION_LAST = 4,
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_create {
|
|
struct trace_entry ent;
|
|
int fd;
|
|
void *ctx;
|
|
u32 sq_entries;
|
|
u32 cq_entries;
|
|
u32 flags;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_register {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
unsigned int opcode;
|
|
unsigned int nr_files;
|
|
unsigned int nr_bufs;
|
|
long ret;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_file_get {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
u64 user_data;
|
|
int fd;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_queue_async_work {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
u64 user_data;
|
|
u8 opcode;
|
|
unsigned int flags;
|
|
struct io_wq_work *work;
|
|
int rw;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_defer {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
unsigned long long data;
|
|
u8 opcode;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_link {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
void *target_req;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_cqring_wait {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
int min_events;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_fail_link {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
unsigned long long user_data;
|
|
u8 opcode;
|
|
void *link;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_complete {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
u64 user_data;
|
|
int res;
|
|
unsigned int cflags;
|
|
u64 extra1;
|
|
u64 extra2;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_submit_sqe {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
unsigned long long user_data;
|
|
u8 opcode;
|
|
u32 flags;
|
|
bool force_nonblock;
|
|
bool sq_thread;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_poll_arm {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
unsigned long long user_data;
|
|
u8 opcode;
|
|
int mask;
|
|
int events;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_task_add {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
unsigned long long user_data;
|
|
u8 opcode;
|
|
int mask;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_req_failed {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
void *req;
|
|
unsigned long long user_data;
|
|
u8 opcode;
|
|
u8 flags;
|
|
u8 ioprio;
|
|
u64 off;
|
|
u64 addr;
|
|
u32 len;
|
|
u32 op_flags;
|
|
u16 buf_index;
|
|
u16 personality;
|
|
u32 file_index;
|
|
u64 pad1;
|
|
u64 addr3;
|
|
int error;
|
|
u32 __data_loc_op_str;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_cqe_overflow {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
unsigned long long user_data;
|
|
s32 res;
|
|
u32 cflags;
|
|
void *ocqe;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_task_work_run {
|
|
struct trace_entry ent;
|
|
void *tctx;
|
|
unsigned int count;
|
|
unsigned int loops;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_short_write {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
u64 fpos;
|
|
u64 wanted;
|
|
u64 got;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_io_uring_local_work_run {
|
|
struct trace_entry ent;
|
|
void *ctx;
|
|
int count;
|
|
unsigned int loops;
|
|
char __data[0];
|
|
};
|
|
|
|
struct io_defer_entry {
|
|
struct list_head list;
|
|
struct io_kiocb *req;
|
|
u32 seq;
|
|
};
|
|
|
|
struct io_wait_queue {
|
|
struct wait_queue_entry wq;
|
|
struct io_ring_ctx *ctx;
|
|
unsigned int cq_tail;
|
|
unsigned int nr_timeouts;
|
|
ktime_t timeout;
|
|
};
|
|
|
|
struct io_tctx_exit {
|
|
struct callback_head task_work;
|
|
struct completion completion;
|
|
struct io_ring_ctx *ctx;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_queue_async_work {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_defer {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_fail_link {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_submit_sqe {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_poll_arm {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_task_add {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct trace_event_data_offsets_io_uring_req_failed {
|
|
u32 op_str;
|
|
};
|
|
|
|
struct io_uring_getevents_arg {
|
|
__u64 sigmask;
|
|
__u32 sigmask_sz;
|
|
__u32 pad;
|
|
__u64 ts;
|
|
};
|
|
|
|
struct creds;
|
|
|
|
struct trace_event_data_offsets_io_uring_create {};
|
|
|
|
struct trace_event_data_offsets_io_uring_register {};
|
|
|
|
struct trace_event_data_offsets_io_uring_file_get {};
|
|
|
|
struct trace_event_data_offsets_io_uring_link {};
|
|
|
|
struct trace_event_data_offsets_io_uring_cqring_wait {};
|
|
|
|
struct trace_event_data_offsets_io_uring_complete {};
|
|
|
|
struct trace_event_data_offsets_io_uring_cqe_overflow {};
|
|
|
|
struct trace_event_data_offsets_io_uring_task_work_run {};
|
|
|
|
struct trace_event_data_offsets_io_uring_short_write {};
|
|
|
|
struct trace_event_data_offsets_io_uring_local_work_run {};
|
|
|
|
struct io_task_cancel {
|
|
struct task_struct *task;
|
|
bool all;
|
|
};
|
|
|
|
struct io_uring_probe_op {
|
|
__u8 op;
|
|
__u8 resv;
|
|
__u16 flags;
|
|
__u32 resv2;
|
|
};
|
|
|
|
struct io_uring_probe {
|
|
__u8 last_op;
|
|
__u8 ops_len;
|
|
__u16 resv;
|
|
__u32 resv2[3];
|
|
struct io_uring_probe_op ops[0];
|
|
};
|
|
|
|
struct io_uring_restriction {
|
|
__u16 opcode;
|
|
union {
|
|
__u8 register_op;
|
|
__u8 sqe_op;
|
|
__u8 sqe_flags;
|
|
};
|
|
__u8 resv;
|
|
__u32 resv2[3];
|
|
};
|
|
|
|
struct displayid_header {
|
|
u8 rev;
|
|
u8 bytes;
|
|
u8 prod_id;
|
|
u8 ext_count;
|
|
};
|
|
|
|
struct drm_mode_map_dumb {
|
|
__u32 handle;
|
|
__u32 pad;
|
|
__u64 offset;
|
|
};
|
|
|
|
struct drm_mode_destroy_dumb {
|
|
__u32 handle;
|
|
};
|
|
|
|
struct ttm_range_manager {
|
|
struct ttm_resource_manager___2 manager;
|
|
struct drm_mm mm;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct sched_cache {
|
|
struct list_head *priolist;
|
|
};
|
|
|
|
struct dp_aud_n_m {
|
|
int sample_rate;
|
|
int clock;
|
|
u16 m;
|
|
u16 n;
|
|
};
|
|
|
|
struct hdmi_aud_ncts {
|
|
int sample_rate;
|
|
int clock;
|
|
int n;
|
|
int cts;
|
|
};
|
|
|
|
struct aud_ts_cdclk_m_n {
|
|
u8 m;
|
|
u16 n;
|
|
};
|
|
|
|
struct ibx_audio_regs {
|
|
i915_reg_t hdmiw_hdmiedid;
|
|
i915_reg_t aud_config;
|
|
i915_reg_t aud_cntl_st;
|
|
i915_reg_t aud_cntrl_st2;
|
|
};
|
|
|
|
struct local_event {
|
|
local_lock_t lock;
|
|
__u32 count;
|
|
};
|
|
|
|
enum proc_cn_mcast_op {
|
|
PROC_CN_MCAST_LISTEN = 1,
|
|
PROC_CN_MCAST_IGNORE = 2,
|
|
};
|
|
|
|
struct fork_proc_event {
|
|
__kernel_pid_t parent_pid;
|
|
__kernel_pid_t parent_tgid;
|
|
__kernel_pid_t child_pid;
|
|
__kernel_pid_t child_tgid;
|
|
};
|
|
|
|
struct exec_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
};
|
|
|
|
struct id_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
union {
|
|
__u32 ruid;
|
|
__u32 rgid;
|
|
} r;
|
|
union {
|
|
__u32 euid;
|
|
__u32 egid;
|
|
} e;
|
|
};
|
|
|
|
struct sid_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
};
|
|
|
|
struct ptrace_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
__kernel_pid_t tracer_pid;
|
|
__kernel_pid_t tracer_tgid;
|
|
};
|
|
|
|
struct comm_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
char comm[16];
|
|
};
|
|
|
|
struct coredump_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
__kernel_pid_t parent_pid;
|
|
__kernel_pid_t parent_tgid;
|
|
};
|
|
|
|
struct exit_proc_event {
|
|
__kernel_pid_t process_pid;
|
|
__kernel_pid_t process_tgid;
|
|
__u32 exit_code;
|
|
__u32 exit_signal;
|
|
__kernel_pid_t parent_pid;
|
|
__kernel_pid_t parent_tgid;
|
|
};
|
|
|
|
struct proc_event {
|
|
enum what what;
|
|
__u32 cpu;
|
|
__u64 timestamp_ns;
|
|
union {
|
|
struct {
|
|
__u32 err;
|
|
} ack;
|
|
struct fork_proc_event fork;
|
|
struct exec_proc_event exec;
|
|
struct id_proc_event id;
|
|
struct sid_proc_event sid;
|
|
struct ptrace_proc_event ptrace;
|
|
struct comm_proc_event comm;
|
|
struct coredump_proc_event coredump;
|
|
struct exit_proc_event exit;
|
|
} event_data;
|
|
};
|
|
|
|
struct ich8_hsfsts {
|
|
u16 flcdone: 1;
|
|
u16 flcerr: 1;
|
|
u16 dael: 1;
|
|
u16 berasesz: 2;
|
|
u16 flcinprog: 1;
|
|
u16 reserved1: 2;
|
|
u16 reserved2: 6;
|
|
u16 fldesvalid: 1;
|
|
u16 flockdn: 1;
|
|
};
|
|
|
|
union ich8_hws_flash_status {
|
|
struct ich8_hsfsts hsf_status;
|
|
u16 regval;
|
|
};
|
|
|
|
struct ich8_hsflctl {
|
|
u16 flcgo: 1;
|
|
u16 flcycle: 2;
|
|
u16 reserved: 5;
|
|
u16 fldbcount: 2;
|
|
u16 flockdn: 6;
|
|
};
|
|
|
|
union ich8_hws_flash_ctrl {
|
|
struct ich8_hsflctl hsf_ctrl;
|
|
u16 regval;
|
|
};
|
|
|
|
struct ich8_pr {
|
|
u32 base: 13;
|
|
u32 reserved1: 2;
|
|
u32 rpe: 1;
|
|
u32 limit: 13;
|
|
u32 reserved2: 2;
|
|
u32 wpe: 1;
|
|
};
|
|
|
|
union ich8_flash_protected_range {
|
|
struct ich8_pr range;
|
|
u32 regval;
|
|
};
|
|
|
|
struct each_dev_arg {
|
|
void *data;
|
|
int (*fn)(struct usb_device *, void *);
|
|
};
|
|
|
|
struct find_interface_arg {
|
|
int minor;
|
|
struct device_driver *drv;
|
|
};
|
|
|
|
struct ehci_tt {
|
|
u16 bandwidth[8];
|
|
struct list_head tt_list;
|
|
struct list_head ps_list;
|
|
struct usb_tt *usb_tt;
|
|
int tt_port;
|
|
};
|
|
|
|
struct ehci_iso_packet {
|
|
u64 bufp;
|
|
__le32 transaction;
|
|
u8 cross;
|
|
u32 buf1;
|
|
};
|
|
|
|
struct ehci_iso_sched {
|
|
struct list_head td_list;
|
|
unsigned int span;
|
|
unsigned int first_packet;
|
|
struct ehci_iso_packet packet[0];
|
|
};
|
|
|
|
struct fib_rule_uid_range {
|
|
__u32 start;
|
|
__u32 end;
|
|
};
|
|
|
|
struct fib_rule_notifier_info {
|
|
struct fib_notifier_info info;
|
|
struct fib_rule *rule;
|
|
};
|
|
|
|
enum {
|
|
TCA_EMATCH_TREE_UNSPEC = 0,
|
|
TCA_EMATCH_TREE_HDR = 1,
|
|
TCA_EMATCH_TREE_LIST = 2,
|
|
__TCA_EMATCH_TREE_MAX = 3,
|
|
};
|
|
|
|
struct tcf_ematch_hdr {
|
|
__u16 matchid;
|
|
__u16 kind;
|
|
__u16 flags;
|
|
__u16 pad;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_TEST_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_TEST_HEADER = 1,
|
|
__ETHTOOL_A_CABLE_TEST_CNT = 2,
|
|
ETHTOOL_A_CABLE_TEST_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_TEST_NTF_HEADER = 1,
|
|
ETHTOOL_A_CABLE_TEST_NTF_STATUS = 2,
|
|
ETHTOOL_A_CABLE_TEST_NTF_NEST = 3,
|
|
__ETHTOOL_A_CABLE_TEST_NTF_CNT = 4,
|
|
ETHTOOL_A_CABLE_TEST_NTF_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1,
|
|
ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_NEST_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_NEST_RESULT = 1,
|
|
ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 2,
|
|
__ETHTOOL_A_CABLE_NEST_CNT = 3,
|
|
ETHTOOL_A_CABLE_NEST_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_RESULT_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_RESULT_PAIR = 1,
|
|
ETHTOOL_A_CABLE_RESULT_CODE = 2,
|
|
__ETHTOOL_A_CABLE_RESULT_CNT = 3,
|
|
ETHTOOL_A_CABLE_RESULT_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 1,
|
|
ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 2,
|
|
__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 3,
|
|
ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_TEST_TDR_HEADER = 1,
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG = 2,
|
|
__ETHTOOL_A_CABLE_TEST_TDR_CNT = 3,
|
|
ETHTOOL_A_CABLE_TEST_TDR_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_TDR_NEST_STEP = 1,
|
|
ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 2,
|
|
ETHTOOL_A_CABLE_TDR_NEST_PULSE = 3,
|
|
__ETHTOOL_A_CABLE_TDR_NEST_CNT = 4,
|
|
ETHTOOL_A_CABLE_TDR_NEST_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1,
|
|
ETHTOOL_A_CABLE_AMPLITUDE_mV = 2,
|
|
__ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3,
|
|
ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_PULSE_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_PULSE_mV = 1,
|
|
__ETHTOOL_A_CABLE_PULSE_CNT = 2,
|
|
ETHTOOL_A_CABLE_PULSE_MAX = 1,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_STEP_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1,
|
|
ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2,
|
|
ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3,
|
|
__ETHTOOL_A_CABLE_STEP_CNT = 4,
|
|
ETHTOOL_A_CABLE_STEP_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0,
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 1,
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 2,
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 3,
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 4,
|
|
__ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT = 5,
|
|
ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 4,
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_CABLE_PAIR_A = 0,
|
|
ETHTOOL_A_CABLE_PAIR_B = 1,
|
|
ETHTOOL_A_CABLE_PAIR_C = 2,
|
|
ETHTOOL_A_CABLE_PAIR_D = 3,
|
|
};
|
|
|
|
enum ct_dccp_roles {
|
|
CT_DCCP_ROLE_CLIENT = 0,
|
|
CT_DCCP_ROLE_SERVER = 1,
|
|
__CT_DCCP_ROLE_MAX = 2,
|
|
};
|
|
|
|
enum dccp_pkt_type {
|
|
DCCP_PKT_REQUEST = 0,
|
|
DCCP_PKT_RESPONSE = 1,
|
|
DCCP_PKT_DATA = 2,
|
|
DCCP_PKT_ACK = 3,
|
|
DCCP_PKT_DATAACK = 4,
|
|
DCCP_PKT_CLOSEREQ = 5,
|
|
DCCP_PKT_CLOSE = 6,
|
|
DCCP_PKT_RESET = 7,
|
|
DCCP_PKT_SYNC = 8,
|
|
DCCP_PKT_SYNCACK = 9,
|
|
DCCP_PKT_INVALID = 10,
|
|
};
|
|
|
|
enum ctattr_protoinfo_dccp {
|
|
CTA_PROTOINFO_DCCP_UNSPEC = 0,
|
|
CTA_PROTOINFO_DCCP_STATE = 1,
|
|
CTA_PROTOINFO_DCCP_ROLE = 2,
|
|
CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ = 3,
|
|
CTA_PROTOINFO_DCCP_PAD = 4,
|
|
__CTA_PROTOINFO_DCCP_MAX = 5,
|
|
};
|
|
|
|
enum ctattr_timeout_dccp {
|
|
CTA_TIMEOUT_DCCP_UNSPEC = 0,
|
|
CTA_TIMEOUT_DCCP_REQUEST = 1,
|
|
CTA_TIMEOUT_DCCP_RESPOND = 2,
|
|
CTA_TIMEOUT_DCCP_PARTOPEN = 3,
|
|
CTA_TIMEOUT_DCCP_OPEN = 4,
|
|
CTA_TIMEOUT_DCCP_CLOSEREQ = 5,
|
|
CTA_TIMEOUT_DCCP_CLOSING = 6,
|
|
CTA_TIMEOUT_DCCP_TIMEWAIT = 7,
|
|
__CTA_TIMEOUT_DCCP_MAX = 8,
|
|
};
|
|
|
|
struct dccp_hdr_ext {
|
|
__be32 dccph_seq_low;
|
|
};
|
|
|
|
struct dccp_hdr_ack_bits {
|
|
__be16 dccph_reserved1;
|
|
__be16 dccph_ack_nr_high;
|
|
__be32 dccph_ack_nr_low;
|
|
};
|
|
|
|
struct dctcp {
|
|
u32 old_delivered;
|
|
u32 old_delivered_ce;
|
|
u32 prior_rcv_nxt;
|
|
u32 dctcp_alpha;
|
|
u32 next_seq;
|
|
u32 ce_state;
|
|
u32 loss_cwnd;
|
|
struct tcp_plb_state plb;
|
|
};
|
|
|
|
struct mld2_grec {
|
|
__u8 grec_type;
|
|
__u8 grec_auxwords;
|
|
__be16 grec_nsrcs;
|
|
struct in6_addr grec_mca;
|
|
struct in6_addr grec_src[0];
|
|
};
|
|
|
|
struct mld2_report {
|
|
struct icmp6hdr mld2r_hdr;
|
|
struct mld2_grec mld2r_grec[0];
|
|
};
|
|
|
|
struct mld2_query {
|
|
struct icmp6hdr mld2q_hdr;
|
|
struct in6_addr mld2q_mca;
|
|
__u8 mld2q_qrv: 3;
|
|
__u8 mld2q_suppress: 1;
|
|
__u8 mld2q_resv2: 4;
|
|
__u8 mld2q_qqic;
|
|
__be16 mld2q_nsrcs;
|
|
struct in6_addr mld2q_srcs[0];
|
|
};
|
|
|
|
struct igmp6_mc_iter_state {
|
|
struct seq_net_private p;
|
|
struct net_device *dev;
|
|
struct inet6_dev *idev;
|
|
};
|
|
|
|
struct igmp6_mcf_iter_state {
|
|
struct seq_net_private p;
|
|
struct net_device *dev;
|
|
struct inet6_dev *idev;
|
|
struct ifmcaddr6 *im;
|
|
};
|
|
|
|
struct unix_domain {
|
|
struct auth_domain h;
|
|
};
|
|
|
|
struct unix_gid {
|
|
struct cache_head h;
|
|
kuid_t uid;
|
|
struct group_info *gi;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct ip_map {
|
|
struct cache_head h;
|
|
char m_class[8];
|
|
struct in6_addr m_addr;
|
|
struct unix_domain *m_client;
|
|
struct callback_head m_rcu;
|
|
};
|
|
|
|
enum {
|
|
NLBL_CIPSOV4_A_UNSPEC = 0,
|
|
NLBL_CIPSOV4_A_DOI = 1,
|
|
NLBL_CIPSOV4_A_MTYPE = 2,
|
|
NLBL_CIPSOV4_A_TAG = 3,
|
|
NLBL_CIPSOV4_A_TAGLST = 4,
|
|
NLBL_CIPSOV4_A_MLSLVLLOC = 5,
|
|
NLBL_CIPSOV4_A_MLSLVLREM = 6,
|
|
NLBL_CIPSOV4_A_MLSLVL = 7,
|
|
NLBL_CIPSOV4_A_MLSLVLLST = 8,
|
|
NLBL_CIPSOV4_A_MLSCATLOC = 9,
|
|
NLBL_CIPSOV4_A_MLSCATREM = 10,
|
|
NLBL_CIPSOV4_A_MLSCAT = 11,
|
|
NLBL_CIPSOV4_A_MLSCATLST = 12,
|
|
__NLBL_CIPSOV4_A_MAX = 13,
|
|
};
|
|
|
|
enum {
|
|
NLBL_CIPSOV4_C_UNSPEC = 0,
|
|
NLBL_CIPSOV4_C_ADD = 1,
|
|
NLBL_CIPSOV4_C_REMOVE = 2,
|
|
NLBL_CIPSOV4_C_LIST = 3,
|
|
NLBL_CIPSOV4_C_LISTALL = 4,
|
|
__NLBL_CIPSOV4_C_MAX = 5,
|
|
};
|
|
|
|
struct netlbl_cipsov4_doiwalk_arg {
|
|
struct netlink_callback *nl_cb;
|
|
struct sk_buff *skb;
|
|
u32 seq;
|
|
};
|
|
|
|
enum {
|
|
MPTCP_PM_ADDR_ATTR_UNSPEC = 0,
|
|
MPTCP_PM_ADDR_ATTR_FAMILY = 1,
|
|
MPTCP_PM_ADDR_ATTR_ID = 2,
|
|
MPTCP_PM_ADDR_ATTR_ADDR4 = 3,
|
|
MPTCP_PM_ADDR_ATTR_ADDR6 = 4,
|
|
MPTCP_PM_ADDR_ATTR_PORT = 5,
|
|
MPTCP_PM_ADDR_ATTR_FLAGS = 6,
|
|
MPTCP_PM_ADDR_ATTR_IF_IDX = 7,
|
|
__MPTCP_PM_ADDR_ATTR_MAX = 8,
|
|
};
|
|
|
|
enum mptcp_event_attr {
|
|
MPTCP_ATTR_UNSPEC = 0,
|
|
MPTCP_ATTR_TOKEN = 1,
|
|
MPTCP_ATTR_FAMILY = 2,
|
|
MPTCP_ATTR_LOC_ID = 3,
|
|
MPTCP_ATTR_REM_ID = 4,
|
|
MPTCP_ATTR_SADDR4 = 5,
|
|
MPTCP_ATTR_SADDR6 = 6,
|
|
MPTCP_ATTR_DADDR4 = 7,
|
|
MPTCP_ATTR_DADDR6 = 8,
|
|
MPTCP_ATTR_SPORT = 9,
|
|
MPTCP_ATTR_DPORT = 10,
|
|
MPTCP_ATTR_BACKUP = 11,
|
|
MPTCP_ATTR_ERROR = 12,
|
|
MPTCP_ATTR_FLAGS = 13,
|
|
MPTCP_ATTR_TIMEOUT = 14,
|
|
MPTCP_ATTR_IF_IDX = 15,
|
|
MPTCP_ATTR_RESET_REASON = 16,
|
|
MPTCP_ATTR_RESET_FLAGS = 17,
|
|
MPTCP_ATTR_SERVER_SIDE = 18,
|
|
__MPTCP_ATTR_AFTER_LAST = 19,
|
|
};
|
|
|
|
enum {
|
|
MPTCP_PM_CMD_UNSPEC = 0,
|
|
MPTCP_PM_CMD_ADD_ADDR = 1,
|
|
MPTCP_PM_CMD_DEL_ADDR = 2,
|
|
MPTCP_PM_CMD_GET_ADDR = 3,
|
|
MPTCP_PM_CMD_FLUSH_ADDRS = 4,
|
|
MPTCP_PM_CMD_SET_LIMITS = 5,
|
|
MPTCP_PM_CMD_GET_LIMITS = 6,
|
|
MPTCP_PM_CMD_SET_FLAGS = 7,
|
|
MPTCP_PM_CMD_ANNOUNCE = 8,
|
|
MPTCP_PM_CMD_REMOVE = 9,
|
|
MPTCP_PM_CMD_SUBFLOW_CREATE = 10,
|
|
MPTCP_PM_CMD_SUBFLOW_DESTROY = 11,
|
|
__MPTCP_PM_CMD_AFTER_LAST = 12,
|
|
};
|
|
|
|
struct mptcp_pm_add_entry {
|
|
struct list_head list;
|
|
struct mptcp_addr_info addr;
|
|
struct timer_list add_timer;
|
|
struct mptcp_sock *sock;
|
|
u8 retrans_times;
|
|
};
|
|
|
|
struct pm_nl_pernet {
|
|
spinlock_t lock;
|
|
struct list_head local_addr_list;
|
|
unsigned int addrs;
|
|
unsigned int stale_loss_cnt;
|
|
unsigned int add_addr_signal_max;
|
|
unsigned int add_addr_accept_max;
|
|
unsigned int local_addr_max;
|
|
unsigned int subflows_max;
|
|
unsigned int next_id;
|
|
unsigned long id_bitmap[4];
|
|
};
|
|
|
|
enum {
|
|
LBR_NONE = 0,
|
|
LBR_VALID = 1,
|
|
};
|
|
|
|
enum {
|
|
ARCH_LBR_BR_TYPE_JCC = 0,
|
|
ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1,
|
|
ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2,
|
|
ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3,
|
|
ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4,
|
|
ARCH_LBR_BR_TYPE_NEAR_RET = 5,
|
|
ARCH_LBR_BR_TYPE_KNOWN_MAX = 5,
|
|
ARCH_LBR_BR_TYPE_MAP_MAX = 16,
|
|
};
|
|
|
|
struct x86_perf_task_context_opt {
|
|
int lbr_callstack_users;
|
|
int lbr_stack_state;
|
|
int log_id;
|
|
};
|
|
|
|
struct x86_perf_task_context_arch_lbr {
|
|
struct x86_perf_task_context_opt opt;
|
|
struct lbr_entry entries[0];
|
|
};
|
|
|
|
struct x86_perf_task_context {
|
|
u64 lbr_sel;
|
|
int tos;
|
|
int valid_lbrs;
|
|
struct x86_perf_task_context_opt opt;
|
|
struct lbr_entry lbr[32];
|
|
};
|
|
|
|
union cpuid28_eax {
|
|
struct {
|
|
unsigned int lbr_depth_mask: 8;
|
|
unsigned int reserved: 22;
|
|
unsigned int lbr_deep_c_reset: 1;
|
|
unsigned int lbr_lip: 1;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
union cpuid28_ebx {
|
|
struct {
|
|
unsigned int lbr_cpl: 1;
|
|
unsigned int lbr_filter: 1;
|
|
unsigned int lbr_call_stack: 1;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
union cpuid28_ecx {
|
|
struct {
|
|
unsigned int lbr_mispred: 1;
|
|
unsigned int lbr_timed_lbr: 1;
|
|
unsigned int lbr_br_type: 1;
|
|
} split;
|
|
unsigned int full;
|
|
};
|
|
|
|
struct arch_lbr_state {
|
|
u64 lbr_ctl;
|
|
u64 lbr_depth;
|
|
u64 ler_from;
|
|
u64 ler_to;
|
|
u64 ler_info;
|
|
struct lbr_entry entries[0];
|
|
};
|
|
|
|
struct x86_perf_task_context_arch_lbr_xsave {
|
|
struct x86_perf_task_context_opt opt;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
union {
|
|
struct xregs_state xsave;
|
|
struct {
|
|
struct fxregs_state i387;
|
|
struct xstate_header header;
|
|
struct arch_lbr_state lbr;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
};
|
|
};
|
|
|
|
struct x86_pmu_lbr {
|
|
unsigned int nr;
|
|
unsigned int from;
|
|
unsigned int to;
|
|
unsigned int info;
|
|
};
|
|
|
|
struct ms_hyperv_info {
|
|
u32 features;
|
|
u32 priv_high;
|
|
u32 misc_features;
|
|
u32 hints;
|
|
u32 nested_features;
|
|
u32 max_vp_index;
|
|
u32 max_lp_index;
|
|
u32 isolation_config_a;
|
|
union {
|
|
u32 isolation_config_b;
|
|
struct {
|
|
u32 cvm_type: 4;
|
|
u32 reserved1: 1;
|
|
u32 shared_gpa_boundary_active: 1;
|
|
u32 shared_gpa_boundary_bits: 6;
|
|
u32 reserved2: 20;
|
|
};
|
|
};
|
|
u64 shared_gpa_boundary;
|
|
};
|
|
|
|
enum hv_isolation_type {
|
|
HV_ISOLATION_TYPE_NONE = 0,
|
|
HV_ISOLATION_TYPE_VBS = 1,
|
|
HV_ISOLATION_TYPE_SNP = 2,
|
|
};
|
|
|
|
enum allow_write_msrs {
|
|
MSR_WRITES_ON = 0,
|
|
MSR_WRITES_OFF = 1,
|
|
MSR_WRITES_DEFAULT = 2,
|
|
};
|
|
|
|
struct core_text {
|
|
unsigned long base;
|
|
unsigned long end;
|
|
const char *name;
|
|
};
|
|
|
|
struct taint_flag {
|
|
char c_true;
|
|
char c_false;
|
|
bool module;
|
|
};
|
|
|
|
struct warn_args {
|
|
const char *fmt;
|
|
va_list args;
|
|
};
|
|
|
|
struct housekeeping {
|
|
cpumask_var_t cpumasks[9];
|
|
unsigned long flags;
|
|
};
|
|
|
|
struct sched_clock_data {
|
|
u64 tick_raw;
|
|
u64 tick_gtod;
|
|
u64 clock;
|
|
};
|
|
|
|
struct cpuacct {
|
|
struct cgroup_subsys_state css;
|
|
u64 __attribute__((btf_type_tag("percpu"))) *cpuusage;
|
|
struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat;
|
|
};
|
|
|
|
struct sugov_tunables {
|
|
struct gov_attr_set attr_set;
|
|
unsigned int rate_limit_us;
|
|
};
|
|
|
|
struct sugov_policy;
|
|
|
|
struct sugov_cpu {
|
|
struct update_util_data update_util;
|
|
struct sugov_policy *sg_policy;
|
|
unsigned int cpu;
|
|
bool iowait_boost_pending;
|
|
unsigned int iowait_boost;
|
|
u64 last_update;
|
|
unsigned long util;
|
|
unsigned long bw_dl;
|
|
unsigned long saved_idle_calls;
|
|
};
|
|
|
|
struct sugov_policy {
|
|
struct cpufreq_policy *policy;
|
|
struct sugov_tunables *tunables;
|
|
struct list_head tunables_hook;
|
|
raw_spinlock_t update_lock;
|
|
u64 last_freq_update_time;
|
|
s64 freq_update_delay_ns;
|
|
unsigned int next_freq;
|
|
unsigned int cached_raw_freq;
|
|
struct irq_work irq_work;
|
|
struct kthread_work work;
|
|
struct mutex work_lock;
|
|
struct kthread_worker worker;
|
|
struct task_struct *thread;
|
|
bool work_in_progress;
|
|
bool limits_changed;
|
|
bool need_freq_update;
|
|
};
|
|
|
|
enum hk_flags {
|
|
HK_FLAG_TIMER = 1,
|
|
HK_FLAG_RCU = 2,
|
|
HK_FLAG_MISC = 4,
|
|
HK_FLAG_SCHED = 8,
|
|
HK_FLAG_TICK = 16,
|
|
HK_FLAG_DOMAIN = 32,
|
|
HK_FLAG_WQ = 64,
|
|
HK_FLAG_MANAGED_IRQ = 128,
|
|
HK_FLAG_KTHREAD = 256,
|
|
};
|
|
|
|
enum cpuacct_stat_index {
|
|
CPUACCT_STAT_USER = 0,
|
|
CPUACCT_STAT_SYSTEM = 1,
|
|
CPUACCT_STAT_NSTATS = 2,
|
|
};
|
|
|
|
enum s_alloc {
|
|
sa_rootdomain = 0,
|
|
sa_sd = 1,
|
|
sa_sd_storage = 2,
|
|
sa_none = 3,
|
|
};
|
|
|
|
enum membarrier_cmd {
|
|
MEMBARRIER_CMD_QUERY = 0,
|
|
MEMBARRIER_CMD_GLOBAL = 1,
|
|
MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
|
|
MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
|
|
MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
|
|
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
|
|
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
|
|
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
|
|
MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
|
|
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
|
|
MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
|
|
MEMBARRIER_CMD_SHARED = 1,
|
|
};
|
|
|
|
enum membarrier_cmd_flag {
|
|
MEMBARRIER_CMD_FLAG_CPU = 1,
|
|
};
|
|
|
|
enum {
|
|
MEMBARRIER_FLAG_SYNC_CORE = 1,
|
|
MEMBARRIER_FLAG_RSEQ = 2,
|
|
};
|
|
|
|
struct asym_cap_data {
|
|
struct list_head link;
|
|
unsigned long capacity;
|
|
unsigned long cpus[0];
|
|
};
|
|
|
|
struct s_data {
|
|
struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd;
|
|
struct root_domain *rd;
|
|
};
|
|
|
|
struct auditd_connection {
|
|
struct pid *pid;
|
|
u32 portid;
|
|
struct net *net;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
struct audit_ctl_mutex {
|
|
struct mutex lock;
|
|
void *owner;
|
|
};
|
|
|
|
struct audit_features {
|
|
__u32 vers;
|
|
__u32 mask;
|
|
__u32 features;
|
|
__u32 lock;
|
|
};
|
|
|
|
enum audit_nlgrps {
|
|
AUDIT_NLGRP_NONE = 0,
|
|
AUDIT_NLGRP_READLOG = 1,
|
|
__AUDIT_NLGRP_MAX = 2,
|
|
};
|
|
|
|
struct audit_reply {
|
|
__u32 portid;
|
|
struct net *net;
|
|
struct sk_buff *skb;
|
|
};
|
|
|
|
struct audit_net {
|
|
struct sock *sk;
|
|
};
|
|
|
|
struct audit_buffer {
|
|
struct sk_buff *skb;
|
|
struct audit_context *ctx;
|
|
gfp_t gfp_mask;
|
|
};
|
|
|
|
struct audit_sig_info {
|
|
uid_t uid;
|
|
pid_t pid;
|
|
char ctx[0];
|
|
};
|
|
|
|
struct audit_tty_status {
|
|
__u32 enabled;
|
|
__u32 log_passwd;
|
|
};
|
|
|
|
struct audit_status {
|
|
__u32 mask;
|
|
__u32 enabled;
|
|
__u32 failure;
|
|
__u32 pid;
|
|
__u32 rate_limit;
|
|
__u32 backlog_limit;
|
|
__u32 lost;
|
|
__u32 backlog;
|
|
union {
|
|
__u32 version;
|
|
__u32 feature_bitmap;
|
|
};
|
|
__u32 backlog_wait_time;
|
|
__u32 backlog_wait_time_actual;
|
|
};
|
|
|
|
struct bpf_dtab_netdev;
|
|
|
|
struct bpf_dtab {
|
|
struct bpf_map map;
|
|
struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map;
|
|
struct list_head list;
|
|
struct hlist_head *dev_index_head;
|
|
spinlock_t index_lock;
|
|
unsigned int items;
|
|
u32 n_buckets;
|
|
long: 32;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct bpf_devmap_val {
|
|
__u32 ifindex;
|
|
union {
|
|
int fd;
|
|
__u32 id;
|
|
} bpf_prog;
|
|
};
|
|
|
|
struct bpf_dtab_netdev {
|
|
struct net_device *dev;
|
|
struct hlist_node index_hlist;
|
|
struct bpf_dtab *dtab;
|
|
struct bpf_prog *xdp_prog;
|
|
struct callback_head rcu;
|
|
unsigned int idx;
|
|
struct bpf_devmap_val val;
|
|
};
|
|
|
|
struct xol_area {
|
|
wait_queue_head_t wq;
|
|
atomic_t slot_count;
|
|
unsigned long *bitmap;
|
|
struct vm_special_mapping xol_mapping;
|
|
struct page *pages[2];
|
|
unsigned long vaddr;
|
|
};
|
|
|
|
struct uprobe {
|
|
struct rb_node rb_node;
|
|
refcount_t ref;
|
|
struct rw_semaphore register_rwsem;
|
|
struct rw_semaphore consumer_rwsem;
|
|
struct list_head pending_list;
|
|
struct uprobe_consumer *consumers;
|
|
struct inode *inode;
|
|
loff_t offset;
|
|
loff_t ref_ctr_offset;
|
|
unsigned long flags;
|
|
struct arch_uprobe arch;
|
|
};
|
|
|
|
typedef u8 uprobe_opcode_t;
|
|
|
|
struct delayed_uprobe {
|
|
struct list_head list;
|
|
struct uprobe *uprobe;
|
|
struct mm_struct *mm;
|
|
};
|
|
|
|
struct __uprobe_key {
|
|
struct inode *inode;
|
|
loff_t offset;
|
|
};
|
|
|
|
struct map_info___2 {
|
|
struct map_info___2 *next;
|
|
struct mm_struct *mm;
|
|
unsigned long vaddr;
|
|
};
|
|
|
|
struct vmemmap_remap_walk {
|
|
void (*remap_pte)(pte_t *, unsigned long, struct vmemmap_remap_walk *);
|
|
unsigned long nr_walked;
|
|
struct page *reuse_page;
|
|
unsigned long reuse_addr;
|
|
struct list_head *vmemmap_pages;
|
|
};
|
|
|
|
struct old_linux_dirent {
|
|
unsigned long d_ino;
|
|
unsigned long d_offset;
|
|
unsigned short d_namlen;
|
|
char d_name[1];
|
|
};
|
|
|
|
struct readdir_callback {
|
|
struct dir_context ctx;
|
|
struct old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent;
|
|
int result;
|
|
};
|
|
|
|
struct linux_dirent {
|
|
unsigned long d_ino;
|
|
unsigned long d_off;
|
|
unsigned short d_reclen;
|
|
char d_name[1];
|
|
};
|
|
|
|
struct getdents_callback___2 {
|
|
struct dir_context ctx;
|
|
struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir;
|
|
int prev_reclen;
|
|
int count;
|
|
int error;
|
|
};
|
|
|
|
struct linux_dirent64 {
|
|
u64 d_ino;
|
|
s64 d_off;
|
|
unsigned short d_reclen;
|
|
unsigned char d_type;
|
|
char d_name[0];
|
|
};
|
|
|
|
struct getdents_callback64 {
|
|
struct dir_context ctx;
|
|
struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir;
|
|
int prev_reclen;
|
|
int count;
|
|
int error;
|
|
};
|
|
|
|
struct compat_old_linux_dirent {
|
|
compat_ulong_t d_ino;
|
|
compat_ulong_t d_offset;
|
|
unsigned short d_namlen;
|
|
char d_name[1];
|
|
};
|
|
|
|
struct compat_readdir_callback {
|
|
struct dir_context ctx;
|
|
struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent;
|
|
int result;
|
|
};
|
|
|
|
struct compat_linux_dirent {
|
|
compat_ulong_t d_ino;
|
|
compat_ulong_t d_off;
|
|
unsigned short d_reclen;
|
|
char d_name[1];
|
|
};
|
|
|
|
struct compat_getdents_callback {
|
|
struct dir_context ctx;
|
|
struct compat_linux_dirent __attribute__((btf_type_tag("user"))) *current_dir;
|
|
int prev_reclen;
|
|
int count;
|
|
int error;
|
|
};
|
|
|
|
struct fd_data {
|
|
fmode_t mode;
|
|
unsigned int fd;
|
|
};
|
|
|
|
struct kernfs_global_locks {
|
|
struct mutex open_file_mutex[1024];
|
|
};
|
|
|
|
struct shortname_info {
|
|
unsigned char lower: 1;
|
|
unsigned char upper: 1;
|
|
unsigned char valid: 1;
|
|
};
|
|
|
|
enum {
|
|
NFS_OWNER_RECLAIM_REBOOT = 0,
|
|
NFS_OWNER_RECLAIM_NOGRACE = 1,
|
|
};
|
|
|
|
struct shmid_kernel {
|
|
struct kern_ipc_perm shm_perm;
|
|
struct file *shm_file;
|
|
unsigned long shm_nattch;
|
|
unsigned long shm_segsz;
|
|
time64_t shm_atim;
|
|
time64_t shm_dtim;
|
|
time64_t shm_ctim;
|
|
struct pid *shm_cprid;
|
|
struct pid *shm_lprid;
|
|
struct ucounts *mlock_ucounts;
|
|
struct task_struct *shm_creator;
|
|
struct list_head shm_clist;
|
|
struct ipc_namespace *ns;
|
|
long: 64;
|
|
long: 64;
|
|
long: 64;
|
|
};
|
|
|
|
struct shm_file_data {
|
|
int id;
|
|
struct ipc_namespace *ns;
|
|
struct file *file;
|
|
const struct vm_operations_struct *vm_ops;
|
|
};
|
|
|
|
struct shmid_ds {
|
|
struct ipc_perm shm_perm;
|
|
int shm_segsz;
|
|
__kernel_old_time_t shm_atime;
|
|
__kernel_old_time_t shm_dtime;
|
|
__kernel_old_time_t shm_ctime;
|
|
__kernel_ipc_pid_t shm_cpid;
|
|
__kernel_ipc_pid_t shm_lpid;
|
|
unsigned short shm_nattch;
|
|
unsigned short shm_unused;
|
|
void *shm_unused2;
|
|
void *shm_unused3;
|
|
};
|
|
|
|
struct shmid64_ds {
|
|
struct ipc64_perm shm_perm;
|
|
__kernel_size_t shm_segsz;
|
|
long shm_atime;
|
|
long shm_dtime;
|
|
long shm_ctime;
|
|
__kernel_pid_t shm_cpid;
|
|
__kernel_pid_t shm_lpid;
|
|
unsigned long shm_nattch;
|
|
unsigned long __unused4;
|
|
unsigned long __unused5;
|
|
};
|
|
|
|
struct shminfo64 {
|
|
unsigned long shmmax;
|
|
unsigned long shmmin;
|
|
unsigned long shmmni;
|
|
unsigned long shmseg;
|
|
unsigned long shmall;
|
|
unsigned long __unused1;
|
|
unsigned long __unused2;
|
|
unsigned long __unused3;
|
|
unsigned long __unused4;
|
|
};
|
|
|
|
struct shm_info {
|
|
int used_ids;
|
|
__kernel_ulong_t shm_tot;
|
|
__kernel_ulong_t shm_rss;
|
|
__kernel_ulong_t shm_swp;
|
|
__kernel_ulong_t swap_attempts;
|
|
__kernel_ulong_t swap_successes;
|
|
};
|
|
|
|
struct shminfo {
|
|
int shmmax;
|
|
int shmmin;
|
|
int shmmni;
|
|
int shmseg;
|
|
int shmall;
|
|
};
|
|
|
|
struct compat_shmid_ds {
|
|
struct compat_ipc_perm shm_perm;
|
|
int shm_segsz;
|
|
old_time32_t shm_atime;
|
|
old_time32_t shm_dtime;
|
|
old_time32_t shm_ctime;
|
|
compat_ipc_pid_t shm_cpid;
|
|
compat_ipc_pid_t shm_lpid;
|
|
unsigned short shm_nattch;
|
|
unsigned short shm_unused;
|
|
compat_uptr_t shm_unused2;
|
|
compat_uptr_t shm_unused3;
|
|
};
|
|
|
|
struct compat_shmid64_ds {
|
|
struct compat_ipc64_perm shm_perm;
|
|
compat_size_t shm_segsz;
|
|
compat_ulong_t shm_atime;
|
|
compat_ulong_t shm_atime_high;
|
|
compat_ulong_t shm_dtime;
|
|
compat_ulong_t shm_dtime_high;
|
|
compat_ulong_t shm_ctime;
|
|
compat_ulong_t shm_ctime_high;
|
|
compat_pid_t shm_cpid;
|
|
compat_pid_t shm_lpid;
|
|
compat_ulong_t shm_nattch;
|
|
compat_ulong_t __unused4;
|
|
compat_ulong_t __unused5;
|
|
};
|
|
|
|
struct compat_shminfo64 {
|
|
compat_ulong_t shmmax;
|
|
compat_ulong_t shmmin;
|
|
compat_ulong_t shmmni;
|
|
compat_ulong_t shmseg;
|
|
compat_ulong_t shmall;
|
|
compat_ulong_t __unused1;
|
|
compat_ulong_t __unused2;
|
|
compat_ulong_t __unused3;
|
|
compat_ulong_t __unused4;
|
|
};
|
|
|
|
struct compat_shm_info {
|
|
compat_int_t used_ids;
|
|
compat_ulong_t shm_tot;
|
|
compat_ulong_t shm_rss;
|
|
compat_ulong_t shm_swp;
|
|
compat_ulong_t swap_attempts;
|
|
compat_ulong_t swap_successes;
|
|
};
|
|
|
|
struct bio_map_data {
|
|
bool is_our_pages: 1;
|
|
bool is_null_mapped: 1;
|
|
struct iov_iter iter;
|
|
struct iovec iov[0];
|
|
};
|
|
|
|
struct ioc_gq;
|
|
|
|
struct ioc_now;
|
|
|
|
typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64);
|
|
|
|
struct iocg_stat {
|
|
u64 usage_us;
|
|
u64 wait_us;
|
|
u64 indebt_us;
|
|
u64 indelay_us;
|
|
};
|
|
|
|
struct ioc;
|
|
|
|
struct iocg_pcpu_stat;
|
|
|
|
struct ioc_gq {
|
|
struct blkg_policy_data pd;
|
|
struct ioc *ioc;
|
|
u32 cfg_weight;
|
|
u32 weight;
|
|
u32 active;
|
|
u32 inuse;
|
|
u32 last_inuse;
|
|
s64 saved_margin;
|
|
sector_t cursor;
|
|
atomic64_t vtime;
|
|
atomic64_t done_vtime;
|
|
u64 abs_vdebt;
|
|
u64 delay;
|
|
u64 delay_at;
|
|
atomic64_t active_period;
|
|
struct list_head active_list;
|
|
u64 child_active_sum;
|
|
u64 child_inuse_sum;
|
|
u64 child_adjusted_sum;
|
|
int hweight_gen;
|
|
u32 hweight_active;
|
|
u32 hweight_inuse;
|
|
u32 hweight_donating;
|
|
u32 hweight_after_donation;
|
|
struct list_head walk_list;
|
|
struct list_head surplus_list;
|
|
struct wait_queue_head waitq;
|
|
struct hrtimer waitq_timer;
|
|
u64 activated_at;
|
|
struct iocg_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat;
|
|
struct iocg_stat stat;
|
|
struct iocg_stat last_stat;
|
|
u64 last_stat_abs_vusage;
|
|
u64 usage_delta_us;
|
|
u64 wait_since;
|
|
u64 indebt_since;
|
|
u64 indelay_since;
|
|
int level;
|
|
struct ioc_gq *ancestors[0];
|
|
};
|
|
|
|
struct ioc_params {
|
|
u32 qos[6];
|
|
u64 i_lcoefs[6];
|
|
u64 lcoefs[6];
|
|
u32 too_fast_vrate_pct;
|
|
u32 too_slow_vrate_pct;
|
|
};
|
|
|
|
struct ioc_margins {
|
|
s64 min;
|
|
s64 low;
|
|
s64 target;
|
|
};
|
|
|
|
enum ioc_running {
|
|
IOC_IDLE = 0,
|
|
IOC_RUNNING = 1,
|
|
IOC_STOP = 2,
|
|
};
|
|
|
|
struct ioc_pcpu_stat;
|
|
|
|
struct ioc {
|
|
struct rq_qos rqos;
|
|
bool enabled;
|
|
struct ioc_params params;
|
|
struct ioc_margins margins;
|
|
u32 period_us;
|
|
u32 timer_slack_ns;
|
|
u64 vrate_min;
|
|
u64 vrate_max;
|
|
spinlock_t lock;
|
|
struct timer_list timer;
|
|
struct list_head active_iocgs;
|
|
struct ioc_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat;
|
|
enum ioc_running running;
|
|
atomic64_t vtime_rate;
|
|
u64 vtime_base_rate;
|
|
s64 vtime_err;
|
|
seqcount_spinlock_t period_seqcount;
|
|
u64 period_at;
|
|
u64 period_at_vtime;
|
|
atomic64_t cur_period;
|
|
int busy_level;
|
|
bool weights_updated;
|
|
atomic_t hweight_gen;
|
|
u64 dfgv_period_at;
|
|
u64 dfgv_period_rem;
|
|
u64 dfgv_usage_us_sum;
|
|
u64 autop_too_fast_at;
|
|
u64 autop_too_slow_at;
|
|
int autop_idx;
|
|
bool user_qos_params: 1;
|
|
bool user_cost_model: 1;
|
|
};
|
|
|
|
struct ioc_missed {
|
|
local_t nr_met;
|
|
local_t nr_missed;
|
|
u32 last_met;
|
|
u32 last_missed;
|
|
};
|
|
|
|
struct ioc_pcpu_stat {
|
|
struct ioc_missed missed[2];
|
|
local64_t rq_wait_ns;
|
|
u64 last_rq_wait_ns;
|
|
};
|
|
|
|
struct iocg_pcpu_stat {
|
|
local64_t abs_vusage;
|
|
};
|
|
|
|
struct ioc_now {
|
|
u64 now_ns;
|
|
u64 now;
|
|
u64 vnow;
|
|
};
|
|
|
|
typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64);
|
|
|
|
typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
|
|
|
|
typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
|
|
|
|
typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
|
|
|
|
typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int);
|
|
|
|
typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64);
|
|
|
|
enum {
|
|
MILLION = 1000000,
|
|
MIN_PERIOD = 1000,
|
|
MAX_PERIOD = 1000000,
|
|
MARGIN_MIN_PCT = 10,
|
|
MARGIN_LOW_PCT = 20,
|
|
MARGIN_TARGET_PCT = 50,
|
|
INUSE_ADJ_STEP_PCT = 25,
|
|
TIMER_SLACK_PCT = 1,
|
|
WEIGHT_ONE = 65536,
|
|
};
|
|
|
|
enum {
|
|
QOS_RPPM = 0,
|
|
QOS_RLAT = 1,
|
|
QOS_WPPM = 2,
|
|
QOS_WLAT = 3,
|
|
QOS_MIN = 4,
|
|
QOS_MAX = 5,
|
|
NR_QOS_PARAMS = 6,
|
|
};
|
|
|
|
enum {
|
|
QOS_ENABLE = 0,
|
|
QOS_CTRL = 1,
|
|
NR_QOS_CTRL_PARAMS = 2,
|
|
};
|
|
|
|
enum {
|
|
VTIME_PER_SEC_SHIFT = 37ULL,
|
|
VTIME_PER_SEC = 137438953472ULL,
|
|
VTIME_PER_USEC = 137438ULL,
|
|
VTIME_PER_NSEC = 137ULL,
|
|
VRATE_MIN_PPM = 10000ULL,
|
|
VRATE_MAX_PPM = 100000000ULL,
|
|
VRATE_MIN = 1374ULL,
|
|
VRATE_CLAMP_ADJ_PCT = 4ULL,
|
|
AUTOP_CYCLE_NSEC = 10000000000ULL,
|
|
};
|
|
|
|
enum {
|
|
AUTOP_INVALID = 0,
|
|
AUTOP_HDD = 1,
|
|
AUTOP_SSD_QD1 = 2,
|
|
AUTOP_SSD_DFL = 3,
|
|
AUTOP_SSD_FAST = 4,
|
|
};
|
|
|
|
enum {
|
|
RQ_WAIT_BUSY_PCT = 5,
|
|
UNBUSY_THR_PCT = 75,
|
|
MIN_DELAY_THR_PCT = 500,
|
|
MAX_DELAY_THR_PCT = 25000,
|
|
MIN_DELAY = 250,
|
|
MAX_DELAY = 250000,
|
|
DFGV_USAGE_PCT = 50,
|
|
DFGV_PERIOD = 100000,
|
|
MAX_LAGGING_PERIODS = 10,
|
|
IOC_PAGE_SHIFT = 12,
|
|
IOC_PAGE_SIZE = 4096,
|
|
IOC_SECT_TO_PAGE_SHIFT = 3,
|
|
LCOEF_RANDIO_PAGES = 4096,
|
|
};
|
|
|
|
enum {
|
|
LCOEF_RPAGE = 0,
|
|
LCOEF_RSEQIO = 1,
|
|
LCOEF_RRANDIO = 2,
|
|
LCOEF_WPAGE = 3,
|
|
LCOEF_WSEQIO = 4,
|
|
LCOEF_WRANDIO = 5,
|
|
NR_LCOEFS = 6,
|
|
};
|
|
|
|
enum {
|
|
I_LCOEF_RBPS = 0,
|
|
I_LCOEF_RSEQIOPS = 1,
|
|
I_LCOEF_RRANDIOPS = 2,
|
|
I_LCOEF_WBPS = 3,
|
|
I_LCOEF_WSEQIOPS = 4,
|
|
I_LCOEF_WRANDIOPS = 5,
|
|
NR_I_LCOEFS = 6,
|
|
};
|
|
|
|
enum {
|
|
COST_CTRL = 0,
|
|
COST_MODEL = 1,
|
|
NR_COST_CTRL_PARAMS = 2,
|
|
};
|
|
|
|
struct trace_event_raw_iocost_iocg_state {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_devname;
|
|
u32 __data_loc_cgroup;
|
|
u64 now;
|
|
u64 vnow;
|
|
u64 vrate;
|
|
u64 last_period;
|
|
u64 cur_period;
|
|
u64 vtime;
|
|
u32 weight;
|
|
u32 inuse;
|
|
u64 hweight_active;
|
|
u64 hweight_inuse;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iocg_inuse_update {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_devname;
|
|
u32 __data_loc_cgroup;
|
|
u64 now;
|
|
u32 old_inuse;
|
|
u32 new_inuse;
|
|
u64 old_hweight_inuse;
|
|
u64 new_hweight_inuse;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iocost_ioc_vrate_adj {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_devname;
|
|
u64 old_vrate;
|
|
u64 new_vrate;
|
|
int busy_level;
|
|
u32 read_missed_ppm;
|
|
u32 write_missed_ppm;
|
|
u32 rq_wait_pct;
|
|
int nr_lagging;
|
|
int nr_shortages;
|
|
char __data[0];
|
|
};
|
|
|
|
struct trace_event_raw_iocost_iocg_forgive_debt {
|
|
struct trace_entry ent;
|
|
u32 __data_loc_devname;
|
|
u32 __data_loc_cgroup;
|
|
u64 now;
|
|
u64 vnow;
|
|
u32 usage_pct;
|
|
u64 old_debt;
|
|
u64 new_debt;
|
|
u64 old_delay;
|
|
u64 new_delay;
|
|
char __data[0];
|
|
};
|
|
|
|
struct ioc_cgrp {
|
|
struct blkcg_policy_data cpd;
|
|
unsigned int dfl_weight;
|
|
};
|
|
|
|
struct iocg_wait {
|
|
struct wait_queue_entry wait;
|
|
struct bio *bio;
|
|
u64 abs_cost;
|
|
bool committed;
|
|
};
|
|
|
|
struct trace_event_data_offsets_iocost_iocg_state {
|
|
u32 devname;
|
|
u32 cgroup;
|
|
};
|
|
|
|
struct trace_event_data_offsets_iocg_inuse_update {
|
|
u32 devname;
|
|
u32 cgroup;
|
|
};
|
|
|
|
struct trace_event_data_offsets_iocost_ioc_vrate_adj {
|
|
u32 devname;
|
|
};
|
|
|
|
struct trace_event_data_offsets_iocost_iocg_forgive_debt {
|
|
u32 devname;
|
|
u32 cgroup;
|
|
};
|
|
|
|
struct iocg_wake_ctx {
|
|
struct ioc_gq *iocg;
|
|
u32 hw_inuse;
|
|
s64 vbudget;
|
|
};
|
|
|
|
struct lpit_residency_info {
|
|
struct acpi_generic_address gaddr;
|
|
u64 frequency;
|
|
void *iomem_addr;
|
|
};
|
|
|
|
struct acpi_lpit_header {
|
|
u32 type;
|
|
u32 length;
|
|
u16 unique_id;
|
|
u16 reserved;
|
|
u32 flags;
|
|
};
|
|
|
|
struct acpi_lpit_native {
|
|
struct acpi_lpit_header header;
|
|
struct acpi_generic_address entry_trigger;
|
|
u32 residency;
|
|
u32 latency;
|
|
struct acpi_generic_address residency_counter;
|
|
u64 counter_frequency;
|
|
} __attribute__((packed));
|
|
|
|
struct acpi_table_lpit {
|
|
struct acpi_table_header header;
|
|
};
|
|
|
|
struct termios {
|
|
tcflag_t c_iflag;
|
|
tcflag_t c_oflag;
|
|
tcflag_t c_cflag;
|
|
tcflag_t c_lflag;
|
|
cc_t c_line;
|
|
cc_t c_cc[19];
|
|
};
|
|
|
|
struct termios2 {
|
|
tcflag_t c_iflag;
|
|
tcflag_t c_oflag;
|
|
tcflag_t c_cflag;
|
|
tcflag_t c_lflag;
|
|
cc_t c_line;
|
|
cc_t c_cc[19];
|
|
speed_t c_ispeed;
|
|
speed_t c_ospeed;
|
|
};
|
|
|
|
struct termio {
|
|
unsigned short c_iflag;
|
|
unsigned short c_oflag;
|
|
unsigned short c_cflag;
|
|
unsigned short c_lflag;
|
|
unsigned char c_line;
|
|
unsigned char c_cc[8];
|
|
};
|
|
|
|
struct lpss8250;
|
|
|
|
struct lpss8250_board {
|
|
unsigned long freq;
|
|
unsigned int base_baud;
|
|
int (*setup)(struct lpss8250 *, struct uart_port *);
|
|
void (*exit)(struct lpss8250 *);
|
|
};
|
|
|
|
struct lpss8250 {
|
|
struct dw8250_port_data data;
|
|
struct lpss8250_board *board;
|
|
struct dw_dma_chip dma_chip;
|
|
struct dw_dma_slave dma_param;
|
|
u8 dma_maxburst;
|
|
};
|
|
|
|
struct drm_mode_card_res {
|
|
__u64 fb_id_ptr;
|
|
__u64 crtc_id_ptr;
|
|
__u64 connector_id_ptr;
|
|
__u64 encoder_id_ptr;
|
|
__u32 count_fbs;
|
|
__u32 count_crtcs;
|
|
__u32 count_connectors;
|
|
__u32 count_encoders;
|
|
__u32 min_width;
|
|
__u32 max_width;
|
|
__u32 min_height;
|
|
__u32 max_height;
|
|
};
|
|
|
|
struct drm_fb_helper_funcs;
|
|
|
|
struct drm_fb_helper {
|
|
struct drm_client_dev client;
|
|
struct drm_client_buffer *buffer;
|
|
struct drm_framebuffer *fb;
|
|
struct drm_device *dev;
|
|
const struct drm_fb_helper_funcs *funcs;
|
|
struct fb_info *info;
|
|
u32 pseudo_palette[17];
|
|
struct drm_clip_rect damage_clip;
|
|
spinlock_t damage_lock;
|
|
struct work_struct damage_work;
|
|
struct work_struct resume_work;
|
|
struct mutex lock;
|
|
struct list_head kernel_fb_list;
|
|
bool delayed_hotplug;
|
|
bool deferred_setup;
|
|
int preferred_bpp;
|
|
bool hint_leak_smem_start;
|
|
};
|
|
|
|
struct drm_fb_helper_surface_size;
|
|
|
|
struct drm_fb_helper_funcs {
|
|
int (*fb_probe)(struct drm_fb_helper *, struct drm_fb_helper_surface_size *);
|
|
int (*fb_dirty)(struct drm_fb_helper *, struct drm_clip_rect *);
|
|
};
|
|
|
|
struct drm_fb_helper_surface_size {
|
|
u32 fb_width;
|
|
u32 fb_height;
|
|
u32 surface_width;
|
|
u32 surface_height;
|
|
u32 surface_bpp;
|
|
u32 surface_depth;
|
|
};
|
|
|
|
enum vgt_g2v_type {
|
|
VGT_G2V_PPGTT_L3_PAGE_TABLE_CREATE = 2,
|
|
VGT_G2V_PPGTT_L3_PAGE_TABLE_DESTROY = 3,
|
|
VGT_G2V_PPGTT_L4_PAGE_TABLE_CREATE = 4,
|
|
VGT_G2V_PPGTT_L4_PAGE_TABLE_DESTROY = 5,
|
|
VGT_G2V_EXECLIST_CONTEXT_CREATE = 6,
|
|
VGT_G2V_EXECLIST_CONTEXT_DESTROY = 7,
|
|
VGT_G2V_MAX = 8,
|
|
};
|
|
|
|
struct guc_log_section {
|
|
u32 max;
|
|
u32 flag;
|
|
u32 default_val;
|
|
const char *name;
|
|
};
|
|
|
|
struct intel_dvo {
|
|
struct intel_encoder base;
|
|
struct intel_dvo_device dev;
|
|
struct intel_connector *attached_connector;
|
|
};
|
|
|
|
struct regmap_debugfs_node {
|
|
struct regmap *map;
|
|
struct list_head link;
|
|
};
|
|
|
|
struct regmap_debugfs_off_cache {
|
|
struct list_head list;
|
|
off_t min;
|
|
off_t max;
|
|
unsigned int base_reg;
|
|
unsigned int max_reg;
|
|
};
|
|
|
|
enum spi_signal_type {
|
|
SPI_SIGNAL_UNKNOWN = 1,
|
|
SPI_SIGNAL_SE = 2,
|
|
SPI_SIGNAL_LVD = 3,
|
|
SPI_SIGNAL_HVD = 4,
|
|
};
|
|
|
|
enum spi_compare_returns {
|
|
SPI_COMPARE_SUCCESS = 0,
|
|
SPI_COMPARE_FAILURE = 1,
|
|
SPI_COMPARE_SKIP_TEST = 2,
|
|
};
|
|
|
|
enum {
|
|
SPI_BLIST_NOIUS = 1,
|
|
};
|
|
|
|
struct spi_transport_attrs {
|
|
int period;
|
|
int min_period;
|
|
int offset;
|
|
int max_offset;
|
|
unsigned int width: 1;
|
|
unsigned int max_width: 1;
|
|
unsigned int iu: 1;
|
|
unsigned int max_iu: 1;
|
|
unsigned int dt: 1;
|
|
unsigned int qas: 1;
|
|
unsigned int max_qas: 1;
|
|
unsigned int wr_flow: 1;
|
|
unsigned int rd_strm: 1;
|
|
unsigned int rti: 1;
|
|
unsigned int pcomp_en: 1;
|
|
unsigned int hold_mcs: 1;
|
|
unsigned int initial_dv: 1;
|
|
unsigned long flags;
|
|
unsigned int support_sync: 1;
|
|
unsigned int support_wide: 1;
|
|
unsigned int support_dt: 1;
|
|
unsigned int support_dt_only;
|
|
unsigned int support_ius;
|
|
unsigned int support_qas;
|
|
unsigned int dv_pending: 1;
|
|
unsigned int dv_in_progress: 1;
|
|
struct mutex dv_mutex;
|
|
};
|
|
|
|
struct spi_function_template;
|
|
|
|
struct spi_internal {
|
|
struct scsi_transport_template t;
|
|
struct spi_function_template *f;
|
|
};
|
|
|
|
struct spi_function_template {
|
|
void (*get_period)(struct scsi_target *);
|
|
void (*set_period)(struct scsi_target *, int);
|
|
void (*get_offset)(struct scsi_target *);
|
|
void (*set_offset)(struct scsi_target *, int);
|
|
void (*get_width)(struct scsi_target *);
|
|
void (*set_width)(struct scsi_target *, int);
|
|
void (*get_iu)(struct scsi_target *);
|
|
void (*set_iu)(struct scsi_target *, int);
|
|
void (*get_dt)(struct scsi_target *);
|
|
void (*set_dt)(struct scsi_target *, int);
|
|
void (*get_qas)(struct scsi_target *);
|
|
void (*set_qas)(struct scsi_target *, int);
|
|
void (*get_wr_flow)(struct scsi_target *);
|
|
void (*set_wr_flow)(struct scsi_target *, int);
|
|
void (*get_rd_strm)(struct scsi_target *);
|
|
void (*set_rd_strm)(struct scsi_target *, int);
|
|
void (*get_rti)(struct scsi_target *);
|
|
void (*set_rti)(struct scsi_target *, int);
|
|
void (*get_pcomp_en)(struct scsi_target *);
|
|
void (*set_pcomp_en)(struct scsi_target *, int);
|
|
void (*get_hold_mcs)(struct scsi_target *);
|
|
void (*set_hold_mcs)(struct scsi_target *, int);
|
|
void (*get_signalling)(struct Scsi_Host *);
|
|
void (*set_signalling)(struct Scsi_Host *, enum spi_signal_type);
|
|
int (*deny_binding)(struct scsi_target *);
|
|
unsigned long show_period: 1;
|
|
unsigned long show_offset: 1;
|
|
unsigned long show_width: 1;
|
|
unsigned long show_iu: 1;
|
|
unsigned long show_dt: 1;
|
|
unsigned long show_qas: 1;
|
|
unsigned long show_wr_flow: 1;
|
|
unsigned long show_rd_strm: 1;
|
|
unsigned long show_rti: 1;
|
|
unsigned long show_pcomp_en: 1;
|
|
unsigned long show_hold_mcs: 1;
|
|
};
|
|
|
|
struct spi_host_attrs {
|
|
enum spi_signal_type signalling;
|
|
};
|
|
|
|
struct work_queue_wrapper {
|
|
struct work_struct work;
|
|
struct scsi_device *sdev;
|
|
};
|
|
|
|
struct register_test {
|
|
__u32 reg;
|
|
__u32 mask;
|
|
};
|
|
|
|
struct nv_ethtool_str {
|
|
char name[32];
|
|
};
|
|
|
|
enum {
|
|
NvRegIrqStatus = 0,
|
|
NvRegIrqMask = 4,
|
|
NvRegUnknownSetupReg6 = 8,
|
|
NvRegPollingInterval = 12,
|
|
NvRegMSIMap0 = 32,
|
|
NvRegMSIMap1 = 36,
|
|
NvRegMSIIrqMask = 48,
|
|
NvRegMisc1 = 128,
|
|
NvRegMacReset = 52,
|
|
NvRegTransmitterControl = 132,
|
|
NvRegTransmitterStatus = 136,
|
|
NvRegPacketFilterFlags = 140,
|
|
NvRegOffloadConfig = 144,
|
|
NvRegReceiverControl = 148,
|
|
NvRegReceiverStatus = 152,
|
|
NvRegSlotTime = 156,
|
|
NvRegTxDeferral = 160,
|
|
NvRegRxDeferral = 164,
|
|
NvRegMacAddrA = 168,
|
|
NvRegMacAddrB = 172,
|
|
NvRegMulticastAddrA = 176,
|
|
NvRegMulticastAddrB = 180,
|
|
NvRegMulticastMaskA = 184,
|
|
NvRegMulticastMaskB = 188,
|
|
NvRegPhyInterface = 192,
|
|
NvRegBackOffControl = 196,
|
|
NvRegTxRingPhysAddr = 256,
|
|
NvRegRxRingPhysAddr = 260,
|
|
NvRegRingSizes = 264,
|
|
NvRegTransmitPoll = 268,
|
|
NvRegLinkSpeed = 272,
|
|
NvRegUnknownSetupReg5 = 304,
|
|
NvRegTxWatermark = 316,
|
|
NvRegTxRxControl = 324,
|
|
NvRegTxRingPhysAddrHigh = 328,
|
|
NvRegRxRingPhysAddrHigh = 332,
|
|
NvRegTxPauseFrame = 368,
|
|
NvRegTxPauseFrameLimit = 372,
|
|
NvRegMIIStatus = 384,
|
|
NvRegMIIMask = 388,
|
|
NvRegAdapterControl = 392,
|
|
NvRegMIISpeed = 396,
|
|
NvRegMIIControl = 400,
|
|
NvRegMIIData = 404,
|
|
NvRegTxUnicast = 416,
|
|
NvRegTxMulticast = 420,
|
|
NvRegTxBroadcast = 424,
|
|
NvRegWakeUpFlags = 512,
|
|
NvRegMgmtUnitGetVersion = 516,
|
|
NvRegMgmtUnitVersion = 520,
|
|
NvRegPowerCap = 616,
|
|
NvRegPowerState = 620,
|
|
NvRegMgmtUnitControl = 632,
|
|
NvRegTxCnt = 640,
|
|
NvRegTxZeroReXmt = 644,
|
|
NvRegTxOneReXmt = 648,
|
|
NvRegTxManyReXmt = 652,
|
|
NvRegTxLateCol = 656,
|
|
NvRegTxUnderflow = 660,
|
|
NvRegTxLossCarrier = 664,
|
|
NvRegTxExcessDef = 668,
|
|
NvRegTxRetryErr = 672,
|
|
NvRegRxFrameErr = 676,
|
|
NvRegRxExtraByte = 680,
|
|
NvRegRxLateCol = 684,
|
|
NvRegRxRunt = 688,
|
|
NvRegRxFrameTooLong = 692,
|
|
NvRegRxOverflow = 696,
|
|
NvRegRxFCSErr = 700,
|
|
NvRegRxFrameAlignErr = 704,
|
|
NvRegRxLenErr = 708,
|
|
NvRegRxUnicast = 712,
|
|
NvRegRxMulticast = 716,
|
|
NvRegRxBroadcast = 720,
|
|
NvRegTxDef = 724,
|
|
NvRegTxFrame = 728,
|
|
NvRegRxCnt = 732,
|
|
NvRegTxPause = 736,
|
|
NvRegRxPause = 740,
|
|
NvRegRxDropFrame = 744,
|
|
NvRegVlanControl = 768,
|
|
NvRegMSIXMap0 = 992,
|
|
NvRegMSIXMap1 = 996,
|
|
NvRegMSIXIrqStatus = 1008,
|
|
NvRegPowerState2 = 1536,
|
|
};
|
|
|
|
enum {
|
|
NV_OPTIMIZATION_MODE_THROUGHPUT = 0,
|
|
NV_OPTIMIZATION_MODE_CPU = 1,
|
|
NV_OPTIMIZATION_MODE_DYNAMIC = 2,
|
|
};
|
|
|
|
enum {
|
|
NV_CROSSOVER_DETECTION_DISABLED = 0,
|
|
NV_CROSSOVER_DETECTION_ENABLED = 1,
|
|
};
|
|
|
|
struct nv_txrx_stats {
|
|
u64 stat_rx_packets;
|
|
u64 stat_rx_bytes;
|
|
u64 stat_rx_missed_errors;
|
|
u64 stat_rx_dropped;
|
|
u64 stat_tx_packets;
|
|
u64 stat_tx_bytes;
|
|
u64 stat_tx_dropped;
|
|
};
|
|
|
|
struct nv_ethtool_stats {
|
|
u64 tx_bytes;
|
|
u64 tx_zero_rexmt;
|
|
u64 tx_one_rexmt;
|
|
u64 tx_many_rexmt;
|
|
u64 tx_late_collision;
|
|
u64 tx_fifo_errors;
|
|
u64 tx_carrier_errors;
|
|
u64 tx_excess_deferral;
|
|
u64 tx_retry_error;
|
|
u64 rx_frame_error;
|
|
u64 rx_extra_byte;
|
|
u64 rx_late_collision;
|
|
u64 rx_runt;
|
|
u64 rx_frame_too_long;
|
|
u64 rx_over_errors;
|
|
u64 rx_crc_errors;
|
|
u64 rx_frame_align_error;
|
|
u64 rx_length_error;
|
|
u64 rx_unicast;
|
|
u64 rx_multicast;
|
|
u64 rx_broadcast;
|
|
u64 rx_packets;
|
|
u64 rx_errors_total;
|
|
u64 tx_errors_total;
|
|
u64 tx_deferral;
|
|
u64 tx_packets;
|
|
u64 rx_bytes;
|
|
u64 tx_pause;
|
|
u64 rx_pause;
|
|
u64 rx_drop_frame;
|
|
u64 tx_unicast;
|
|
u64 tx_multicast;
|
|
u64 tx_broadcast;
|
|
};
|
|
|
|
struct ring_desc;
|
|
|
|
struct ring_desc_ex;
|
|
|
|
union ring_type {
|
|
struct ring_desc *orig;
|
|
struct ring_desc_ex *ex;
|
|
};
|
|
|
|
struct nv_skb_map;
|
|
|
|
struct fe_priv {
|
|
spinlock_t lock;
|
|
struct net_device *dev;
|
|
struct napi_struct napi;
|
|
spinlock_t hwstats_lock;
|
|
struct nv_ethtool_stats estats;
|
|
int in_shutdown;
|
|
u32 linkspeed;
|
|
int duplex;
|
|
int autoneg;
|
|
int fixed_mode;
|
|
int phyaddr;
|
|
int wolenabled;
|
|
unsigned int phy_oui;
|
|
unsigned int phy_model;
|
|
unsigned int phy_rev;
|
|
u16 gigabit;
|
|
int intr_test;
|
|
int recover_error;
|
|
int quiet_count;
|
|
dma_addr_t ring_addr;
|
|
struct pci_dev *pci_dev;
|
|
u32 orig_mac[2];
|
|
u32 events;
|
|
u32 irqmask;
|
|
u32 desc_ver;
|
|
u32 txrxctl_bits;
|
|
u32 vlanctl_bits;
|
|
u32 driver_data;
|
|
u32 device_id;
|
|
u32 register_size;
|
|
u32 mac_in_use;
|
|
int mgmt_version;
|
|
int mgmt_sema;
|
|
void *base;
|
|
union ring_type get_rx;
|
|
union ring_type put_rx;
|
|
union ring_type last_rx;
|
|
struct nv_skb_map *get_rx_ctx;
|
|
struct nv_skb_map *put_rx_ctx;
|
|
struct nv_skb_map *last_rx_ctx;
|
|
struct nv_skb_map *rx_skb;
|
|
union ring_type rx_ring;
|
|
unsigned int rx_buf_sz;
|
|
unsigned int pkt_limit;
|
|
struct timer_list oom_kick;
|
|
struct timer_list nic_poll;
|
|
struct timer_list stats_poll;
|
|
u32 nic_poll_irq;
|
|
int rx_ring_size;
|
|
struct u64_stats_sync swstats_rx_syncp;
|
|
struct nv_txrx_stats __attribute__((btf_type_tag("percpu"))) *txrx_stats;
|
|
int need_linktimer;
|
|
unsigned long link_timeout;
|
|
union ring_type get_tx;
|
|
union ring_type put_tx;
|
|
union ring_type last_tx;
|
|
struct nv_skb_map *get_tx_ctx;
|
|
struct nv_skb_map *put_tx_ctx;
|
|
struct nv_skb_map *last_tx_ctx;
|
|
struct nv_skb_map *tx_skb;
|
|
union ring_type tx_ring;
|
|
u32 tx_flags;
|
|
int tx_ring_size;
|
|
int tx_limit;
|
|
u32 tx_pkts_in_progress;
|
|
struct nv_skb_map *tx_change_owner;
|
|
struct nv_skb_map *tx_end_flip;
|
|
int tx_stop;
|
|
struct u64_stats_sync swstats_tx_syncp;
|
|
u32 msi_flags;
|
|
struct msix_entry msi_x_entry[8];
|
|
u32 pause_flags;
|
|
u32 saved_config_space[385];
|
|
char name_rx[19];
|
|
char name_tx[19];
|
|
char name_other[22];
|
|
};
|
|
|
|
struct ring_desc {
|
|
__le32 buf;
|
|
__le32 flaglen;
|
|
};
|
|
|
|
struct ring_desc_ex {
|
|
__le32 bufhigh;
|
|
__le32 buflow;
|
|
__le32 txvlan;
|
|
__le32 flaglen;
|
|
};
|
|
|
|
struct nv_skb_map {
|
|
struct sk_buff *skb;
|
|
dma_addr_t dma;
|
|
unsigned int dma_len: 31;
|
|
unsigned int dma_single: 1;
|
|
struct ring_desc_ex *first_tx_desc;
|
|
struct nv_skb_map *next_tx_ctx;
|
|
};
|
|
|
|
enum snoop_when {
|
|
SUBMIT = 0,
|
|
COMPLETE = 1,
|
|
};
|
|
|
|
struct usb_dev_state {
|
|
struct list_head list;
|
|
struct usb_device *dev;
|
|
struct file *file;
|
|
spinlock_t lock;
|
|
struct list_head async_pending;
|
|
struct list_head async_completed;
|
|
struct list_head memory_list;
|
|
wait_queue_head_t wait;
|
|
wait_queue_head_t wait_for_resume;
|
|
unsigned int discsignr;
|
|
struct pid *disc_pid;
|
|
const struct cred *cred;
|
|
sigval_t disccontext;
|
|
unsigned long ifclaimed;
|
|
u32 disabled_bulk_eps;
|
|
unsigned long interface_allowed_mask;
|
|
int not_yet_resumed;
|
|
bool suspend_allowed;
|
|
bool privileges_dropped;
|
|
};
|
|
|
|
struct usb_memory;
|
|
|
|
struct async {
|
|
struct list_head asynclist;
|
|
struct usb_dev_state *ps;
|
|
struct pid *pid;
|
|
const struct cred *cred;
|
|
unsigned int signr;
|
|
unsigned int ifnum;
|
|
void __attribute__((btf_type_tag("user"))) *userbuffer;
|
|
void __attribute__((btf_type_tag("user"))) *userurb;
|
|
sigval_t userurb_sigval;
|
|
struct urb *urb;
|
|
struct usb_memory *usbm;
|
|
unsigned int mem_usage;
|
|
int status;
|
|
u8 bulk_addr;
|
|
u8 bulk_status;
|
|
};
|
|
|
|
struct usb_memory {
|
|
struct list_head memlist;
|
|
int vma_use_count;
|
|
int urb_use_count;
|
|
u32 size;
|
|
void *mem;
|
|
dma_addr_t dma_handle;
|
|
unsigned long vm_start;
|
|
struct usb_dev_state *ps;
|
|
};
|
|
|
|
struct usbdevfs_iso_packet_desc {
|
|
unsigned int length;
|
|
unsigned int actual_length;
|
|
unsigned int status;
|
|
};
|
|
|
|
struct usbdevfs_urb {
|
|
unsigned char type;
|
|
unsigned char endpoint;
|
|
int status;
|
|
unsigned int flags;
|
|
void __attribute__((btf_type_tag("user"))) *buffer;
|
|
int buffer_length;
|
|
int actual_length;
|
|
int start_frame;
|
|
union {
|
|
int number_of_packets;
|
|
unsigned int stream_id;
|
|
};
|
|
int error_count;
|
|
unsigned int signr;
|
|
void __attribute__((btf_type_tag("user"))) *usercontext;
|
|
struct usbdevfs_iso_packet_desc iso_frame_desc[0];
|
|
};
|
|
|
|
struct usbdevfs_urb32 {
|
|
unsigned char type;
|
|
unsigned char endpoint;
|
|
compat_int_t status;
|
|
compat_uint_t flags;
|
|
compat_caddr_t buffer;
|
|
compat_int_t buffer_length;
|
|
compat_int_t actual_length;
|
|
compat_int_t start_frame;
|
|
compat_int_t number_of_packets;
|
|
compat_int_t error_count;
|
|
compat_uint_t signr;
|
|
compat_caddr_t usercontext;
|
|
struct usbdevfs_iso_packet_desc iso_frame_desc[0];
|
|
};
|
|
|
|
struct usbdevfs_ioctl32 {
|
|
s32 ifno;
|
|
s32 ioctl_code;
|
|
compat_caddr_t data;
|
|
};
|
|
|
|
struct usbdevfs_ioctl {
|
|
int ifno;
|
|
int ioctl_code;
|
|
void __attribute__((btf_type_tag("user"))) *data;
|
|
};
|
|
|
|
struct usbdevfs_setinterface {
|
|
unsigned int interface;
|
|
unsigned int altsetting;
|
|
};
|
|
|
|
struct usbdevfs_ctrltransfer {
|
|
__u8 bRequestType;
|
|
__u8 bRequest;
|
|
__u16 wValue;
|
|
__u16 wIndex;
|
|
__u16 wLength;
|
|
__u32 timeout;
|
|
void __attribute__((btf_type_tag("user"))) *data;
|
|
};
|
|
|
|
struct usbdevfs_disconnectsignal {
|
|
unsigned int signr;
|
|
void __attribute__((btf_type_tag("user"))) *context;
|
|
};
|
|
|
|
struct usbdevfs_bulktransfer32 {
|
|
compat_uint_t ep;
|
|
compat_uint_t len;
|
|
compat_uint_t timeout;
|
|
compat_caddr_t data;
|
|
};
|
|
|
|
struct usbdevfs_bulktransfer {
|
|
unsigned int ep;
|
|
unsigned int len;
|
|
unsigned int timeout;
|
|
void __attribute__((btf_type_tag("user"))) *data;
|
|
};
|
|
|
|
struct usbdevfs_getdriver {
|
|
unsigned int interface;
|
|
char driver[256];
|
|
};
|
|
|
|
struct usbdevfs_disconnect_claim {
|
|
unsigned int interface;
|
|
unsigned int flags;
|
|
char driver[256];
|
|
};
|
|
|
|
struct usbdevfs_ctrltransfer32 {
|
|
u8 bRequestType;
|
|
u8 bRequest;
|
|
u16 wValue;
|
|
u16 wIndex;
|
|
u16 wLength;
|
|
u32 timeout;
|
|
compat_caddr_t data;
|
|
};
|
|
|
|
struct usbdevfs_disconnectsignal32 {
|
|
compat_int_t signr;
|
|
compat_caddr_t context;
|
|
};
|
|
|
|
struct usbdevfs_connectinfo {
|
|
unsigned int devnum;
|
|
unsigned char slow;
|
|
};
|
|
|
|
struct usbdevfs_conninfo_ex {
|
|
__u32 size;
|
|
__u32 busnum;
|
|
__u32 devnum;
|
|
__u32 speed;
|
|
__u8 num_ports;
|
|
__u8 ports[7];
|
|
};
|
|
|
|
struct usbdevfs_streams {
|
|
unsigned int num_streams;
|
|
unsigned int num_eps;
|
|
unsigned char eps[0];
|
|
};
|
|
|
|
union input_seq_state {
|
|
struct {
|
|
unsigned short pos;
|
|
bool mutex_acquired;
|
|
};
|
|
void *p;
|
|
};
|
|
|
|
struct input_devres {
|
|
struct input_dev *input;
|
|
};
|
|
|
|
struct power_supply_attr {
|
|
const char *prop_name;
|
|
char attr_name[31];
|
|
struct device_attribute dev_attr;
|
|
const char * const *text_values;
|
|
int text_values_len;
|
|
};
|
|
|
|
enum power_supply_charge_behaviour {
|
|
POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0,
|
|
POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1,
|
|
POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2,
|
|
};
|
|
|
|
enum {
|
|
SNDRV_HWDEP_IFACE_OPL2 = 0,
|
|
SNDRV_HWDEP_IFACE_OPL3 = 1,
|
|
SNDRV_HWDEP_IFACE_OPL4 = 2,
|
|
SNDRV_HWDEP_IFACE_SB16CSP = 3,
|
|
SNDRV_HWDEP_IFACE_EMU10K1 = 4,
|
|
SNDRV_HWDEP_IFACE_YSS225 = 5,
|
|
SNDRV_HWDEP_IFACE_ICS2115 = 6,
|
|
SNDRV_HWDEP_IFACE_SSCAPE = 7,
|
|
SNDRV_HWDEP_IFACE_VX = 8,
|
|
SNDRV_HWDEP_IFACE_MIXART = 9,
|
|
SNDRV_HWDEP_IFACE_USX2Y = 10,
|
|
SNDRV_HWDEP_IFACE_EMUX_WAVETABLE = 11,
|
|
SNDRV_HWDEP_IFACE_BLUETOOTH = 12,
|
|
SNDRV_HWDEP_IFACE_USX2Y_PCM = 13,
|
|
SNDRV_HWDEP_IFACE_PCXHR = 14,
|
|
SNDRV_HWDEP_IFACE_SB_RC = 15,
|
|
SNDRV_HWDEP_IFACE_HDA = 16,
|
|
SNDRV_HWDEP_IFACE_USB_STREAM = 17,
|
|
SNDRV_HWDEP_IFACE_FW_DICE = 18,
|
|
SNDRV_HWDEP_IFACE_FW_FIREWORKS = 19,
|
|
SNDRV_HWDEP_IFACE_FW_BEBOB = 20,
|
|
SNDRV_HWDEP_IFACE_FW_OXFW = 21,
|
|
SNDRV_HWDEP_IFACE_FW_DIGI00X = 22,
|
|
SNDRV_HWDEP_IFACE_FW_TASCAM = 23,
|
|
SNDRV_HWDEP_IFACE_LINE6 = 24,
|
|
SNDRV_HWDEP_IFACE_FW_MOTU = 25,
|
|
SNDRV_HWDEP_IFACE_FW_FIREFACE = 26,
|
|
SNDRV_HWDEP_IFACE_LAST = 26,
|
|
};
|
|
|
|
struct hda_verb_ioctl {
|
|
u32 verb;
|
|
u32 res;
|
|
};
|
|
|
|
struct rtnl_link {
|
|
rtnl_doit_func doit;
|
|
rtnl_dumpit_func dumpit;
|
|
struct module *owner;
|
|
unsigned int flags;
|
|
struct callback_head rcu;
|
|
};
|
|
|
|
enum {
|
|
IFLA_BRIDGE_FLAGS = 0,
|
|
IFLA_BRIDGE_MODE = 1,
|
|
IFLA_BRIDGE_VLAN_INFO = 2,
|
|
IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3,
|
|
IFLA_BRIDGE_MRP = 4,
|
|
IFLA_BRIDGE_CFM = 5,
|
|
IFLA_BRIDGE_MST = 6,
|
|
__IFLA_BRIDGE_MAX = 7,
|
|
};
|
|
|
|
enum {
|
|
IFLA_BRPORT_UNSPEC = 0,
|
|
IFLA_BRPORT_STATE = 1,
|
|
IFLA_BRPORT_PRIORITY = 2,
|
|
IFLA_BRPORT_COST = 3,
|
|
IFLA_BRPORT_MODE = 4,
|
|
IFLA_BRPORT_GUARD = 5,
|
|
IFLA_BRPORT_PROTECT = 6,
|
|
IFLA_BRPORT_FAST_LEAVE = 7,
|
|
IFLA_BRPORT_LEARNING = 8,
|
|
IFLA_BRPORT_UNICAST_FLOOD = 9,
|
|
IFLA_BRPORT_PROXYARP = 10,
|
|
IFLA_BRPORT_LEARNING_SYNC = 11,
|
|
IFLA_BRPORT_PROXYARP_WIFI = 12,
|
|
IFLA_BRPORT_ROOT_ID = 13,
|
|
IFLA_BRPORT_BRIDGE_ID = 14,
|
|
IFLA_BRPORT_DESIGNATED_PORT = 15,
|
|
IFLA_BRPORT_DESIGNATED_COST = 16,
|
|
IFLA_BRPORT_ID = 17,
|
|
IFLA_BRPORT_NO = 18,
|
|
IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19,
|
|
IFLA_BRPORT_CONFIG_PENDING = 20,
|
|
IFLA_BRPORT_MESSAGE_AGE_TIMER = 21,
|
|
IFLA_BRPORT_FORWARD_DELAY_TIMER = 22,
|
|
IFLA_BRPORT_HOLD_TIMER = 23,
|
|
IFLA_BRPORT_FLUSH = 24,
|
|
IFLA_BRPORT_MULTICAST_ROUTER = 25,
|
|
IFLA_BRPORT_PAD = 26,
|
|
IFLA_BRPORT_MCAST_FLOOD = 27,
|
|
IFLA_BRPORT_MCAST_TO_UCAST = 28,
|
|
IFLA_BRPORT_VLAN_TUNNEL = 29,
|
|
IFLA_BRPORT_BCAST_FLOOD = 30,
|
|
IFLA_BRPORT_GROUP_FWD_MASK = 31,
|
|
IFLA_BRPORT_NEIGH_SUPPRESS = 32,
|
|
IFLA_BRPORT_ISOLATED = 33,
|
|
IFLA_BRPORT_BACKUP_PORT = 34,
|
|
IFLA_BRPORT_MRP_RING_OPEN = 35,
|
|
IFLA_BRPORT_MRP_IN_OPEN = 36,
|
|
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37,
|
|
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38,
|
|
IFLA_BRPORT_LOCKED = 39,
|
|
IFLA_BRPORT_MAB = 40,
|
|
IFLA_BRPORT_MCAST_N_GROUPS = 41,
|
|
IFLA_BRPORT_MCAST_MAX_GROUPS = 42,
|
|
__IFLA_BRPORT_MAX = 43,
|
|
};
|
|
|
|
enum {
|
|
IFLA_STATS_UNSPEC = 0,
|
|
IFLA_STATS_LINK_64 = 1,
|
|
IFLA_STATS_LINK_XSTATS = 2,
|
|
IFLA_STATS_LINK_XSTATS_SLAVE = 3,
|
|
IFLA_STATS_LINK_OFFLOAD_XSTATS = 4,
|
|
IFLA_STATS_AF_SPEC = 5,
|
|
__IFLA_STATS_MAX = 6,
|
|
};
|
|
|
|
enum {
|
|
IFLA_OFFLOAD_XSTATS_UNSPEC = 0,
|
|
IFLA_OFFLOAD_XSTATS_CPU_HIT = 1,
|
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2,
|
|
IFLA_OFFLOAD_XSTATS_L3_STATS = 3,
|
|
__IFLA_OFFLOAD_XSTATS_MAX = 4,
|
|
};
|
|
|
|
enum rtnl_kinds {
|
|
RTNL_KIND_NEW = 0,
|
|
RTNL_KIND_DEL = 1,
|
|
RTNL_KIND_GET = 2,
|
|
RTNL_KIND_SET = 3,
|
|
};
|
|
|
|
enum {
|
|
IFLA_EVENT_NONE = 0,
|
|
IFLA_EVENT_REBOOT = 1,
|
|
IFLA_EVENT_FEATURES = 2,
|
|
IFLA_EVENT_BONDING_FAILOVER = 3,
|
|
IFLA_EVENT_NOTIFY_PEERS = 4,
|
|
IFLA_EVENT_IGMP_RESEND = 5,
|
|
IFLA_EVENT_BONDING_OPTIONS = 6,
|
|
};
|
|
|
|
enum {
|
|
IFLA_PROTO_DOWN_REASON_UNSPEC = 0,
|
|
IFLA_PROTO_DOWN_REASON_MASK = 1,
|
|
IFLA_PROTO_DOWN_REASON_VALUE = 2,
|
|
__IFLA_PROTO_DOWN_REASON_CNT = 3,
|
|
IFLA_PROTO_DOWN_REASON_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VF_INFO_UNSPEC = 0,
|
|
IFLA_VF_INFO = 1,
|
|
__IFLA_VF_INFO_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VF_UNSPEC = 0,
|
|
IFLA_VF_MAC = 1,
|
|
IFLA_VF_VLAN = 2,
|
|
IFLA_VF_TX_RATE = 3,
|
|
IFLA_VF_SPOOFCHK = 4,
|
|
IFLA_VF_LINK_STATE = 5,
|
|
IFLA_VF_RATE = 6,
|
|
IFLA_VF_RSS_QUERY_EN = 7,
|
|
IFLA_VF_STATS = 8,
|
|
IFLA_VF_TRUST = 9,
|
|
IFLA_VF_IB_NODE_GUID = 10,
|
|
IFLA_VF_IB_PORT_GUID = 11,
|
|
IFLA_VF_VLAN_LIST = 12,
|
|
IFLA_VF_BROADCAST = 13,
|
|
__IFLA_VF_MAX = 14,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VF_VLAN_INFO_UNSPEC = 0,
|
|
IFLA_VF_VLAN_INFO = 1,
|
|
__IFLA_VF_VLAN_INFO_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VF_STATS_RX_PACKETS = 0,
|
|
IFLA_VF_STATS_TX_PACKETS = 1,
|
|
IFLA_VF_STATS_RX_BYTES = 2,
|
|
IFLA_VF_STATS_TX_BYTES = 3,
|
|
IFLA_VF_STATS_BROADCAST = 4,
|
|
IFLA_VF_STATS_MULTICAST = 5,
|
|
IFLA_VF_STATS_PAD = 6,
|
|
IFLA_VF_STATS_RX_DROPPED = 7,
|
|
IFLA_VF_STATS_TX_DROPPED = 8,
|
|
__IFLA_VF_STATS_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
IFLA_VF_PORT_UNSPEC = 0,
|
|
IFLA_VF_PORT = 1,
|
|
__IFLA_VF_PORT_MAX = 2,
|
|
};
|
|
|
|
enum {
|
|
IFLA_PORT_UNSPEC = 0,
|
|
IFLA_PORT_VF = 1,
|
|
IFLA_PORT_PROFILE = 2,
|
|
IFLA_PORT_VSI_TYPE = 3,
|
|
IFLA_PORT_INSTANCE_UUID = 4,
|
|
IFLA_PORT_HOST_UUID = 5,
|
|
IFLA_PORT_REQUEST = 6,
|
|
IFLA_PORT_RESPONSE = 7,
|
|
__IFLA_PORT_MAX = 8,
|
|
};
|
|
|
|
enum {
|
|
XDP_ATTACHED_NONE = 0,
|
|
XDP_ATTACHED_DRV = 1,
|
|
XDP_ATTACHED_SKB = 2,
|
|
XDP_ATTACHED_HW = 3,
|
|
XDP_ATTACHED_MULTI = 4,
|
|
};
|
|
|
|
enum {
|
|
IFLA_XDP_UNSPEC = 0,
|
|
IFLA_XDP_FD = 1,
|
|
IFLA_XDP_ATTACHED = 2,
|
|
IFLA_XDP_FLAGS = 3,
|
|
IFLA_XDP_PROG_ID = 4,
|
|
IFLA_XDP_DRV_PROG_ID = 5,
|
|
IFLA_XDP_SKB_PROG_ID = 6,
|
|
IFLA_XDP_HW_PROG_ID = 7,
|
|
IFLA_XDP_EXPECTED_FD = 8,
|
|
__IFLA_XDP_MAX = 9,
|
|
};
|
|
|
|
enum {
|
|
IFLA_INFO_UNSPEC = 0,
|
|
IFLA_INFO_KIND = 1,
|
|
IFLA_INFO_DATA = 2,
|
|
IFLA_INFO_XSTATS = 3,
|
|
IFLA_INFO_SLAVE_KIND = 4,
|
|
IFLA_INFO_SLAVE_DATA = 5,
|
|
__IFLA_INFO_MAX = 6,
|
|
};
|
|
|
|
enum {
|
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0,
|
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1,
|
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2,
|
|
__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
IFLA_STATS_GETSET_UNSPEC = 0,
|
|
IFLA_STATS_GET_FILTERS = 1,
|
|
IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2,
|
|
__IFLA_STATS_GETSET_MAX = 3,
|
|
};
|
|
|
|
struct rtnl_offload_xstats_request_used {
|
|
bool request;
|
|
bool used;
|
|
};
|
|
|
|
struct rtnl_newlink_tbs {
|
|
struct nlattr *tb[65];
|
|
struct nlattr *attr[51];
|
|
struct nlattr *slave_attr[43];
|
|
};
|
|
|
|
struct if_stats_msg {
|
|
__u8 family;
|
|
__u8 pad1;
|
|
__u16 pad2;
|
|
__u32 ifindex;
|
|
__u32 filter_mask;
|
|
};
|
|
|
|
struct rtnl_link_stats {
|
|
__u32 rx_packets;
|
|
__u32 tx_packets;
|
|
__u32 rx_bytes;
|
|
__u32 tx_bytes;
|
|
__u32 rx_errors;
|
|
__u32 tx_errors;
|
|
__u32 rx_dropped;
|
|
__u32 tx_dropped;
|
|
__u32 multicast;
|
|
__u32 collisions;
|
|
__u32 rx_length_errors;
|
|
__u32 rx_over_errors;
|
|
__u32 rx_crc_errors;
|
|
__u32 rx_frame_errors;
|
|
__u32 rx_fifo_errors;
|
|
__u32 rx_missed_errors;
|
|
__u32 tx_aborted_errors;
|
|
__u32 tx_carrier_errors;
|
|
__u32 tx_fifo_errors;
|
|
__u32 tx_heartbeat_errors;
|
|
__u32 tx_window_errors;
|
|
__u32 rx_compressed;
|
|
__u32 tx_compressed;
|
|
__u32 rx_nohandler;
|
|
};
|
|
|
|
struct rtnl_stats_dump_filters {
|
|
u32 mask[6];
|
|
};
|
|
|
|
struct rta_cacheinfo {
|
|
__u32 rta_clntref;
|
|
__u32 rta_lastuse;
|
|
__s32 rta_expires;
|
|
__u32 rta_error;
|
|
__u32 rta_used;
|
|
__u32 rta_id;
|
|
__u32 rta_ts;
|
|
__u32 rta_tsage;
|
|
};
|
|
|
|
struct rtnl_link_ifmap {
|
|
__u64 mem_start;
|
|
__u64 mem_end;
|
|
__u64 base_addr;
|
|
__u16 irq;
|
|
__u8 dma;
|
|
__u8 port;
|
|
};
|
|
|
|
struct ifla_vf_rss_query_en {
|
|
__u32 vf;
|
|
__u32 setting;
|
|
};
|
|
|
|
struct ifla_vf_link_state {
|
|
__u32 vf;
|
|
__u32 link_state;
|
|
};
|
|
|
|
struct ifla_vf_vlan_info {
|
|
__u32 vf;
|
|
__u32 vlan;
|
|
__u32 qos;
|
|
__be16 vlan_proto;
|
|
};
|
|
|
|
struct ifla_vf_spoofchk {
|
|
__u32 vf;
|
|
__u32 setting;
|
|
};
|
|
|
|
struct ifla_vf_tx_rate {
|
|
__u32 vf;
|
|
__u32 rate;
|
|
};
|
|
|
|
struct ifla_vf_trust {
|
|
__u32 vf;
|
|
__u32 setting;
|
|
};
|
|
|
|
struct ifla_vf_vlan {
|
|
__u32 vf;
|
|
__u32 vlan;
|
|
__u32 qos;
|
|
};
|
|
|
|
struct ifla_vf_rate {
|
|
__u32 vf;
|
|
__u32 min_tx_rate;
|
|
__u32 max_tx_rate;
|
|
};
|
|
|
|
struct ifla_vf_mac {
|
|
__u32 vf;
|
|
__u8 mac[32];
|
|
};
|
|
|
|
struct ifla_vf_broadcast {
|
|
__u8 broadcast[32];
|
|
};
|
|
|
|
enum {
|
|
CTRL_CMD_UNSPEC = 0,
|
|
CTRL_CMD_NEWFAMILY = 1,
|
|
CTRL_CMD_DELFAMILY = 2,
|
|
CTRL_CMD_GETFAMILY = 3,
|
|
CTRL_CMD_NEWOPS = 4,
|
|
CTRL_CMD_DELOPS = 5,
|
|
CTRL_CMD_GETOPS = 6,
|
|
CTRL_CMD_NEWMCAST_GRP = 7,
|
|
CTRL_CMD_DELMCAST_GRP = 8,
|
|
CTRL_CMD_GETMCAST_GRP = 9,
|
|
CTRL_CMD_GETPOLICY = 10,
|
|
__CTRL_CMD_MAX = 11,
|
|
};
|
|
|
|
enum genl_validate_flags {
|
|
GENL_DONT_VALIDATE_STRICT = 1,
|
|
GENL_DONT_VALIDATE_DUMP = 2,
|
|
GENL_DONT_VALIDATE_DUMP_STRICT = 4,
|
|
};
|
|
|
|
enum {
|
|
CTRL_ATTR_UNSPEC = 0,
|
|
CTRL_ATTR_FAMILY_ID = 1,
|
|
CTRL_ATTR_FAMILY_NAME = 2,
|
|
CTRL_ATTR_VERSION = 3,
|
|
CTRL_ATTR_HDRSIZE = 4,
|
|
CTRL_ATTR_MAXATTR = 5,
|
|
CTRL_ATTR_OPS = 6,
|
|
CTRL_ATTR_MCAST_GROUPS = 7,
|
|
CTRL_ATTR_POLICY = 8,
|
|
CTRL_ATTR_OP_POLICY = 9,
|
|
CTRL_ATTR_OP = 10,
|
|
__CTRL_ATTR_MAX = 11,
|
|
};
|
|
|
|
enum {
|
|
CTRL_ATTR_OP_UNSPEC = 0,
|
|
CTRL_ATTR_OP_ID = 1,
|
|
CTRL_ATTR_OP_FLAGS = 2,
|
|
__CTRL_ATTR_OP_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
CTRL_ATTR_MCAST_GRP_UNSPEC = 0,
|
|
CTRL_ATTR_MCAST_GRP_NAME = 1,
|
|
CTRL_ATTR_MCAST_GRP_ID = 2,
|
|
__CTRL_ATTR_MCAST_GRP_MAX = 3,
|
|
};
|
|
|
|
enum {
|
|
CTRL_ATTR_POLICY_UNSPEC = 0,
|
|
CTRL_ATTR_POLICY_DO = 1,
|
|
CTRL_ATTR_POLICY_DUMP = 2,
|
|
__CTRL_ATTR_POLICY_DUMP_MAX = 3,
|
|
CTRL_ATTR_POLICY_DUMP_MAX = 2,
|
|
};
|
|
|
|
struct genl_op_iter {
|
|
const struct genl_family *family;
|
|
struct genl_split_ops doit;
|
|
struct genl_split_ops dumpit;
|
|
int cmd_idx;
|
|
int entry_idx;
|
|
u32 cmd;
|
|
u8 flags;
|
|
};
|
|
|
|
struct netlink_policy_dump_state;
|
|
|
|
struct ctrl_dump_policy_ctx {
|
|
struct netlink_policy_dump_state *state;
|
|
const struct genl_family *rt;
|
|
struct genl_op_iter *op_iter;
|
|
u32 op;
|
|
u16 fam_id;
|
|
u8 dump_map: 1;
|
|
u8 single_op: 1;
|
|
};
|
|
|
|
struct genl_start_context {
|
|
const struct genl_family *family;
|
|
struct nlmsghdr *nlh;
|
|
struct netlink_ext_ack *extack;
|
|
const struct genl_split_ops *ops;
|
|
int hdrlen;
|
|
};
|
|
|
|
enum {
|
|
ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0,
|
|
ETHTOOL_A_PHC_VCLOCKS_HEADER = 1,
|
|
ETHTOOL_A_PHC_VCLOCKS_NUM = 2,
|
|
ETHTOOL_A_PHC_VCLOCKS_INDEX = 3,
|
|
__ETHTOOL_A_PHC_VCLOCKS_CNT = 4,
|
|
ETHTOOL_A_PHC_VCLOCKS_MAX = 3,
|
|
};
|
|
|
|
struct phc_vclocks_reply_data {
|
|
struct ethnl_reply_data base;
|
|
int num;
|
|
int *index;
|
|
};
|
|
|
|
enum retry_state {
|
|
STATE_CONGESTED = 0,
|
|
STATE_RESTART = 1,
|
|
STATE_DONE = 2,
|
|
};
|
|
|
|
struct bpf_iter__udp {
|
|
union {
|
|
struct bpf_iter_meta *meta;
|
|
};
|
|
union {
|
|
struct udp_sock *udp_sk;
|
|
};
|
|
uid_t uid;
|
|
int: 32;
|
|
int bucket;
|
|
};
|
|
|
|
struct bictcp {
|
|
u32 cnt;
|
|
u32 last_max_cwnd;
|
|
u32 last_cwnd;
|
|
u32 last_time;
|
|
u32 bic_origin_point;
|
|
u32 bic_K;
|
|
u32 delay_min;
|
|
u32 epoch_start;
|
|
u32 ack_cnt;
|
|
u32 tcp_cwnd;
|
|
u16 unused;
|
|
u8 sample_cnt;
|
|
u8 found;
|
|
u32 round_start;
|
|
u32 end_seq;
|
|
u32 last_ack;
|
|
u32 curr_rtt;
|
|
};
|
|
|
|
struct icmp6_err {
|
|
int err;
|
|
int fatal;
|
|
};
|
|
|
|
struct icmpv6_msg {
|
|
struct sk_buff *skb;
|
|
int offset;
|
|
uint8_t type;
|
|
};
|
|
|
|
struct rpc_cred_cache {
|
|
struct hlist_head *hashtable;
|
|
unsigned int hashbits;
|
|
spinlock_t lock;
|
|
};
|
|
|
|
struct encryptor_desc {
|
|
u8 iv[16];
|
|
struct skcipher_request *req;
|
|
int pos;
|
|
struct xdr_buf *outbuf;
|
|
struct page **pages;
|
|
struct scatterlist infrags[4];
|
|
struct scatterlist outfrags[4];
|
|
int fragno;
|
|
int fraglen;
|
|
};
|
|
|
|
struct decryptor_desc {
|
|
u8 iv[16];
|
|
struct skcipher_request *req;
|
|
struct scatterlist frags[4];
|
|
int fragno;
|
|
int fraglen;
|
|
};
|
|
|
|
struct sta_link_alloc {
|
|
struct link_sta_info info;
|
|
struct ieee80211_link_sta sta;
|
|
struct callback_head callback_head;
|
|
};
|
|
|
|
struct group_data {
|
|
int limit[21];
|
|
int base[20];
|
|
int permute[258];
|
|
int minLen;
|
|
int maxLen;
|
|
};
|
|
|
|
struct bunzip_data {
|
|
int writeCopies;
|
|
int writePos;
|
|
int writeRunCountdown;
|
|
int writeCount;
|
|
int writeCurrent;
|
|
long (*fill)(void *, unsigned long);
|
|
long inbufCount;
|
|
long inbufPos;
|
|
unsigned char *inbuf;
|
|
unsigned int inbufBitCount;
|
|
unsigned int inbufBits;
|
|
unsigned int crc32Table[256];
|
|
unsigned int headerCRC;
|
|
unsigned int totalCRC;
|
|
unsigned int writeCRC;
|
|
unsigned int *dbuf;
|
|
unsigned int dbufSize;
|
|
unsigned char selectors[32768];
|
|
struct group_data groups[6];
|
|
int io_error;
|
|
int byteCount[256];
|
|
unsigned char symToByte[256];
|
|
unsigned char mtfSymbol[256];
|
|
};
|
|
|
|
struct rc {
|
|
long (*fill)(void *, unsigned long);
|
|
uint8_t *ptr;
|
|
uint8_t *buffer;
|
|
uint8_t *buffer_end;
|
|
long buffer_size;
|
|
uint32_t code;
|
|
uint32_t range;
|
|
uint32_t bound;
|
|
void (*error)(char *);
|
|
};
|
|
|
|
struct lzma_header;
|
|
|
|
struct writer {
|
|
uint8_t *buffer;
|
|
uint8_t previous_byte;
|
|
size_t buffer_pos;
|
|
int bufsize;
|
|
size_t global_pos;
|
|
long (*flush)(void *, unsigned long);
|
|
struct lzma_header *header;
|
|
};
|
|
|
|
struct lzma_header {
|
|
uint8_t pos;
|
|
uint32_t dict_size;
|
|
uint64_t dst_size;
|
|
} __attribute__((packed));
|
|
|
|
struct cstate {
|
|
int state;
|
|
uint32_t rep0;
|
|
uint32_t rep1;
|
|
uint32_t rep2;
|
|
uint32_t rep3;
|
|
};
|
|
|
|
enum cpio_fields {
|
|
C_MAGIC = 0,
|
|
C_INO = 1,
|
|
C_MODE = 2,
|
|
C_UID = 3,
|
|
C_GID = 4,
|
|
C_NLINK = 5,
|
|
C_MTIME = 6,
|
|
C_FILESIZE = 7,
|
|
C_MAJ = 8,
|
|
C_MIN = 9,
|
|
C_RMAJ = 10,
|
|
C_RMIN = 11,
|
|
C_NAMESIZE = 12,
|
|
C_CHKSUM = 13,
|
|
C_NFIELDS = 14,
|
|
};
|
|
|
|
struct fprop_local_single {
|
|
unsigned long events;
|
|
unsigned int period;
|
|
raw_spinlock_t lock;
|
|
};
|
|
|
|
struct klist_waiter {
|
|
struct list_head list;
|
|
struct klist_node *node;
|
|
struct task_struct *process;
|
|
int woken;
|
|
};
|
|
|
|
enum {
|
|
st_wordstart = 0,
|
|
st_wordcmp = 1,
|
|
st_wordskip = 2,
|
|
};
|
|
|
|
enum {
|
|
st_wordstart___2 = 0,
|
|
st_wordcmp___2 = 1,
|
|
st_wordskip___2 = 2,
|
|
st_bufcpy = 3,
|
|
};
|
|
|
|
enum reg_type {
|
|
REG_TYPE_RM = 0,
|
|
REG_TYPE_REG = 1,
|
|
REG_TYPE_INDEX = 2,
|
|
REG_TYPE_BASE = 3,
|
|
};
|
|
|
|
enum insn_mmio_type {
|
|
INSN_MMIO_DECODE_FAILED = 0,
|
|
INSN_MMIO_WRITE = 1,
|
|
INSN_MMIO_WRITE_IMM = 2,
|
|
INSN_MMIO_READ = 3,
|
|
INSN_MMIO_READ_ZERO_EXTEND = 4,
|
|
INSN_MMIO_READ_SIGN_EXTEND = 5,
|
|
INSN_MMIO_MOVS = 6,
|
|
};
|
|
|
|
#ifndef BPF_NO_PRESERVE_ACCESS_INDEX
|
|
#pragma clang attribute pop
|
|
#endif
|
|
|
|
#endif /* __VMLINUX_H__ */
|